Goals 영속성 컨텍스트란? 엔티티 생명주기 영속성 컨텐스트의 장점 플러시(flush()) 영속성 컨텍스트란? JPA를 이해하는데 가장 중요한 용어는 영속성 컨텐스트(persistence context)다. 우리말로 해석해 보면 ‘엔티티를 영구 저장하는 환경’이라는 뜻이다. 엔티티 매니저(EntityManager)로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리할 수 있게 된다. 일반적으로 영속성 컨텍스트는 엔티티 매니저를 생성할 때 하나 만들어진다. 예를 들어 다음과 같은 메서드들을 호출할 때 em.persist(entity); // entity를 영속성 컨텍스트에 저장(영속 상태로 만듬) em.find(Entity.class, pk); // entity를 DB..
Goals QueryDSL 개요 VSCode에서 Gradle로 QueryDSL 설정 방법 조회 방법 동적 쿼리를 위한 BooleanBuilder QueryDSL 개요 보통 JPQL builder로써 JPA Criteria와 QueryDSL이 자주 비교된다. Criteria는 문자가 아닌 코드로 JPQL을 작성하므로 문법 오류를 컴파일 단계에서 잡을 수 있고, IDE의 자동완성 기능의 도움도 받을 수 있다. 하지만 그 구조가 너무 복잡하고 어렵다. 그에 반해 Criteria와 비슷한 장점을 지니면서도 쉽고 간결하며, 그 모양도 쿼리와 비슷하게 개발할 수 있는 프로젝트가 QueryDSL이다. 아래는 Criteria를 사용해서, searchCriteria라는 검색 조건에 따라 두 테이블을 조인하는 동적 쿼리를..
보통 Spring에서 JPA를 사용할 때, 엔티티 매니저(EntityManager) 객체를 Spring 컨테이너로부터 주입 받아 사용한다. 하지만 사실, 우리가 Java 어플리케이션에서 JPA를 사용하기 위해서는 가장 먼저 엔티티 매니저 팩토리(EntityManagerFactory)라는 인터페이스 객체를 먼저 생성해야 한다. 지금까지는 Spring 컨테이너의 도움을 받았기 때문에 이 엔티티 매니저 팩토리의 존재를 몰라도 됐을 것이다. 본 포스팅에서는 컨테이너의 도움 없이, Java SE에서 JPA를 사용하기 위해서는 어떤 과정이 필요하며, 엔티티 매니저 팩토리와 엔티티 매니저에 대해 정리해 보려고 한다. Goals 엔티티 매니저 팩토리 ? 엔티티 매니저 ? 엔티티 매니저가 제공하는 주요 메서드 스프링 프..
이전 포스팅 : [Spring Boot] Spring MVC CRUD를 위한 방명록 프로젝트 - 1 코드 참고 : https://github.com/on1ystar/guestbook2 GitHub - on1ystar/guestbook2 Contribute to on1ystar/guestbook2 development by creating an account on GitHub. github.com Goals 프로젝트 구조 설계 기본 설정 세팅 및 테스트 방명록 등록(Create) 방명록 목록 조회 및 단일 조회(Read) 방명록 수정 및 삭제(Update & Delete) 방명록 검색(Search) 방명록 목록 조회 및 단일 조회(Read) 메인 페이지인 /guestbook/list.html에서 방명록의 ..
본 포스팅은 Spring MVC 패턴에 익숙해지기 위해 방명록을 만들고 간단한 CRUD를 구현해 보는 과정이다. 환경 상 로컬이 아닌 AWS의 EC2 환경에서 작성하는데, 이에 대한 설정 방법은 [Spring Boot] aws ec2에서 Spring Boot 프로젝트 환경설정 포스팅 참고 Spring 학습이 주 목적이기 때문에 프론트 엔드의 UI는 Bootstrap을 이용할 예정이고, 이에 대한 설명은 생략한다. 코드 참고 : https://github.com/on1ystar/guestbook2 GitHub - on1ystar/guestbook2 Contribute to on1ystar/guestbook2 development by creating an account on GitHub. github.co..
Spring MVC 패턴에서 View Template Engine(뷰 템플릿 엔진)으로 보통 Thymeleaf(타임리프)가 자주 쓰인다. 그 이유로는 아래 4가지가 있을 수 있다. JSP와 유사하게 ${}을 별도의 처리 없이 이용할 수 있다. Model에 담긴 객체를 화면에서 JavaScript로 처리하기 편리하다. 연산이나 포맷과 관련된 기능을 추가적인 개발 없이 지원한다. 개발 도구를 이용할 때 .html 파일로 생성하는데 문제가 없고 별도의 확장자를 이용하지 않는다. 본 포스팅은 Thymeleaf를 쓸 때마다 여기저기서 문법을 찾기가 매우 번거로워 자주 쓰는 구문들을 정리하기 위한 목적이기 때문에 Thymeleaf를 쓰는 이유나 장단점을 알아보기 보단 바로 본론으로 들어간다. Goals 5가지 기본..
Spring Boot를 사용하는 누구든, DB 연결 설정이나 JPA 관련 설정을 위해 application.properties 파일을 한 번 쯤은 작성해 봤을 것이다. 대충 감으로 어플리케이션의 속성 값을 지정해 주는 파일일 것이라고 추측은 할 수 있겠지만, 정확이 어떤 역할을 하며, 어떤 속성들을 가지고 있는 지 궁금해져 관련 포스팅을 하기로 했다. Goals application.properties 파일의 역할 application.properties을 사용하는 이유 설정 파일 우선 순위 application.properties 파일에 지정된 속성 값 사용 방법 application.properties vs application.yml application.properties 파일의 역할 Spring..
Goals DTO란? DTO를 사용하는 이유 DTO란? DTO는 Data Transfer Object의 약어로, 데이터 전송 객체를 의미한다. 다른 말로, 계층 간 데이터 전송을 위해 도메인 모델 대신 사용되는 객체이다. 이때, 계층이란 Presentation(View, Controller), Business(Service), Persistence(DAO, Repository) 등을 의미한다. DTO를 사용하는 이유 그럼 왜 도메인 모델(Entity) 대신 DTO를 사용하는 이유가 뭘까? 관심사의 분리(Separation of Concerns, SoC) 도메인 모델은 Data Access 계층에서 데이터가 저장되는 DB와 직접적으로 관련되어 있는 객체다. 테이블의 구조에 맞게 설계되는 도메인 모델은 초기..
- Total
- Today
- Yesterday
- Spring
- Do it! 정직하게 코딩하며 배우는 딥러닝 입문
- 스프링 테스트
- Spring Data JPA
- 스프링
- 파이썬 for Beginner 연습문제
- 프로그래머스
- JPA
- 패킷 스위칭
- spring mvc
- 쉘 코드
- jsp
- git branch
- 쉽게 배우는 운영체제
- git merge
- Python Cookbook
- git
- 운영체제 반효경
- 스프링 컨테이너
- 스프링 mvc
- 파이썬 for Beginner 솔루션
- Gradle
- 생활코딩 javascript
- 김영환
- Spring Boot
- Computer_Networking_A_Top-Down_Approach
- 지옥에서 온 git
- 방명록 프로젝트
- Thymeleaf
- 선형 회귀
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |