프로토타입 패턴은 기존 인스턴스에 대한 프로토타입을 기반으로 새로운 인스턴스를 만드는 패턴을 의미한다객체 생성에 대한 리소스 소모량이 매우 클 경우 매번 새로운 객체를 생성하는 것은 굉장히 큰 부담이다이러한 상황에서 프로토타입 패턴을 통해서 비슷한 타입의 객체에 대한
📚 ArgumentResolver Spring Framework에서 ArgumentResolver는 굉장히 중요한 핵심 개념이다 일단 사용자의 Request가 들어오는 순간 처리 메커니즘을 간단하게 알아보자 > 사용자의 Request가 DispatcherServl
Detached Entity Passed to persist 예외 상황은 구글링을 해보면 cascade 옵션에 의해서 엔티티 자체가 중복 저장되는 경우가 많다 하지만 현재 포스팅에서는 cascade 옵션에 의한 Detached Exception이 아닌 식별자 존재 유
빌더 패턴이란 특정 객체 생성을 일련의 프로세스를 거쳐서 다양한 인스턴스로 탄생시키기 위한 패턴이다말로는 이해하기가 약간 힘들기 때문에 코드를 통해서 확인해보자여행 계획을 짜는 TourPlan 클래스이와 같이 클래스를 구성하였고 이제 실제 TourPlan 객체를 완성해
트랜잭션 추상화, 트랜잭션간 커넥션 동기화 포스팅을 통해서 기본적인 트랜잭션 동작 원리에 대해서 알아보았다 이번 포스팅에서는 트랜잭션 전파 속성에 따른 동작 방식의 차이에 대해서 알아보자 📚 Transaction Propagation Transaction은 시작
추상 팩토리 패턴은 서로 관련있는 "여러" 객체들을 만드는 개념을 추상화시킨 패턴이라고 보면 된다이 문장 자체가 이해하기 약간 어렵기 때문에 팩토리 메소드 패턴과 비교해서 풀어보면 다음과 같다이전 팩토리 메소드 패턴 포스팅에서 말했듯이 팩토리 메소드 패턴은 특정 객체의
📚 Connection 동기화 물리 트랜잭션 내부적으로 각각의 논리 트랜잭션간에 트랜잭션을 유지하기 위해서는 논리 트랜잭션간에 동일한 Connection을 유지해야 한다 파라미터 Connection 동기화 테스트는 정상적으로 이루어졌고 이 트랜잭션 테스트간에 발생
자바 기반 웹 애플리케이션을 개발할 때 DB에 접근하는 방식은 크게 3가지로 분류할 수 있다JDBCSQL Mapper : JdbcTamplate, MyBatisORM(Object Relational Mapping) : JPA(Hibernate, EclipseLink,
📚 팩토리 메소드 패턴 팩토리 메소드 패턴은 특정 객체의 인스턴스를 생성하는 "책임"를 추상적인 Interface로 감싸는 패턴을 의미한다. 이 뜻을 더 쉽게 말하면 다음과 같다 구체적으로 어떤 인스턴스가 생성될지는 Concre
📚 HttpServletRequest 서버에서 특정한 요청을 보낼때 URL과 더불어서 QueryString에 요청 정보들을 보내면 서버에서는 HttpServletRequest의 getParameter를 통해서 값을 얻을 수 있다 Postman을 통해서 GET 요청을
📚 ANSI/ISO SQL Join Join에 대한 조건을 명시하는 기준은 크게 2가지로 분류할 수 있다 where절에 조인 조건 명시 from절에 on 조건절을 통한 명시 > 테스트를 위한 user, art 테이블의 구조는 다음과 같다 이 구조에서 먼저 whe
일반적으로 JPA로 개발을 할 때 JPQL을 코드레벨로 편리하게 작성하고 동적 쿼리도 편리하게 작성하기 위해서 QueryDSL-jpa을 도입한다QueryDSL은 Type-Safe한 SQL을 작성할 수 있다는 굉장한 장점이 존재하지만 결국 JPQL Builder이므로 J
기본적인 SQL 문장은 다음과 같은 구조로 짜여져 있다이러한 구조에서 실제 Optimizer가 SQL 문장을 해석하는 순서는 다음과 같다FROM : 테이블 참조WHERE : 조건을 통한 데이터(Row) 제거GROUP BY : Row들의 GroupingHAVING : G
📚 싱글톤 패턴 싱글톤 패턴은 특정 객체에 대한 인스턴스를 전역 애플리케이션 레벨에 오직 1개만 생성하고 이를 공유하기 위해서 사용하는 디자인 패턴이다 이처럼 단순히 특정 객체의 Constructor를 외부에 열어두게 되면 new 연산자를 통해서 해당 객체의 인스턴