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..
지네릭스(Generics)란? 지네릭스는 JDK1.5에서 처음 도입된 문법으로 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능이다. 자바는 객체 지향 개념 중 하나인 다형성이란 개념이 있다. 이 다형성을 자바에서는 형변환으로 크게 지원하고 있는데, 이 형변환은 프로그래머에게 큰 편리함을 주지만 컴파일러에게는 큰 약점이 된다. 컴파일러는 변수 안에 담겨 있는 실제 값을 확인하지 않는다. 단지 참조 변수의 타입을 보고 문법적 오류가 있는 지를 판단한다. 이것이 컴파일러의 한계인데, 다형성에서 이로 인한 런타임 에러가 발생할 수 있다. 하나의 예시를 들어보자. import java.util.ArrayList; public class GenericsTest { pub..
- 쉘 코드
- Computer_Networking_A_Top-Down_Approach
- 생활코딩 javascript
- Gradle
- BOF
- 스프링
- 프로그래머스
- 지옥에서 온 git
- 파이썬 for Beginner 연습문제
- 운영체제 반효경
- Do it! 정직하게 코딩하며 배우는 딥러닝 입문
- 쉽게 배우는 운영체제
- 패킷 스위칭
- JUnit
- 선형 회귀
- 김영환
- 리버싱
- JPA
- Spring Boot
- Python Cookbook
- 버퍼오버플로우
- Spring Data JPA
- spring mvc
- 방명록 프로젝트
- Spring
- shell code
- 파이썬 for Beginner 솔루션
- 스프링 테스트
- Thymeleaf
- jsp
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Total
- Today
- Yesterday