SSL 이란?
SSL 이란? 1. 인증서를 사용하는 이유 클라이언트의 요청은 네트워크를 통해 패킷으로 전달된다. 전달되는 과정에서 누군가 패킷을 훔쳐 아이디, 패스워드 같은 민감한 정보를 취하거나 수정할 수 있다. 클라이언트의 요청이 암호화 된다면 중간 공격자가 패킷을 훔쳐도 정보가 누출되지 않는다. 이를 위해 인증서를 활용한 SSL 암호화 방식을 주로 사...
SSL 이란? 1. 인증서를 사용하는 이유 클라이언트의 요청은 네트워크를 통해 패킷으로 전달된다. 전달되는 과정에서 누군가 패킷을 훔쳐 아이디, 패스워드 같은 민감한 정보를 취하거나 수정할 수 있다. 클라이언트의 요청이 암호화 된다면 중간 공격자가 패킷을 훔쳐도 정보가 누출되지 않는다. 이를 위해 인증서를 활용한 SSL 암호화 방식을 주로 사...
스프링의 변천사 그리고 Java 9 과 Spring 5 (3) 3. 새로운 변화 새로운 위기 : 애노테이션과 메타프로그래밍 관례의 범람. 애노테이션은 컴파일러에 검증되지 않고 코드 행위를 규정하지 않는다. 규칙이나 표준이 없어 이해하기 어렵고 오해하기 쉽다. 그리고 테스트가 안된다. @Controller @RequestMaping("/path...
스프링의 변천사 그리고 Java 9 과 Spring 5 (2) 2. 스프링의 위기와 극복 2-1. 첫 번째 위기 과도한 기술로 복잡해진 코드(J2EE, EJB) J2EE, EJB 규약을 통해 애플리케이션을 개발했다. J2EE, EJB 규약은 너무 복잡하고 많은 클래스를 상속하고 의존하도록 강제되어 있어 좋은 객체지향 애플리케이션을 만들기 어...
스프링의 변천사 그리고 Java 9 과 Spring 5 (1) 1. 스프링의 특징 스프링을 지탱하는 세 가지 기술 IoC, DI, 서비스 추상화. 스프링 기술과 도메인 논리를 분리하고 도메인 논리를 POJO 로 개발한다. 1-1. Dependency Injection 클라이언트가 요구하는 행동을 인터페이스로 설계한다. 클라이언트는 구체적으...
자바 컬렉션 종류와 특징 출처 - https://memostack.tistory.com/234 1. List 인덱스를 가지는 원소들의 집합. 중복 값을 가질 수 있다. 1-1. ArrayList 데이터 개수에 따라 자동적으로 크기가 조절된다. ArrayList 가 커지면 공간을 확보하는 연산이 필요하기 때문에 삽입이 많으면 성능...
HTTP 웹에서 클라이언트와 서버간 통신을 위한 프로토콜 애플리케이션 계층에 속하는 프로토콜 신뢰성 있는 프로토콜이면 어떤 것이든 사용 가능. 주로 TCP 사용 1. HTTP 0.9 [request] GET /mypage.html [response] <HTML> Sample Page </HTML> ...
스트림을 활용한 비동기 순차 처리 1. 순차적 실행 기본적으로 스트림은 데이터를 순서대로 처리합니다. Writable 스트림의 _write() 함수는 이전 호출이 callback() 을 호출해 완료될 때까지 다음 데이터 청크를 가지고 호출되지 않습니다. 그리고 Transform 스트림의 _transfrom() 함수 또한 이전 호출이 callb...
Bull 메시지 큐를 활용한 요청/응답 메시지 패턴 구현 상관 식별자(Correlation Identifier) 개념과 Bull 메시지 큐를 활용해 단방향 채널 위에 요청/응답 패턴을 구현합니다. 1. 들어가며 보통 메세징 시스템에서 생산자와 작업자 사이에 요청/응답 통신이 반드시 필요한 것은 아니며, 단방향 비동기 통신 파이프 라인 구조를 통해 ...
1. Duplex 스트림 ▲ Duplex 스트림 Duplex 스트림은 네트워크 소켓과 같이 데이터 소스 이면서 데이터 목적지인 엔티티이다. stream.Readable 과 stream.Writable 두 스트림의 함수를 상속한다. 즉, Duplex 스트림으로 데이터를 read() 또는 write() 할 수 있고 read 및 drai...
Writable 스트림 Writable Writable 스트림은 파일 시스템의 파일, 소켓, 표준 출력 인터페이스 등 대상 데이터의 목적지를 나타낸다. write 함수를 통해 Writable 스트림으로 데이터를 전달할 수 있다. writable.write(chunk, [encoding], [callback]) 인코딩 인자는 선택 사항이며...