JAVA/프로그래밍 이론 Leejisoo 2018. 5. 15. 23:01
EJB CMT 방식의 2PC XADatasource처리방식이제는 EJB는 구현된 프로젝트를 찾기 힘들만큼 오래된 기술이 되어버렸다. 하지만 현재 회사에서 사용하는 프레임워크가 EJB방식으로 트랜젝션 처리를 하기 때문에 EJB방식의 트랜젝션 처리과정을 정리한다. ■ J2EE스펙을 지원하는 WAS사용우선, EJB를 사용하기 위해서는 반드시 JEUS, JBOSS, WEBLOGIC등 J2EE 스펙을 지원하는 미들웨어를 사용해야한다. J2EE스펙을 지원하는 미들웨어는 EJB Been을 관리해주는 EJB컨테이너가 존재하지만, 그렇지 않은 Tomcat같은 경우는 웹컨테이너만 제공하기 때문에 J2EE를 지원할 수 없다. ■ WAS ConnectionPool을 이용한 DataSource등록EJB에서 사용될 DataSou..
JAVA/프로그래밍 이론 Leejisoo 2018. 5. 8. 01:27
암호화 양방향, 단방향, 대칭키(비공개키), 비대칭키(공개키) 개념/분류 알고리즘 정리양방향 단방향 알고리즘우선, 가장먼저 분류되는 방식은 양방향, 단방향 알고리즘이다. 간단하게 말해서 양방향 알고리즘은 암호화된 암호문을 복호화 할 수 있는 알고리즘을 의미한다. 반대로 단방향 알고리즘은 암호화는 수행하지만 절대로 복호화가 불가능한 알고리즘을 말한다. 양방향 알고리즘은 대표적으로 대킹키(비공개키) 방식과 비대칭키(공개키) 방식으로 나눠지며, 단방향은 Hash방식이 대표적이다.양방향 알고리즘 : 암호화, 복호화 가능단방향 알고리즘 : 암화화 가능, 복호화 불가 대칭키(비공개키) 비대칭키(공개키) 방식양방향 암호화는 크게 대칭키(비공개키)와 비대칭키(공개키)방식으로 나눠진다. 대칭키 방식은 암호화, 복호화시 ..
JAVA/프로그래밍 이론 Leejisoo 2018. 5. 4. 12:24
TCP 연결과정 3-way Handshaking 연결과정 CLIENT 상태 SERVER 상태 CLIENT는 SERVER에게 연결을 요청하는 SYN세그먼트 전송CLOSELISTENSERVER는 CLIENT에게 요청을 받았다는 의미로 ACK 세그먼트와 CLINENT와 연결을 시도하는 의미로 SYN세그먼트 전송 SYN-SENTSYN_REV CLIENT언트는 서버로부터 보내온 SYN의 응답으로 ACK를 전송 후 연결이 수립됨 ESTABLISHED ESTABLISHED TCP 종료과정 4-way Handshaking 종료과정CLIENT 상태SERVER 상태 CLIENT는 SERVER에게 연결을 종료하는 FIN세그먼트 전송ESTABLISHEDCLOSE_WAITSERVER는 ACK세그먼트를 클라이언트에 응답하고 바로..
JAVA/프로그래밍 이론 Leejisoo 2018. 5. 3. 01:01
AtomicInteger 란?AtomicInteger란 원자성을 보장하는 Interger를 의미한다. 멀티 쓰레드 환경에서 동기화 문제를 별도의 synchronized 키워드 없이 해결하기 위해서 고안된 방법이다. (일반적으로 동기화 문제는 synchronized, Atomic, volatile 세가지 키워드로 해결한다.) synchronized은 특정 Thread가 해당 블락 전체를 lock 하기 때문에 다른 Thread는 아무작업을 못하고 기다리는 상황이 되어 낭비가 심하다. 그래서 NonBlocking하면서 동기화 문제를 해결하기 위한 방법이 Atomic이다. AtomicInterger 동작의 핵심 원리는 바로 CAS알고리즘(Compare and Swap)에 있다. CAS (Compare And S..
JAVA/프로그래밍 이론 Leejisoo 2018. 5. 1. 17:26
JAVA 접근제한자 별 접근허용 범위public : 모든 접근을 허용protected : 동일 패키지와 하위 클래스에게 접근 허용default : 동일 패키지에서 접근 허용private : 현재 객체 내에서만 허용허용범위 public protected default private 클래스 내부 O O O O 동일 패키지 O O O X 다른 패키지 O X X X 하위 패키지 O O X X 기타 JAVA에서 사용한 Modifier 정리 final불변 객체를 의미한다. final로 선언된 객체는 초기화 및 할당을 최초 1회만 수행할 수 있다. static인스턴스에 속한게 아닌, 클래스에 속해있는 변수로 여러 클래스가 공유하는 변수를 의미한다. 클래스가 인스턴스화 되기 전 클래스 로딩시점에 이미 생성되고 단 하나..
JAVA/프로그래밍 이론 Leejisoo 2018. 5. 1. 00:59
HTTP Request 정보 GET /index.html HTTP/1.1 요청 URL정보 (Mehotd /URI HTTP버젼) user-agent: MSIE 6.0; Window NT 5.0 사용자 웹 브라우져 종류 accept: test/html; */* 요청 데이터 타입 (응답의 Content-type과 유사) cookie:name=value 쿠키(인증 정보) refere: http://abc.com 경유지 URL host: www.abc.com 요청 도메인 HTTP Response 정보HTTP/1.1 200 OK 프로토콜 버젼 및 응답코드 Server: Apache 웹 서버 정보 Content-type: text/html MIME 타입 Content-length : 1593 HTTP BODY 사이즈..