본문 바로가기

공부/SpringBoot15

[SpringBoot] JPA 연관관계 예) 음식 주문앱 DB - 회원 1명은 주문 N개를 할 수 있다. => 회원 : 주문 = 1 : N 관계 - 음식 1개는 주문 N개에 포함될 수 있다. => 음식 : 주문 = 1 : N 관계 - 결론 => 회원 : 음식 = N : N 관게 관계 코드 선언 Entity 예 1 : N @OneToMany Order (1) : Food (N) 배달 주문 1개에 음식 여러개 선택 가능 N : 1 @ManyToOne Owner (N) : Restaurant (1) 음식점 주인 여러명이 하나의 음식점을 소유 가능 1 : 1 @OneToOne Order (1) : Coupon (1) 배달 주문 1개 주문 시, 쿠폰 1개만 할인 적용 가능 N : N @ManyToMany User (N) : Restaurant (N) .. 2022. 8. 2.
[SpringBoot] JPA란? -- 목차 -- JPA 란 - Hibernate - 영속성 컨텍스트 ORM 이란 JPA의 동작 과정 JPA를 사용해야 하는 이유(장,단점) JPA란 Java persistence API 현재 자바 진영의 ORM 기술 표준 스펙을 정의한다. JPA의 스펙은 자바의 객체와 데이터베이스를 어떻게 매핑하고 동작해야 하는지를 정의하고 있다. 인터페이스의 모음이다. 즉, 실제로 구현되는 것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크이다. 대표적인 Framework : Hibernate 과거 자바 표준(Entity Bean)으로, EJB라는 것이 있다. JPA 이전의 ORM기술이다. 단점 코드가 매우 지저분 하다. API의 복잡성이 높다. (interface를 많이 구현해야 함) 속도가 느리다... 2022. 7. 22.
[Error] pom.xml parent 에러 STS에 새로운 프로젝트를 만들어 주었더니 pom.xml parent 부분에 다음과 같은 에러가 발생했다. 1. 에러 내용 Execution default-resources of goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources failed: newPosition < 0: (-1 < 0) (org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources:default-resources:process-resources) 2. 해결 방법 dependency 추가 저장 누르면 자동으로 dependency가 설치된다 ( 오른쪽 아래 프로그레스바로 설치될때까지 기다려주기) org.apache.. 2022. 4. 18.
[블로그] 회원가입 문제와 게시글 삭제 문제 1. 회원가입 문제 회원 가입 시, 중복으로 인한 Internal server error가 발생하여도 회원가입이 완료 됨. => 회원 가입 로직 처리 시, Internal server errorr가 발생하면 회원가입에 실패하도록 설정. 2. 게시글 삭제 문제 게시글 삭제 시, 댓글이 달린 글은 삭제 되지 않음. => Board 객체 내 replys에 cascade remove 옵션을 걸어준다. ( cascade = CascadeType.REMOVE) 게시글을 삭제할 때 해당 게시글과 연관된 댓글을 어떻게 처리할 지 정의가 안되어 있었다. 그래서 casecade(종속)옵션을 통해 연관된 entity를 어떻게 처리할지 정해줘야 한다. casecade는 특정 entity의 영속성 상태가 변경되었을 때 이를 연.. 2022. 3. 8.
[블로그] 댓글 1. 댓글 디자인 2. 무한참조 방지하기 - Entity로 받고 Json직렬화 하기 전에 DTO 생성 후 복사하기 BeanUtils.copyPropertiex(A,B) - 처음부터 DTO로 DB에서 받기 - @JsonIgnore - @JsonIgnorePropertiex({"board"}) - @JsonBackReference @JsonManagedReference ~무한참조~ 3. 댓글 목록 뿌리기 4. 댓글 작성하기 - parameter로 value를 다 받는 방법 - 영속화 시켜서 DTO로 받는 방법 - DTO로 영속화 시키지 않고 넣는 방법 5. 댓글 삭제하기 2022. 3. 8.
[블로그] 회원수정 및 카카오로그인 - 회원수정 /user/updateForm - 회원 수정 후 session 다시 생성 Spring Security 이해하기 - 카카오로그인 https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api 1. 웹서버 주소 : 2. 클라이언트 키 : 3. 카카오 로그인 요청 콜백 주소 : 4. 카카오 동의 구성 5. 로그인 요청 주소 (GET) 6. 응답받은 코드 7. 토큰 발급 요청 주소 (POST) 주소 : 헤더 값 : 바디 값 : 8. 토큰을 통한 사용자 정보 조회 (POST) 주소 : 헤더 값 : 9. 회원찾기 - 기존회원 : 로그인 세션 만들어주기 - 신규회원 : 가입 후 로그인 세션 만들어주기 가입시 key 값 중요 * 10. validation.. 2022. 3. 6.