inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

TCP/IP UDP 용어질문

해결됨

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요 김영한님. 용어가 햇갈려 질문드립니다. TCP/IP는 IP 프로토콜을 이용하는 TCP 프로토콜을 뜻하는 것으로 아는데, UDP도 IP 프로토콜을 사용하는 것 아닌가요? 그런데 UDP/IP 라는 말은 들어본적이 없는 것 같아서 질문드립니다. 감사합니다.

  • network
뎁꼼 댓글 1 좋아요 3 조회수 295

안녕하세요! 영한님! 질문 하나 드려도 될까요?

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요 영한님! 인프런과 타사 플랫폼으로도 강의를 잘 보고 있습니다. 추운 날씨에 감기 조심시고 고생 너무 많습니다! 다름 아니라 쿠키 Secure과 HttpOnly 설명을 들었습니다 Secure는 Https일때만 쿠키를 세팅해주고 HttpOnly는 XSS를 방지해주고 자바스크립트에서 쿠키를 세팅 못하고 HTTP 전송에만 사용하신다고 하셨는데, 이 때 HTTP전송이란 Http/Https의 구분이 아닌 Http 프로토콜을 이용한 전송을 말씀하시는 건가요? Https일때만 쿠키를 세팅하고(Secure 활용), XSS 방지를 같이 하고 싶을땐(HttpOnly 활용) 이렇게 세팅하면 되는건가 싶어서 여쭤봅니다!

  • network
koris land 댓글 1 좋아요 5 조회수 380

orphanRemoval과 cascade의 관계

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요 영한님 강의 정말 잘 듣고 있습니다! 다름이 아니라 orphanRemoval과 cascade의 명확한 차이를 공부하던 도중 이해가 가지 않는 것이 있어서 질문 드립니다! 환경은 Spring Boot 2.4.2 입니다. cascade는 엔티티의 상태변화를 전파하는 것이며, orphanRemoval는 연관관계가 끊어진 Entity는 자동으로 삭제하는 것으로 알고 있습니다. 근데 부모에서 orphanRemoval를 true로 설정 후, 컬렉션에서 자식 Entity를 삭제해도 Delete 쿼리가 아닌 update 쿼리가 발생했습니다. 그래서 여러가지 테스트 해보니 CascadeType.ALL 아니면 CascadeType.PERSIST시 orphanRemoval 이 정상적으로 동작하였습니다. 아래 코드에서 Board Entity에서 cascade 옵션을 지우면 update 쿼리가 발생하여 테스트는 실패하며, cascade 옵션을 ALL 또는 PERSIST을 사용하면 delete 쿼리가 발생하여 테스트가 정상적으로 통과합니다. 책의 p.311을 보면 orphanRemoval만 사용한 예제가 있는데 하이버네이트 버전이 올라가면서 변경된 것일까요? @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) @Getter public class Board { @Id @GeneratedValue private Long id; private String title; private String content; @OneToMany(mappedBy = "board", cascade = CascadeType.PERSIST, orphanRemoval = true) private List<Comment> comments = new ArrayList<>(); @Builder public Board(String title, String content) { this.title = title; this.content = content; } public Board addComment(Comment comment){ this.comments.add(comment); comment.setBoard(this); return this; } public Board removeComment(Comment comment){ this.comments.remove(comment); comment.setBoard(null); return this; } } @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) @Getter public class Comment { @Id @GeneratedValue private Long id; private String comment; @ManyToOne @Setter private Board board; @Builder public Comment(String comment) { this.comment = comment; } } @DataJpaTest(properties = "classpath:application-test.yml") class BoardTest { @Autowired BoardRepository boardRepository; @Autowired CommentRepository commentRepository; @DisplayName("orphanRemoval 테스트") @Test @Rollback(false) public void orphanRemovalTest(){ Board board = Board.builder().title("1번글").content("1번글 컨텐츠").build(); boardRepository.save(board); Comment comment = Comment.builder().comment("1번글 댓글").build(); board.addComment(comment); commentRepository.save(comment); entityManager.flush(); entityManager.clear(); Board board1 = boardRepository.findById(board.getId()).get(); board1.removeComment(board1.getComments().get(0)); List<Comment> commentAll = commentRepository.findAll(); assertThat(commentAll.size(), is(0)); } }

  • JPA
  • java
