전체보기(194)
-
WebSocket
WebSocket WebSocket이란 웹 서버와 브라우저간 실시간 양방향 통신환경을 제공해주는 통신 기술입니다. 클라이언트와 서버간 양방향으로 원할 때 요청을 보낼 수 있으며 stateless한 HTTP 방식에 비해 오버헤드가 적기 때문에 유용하게 사용할 수 있습니다. WebSocket은 다른 HTTP 요청과 마찬가지로 80번 포트를 통해 웹 서버에 연결합니다. HTTP 프로토콜의 버전은 1.1이지만 다음 헤더의 예에서 볼 수 있듯이, Upgrade 헤더를 사용하여 웹 서버에 요청합니다. GET /... HTTP/1.1 Upgrade: WebSocket Connection: Upgrade이후, 여러 TCP 커넥션을 생성하지 않고 하나의 80번 포트 TCP 커넥션을 이용하여 별도의 헤더 등으로 논리적인 ..
2020.10.07 -
Event Loop
Event Loop란 Event Loop는 지속적으로 Call Stack이 비어있는지를 체크합니다. 만약 Call Stack이 비어있다면 Event Queue를 확인합니다. 만약 Event Queue에 Call Stack으로 옮겨져야 하는 데이터가 있다면 옮기고 그렇지 않다면 특별한 일이 발생하지 않습니다. 이처럼 Event Loop는 Call Stack이 비워져 있게 된다면 Event Queue의 데이터를 Call Stack으로 보내는 역할을 합니다. Call Stack Call Stack은 어떤 함수가 현재 실행중이고 다음에는 어떤 함수가 실행될지에 대한 정보를 담고 있는 Stack입니다. 만약 어떠한 함수가 실행된다면, 그 함수는 Call Stack에 추가됩니다. 그리고 만약 그 함수가 또 다른 함..
2020.09.27 -
Local Storage와 Session storage
Local Storage란 Local Storage는 cookie와 같이 클라이언트에 데이터를 저장하는 방법의 하나입니다. Local Storage는 모든 Http 요청에서 데이터를 주고받을 필요가 없습니다. 모든 HTTP 요청에서 데이터를 주고 받지 않기 때문에 클라이언트와 서버간의 전체 트래픽과 낭비되는 대역폭의 양을 줄일 수 있습니다. 그리고 최대 5MB의 정보를 저장할 수 있습니다. Local Storage의 만료는 Javascript 코드를 통해 삭제하지 않으면 자동으로 삭제되지 않습니다. 이 방식은 더 오랜 시간동안 저장해야하는 큰 데이터에 유용합니다. Local Storgae는 문자열 뿐만 아니라 javascript의 primitives와 object도 저장할 수 있습니다. Session S..
2020.09.19 -
MySQL Stored Procedure의 장단점
장점 DB의 보안이 향상됩니다. Stored Procedure는 자체적인 보안 설정 기능을 가지고 있으며, Stored program 단위로 실행 권한을 부여할 수 있습니다. 권한 제어가 가능하며, SQL 인젝션과 같은 기본적인 보안 사고를 피할 수 있습니다. 절차적 기능을 구현할 수 있습니다. SQL 문장에 IF/WHILE과 같은 제어 문장을 사용할 수 있습니다. 어떠한 어플리케이션을 사용하더라도 Stored Procedure를 이용한다면 값을 추출하는데 용이합니다. 개발 업무를 구분하여 진행할 수 있습니다. 순수하게 어플리케이션을 개발하는 조직과 DMBS 관련 코드를 개발하는 조직을 구분해 진행할 수 있습니다. DBMS 코드를 개발하는 조직은 트랜잭션 단위로 데이터베이스 관련 처리를 하는 Stored..
2020.09.17 -
Spring + Hibernate Validator Custom Message
Java Bean Validation 일반적으로 데이터 검증(Validation)은 여러 계층에 걸쳐서 이루어지게 됩니다. 거의 동일한 내용의 검증 로직이 각 계층별로 구현된다면 그것은 중복이고 낭비가 심한 작업입니다. 또한 그러한 경우 각 계층별로 구현된 검증 로직간 불일치로 인해 오류가 발생하기도 쉽습니다. 이를 해결하기 위해 데이터 검증을 위한 로직을 도메인 모델 자체에 묶어서 표현하는 방법이 있습니다. 실제 코드로 표현된다면 너무 장황하고 복잡하기 때문에, Java에서는 Bean Validation이라는 이름으로 Annotation을 데이터 검증을 위한 메타 데이터로 사용하는 방법을 제시하고 있습니다. Hibernate Validator Hibernate Validator는 Bean Validat..
2020.09.15 -
Spring Integration
Spring Integration이란 Spring Integration은 스프링 기반 어플리케이션 내에 메시징 기반 서비스를 제공하고 선언적 어댑터를 사용해 외부 시스템과의 통합을 쉽게 해줍니다. 이런 어댑터들은 리모팅, 메시징, 스케줄링과 같이 스프링이 제공하는 기능들을 추상화하고 있습니다. Spring Integration의 컴포넌트 Message Spring Integration에서 메시지란 메타데이터와 함께 결합되어 있는 일련의 자바 오브젝트를 위한 포괄적인 Wrapper를 말합니다. 아래 메시지 인터페이스가 보여주듯이 메시지는 페이로드와 여러 개의 헤더로 구성됩니다. public interface org.springframework.integration.Message { MessageHeader..
2020.09.15