템플릿 메소드(콜백) 패턴 (2)
템플릿 메소드(콜백) 패턴 (2) 2. 템플릿 메소드 패턴 적용 과정 2-1. 문제점 JDBC 를 활용한 DAO 를 작성하면 같은 함수가 매번 같은 순서로 호출되고 예외처리 코드가 중복됩니다. class UserDao { ... public void deleteAll() throws SQLException { Connection c...
템플릿 메소드(콜백) 패턴 (2) 2. 템플릿 메소드 패턴 적용 과정 2-1. 문제점 JDBC 를 활용한 DAO 를 작성하면 같은 함수가 매번 같은 순서로 호출되고 예외처리 코드가 중복됩니다. class UserDao { ... public void deleteAll() throws SQLException { Connection c...
템플릿 메소드(콜백) 패턴 (1) 1. 템플릿 메소드 패턴 정의 템플릿 메소드 패턴은 메소드에서 알고리즘의 골격을 정의합니다. 알고리즘의 일부는 서브클래스에서 구현해 특정 단계를 재정의 할 수 있습니다. 이런 특징으로 프레임워크 개발에 자주 쓰이는 패턴입니다. 1-1. 클래스 다이어그램 1-2. 코드 abstract class...
오프라인 동시성 패턴 (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 가 커지면 공간을 확보하는 연산이 필요하기 때문에 삽입이 많으면 성능...