본문 바로가기

반응형

분류 전체보기

(120)
Spring-Session-JDBC로 클러스터링을 해결하자-2 상황 https://hpotter1993.tistory.com/94 Spring-Session-JDBC로 클러스터링을 해결하자-1 상황 fream 프로젝트의 인증과 인가는 세션방식으로 구현된다. 세션클러스터링 방식은 Redis,Memcached등의 별도의 세션정보를 저장하는 데이터 스토어를 사용한다. Spring-Session Spring Session provides an AP hpotter1993.tistory.com Spring-Session-JDBC를 프로젝트에 적용해보자. 우선 fream프로젝트는 Gradle을 사용하고 있으므로, build.gradle파일에 의존성을 선언해주자. dependencies { compile 'org.springframework.session:spring-sessio..
Spring-Session-JDBC로 클러스터링을 해결하자-1 상황 fream 프로젝트의 인증과 인가는 세션방식으로 구현된다. 세션클러스터링 방식은 Redis,Memcached등의 별도의 세션정보를 저장하는 데이터 스토어를 사용한다. Spring-Session Spring Session provides an API and implementations for managing a user’s session information while also making it trivial to support clustered sessions without being tied to an application container-specific solution. It also provides transparent integration with: HttpSession: Allows re..
개발서버를 셋업해보자! 개발서버를 스스로 셋업해보자. 최종적인 목표 : 도커 컨테이너 환경에 대한 이해,해당 환경에 대한 서버 셋업을 할수 있다. 학습목표 VM서버 생성(네이버 클라우드 크레딧을 이용) jar배포 후 외부의 요청을 받을수 있는 상태까지 만들기 1차프로젝트가 마무리되어간다. 실질적인 개발은 끝이났고, 인프라적인 부분과 문서관련? 된 부분이 남은것 같다. 이제 2차프로젝트로 넘어가기전, 2차프로젝트에서는 1차와 달리, 배포를 바로바로 할수있는 상태에서 시작을 할수있도록 인프라환경을 구축중에 있다. 다만 VM서버 셋업에 대한 경험이 전무하기 때문에, 곧바로 도커 컨테이너 환경에 대한 서버 셋업을 하기보다, 기초적인 VM서버를 생성하고, 간단한 jar를 배포, 외부호출에 응답할수 있는 상태가 될수있게 해보자. VM서버..
Github-Issues 학습목표 프로젝트를 진행하면서 github을 사용하게 되었다. Issue 기능을 활용해 프로젝트 진행이 된다고 하는데, 기본적인 개념을 익혀보도록 하자. Github Issue란?... Git Isuue는 게시판과 비슷하다. 이슈트래커라고도 한다. 게시판과 다른점은 업무/협업을 위한 게시판이라고 생각하면 된다. Repository에 Isuues 탭을 들어가면 상단 이미지와 같은 게시판 화면이 보인다. 우측 하단의 New Issue를 클릭하면 이슈 게시글을 생성할 수 있다. 타이틀과 내용을 작성 할 수있고, 우측 하단의 Submit new issue를 클릭해 이슈를 생성할 수 있다. 생성한 이슈의 상세화면이다. Comment버튼으로 코멘트를 작성할수 있고, Comment 버튼 옆의 Close Issue버튼..
Dynamic Proxy 직접 구현해보기-2 프록시, 다이나믹 프록시는 접근을 제어하기 위함인가? 기능을 확장하기 위함인가?? 사실 둘다 아닌가?? 아니, 애초에 기능을 확장하기 위해 프록시를 써도, 자동적으로 접근을 제어하게된다. 지난 포스팅에서 구현했던 프록시를, Dynamic Proxy로 구현해보자. JDK Dynamic Proxy는 자바의 리플렉션을 이용해 구현한다. 즉, 개발자가 직접 구현할 때도 자바의 리플렉션을 이용해야 한다는 소리이다. java.lang.reflect패키지 java.lang.relfect 패키지에 Proxy 클래스가 제공된다. Class Proxy Proxy provides static methods for creating dynamic proxy classes and instances, and it is also t..
Dynamic Proxy직접 구현해보기-1 프록시, 다이나믹 프록시는 접근을 제어하기 위함인가? 기능을 확장하기 위함인가?? 사실 둘다 아닌가?? 아니, 애초에 기능을 확장하기 위해 프록시를 써도, 자동적으로 접근을 제어하게된다. 먼저 내가 직접 프록시를 구현해보자. 아래의 코드는 User라는 클래스를 직접 생성, 정보를 출력하는 Client 코드와 User클래스이다. public class ProxyClient { public static void main(String[] args) { User user = new User(); user.useSomething(); } } public class User { public void useSomething() { System.out.println("use something"); } } ProxyCl..
Checked Exception에서 Rollback이 안되는 이유? 학습목표 Spring에서 Transaction이 Rollback이 안되는 경우가 있다. 첫번째는 Unchecked Exception으로, Transaction 어노테이션이 선언된 메소드가 내부적으로 this.함수()를 호출시 this.함수()는 트랜잭션 처리를 해주는 프록시 객체가 아니라, 원본 객체의 함수()를 호출한다. 즉, 그때문에 트랜잭션으로 감싸지지 않은 DB접근, 연산이 수행된다. 때문에 도중에 오류가 나도 Rollback이 일어나지 않는다. 그럼, checked Exception일때는 어떻게 나는걸까?... 사실 checked Exception이면 이미 컴파일 시점에 오류가 발견되는거 아닐까?... Checked Exception Checked Exception은 Compile Excepti..
Hash암호화 학습목표 Hash암호화는 어떤 암호화 방식일까? Hash는 HashMap, HashSet등의 자료구조에서 많이 보았고, Hash를 사용했었다. hashCode()라는 메소드도 써왔고... Hash에 대한 명확한 정의? 는 모른채 써왔던것 같다. Hash란 무엇이고, 이런 Hash를 사용하는 암호화는 무엇인지, 지난 포스팅의 주제인 AES-128 암호화의 내부 방식에 대해 알기전해 개략적으로 알고가자. Hash암호화 Hash와 Encryption의 차이 둘다 암호화 기법이지만, Hash는 단방향 암호화 기법이고, Encryption은 양방향 암호화 기법이다. 즉, Hash는 한번 암호화하면 다시 복호화 하는것이 불가능하다. (Encryption은 암호화 후 복호화가 가능하다.) 비둘기 집 원리 (복호화가 ..

반응형