hun 댓글 3 좋아요 8 조회수 1961

수강을 시작하기 전에 한 가지 질문을 드립니다.

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요 강사님, 이번 강의도 잘 듣겠습니다. 이번 강의를 본격적으로 시작하기 전에 질문을 하나 드리려고 합니다. 저는 현재 강사님의 스프링 입문편, 기본편, HTTP 강의를 완강한 상태입니다. 이제부터는 강사님께서 추천해주신 야생형 코스로 JPA 로드맵을 수강하고자 하는데요. 이번 강의를 어떤식으로 공부하는게 좋을지 고민입니다. 저는 아직 JPA 기본편을 듣지 않았기 때문에 JPA에 대한 사전지식이 전무합니다. 이런 상황에서 활용편 강의를 수강하게 되면 분명히 막히는 부분이 많이 나오겠지요. 그럴 때마다 그런 부분들에 대한 이해를 하기 위해 노력하면서 들어야 할까요? 아니면 이해가 안 되는 부분은 그냥 따라치기만 하면서 넘어가고 나중에 기본편 학습 후 다시 돌아왔을때 철저한 이해를 목표로 수강하는게 좋을까요? ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 추가적으로, JPA라는 기술에 대한 질문을 하나 더 드리고 싶습니다. 흔히들 말하는 국내 대표 IT 서비스 기업 "네카라쿠배" 같은 곳에서는 JPA 기술이 활발하게 사용될 것이라는 생각이 듭니다. 그러나 취업을 준비하는 취준생 입장에서 이러한 탑급 IT 기업만을 목표로 하여 JPA에만 집중하는 것이 맞는지에 대한 고민이 있습니다. 갈 수만 있다면 자체 IT 서비스를 운영하는 저런 거대 기업들에 가는 것이 좋기야 하겠지만.. 국내 대형 SI 기업들, 그 외 대기업 계열사들, 다른 중견기업들 등 최대한 포괄적으로 준비하여 "취업 1승"에 대한 성공 확률을 최대한 높이고 싶은 것이 불안한 취준생의 마음입니다. 이러한 측면에서 보았을 때, 최신 트렌드인 JPA만 공부하기 보다는 아직 그렇지 못한 기업들을 함께 고려하여 MyBatis 등의 기술도 준비해서 프로젝트를 진행해보는게 맞는 것인가? 하는 생각이 듭니다. 질문의 핵심은 이것입니다. "네카라쿠배 등의 IT 기업 외에 다른 곳들에서 JPA를 활발하게 사용하나요? 그렇지 않다면 다른 곳들에서 가장 활발히 사용되는 기술은 무엇인가요?" 물론 강사님께서 모든 기업에 근무하셨던 것은 아니니 전부 빠삭하게 꿰차고 답변을 주시기는 어렵겠지만.. 그래도 현직 베테랑 개발자의 입장에서 저같은 취준생에게 조언을 해주실 수 있는 부분이 있지 않을까 싶어서 질문을 남깁니다. ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 부디 조언을 부탁드립니다. 감사합니다.

  • 웹앱
  • spring
  • spring-boot
  • java
  • JPA
akakakakak 댓글 3 좋아요 0 조회수 411

304 와 캐시

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

304를 받으면 데이터를 새로 다운받지 않고 원래의 것을 그대로 사용한다고 하셨는데요. 캐시가 소멸됐기 때문에 캐시의 star.jpg를 사용할 수 없는 건데 어떻게 새로 다운받지 않고 star.jpg를 사용할 수 있는 것인지 이해가 잘 안 됩니다.

  • network
akakakakak 댓글 4 좋아요 1 조회수 367

DELETE 메소드의 코드 설계

해결됨

모든 개발자를 위한 HTTP 웹 기본 지식

