본문 바로가기

분류 전체보기221

JPA 지연로딩을 사용해야하는 이유, 지연로딩(Lazy)과 즉시로딩(Eager) 공부하는 과정에서 작성한 글입니다. 잘못되거나 보충할 내용이 있다면 언제든지 알려주세요:) JPA에서는 데이터를 조회할 때 즉시 로딩(EAGER)과 지연 로딩(LAZY) 두 가지 방식이 있다. 이 두 가지 방식을 간단하게 설명하면 즉시 로딩은 데이터를 조회할 때 연관된 데이터까지 한 번에 불러오는 것이고, 지연 로딩은 필요한 시점에 연관된 데이터를 불러오는 것이라고 할 수 있다. 즉시 로딩(EAGER) @xxToxx(fetch = fetchType.EAGER) 다음과 같이 Member 엔티티와 Team 엔티티가 N:1 매핑으로 관계를 맺고 있다. @Entity public class Member { @Id @GeneratedValue private Long id; private String usernam.. 2021. 2. 12.
MySQL, JPA 페이징 사용하기 공부하는 과정에서 작성한 글입니다. 잘못되거나 보충할 내용이 있다면 언제든지 알려주세요:) 페이징을 사용하여 원하는 범위만큼의 데이터를 가져올 수 있으며, 보통 게시판 페이지 같은 것을 구현할 때 많이 사용된다. 예를 들어 post(게시글) 테이블의 title(제목)을 오름차순으로 정렬하여 '0번째부터 20개의 데이터'를 가져온다고 가정해보자. 사용방법 MySQL limit, offset 사용 select * from post order by title asc limit 0, 20; //또는 select * from post order by title asc limit 20 offset 0; JPA setFirstResult(), setMaxResults() 사용 List topics = .. 2021. 2. 11.
[자바 스터디] 12주차 과제 - 애노테이션(Annotation) 본 게시글은 백기선 님의 live-study 과제를 수행하면서 작성한 글입니다. 목표 자바의 애노테이션에 대해 학습하세요. 학습할 것 (필수) 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 애노테이션이란? 소스 코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시킨 것. 애노테이션은 주석처럼 프로그래밍 언어에 영향을 미치지 않으면서 다른 프로그램에게 유용한 정보를 제공할 수 있다. 예를 들어 우리는 테스트 메서드를 작성할 때 메서드 위에 @Test 애노테이션을 붙인다. @Test void testMethod() { //... }여기서 @Test 애노테이션은 '이 메서드를 테스트해야 한다.'라는 것을 JUnit과 같은 테스트.. 2021. 2. 5.
IntelliJ에서 lombok 사용하기 1. Lombok 의존성 추가하기 https://mvnrepository.com/artifact/org.projectlombok/lombok 위 링크에서 lombok 버전을 선택하고 자신이 사용하는 빌드 툴에 맞는 의존성을 복사하여 추가한다. maven, lombok 1.18.18 버전 기준 의존성 추가 예시 org.projectlombok lombok 1.18.18 provided 2. intellij lombok 플러그인 설치하기 Preferences -> plusgins -> lombok 검색하여 설치 3. intellij annotation processing 활성화 Preferences -> Annotation Processors -> Enable annotation processing 활성화 2021. 2. 1.
[ 자바 스터디] 11주차 과제 - 열거형(Enum) 본 게시글은 백기선 님의 live-study 과제를 수행하면서 작성한 글입니다. 목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메서드 (values()와 valueOf()) java.lang.Enum EnumSet 열거형(Enum)이란? 열거형은 서로 관련이 있는 여러 상수를 편리하게 선언하기 위한 것으로, C언어와 달리 자바에서는 원래 열거형이 존재하지 않았지만 JDK1.5부터 새로 추가되었다. C언어의 열거형은 타입이 달라도 값이 같다면 == 비교에서 true를 리턴 하지만, 자바의 열거형은 '타입에 안전한 열거형'이라서 값이 같더라도 타입이 다르면 컴파일 에러가 발생한다. enum 정의하는 방법 enum 열거형이름 {상수명1, 상수명2, ..... 2021. 1. 29.
[자바 스터디] 10주차 과제 - 쓰레드 본 게시글은 백기선 님의 live-study 과제를 수행하면서 작성한 글입니다. 목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 쓰레드란? 프로세스 : 실행 중인 프로그램, OS로부터 실행에 필요한 자원을 할당받아 프로세스가 된다. 쓰레드: 프로세스의 자원을 이용해서 실제로 작업을 수행 멀티쓰레딩 하나의 프로세스 내에서 여러 쓰레드가 동시에 작업을 수행하는 것이다. CPU 코어는 한 번에 하나의 작업만 수행할 수 있으므로 실제로 동시에 처리되는 작업의 개수는 코어의 개소와 일치하지만, 아주 짧은 시간 동안 여러 작업을 번갈아 가면서 수행함으로써 여러 작업이 동시에 수행되.. 2021. 1. 23.