[TIL/JPA] 기본 개념 : 연관관계 매핑 기초
·
TIL/JPA
이번 파트에서는 객체의 참조와 테이블의 외래 키를 매핑하는 것을 배우고 정리를 해보았다!1. 연관관계가 필요한 이유시나리오 및 연관관계- 회원과 팀이 있다.- 회원은 하나의 팀에만 소속될 수 있다.- 회원과 팀은 N:1 관계이다. 객체를 테이블에 맞추어 모델링을 하면, 협력 관계를 만들 수 없고!테이블은 외래 키(FK)로 조인을 사용해서 연관된 테이블을 찾고, 객체는 참조를 사용해서 연관된 객체를 찾는다.테이블과 객체 사이에는 이런 큰 간격이 있다. 객체를 테이블에 맞추어 모델링한 코드 예시)> Memberimport jakarta.persistence.Column;import jakarta.persistence.Entity;import jakarta.persistence.GeneratedValue;im..
[TIL/JPA] 기본 개념 : 엔티티 매핑
·
TIL/JPA
1. 엔티티 매핑- 객체와 테이블 매핑 : @Entity, @Table- 필드와 컬럼 매핑 : @Column- 기본키 매핑 : @Id- 연관관계 매핑 : @ManyToOne, @JoinColumn(추후에 정리 예정!)2. 객체와 테이블 매핑1) @Entity- @Entity가 붙은 클래스는 JPA가 관리하며, 엔티티라 한다.- JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수이다. !!주의!!- 기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자)- final 클래스, enum, interface, inner 클래스 사용할 수 없다.- 저장할 필드에 final 사용할 수 없다. 2) @Entity 속성 정리속성 : name> JPA에서 사용할 엔티티 이름을 지정한다...
[TIL/JPA] 기본 개념 : 영속성 관리 - 내부 동작 방식
·
TIL/JPA
1. 엔티티 매니저 팩토리와 엔티티 매니저EntityManagerFactory는 애플리케이션 생성할 때 1번만 생성한다. 1개의 DB당 1개!EntityManager는 쓰레드 간에 공유하지 말아야 한다. 고객의 요청 1회당 1번씩 생성된다. 2. 영속성 컨텍스트엔티티를 영구 저장하는 환경이라는 의미EntityManager.persist(entity);DB에 저장하는 것이 아니라 엔티티를 영속성 컨텍스트 라는 곳에 저장한다는 의미 영속성 컨텍스트는 논리적인 개념으로 눈에 보이지 않는다.엔티티 매니저를 통해서 영속성 컨텍스트에 접근한다. 고객의 요청이 들어오면 생성하고, 고객의 요청이 끝나면 사라짐(아래 영속성 컨텍스트의 이점에 있는 1차 캐시도 이때 다 사라지기 때문에 큰 성능 이점을 얻을 수는 없음) 3..
[Error] Gradle Compile Error, Gradle BUILD FAILED, Gradle Verification Test Error, Task :compileJava FAILED
·
Trouble Shooting(Error)
IDE는 intelliJ를 사용하고 있고, SpringBoot, Gradle, Java 17로 프로젝트 구성했다.intelliJ Build Tools의 Gradle의 Build And Run은 intelliJ로 설정을 해서 그냥 실행을 시켰을 때는 문제가 발생하지 않았다. Gradle의 verification -> test를 실행하면 문제가 발생했다. 에러 메시지에러 메시지의 일부를 가져와서 붙여 넣어보면 잘되는 것들이 안된다고 하고 찾을 수 없다고 한다.. > Task :compileJava FAILED Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warni..
[TIL/AWS] AWS EC2와 RDS 연동하기(+터미널로 EC2 접속)
·
TIL/AWS
1. EC2 정보 파악하기EC2, 보안 그룹, 서브넷 그룹, RDS를 모두 같은 네트워크 안에서 사용해야 하기 때문에 연동할 EC2의 정보를 파악해야한다. 그럼 내가 연동할 EC2의 정보를 파악하러 가보자!🕺VPC ID, 서브넷 ID, 그 밑에 보안 탭에서 사용하고 있는 보안 그룹까지 살펴보자 2. RDS 보안 그룹 생성하기EC2 메인 화면에서 좌측의 카테고리를 보면 '네트워크 및 보안' -> '보안 그룹'으로 들어가 '보안 그룹 생성' 버튼을 클릭! 보안 그룹 이름을 지정해주고, EC2에서 사용하는 VPC 정보를 설정하자!그리고 인바운드 규칙에서 본인이 사용하는 DB를 선택해서 보안그룹도 설정해주자RDS 보안그룹을 만들 때 선택하는 소스는 EC2에서 사용하고 있는 보안그룹과 동일해야한다! 보안 그룹 ..
[TIL/AWS] AWS EC2 설정하기(+탄력적 IP)
·
TIL/AWS
회원가입과 로그인이 되어있다는 가정하에 작성! 1. 원하는 리전 선택나는 아시아 태평양(서울) ap-northeast-2  에 만들었다. 2. EC2 검색하여 화면 진입 후 인스턴스 시작 버튼 클릭 3. 이름 설정, 원하는 OS 설정 및 AMI 선택하기나는 돈이 없기 때문에! 프리티어로 설정을 맞추는 중이다.OS는 ubuntu로 진행! 4. 인스턴스 유형 설정인스턴스도 프리티어로 제공하는 t2.micro로 선택! 5. 키페어 설정기존에 설정한 키페어가 있다면 해당 키페어를 사용할 수도 있다.나는 새 키 페어 생성하여 설정할 것이다. 키 페어 이름과 유형, 파일 형식을 선택하고 생성하기!쇤네는 RSA, pem으로 선택! 키 페어 생성 버튼을 클릭하면 선택한 파일 형식으로 파일이 다운로드 되어지는데 이 파일..
[Diary] 2024.07.18 - 그 동안 어떤 일이?!
·
Diary
보호되어 있는 글입니다.
[TIL/View Template] thymeleaf - 기본 기능(4)
·
TIL/View Template
https://yelin1217.tistory.com/459 [TIL/View Template] thymeleaf - 기본 기능(3)https://yelin1217.tistory.com/458 [TIL/View Template] thymeleaf 문법 - 기본 기능(2)이전에 작성한 thymeleaf 문법 - 기본 기능 (1) 글과 이어지는 내용입니다!https://yelin1217.tistory.com/457 [TIL/View Template] thymeleaf 문법 -yelin1217.tistory.com1. 템플릿 조각웹 페이지에는 상단 영역, 하단 영역, 좌측 카테고리 등 여러 페이지에서 함께 사용하는 영역들이 있다.이런 부분을 코드를 복사해서 사용하지 않고 템플릿 조각을 사용하여 유지보수 및 개..
[TIL/View Template] thymeleaf - 기본 기능(3)
·
TIL/View Template
https://yelin1217.tistory.com/458 [TIL/View Template] thymeleaf 문법 - 기본 기능(2)이전에 작성한 thymeleaf 문법 - 기본 기능 (1) 글과 이어지는 내용입니다!https://yelin1217.tistory.com/457 [TIL/View Template] thymeleaf 문법 - 기본 기능 (1)[타임리프 기본 기능의 종류]- 링크 : https://www.thymeleaf.oyelin1217.tistory.com1. 반복타임리프에서 반복은 th:each를 사용한다. 추가로 반복에서 사용할 수 있는 여러 상태 값을 지원한다. 반복 기능반복시 오른쪽 컬렉션(${users})의 값을 하나씩 꺼내서 왼쪽 변수(user)에 담아서 태그를 반복 실행..