전체 글333 JPA - 영속성 관리 - 엔티티의 생명주기 - 참조: 자바 ORM 표준 JPA 프로그래밍 - 엔티티 매니저 팩토리와 엔티티 매니저 엔티티 매니저는 말 그대로 엔티티를 관리하는 관리자다. 엔티티를 저장, 수정, 삭제, 조회하며 개발자가 엔티티를 저장하는 가상의 데이터베이스라고 할 수 있다. 엔티티 매니저 팩토리는 용어에서도 알 수 있듯이, 엔티티 매니저를 생산하는 공장이다. 엔티티 매니저 팩토리를 생성하는 비용은 크지만 팩토리에서 엔티티 매니저를 생성할때에는 비용이 거의 들지 않는다. 엔티티 매니저 팩토리는 스레드-세이프 설계가 되어있어 어플리케이션에서 1개를 생성하여 공유해도 되지만, 엔티티 매니저는 스레드간 공유를 하면 안된다. 엔티티 매니저 팩토리는 생성시에 커넥션 풀을 만들며, 엔티티 매니저는 DB 커넥션을 사용하는데 DB 연결이 필요한 시.. 2021. 6. 23. JPA - 엔티티 매니저, 트랜잭션, JPQL - 참조: 자바 ORM 표준 JPA 프로그래밍 - 이 글에 나오는 코드는 https://ocwokocw.tistory.com/118 글을 먼저 읽었다는 점을 전제로 작성한다. - Java example 엔티티 매니저를 살펴보기 전에 우리가 DB를 다룰 때 일반적으로 사용하는 등록, 수정, 삭제, 조회 연산 예제 코드를 살펴보자. 아래 코드는 엔티티 매니저 설정, 트랜잭션 관리, 비즈니스 로직 3 부분으로 구성 되어있다. @SpringBootApplication public class JpaApplication { public static void main(String[] args) { SpringApplication.run(JpaApplication.class, args); EntityManagerFac.. 2021. 6. 23. JPA - 환경구축 및 객체맵핑, persistence.xml - 참조: 자바 ORM 표준 JPA 프로그래밍 - 참조: http://www.h2database.com/html/tutorial.html#creating_new_databases - 환경 구축 JPA Project를 시작하기 위해 환경을 구축해보자. 환경설정은 STS(Spring Tool Suit) 의 Spring Starter Project 를 이용한다. 아래 그림을 참조하여 Maven과 Java 8 version 을 선택한다. 그 다음 화면에서 Dependency 를 고를 수 있다. Spring Web 과 Template 엔진으로 Thymeleaf 를 기본으로 선택해준다. H2 DB와 Spring Data JPA 를 선택한다. 설치를 끝냈으면 h2 를 다운받아야 한다. H2는 In-memory 형으로.. 2021. 6. 23. 행동 패턴 - 방문자(Visitor) - 참조: https://refactoring.guru/design-patterns/visitor - 참조: GoF의 디자인 패턴 - 방문자(Visitor) 방문자패턴은 동작하는 객체로부터 알고리즘을 분리하는 패턴이다. - 문제점 하나의 거대한 그래프로 구성된 지리 정보로 동작하는 앱을 개발한다고 가정해보자. 그래프의 각 노드는 도시와 같은 복잡한 엔티티를 표현할 수 있지만 산업단지나 관광지 같은 더 세분화된 요소들도 표현할 수 있다. 이런 노드들은 그들이 표현하고 있는 객체들 사이에 길이 있다면 다른 요소와 연결되어 있을것이다. 이런 상황에서 각 노드의 타입은 클래스로 표현되지만 각 특정 노드는 객체이다. 시간이 지나서 그래프를 XML 형태로 변환하는 기능을 구현할 수도 있다. 언뜻 생각하기에는 별로 .. 2021. 6. 20. 행동 패턴 - 템플릿 메소스(Template Method) - 참조: https://refactoring.guru/design-patterns/template-method - 참조: GoF의 디자인 패턴 - 템플릿 메소드(Template Method) 템플릿 메소드 패턴은 부모 클래스에서 알고리즘의 뼈대를 정의하고, 서브 클래스에서 구조의 변화없이 알고리즘의 일부 단계를 재정의하는 패턴이다. - 문제점 기업의 문서를 분석하는 데이터 마이닝 어플리케이션을 만든다고 가정해보자. 사용자는 다양한 포맷(PDF, DOC, CSV)의 문서를 사용하고, 여러 포맷에서 의미있는 데이터를 단일 포맷으로 추출한다. 처음에는 DOC 파일에서만 동작하게 만들었다면 그 다음 버전에서는 CSV 를 또 몇개월 후에는 PDF 에서도 동작이 되도록 점점 기능을 확장할 가능성이 크다. 기능을 .. 2021. 6. 20. 행동 패턴 - 전략(Strategy) - 참조: https://refactoring.guru/design-patterns/strategy - 참조: GoF 의 디자인패턴 - 전략(Strategy) 패턴 정책(Policy) 라고도 하며 알고리즘 집단을 정의한다. 각각의 알고리즘을 분리된 클래스로 추출하고, 객체들간의 상호교환이 가능하도록 한다. - 문제점 여행자를 위한 네비게이션 앱을 만들기로 했다고 가정하자. 이 앱은 어느 도시에서는 사용자가 빠르게 방향을 잡을 수 있도록 지도를 중심으로 구성되어 있다. 이 앱에서 제일 중요한 기능은 자동으로 경로를 찾는것이다. 유저가 주소를 입력하면 목적지까지 가장 빠른 경로가 지도상에 표시된다. 앱의 초기버전은 자동차 도로를 통해서만 경로를 찾을 수 있게 만들었다. 차로 여행하는 사람들은 아무런 문제가 .. 2021. 6. 20. 이전 1 ··· 34 35 36 37 38 39 40 ··· 56 다음