강의 잘 듣고 있습니다. 좋은 강의 감사합니다. 강의 주제를 벗어난다고 생각하지만 질문이 있습니다. 예시를 드신 것처럼 DELETE method 를 호출해서 파일을 삭제한다고 했을 때, 두번째 호출의 응답을 어떻게 하는 것이 코드 레벨에서 좋은 설계인지 궁금합니다. 가정 클라이언트에서 파일 삭제를 요청, 서버에서 성공했으나 정상 응답을 주지 못함 클라이언트는 정상 응답을 받지 못했으니 재요청을 함 위 가정에서 서버는 재요청으로 인해 존재하지 않는 파일을 삭제하라는 요청을 받은 상황이 되는데요 제가 생각하는 방식은 2가지가 있습니다. 1. 없는 파일을 삭제하라고 하는 요청이니 '파일이 존재하지 않습니다.' 같은 오류 메시지와 함께 오류 코드를 응답 ```java File file = fileRepository.find(File.class, id); if (!file.isExist()) { return FileNotExistException("파일이 존재하지 않습니다."); } ``` 2. 사용자의 요청은 파일을 삭제하는 것이다. 파일의 존재 유무가 어떻든 요청에 성공한 상태이니 성공했다고 응답 ```java File file = fileRepository.find(File.class, id); if (!file.isExist()) { return true; } ``` 저는 둘 다 일리가 있지만 1번 방식이 더 좋은 방식이라고 생각하는 편입니다. 재요청을 받았을 때 실제로는 파일을 삭제하지 않았으면서 사용자에게는 삭제했다고 응답을 주는 게 맞지 않다고 생각해서요. 그런데 이렇게 생각하던 당시 제 머리 속에는 '멱등' 에 대한 개념을 고려하지 않은 상태였었습니다. 개념은 알고 있었지만 평소에 신경 써서 고려하던 것은 아니었거든요. 더 정확하게는 민망하지만 잊고 있던 내용이었습니다. ㅎㅎ 오늘 이렇게 강의를 들으면서 다시 한번 궁금해지는 내용이라 질문을 남깁니다. 서비스에 따라 정답이 없는 영역이라는 생각도 듭니다. 그렇다면 좀 더 '정설'에 가까운 쪽이나 사례, 선생님의 견해가 궁금합니다!

  • network
네번째카페 댓글 1 좋아요 1 조회수 304

HTTP Form 과 HTTP API 질문입니다.

해결됨

모든 개발자를 위한 HTTP 웹 기본 지식

QnA를 읽다가 이런 답변을 봤습니다. "HTTP API는 HTTP를 사용해서 서로 정해둔 스펙으로 데이터를 주고 받으며 통신하는 것으로 이해하시면 됩니다." 여기서 질문입니다. 1. 위 말씀대로라면 HTTP Form 도 HTTP API의 일종 같은데, 맞나요? 2. HTTP Form과 HTTP API를 강좌에서는 아예 따로 설명하는데, 둘을 나누는 기준이 뭔가요?

  • network
식빵 댓글 2 좋아요 8 조회수 408

form, DTO 차이

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요 강사님. 공부를 하던중 form 과 DTO에 차이에 대해 궁금한점이 생겨 질문 드립니다. form은 아래와 같이 컨트롤러에서 Model에 담아 뷰에 전달 할때 사용하셨고 DTO는 아래와 같이 데이터를 반환할때 엔티티를 DTO로 변환하여 사용하셨는데 이때, 위의 경우처럼 form과 DTO가 사용되는 영역이 완전히 다른것인가요?? 예를들어, memberForm이 memberDTO로써 역할을 수행할 수 있다면 DTO로도 사용해도 되는것인가요? 제가 생각했을 땐 form은 validation이 들어갈 수 있기 때문에 DTO로 사용하면 안될것 같기도하면서도 그냥 DTO로 사용해도 될 것 같기도 하고 의문이 들어 질문드립니다. 항상 좋은 강의 감사드립니다.

  • spring-boot
  • JPA
  • java
  • spring
