전체 글 141

JPA 강의 6 - 프록시와 연관관계 관리, 값 타입

출처 : 자바 ORM 표준 JPA 프로그래밍 - 기본편 섹션 8. 프록시와 연관관계 관리 1. 프록시 1 - 1. 프록시 기초 em.find() vs em.getReference() em.find(): 데이터베이스를 통해서 실제 엔티티 객체 조회 em.getReference(): 데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체 조회 (실제 값이 사용되는 시점에 DB 쿼리를 함) 1 - 2. 프록시 특징 실제 클래스를 상속 받아서 만들어짐 실제 클래스와 겉 모양이 같다. 사용하는 입장에서는 진짜 객체인지 프록시 객체인지 구분하지 않고 사용하면 됨(이론상) 프록시 객체는 실제 객체의 참조(target)를 보관 프록시 객체를 호출하면 프록시 객체는 실제 객체의 메소드 호출 1 - 3. ⭐ 프록시의 특징 ..

Spring/JPA 2022.12.19

JPA 강의 5 - 고급 매핑

출처 : 자바 ORM 표준 JPA 프로그래밍 - 기본편 섹션 7. 고급 매핑 🚨 에러 WARN: HHH000457: Joined inheritance hierarchy [hellojpa.Item] defined explicit @DiscriminatorColumn.실습을 하다 생긴 에러이다. (제일 처음에 난 에러. 💡 에러가 날 때는 제일 먼저, 에러가 난 첫 번째 지점의 에러부터 해결한다. 첫 번째 에러 해결하면 그 뒤에 에러 줄줄이 해결 될 가능성 높음) 난 분명히 로 했는데, 실행할 때마다 테이블이 삭제되고 새로 생성되지 않는 것이다? 아마 삭제할 때 에러가 난 듯 하고, 값도 새로 설정이 되는 게 아니라 자꾸 추가가 되었다. 그래서 구글링... 이 질의응답 보고 해결했다! 난 JPA 활용 1 강..

Spring/JPA 2022.12.19

JPA 강의 4 - 다양한 연관관계 매핑

출처 : 자바 ORM 표준 JPA 프로그래밍 - 기본편 섹션 6. 다양한 연관관계 매핑 0. 다양한 연관관계 매핑 0 - 0. 연관관계 매핑시 고려사항 3가지 다중성 단방향 or 양방향 연관관계의 주인 0 - 1. 다중성 다대일 [N:1] : @ManyToOne 일대다 [1:N] : @OneToMany 일대일 [1:1] : @OneToOne 다대다 [N:M] : @ManyToMany (실무에서 쓰면 안 됨) 0 - 2. 단방향, 양방향 테이블 • 외래 키 하나로 양쪽 조인 가능 • 사실 방향이라는 개념이 없음 객체 • 참조용 필드가 있는 쪽으로만 참조 가능 • 한쪽만 참조하면 단방향 • 양쪽이 서로 참조하면 양방향 1. 다대일 [N:1] 1 - 1. 다대일 단방향 가장 많이 사용하는 연관관계 다대일의 반..

Spring/JPA 2022.12.19

JPA 강의 3 - 연관관계 매핑 기초

출처 : 자바 ORM 표준 JPA 프로그래밍 - 기본편 섹션 5. 연관관계 매핑 기초 만드는 순서 : 테이블 설계 -> Entity(domain) 설계와 매핑 -> ... 회원 엔티티 코드 다시 보기 회원 리포지토리 개발 회원 서비스 개발 회원 기능 테스트 참고 : H2 Database 만들기 🚨 h2 DB 연결 에러 시 : 참고 // 초기 실행 jdbc:h2:~/이름 // 초기 실행 후 다음부터 접속 jdbc:h2:tcp://localhost/~/이름 0. 목표 객체와 테이블 연관관계의 차이를 이해 객체의 참조와 테이블의 외래 키를 매핑 용어 이해 방향(Direction): 단방향, 양방향 다중성(Multiplicity): 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 이해 연관..

Spring/JPA 2022.12.19

JPA 강의 2 - 엔티티 매핑

출처 : 자바 ORM 표준 JPA 프로그래밍 - 기본편 섹션 4. 엔티티 매핑 1. 객체와 테이블 매핑 1 - 1. @Entity @Entity가 붙은 클래스는 JPA가 관리, 엔티티라 함 JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 🚨 주의 기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자) final 클래스, enum, interface, inner 클래스 사용X 저장할 필드에 final 사용 X 1 - 2 . @Entity 속성 속성: name JPA에서 사용할 엔티티 이름을 지정함 기본값: 클래스 이름을 그대로 사용(예: Member) 같은 클래스 이름이 없으면 가급적 기본값을 사용함 🚨 주의 final 클래스, enum, interface, inner..

Spring/JPA 2022.12.19

JPA 강의 1 - 영속성 관리, 영속성 컨텍스트란?

