오프라인 동시성 패턴 (1)
오프라인 동시성 패턴 (1) 1. 낙관적 오프라인 잠금 충돌이 감지되면 트랜잭션을 롤백해 동시 비즈니스 트랜잭션 간의 충돌을 방지한다. 1-1 비즈니스 트랜잭션은 여러 시스템 트랜잭션을 거쳐 실행되는 경우가 많습니다. 비즈니스 트랜잭션이 시스템 트랜잭션 범위를 벗어나면 데이터베이스의 도움만으로 레코드 데이터를 일관된 상태로 유지할 수 ...
오프라인 동시성 패턴 (1) 1. 낙관적 오프라인 잠금 충돌이 감지되면 트랜잭션을 롤백해 동시 비즈니스 트랜잭션 간의 충돌을 방지한다. 1-1 비즈니스 트랜잭션은 여러 시스템 트랜잭션을 거쳐 실행되는 경우가 많습니다. 비즈니스 트랜잭션이 시스템 트랜잭션 범위를 벗어나면 데이터베이스의 도움만으로 레코드 데이터를 일관된 상태로 유지할 수 ...
스프링 요청 처리 과정 2 1. 핸들러 매핑 Dispatcher Servlet 은 요청을 받으면 어떤 핸들러(컨트롤러) 를 호출할 지 핸들러 매핑 전략을 통해 결정한다. 핸들러 매핑 전략은 DI 를 통해 확장할 수 있다. Dispatcher Servlet 은 핸들러 어댑터를 사용해 어떤 형식의 핸들러든 호출할 수 있다. 따라...
스프링 마인드맵
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...