ydh6226 댓글 2 좋아요 16 조회수 2085

영구 리다이렉트와 일시 리다이렉트

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요 강사님, 질문 드리겠습니다. 영구 리다이렉트와 일시 리다이렉트의 차이점을 모르겠습니다. 물론 강의에서 말씀하신대로 영구는 앞으로도 쭉 리다이렉트 해야하고 일시는 그러지 말아야 할 수도 있는 상황에 사용한다고 하지만.. 어쨌든 영구든 일시든 3xx로 보내면 리다이렉트 된다는 결과는 둘 다 똑같지 않나요? 그냥 의미적으로만 구분하기 위해 나눠서 사용하는 것인지, 아니면 사용 측면에 있어서 다른 차이점이 있는지 궁금합니다. 감사합니다.

  • network
akakakakak 댓글 3 좋아요 9 조회수 668

TCP/IP 패킷 정보 부분에서 질문이 있습니다.

해결됨

모든 개발자를 위한 HTTP 웹 기본 지식

서버의 응답을 클라이언트가 받는 과정에서 질문이 있습니다. 클라이언트는 요청을 할 때 출발지 IP, 목적지 IP 와 기타 정보를 IP 패킷에 넣어서 하고, 서버는 응답 시 출발지 IP 와 목적지 IP 를 반대로 해서 한다고 이해했습니다. 큰 틀에서는 이해했습니다만 IP와 관련해서 의문이 있습니다. 대부분의 서버는 공인 IP를 사용할테니 찾아가는데 문제가 없을 것이라 생각합니다. 문제는 클라이언트인데 일반적인 인터넷 사용자는 통신사에서 할당한 공인 IP 에 내부 IP 를 받아 사용할텐데요. 목적지 IP를 찾아오는 방식이 궁금합니다. 클라이언트가 요청할 때 출발지 IP 정보에 내부 IP 와 공인 IP, mac address 를 다 넣어서 요청을 하는건가요? 아니면 다른 방식이 있는건가요?

  • network
네번째카페 댓글 1 좋아요 6 조회수 269

API Response Header

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요 영한님! API Response를 리턴할때 header를 포함하고싶을때 어떻게 해야할까요? 제네릭으로 Header를 따로 만들어야하는지, HTTPSERVLETRESPONSE를 이용해야하는지 궁금합니다. 고맙습니다! 건강하세요

  • spring
  • JPA
  • spring-boot
  • java
댓글 1 좋아요 0 조회수 230

POST 사용 예시 질문

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

강사님 안녕하세요:) 강의 내용 중 POST 예시에서 "기존 자료에 데이터 추가 ex) 한 문서 끝에 내용 추가하기" 에서 궁금한 점이 생겨 질문드립니다. 위 경우 저는 PATCH 나 PUT을 사용해서 /contents/{id} 이런식으로 기존 내용에 추가해야 할 것이라고 생각했는데, 왜 POST를 사용하는지 궁금합니다. 또한, POST를 사용할 경우 http body에 기존 문서의 id를 넣어서 전송해야 되는 것 맞나요? 그리고 뒤에 HTTP API 설계 예시 강의 "HTTP API -컬렉션 회원관리 시스템" 부분에서 PATCH와 PUT을 사용하기 애매한 경우에는 POST를 사용하여 수정하라고 하셨는데, 어떤 경우가 애매한지 궁금합니다("기존 자료에 데이터 추가"가 그 애매한 경우인가요..?). 쓰다보니 질문이 많아졌네요,,ㅜ 강의를 들으면서 많이 배우고 있습니다. 정말 감사합니다!!

  • network
현집 댓글 2 좋아요 2 조회수 413

API 질문

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요 강사님, 질문 드리겠습니다. 클라이언트가 서버에게 요청할 uri를 설계하는 것이 API 설계로 표현되었다면, 백엔드 개발자가 개발하게되는 모든 백엔드 로직들을 API라고 보면 되는 건가요? 지금까지 제게 있어 API는 그냥 남이 만들어놓은 것을 가져다 편리하게 쓸 수 있는 도구(ex 구글맵 API) 정도였는데요. 백엔드 개발자가 개발하는 서버 프로그램들도 API의 범주에 포함되는 것인가요? 감사합니다.

  • network
