본문 바로가기

TIL

[TIL 2022-2-25] JPA, DFS

JPA 값 타입

엔티티 타입

- @Entity로 정의하는 개체

- 데이터가 변해도 식별자로 지속해서 추적 가능

 

값 타입

-식별자가 없고 값만 있으므르 변경시 추적 불가 ex) String, int, Integer 등

 

값 타입의 종류

기본값 타입

- 자바 기본 타입(int, double)

- 래퍼 클래스(Integer, Long)

- String    

primitive 타입은 값 자체가 복사되므로 공유되지 않는다. 래퍼클래스나 String은 참조값을 공유하는 객체지만 변경될 수 없으므로 사이드 이펙트를 발생시키지않는다.(불변 객체라 그런 것 같다)

 

임베디드 타입(복합 값 타입)

엔티티에서 의미적으로 묶을 수 있는 값 타입을 모아서 새로운 값 타입으로 만들어 사용한다. @Embedded 를 엔티티에서 값타입을 사용하는 필드에 지정, @Embeddable을 정의한 클래스에 지정해 사용할 수 있다.

 

장점

- 임베디드 타입을 통해 여러 엔티티에서 중복되는 값 타입들 을 줄여 재사용성이 높힐 수 있다.

- 임베디드 타입에 대해 특화된 메소드들을 정의하여 엔티티를 더 간결하고 직관적으로 유지할 수 있다.

 

주의할 점

- 기본 생성자 꼭 만들기!!

- 한 엔티티에 여러 임베디드 타입을 사용할 경우 @AttributeOverrides 를 통해 컬럼명 재정의!

 

참고

https://www.inflearn.com/course/ORM-JPA-Basic/dashboard

 

자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의

JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런

www.inflearn.com


 

프로그래머스 level 2 - 타겟넘버

https://programmers.co.kr/learn/courses/30/lessons/43165

 

코딩테스트 연습 - 타겟 넘버

n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수

programmers.co.kr

어제 순열 문제 한번 풀었다고 DFS는 빠르게 익숙해지고 있는 것 같다. 내일 DFS 문제 한번 더 풀어보고 BFS도 공부해서 바로 풀어봐야겠다. 

 

https://github.com/unannn/CodingTestPractice/blob/main/programmers/level2/%ED%83%80%EA%B2%9F%20%EB%84%98%EB%B2%84.java

 

GitHub - unannn/CodingTestPractice: 코딩테스트 연습 문제 풀이 Repo 입니다.

코딩테스트 연습 문제 풀이 Repo 입니다. Contribute to unannn/CodingTestPractice development by creating an account on GitHub.

github.com