본문 바로가기
반응형

분류 전체보기714

AWS/Docker 클라우드 패스트캠퍼스 챌린지 10일차 [03. 빗버킷 소개(3) 실습] bitbucket을 접속해서 로컬에 있는 소스를 자동화할 수 없기 때문에 소스를 서버에 올려야만 한다. [Create Repository]를 통해서 [Repository name]을 정해준다. [Access level]을 private에 체크하고 [Advanced settings]에서 [Forking]에 [Frok]를 허용해준다. Bitbucket 사용법이 나오는데, bash shell이나 terminal에서 사용하는 방법이 나온다. git clone [git 프로젝트 주소]로 올리면 된다. URL을 GIT 주소를 입력하고 Username, Password를 설정한다. Local Destination에 로컬에서 프로젝트를 만드는 공간을 설정한다. 해당 내용들이 서버에는 .. 2021. 9. 15.
TIL_210914 1. Facts(사실, 객관) - 패스트캠퍼스 AWS/DOCKER 9일차 강의 - 프록시 & 즉시로딩 vs 지연로딩 강의듣고 정리 2. Feelings(느낌, 주관) - 지연로딩과 즉시로딩인 LAZY, EAGER 개념이 JPA 성능관련해서 중요한 것은 알고 있었습니다. 그런데, 왜 굳이 프록시를 공부해야하나 생각했는데, 지연로딩과 즉시로딩을 이해하기 위해서 JPA 프록시를 공부해야 작동원리를 알 수 있었습니다. 해당 내용은 이미 이전에도 봤었는데, 항상 그 당시에는 다 이해한것처럼 넘어갔습니다. 하지만, 시간이 지나면 까먹기 때문에 마음먹고 열심히 정리했습니다. 코드도 직접 작성하고 스크린샷도 남겼기 때문에, 나중에 또 공부할 필요가 있을 때 다시 살펴보려고 합니다. 3. Findings (배운 점) 프.. 2021. 9. 14.
AWS/Docker 클라우드 패스트캠퍼스 챌린지 9일차 [05. 스프링 프로젝트 세팅 실습 2] war를 서버에 올리는작업을 한다. aws ec2에 접속해서 인스턴스 시작을 한다. 보안그룹 생성에서 편집을 눌러서 포트번호를 수정해야 한다. FileZilla Client를 다운받아서 우리의 aws ec2에 접속해서 파일을 옮기도록 한다. 새사이트에서 프로토콜은 SFTP, 호스트는 우리의 IP주소, 로그온 유혀은 키파일, (키파일은 AWS에서 만든 파일을 클릭한다.) 사용자는 ec2-user를 선택한다. 터미널로 접속을 한다. sudo ssh -i chicken.pem ec2-user@13.124.200.324 서버에 자바가 없고, 서버가 없을 수도 있기 때문에 설치해야 한다. (이전 수업 강의코드 참고) Ch 04. 빗버킷 [01. 빗버킷 소개(1)] 형상관리.. 2021. 9. 14.
영속성 전이(CASCADE)와 고아객체 * 개요 영속성과 고아객체는 DB에서 사용하는 CASCADE와 관련이 있습니다. DB에서 설정이 가능하지만, 이 관계는 또한 JPA를 사용해서 자바 코드단에서 설정할 수 있습니다. 이번 시간에 사용방법을 알아보겠습니다. * 영속성 전이(CASCADE)를 사용하는 때는? 특정 엔티티를 영속 상태로 만들 때, 연관된 엔티티도 함께 영속 상태로 만들고 싶을 때 사용합니다. 예를 들어, 부모 엔티티를 저장할 때, 자식 엔티티도 저장할 수 있습니다. * DB SQL로 제약상태 추가하기 DB에서 테이블을 만들 때, 수정과 삭제를 전이시키기 위해서 CASCADE를 사용합니다. 조건은 부모 테이블의 PK칼럼을 참조해야하며, 부모의 PK 칼럼을 자손에서는 FK칼럼으로 등록해야 합니다. 예를들어, ON DELETE CAS.. 2021. 9. 14.
JPA 프록시(+즉시로딩, 지연로딩 비교) 개요 엔티티가 양방향으로 매핑을 하는데 혹시 연관관계를 조회할 필요가 없는 경우는 어떻게 할까요? 예를들어, Member가 Team을 칼럼으로 가지고 있지만, Member만 조회하고 싶을 때 어떻게 해야할까요? Team을 거의 사용하지 않은 경우, 매번 Member와 함께 조회하는 것은 비효율적입니다. JPA는 Proxy와 지연로딩을 통해서 해당 문제를 해결합니다. JPA 프록시 내부 동작 방식 JPA라고 해서 프록시가 특별한 것은 아닙니다. 단지 Hibernate가 내부적으로 프록시를 이용해서 구현할 뿐입니다. 기존의 프록시의 특징과 비교해서 살펴보면 이해가 쉽습니다. "JPA 프록시"의 핵심은 가짜 엔티티 객체를 조회해서 실제 DB조회를 끝까지 미루기 위함입니다. 1. JPA 프록시 객체는 실제 클래.. 2021. 9. 14.
TIL_210913 1. Facts(사실, 객관) - 패스트캠퍼스 AWS/DOCKER 8일차 강의 - 고급매핑 상속관계 인프런 강의 듣고 정리 2. Feelings(느낌, 주관) - JPA는 학습할 내용이 참 많습니다. 간단히 Spring JPA를 사용하는 건 쉽지만, 결국 다양한 상황을 해결하기 위해서 내부의 작동원리를 알아야 합니다. 이번에는 자바에서의 상속관계가 DB에서 어떻게 작동하는지 공부하였습니다. 3가지 방식이 있으며 규모가 크지 않다면 단일테이블을 만드는 것도 좋다. 혹은 조인전략으로 각각 테이블로 변환할 수 있습니다. 차이점이 무엇인지 중점적으로 확인하면서 비교하니 이해가 잘 되었습니다. 또한 직접 코드로 작성하면서 공부하니 잘 기억에 남습니다. 3. Findings (배운 점) JPA에서 상속관계는 DB에.. 2021. 9. 14.
AWS/Docker 클라우드 패스트캠퍼스 챌린지 8일차 [03. 스프링 프로젝트 세팅 실습 1-1] *eclipse * JDK 다운 eclipse를 다운받는다. eclipse를 구동시키기 위해서는 oracle의 java 가 필요하다. Java SE Downloads에서 Oracle JDK를 다운받는다. 최신버전이 아니라 많이 사용하는 JAVA SE 8u231 JDK 버전을 다운 받도록 한다. 각 버전에 맞게 다운을 받으면 되는데, Windows x64를 설치하도록 한다. * eclipse 구성 설명 처음에 실행 시 workspace를 설정할 수 있다. 저장공간을 정할 수 있다. 폴더 위치를 바꿀 수 있다. 한글을 넣지 말고 영문으로 표기한다. launch를 눌러서 실행한다. 프로그램이 켜지면, Project Explorer가 왼쪽에 있다. View가 맘에 들.. 2021. 9. 13.
N:M 테이블 관계 설계하기 * 개요 4가지 JPA 관계 중에, N:M을 알아봅니다. N:M은 실무에서는 잘 사용하지 않는 관계로, 1:N, N:1로 나누어 관리하는 것이 좋습니다. * 특징 관계형 데이터베이스는 정규화된 테이블 2개로 다대다 관계를 표현할 수 없습니다. 따라서, 일대다, 다대일 관계로 풀어내야 합니다. 객체는 컬렉션을 사용해서 객체 2개로 다대다 관계가 가능합니다. @ManyToMany @JoinTable 2개를 이용해서, 각 MEMBER_ID, PRODUCT_ID를 PK, FK를 가지는 중간 테이블을 생성할 수 있습니다. 양방향 매핑, 단방향 매핑 모두 가능합니다. 하지만, 중간테이블에 주문시간, 수량같은 데이터가 추가되는 경우가 있을 수 있기 때문에 사용하지 않는게 좋습니다. * 한계 극복 중간 테이블을 엔티티.. 2021. 9. 13.
영속성 컨텍스트 1. build.gradle 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' ... } 2. application.yml 추가 generated-ddl jpa의 하위속성으로 구현체와 상관없이 자동화된 ddl을 사용할 수 있도록 설정한다 false가 기본이다. h2 같은 내부 저장소는 따로 설정하지 않았지만 create-drop이 기본이다 ddl-auto hiberante에서 제공하는 기능이다. 설정 시, 엔티티 클래스와 DB를 비교하는 작업을 한다. none : 자동 DDL 생성 안함. create-drop : 시작될 때 생성 후 종료할 때 삭제한다. validate : 시작될 때 엔티티 클래스.. 2021. 9. 12.
반응형