akakakakak 댓글 2 좋아요 5 조회수 229

조회 API 질문 드립니다!

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요 강의를 잘 듣고 있습니다. 조회 API 를 만들때, 제네릭으로 json 리스트 형태를 감싸서 리턴을 하는데, 보통 조회API 는 단건 조회가 아닌 이상 리스트형태로 리턴을 할텐데, 이런 조회 API 에서는 제네릭으로 리스트를 한번 감싼 뒤 리턴을 해야한다. 로 이해해도 될까요? @GetMapping("/api/v2/members") public Result<List<MemberDto>> memberV2() { List<MemberDto> memberDtos = new ArrayList<MemberApiController.MemberDto>(); List<Member> findMembers = memberService.findMembers(); for(Member member : findMembers) { memberDtos.add(new MemberDto(member.getName())); } return new Result<List<MemberDto>>(memberDtos.size(), memberDtos); } @Data @AllArgsConstructor public static class Result<T>{ private int count; private T data; } @Data @AllArgsConstructor public static class MemberDto{ private String name; }

  • spring-boot
  • java
  • spring
  • JPA
sjdzn119 댓글 1 좋아요 1 조회수 251

cannot resolve column 'Object'

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

이렇게 빨간줄이 떠서 신경쓰이시는 분들은 Settings -> Editor -> Inspections 에서 Unresolved database를 검색 -> Unresolved database references in annotaions 를 체크 해제 하시면 빨간줄이 없어집니다. IntelliJ가 너무 꼼꼼하게 검사를 해주기 때문에 발생한다고 합니다. 출처: https://log-laboratory.tistory.com/285

  • java
  • spring
  • 웹앱
  • spring-boot
  • JPA
ms-seo 댓글 1 좋아요 13 조회수 459

즉시로딩 처리 시 findAll()일 경우 동작이 안되는 이유가 궁금합니다.

미해결

실전! 스프링 데이터 JPA

강의 중에는 실무에선 즉시로딩을 사용하지 말라고 하셨지만 테스트 차원에서 즉시로딩으로 findAll()을 조회하면 내부에서 left outer join이 걸리는 않는 현상을 확인했습니다. 동일한 조건에서 findById()로 처리하면 left outer join이 걸립니다. OneToMany, ManyToOne 모두 동일하게 동작을 하던데 혹시 이렇게 동작되는 이유가 있을까요??? 미리 답변 감사드립니다.

  • spring
  • java
  • spring-boot
  • JPA
유근일 댓글 1 좋아요 0 조회수 307

PDF 강의자료

해결됨

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요 영한님 모든 강의 잘 듣고 있는 수강생입니다! 다름이 아니라 이번에 HTTP 강의를 수강하기 시작하면서 PDF파일이 350이 넘는 방대한 양을 가지는 것을 알게되었습니다. 수강생 개개인 마다 학습 스타일이 다르다고 생각하지만 복습 하는 과정에서 제가 원하는 내용이 pdf의 몇 페이지에 있는지 찾는데 어려움을 느끼고 있습니다. 제가 기억하기로는 Spring jpa강의에서는 코드 중심의 교육 자료가 아닌 정보전달 위주로 준비하셨기에 챕터마다 구분된 PPT로 제공해주셨고 data jpa에서는 코드가 중요한 부분을 차지하고 있기 때문에 한 개의 pdf파일로 구성되었다고 생각합니다. 따라서 혹시 강의 자료를 PPT로 제공해주셔도 되고, 아니면 Spring jpa처럼 챕터를 구분하여 강의자료를 올려주실수 있는지 질문드립니다. 사실 data jpa 실전편 강의들을 때도 강의 자료가 하나의 pdf로 되어있어서 복습하고 싶은 부분이나, 까먹었던 부분 바로바로 찾아보기에 힘듦도 있습니다 ㅠㅠ 마지막으로 강의마다 강의자료의 기본 페이지 크기가 차이가 많이 나는듯 합니다. 요즘 pdf나 ppt를 노트앱에 저장해놓고 팬슬이나 키보드 사용해서 강의 내용을 받아 적으면서 공부하는데 기본 페이지 크기가 들쭉날쭉해서 강의 들을 때 마다 자료의 크기에 맞게 환경을 조정하니 자연스레 강의에 몰입하는데 시간이 좀 걸리는거 같아요 ㅠㅠ 혹시 기본 페이지 크기를 완벽하게 맞추지는 못하더라도 어느정도 균일하게 만들어서 제공해주시면 어떤지 생각합니다ㅠㅠ 두서가 상당히 없지만 항상 강의 잘 듣고 있습니다!

  • network