듣게 된 배경 섹션 0. 강좌 소개 자바 ORM 표준 JPA 프로그래밍 - 기본편 💡 계층 의존관계 controller : MVC의 컨트롤러가 모여 있는 곳. 컨트롤러는 서비스 계층을 호출하고, 결과를 뷰(JSP)에 전달함. service : 서비스 계층에는 비즈니스 로직이 있고 트랜잭션을 시작함. 서비스 계층은 데이터 접근 계층인 리포지토리를 호출함. repository : JPA를 직접 사용하는 계층. 여기서 엔티티 매니저를 사용해서 엔티티를 저장하고 조회함. domain : 엔티티가 모여 있는 계층, 모든 계층에서 사용 💡 개발 순서 서비스 & 리포지토리 개발(비즈니스 로직 수행) → 테스트 케이스 작성(검증) → 컨트롤러 & 뷰 Ex) 회원 엔티티 코드 다시 보기 회원 리포지토리 개발 회원 서비스..

Spring/JPA 2022.12.19

[생각들] JPA 인강 회고

프로젝트 진행 중... 급발진으로 JPA 인강을 결제하고 폭주한 후기이다. JPA로 회원가입과 로그인을 성공했지만... SpringSecurity로 회원가입을 다시 시도하고, 그에 따른 Member 결과를 이용해 챌린지를 생성하고 DB를 설계하는 과정에서 엄청난 좌절을 느꼈다. JPA는 단순 구글링으로 해결할 수 있는 문제가 아닌 것 같다는 생각이 하면 할수록 들었다. 구글링으로 공부하고, 코드에 적용시키는 걸 다 했다간 내 뇌가 먼저 녹아버릴 것 같았다. 물론 구글링만으론 안 되기도 하지만... 면접 때 다 털리기도 할 거고, 제출 코드도 다 탈탈 영혼까지 털릴 것이다. 그래서 결국 Spring으로 유명한 김영한 선생님의 강의를 찾아보게 되었다. 자바 ORM 표준 JPA 프로그래밍 - 기본편과 실전! ..

생각들 2022.12.19

프로젝트 진행 중 (2) - JPA 연결

📌 요약 드디어 JPA 연결에 성공했다..! JPA를 이용한 회원가입 성공 하지만 Spring Sequrity로 해야하기 때문에 다시 처음부터 해야 함..ㅎ; 드디어 JPA로 MySQL를 연결하는 데 성공했다..! 일단 JPA 디렉토리 구조가 기존 mybatis를 사용할 때는, controller - service(iml) - dao(mapper) JPA는, Controller - service - Repository 라고 한다. 출처는 여기다! 그리고 회원가입 실습은 이 블로그를 보고 성공했다! 감사함다 선생님... 또 로그인도 같은 블로그 선생님 보고 성공했다! 하지만 중간중간에 삐그덕 거리긴 했다. 참고 블로그 (감사함다 선생님들!!) JPA 구조 JPA Repository 만들기 (인터페이스) @..

프로젝트 2022.12.19

[우아한테크코스] 5기 프리코스 - 3회차 회고

📌 요약 어제보다 나은 내가 되자 조급해하지 말고, 차근히 앞으로 나가자 (이도 저도 아니게 될 수 있기 때문) 어려운 걸 해내는 거니까 가치가 있는 것이다. 포기하지 말자..! 0. 3회차 OT 소감 OT는 들을수록 어른의 말씀을 듣는 느낌이다. 단순히 시니어 개발자의 조언이 아닌 진정한 어른.. 마음의 위로가 많이 됐다. 특히 남들과 비교해서 조급해하지 말고, 몰입을 하라는 말씀이 기억에 남는다. 사실 저번 회차에 다른 분들 코드 보고 자괴감도 많이 들고 주눅이 들었었다. 그래서 난 이제 남들의 코드를 보며 참고를 하되, 남들과 비교하며 자괴감을 느끼거나 나 자신을 깎아내리는 건 줄이기로 결심했다. 이번 회차부터 목표는 어제보다 성장한 오늘 주어진 조건과 요구사항을 차근히 적용시키기 리팩토링 시작하기..

생각들 2022.12.19

[우아한테크코스] 5기 프리코스 - 2회차 회고

📌 요약 성장하는 개발자가 되자 나의 성장뿐 아닌 다른 개발자의 성장도 돕는 즉, 함께 성장하는 개발자가 되자 0. 2회차 OT 소감 우테코 Captain '포비'님의 말씀이 인상 깊었다. 정말 경험에서 나오는 한마디 한마디가 내 마음을 깊게 울렸다. 제일 인상 깊었던 말은 '질문보단 스스로 생각하는 힘을 길러라' 같은 '스스로'에 관한 것이 아닌, '여기서 나이, 학벌을 물어보는 것은 무례한 일이고 서로 지양하는 것'이었다. 개발 업계가 이렇다는 사실은 알고'만'있었지 이렇게 직접적으로 들으니 감회가 새로웠다. 한국같이 이렇게 주입식 교육을 시키고, 학벌이 다인 것처럼 구는 중, 고등학교 시절이 생각나 기분이 묘했다. 성적 따라 학..

생각들 2022.12.19