실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 - 섹션1. API 개발 기본
CS/김영한 스프링 강의

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 - 섹션1. API 개발 기본

섹션 0 강의 소개 내용

할거다.

 

섹션1

절대로 엔티티를 입력으로 받거나 출력으로 반환하면 안된다. 무조건 dto를 따로 만들어서 사용하기. 이유는 각 요청에 따라 요청 안의 body json 내용도 달라질텐데 이것 때문에 엔티티 자체를 계속 수정할 수도 없고 애초에 엔티티가 이런 곳에 의존성을 가지고 있으면 안된다. 또 엔티티의 내용 그대로를 반환하기 대문에 보안 문제도 있다. 이건 나중에 볼거임.

 

주어지지 않은 정보는 null로써 채워진다.

 

수정도 비슷하게 하는데 이 수정 기능에도 일일이 dto를 만들어 사용한다. 기억해야 할건 이 엔티티의 변화를 엔티티 메니저한테 맡기면 쉬워진다. 즉, 영속성 컨텍스트 이용하라고.

 

영속성 컨텍스트로 ujpdate가 알아서 나간다.

 

 

response로 응답해주는 부분인데 엔티티 자체를 반환하지 말고 일일이 응답용 dto를 만들어 사용하라는 모습. 안 그러면 필요 외에 개인적인 정보들도 유출될 수 있다. 거기다 dto를 사용하여 더 추가적인 정보들도 쉽게 줄 수 있다.