호호알락 댓글 1 좋아요 1 조회수 831

IP 4계층 질문

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요, 질문 드리겠습니다. 웹 통신에서는 강의에서 설명하시는 IP 4계층을 통해서만 통신이 이뤄지나요? 흔히 알려져있는 OSI 7계층과 완전히 개별적인 것인지 궁금합니다. 감사합니다.

  • network
akakakakak 댓글 2 좋아요 1 조회수 309

안녕하세요. 현재 로그인한 사용자 정보 가져오는것에 대한 질문입니다.

미해결

스프링 시큐리티

@GetMapping ( "/mypage" ) public String myPage ( Model model, Authentication authentication) throws Exception { AccountContext ac = ( AccountContext ) authentication.getPrincipal(); model.addAttribute( "info" , ac .getUsername()); return "user/mypage" ; } 바로 전 강의에서는 이 코드가 정상적으로 실행 됐는데, 이번 강의에서 추가적인 작업을 한 뒤에는 error page가 나옵니다.. 혹시 이유와 어떻게 고쳐야하는지 알 수 있을까요???

  • spring-boot
  • Spring Security
  • java
qkrwnstns52 댓글 4 좋아요 0 조회수 413

OrderItem을 DB에서 지우고자 할 때

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요. 주신 예제로 여러 가지 응용을 해보고 있는데, 한 가지 질문이 있어 질문드립니다. OrderItem을 지우는 상황을 가정을 했을 때, 지우는 방법에 대해 여쭤보고 싶습니다. (parent에 의존하여 영속화 되어있는 객체를 지우는 상황) Order를 지우면 OrderItem은 CASCADE 옵션 덕분에 잘 지워지지만, 반대로 Order는 두고 OrderItem 하나만 지우기 위해 Order <-> OrderItem 관계를 끊어도 OrderItem은 지워지지 않습니다. 아래는 제가 시도했던 부분입니다. - Parent인 Order의 list에서 OrderItem 삭제 - Child인 OrderItem에서 this.order = null; this.item = null;로 모든 관계 삭제 - @OneToMany 옵션이 있는 Parent쪽에서 orphanRemoval = true 옵션 넣기 - 위 과정 모두 한 뒤, em.persist(Order); 호출 위 모두 해보아도 OrderItem에 null로 들어갈뿐 OrderItem이 삭제 되진 않습니다. 구글링을 해봤을 땐 orphanRemoval 옵션 추가하고 연관관계 삭제하라는 말뿐이네요.. 혹시 방법이 있을까요? 그리고 추가로, 여기선 OrderItem이라는 다:1 매핑된 객체는 CASCADE를 통해 따로 영속화하지 않았는데, 보통 다:1 매핑은 전부 그러한가요? 제가 느끼기엔 서로 독립적으로 저장해야할 때라고 판단하였는데, 다:1이면 독립적일 수가 없을 것 같더라구요. 어떤 경우에 따로따로 영속화하고, 어떤 경우는 이 예시와 같이 한꺼번에 하는지 궁금합니다. 감사합니다.

  • 웹앱
  • spring
  • java
  • JPA
  • spring-boot
고운 코끼리 댓글 22 좋아요 2 조회수 3671

인기 태그

인프런 TOP Writers

주간 인기글