++/CS

[TIL] CS공부 12일차

writtenbyrla 2024. 3. 19. 11:03

좋아요 기능팔로우 기능을 구현하기 위해 설계한 DB Schema에 대해 자세히 설명해주세요.

좋아요 기능
게시글 - 좋아요, 댓글 - 좋아요는 1:N의 관계로, 하나의 게시글이나 댓글은 여러 개의 좋아요를 가질 수 있습니다.

따라서 좋아요 테이블이 게시글과 댓글의 Primary Key를 참조할 수 있도록 Foreign Key를 설정하였습니다.

팔로우 기능
유저 - 팔로우는 N:N의 관계이지만, 팔로잉과 팔로워를 나누어서 1:N의 관계로 한 유저가 여러 팔로잉과 팔로워를 가질 수 있도록 하였습니다.
좋아요 기능과 마찬가지로 팔로잉과 팔로워 id가 유저 테이블의 Primary Key를 참조할 수 있도록 Foreign Key를 설정하였습니다.

 

좋아요 Entity팔로우 Entity를 어떻게 설계하셨는지 자세히 설명해주세요

좋아요 기능
게시글과 댓글 Entity에는 @OneToMany 어노테이션을 사용하여 좋아요 List를 필드로 가집니다.
좋아요 Entity의 관점에서는 N:1 관계이므로 @ManyToOne 어노테이션을 사용하여 게시글과 댓글 Entity를 필드로 가집니다.

팔로우 기능
유저 Entity에는 @OneToMany 어노테이션을 사용하여 팔로워와 팔로잉의 List를 필드로 가집니다.
팔로우 Entity의 관점에서는 N:1의 관계이므로 @ManyToOne 어노테이션을 사용하여 유저 Entity를 필드로 가집니다.

또한 부모 엔티티가 삭제될 경우 연관관계에 있는 모든 엔티티가 삭제되어야 하므로 cascade를 설정하였습니다.

 

 

 

 

 


 

 

 

 

API DOCS(e.g. Swagger)가 무엇인지 그리고 왜 필요한지에 대해 설명해주세요

API 문서는 개발자와 사용자가 API를 사용할 때 참고할 수 있도록 엔드포인트, 매개변수, 반환 값 등을 담은 문서를 의미합니다.
 
API 의 기능과 사용법을 자세히 설명하여 개발자가 쉽게 이해하고 활용할 수 있도록 하며
요청과 응답을 처리하는 방법을 파악하기 쉽게 하여 클라이언트와 서버 간의 상호작용을 원할하게 합니다.
테스트 및 디버깅할 때 필요한 정보를 제공하며, 여러 개발자들이 협업 시 API 문서를 참고하여 일관된 개발이 가능하도록 합니다.

 

 

 

 

 

 


 

 

Spring에서의 직렬화와 역직렬화에 대해 설명해주세요

Spring에서의 직렬화(serialization)와 역직렬화(deserialization)는 객체를 바이트 스트림으로 변환하거나, 바이트 스트림을 다시 객체로 변환하는 과정을 말합니다.

직렬화
객체를 메모리 상의 데이터 구조에서 파일이나 네트워크를 통해 전송 가능한 형태로 변환하는 과정으로
Spring에서는 주로 Java의 기본 직렬화 방식을 사용하거나 JSON, XML 등의 형식을 사용하여 객체를 직렬화합니다.

역직렬화
직렬화된 데이터를 받아서 다시 객체로 변환하는 과정으로
Spring 웹 애플리케이션에서 클라이언트가 전송한 JSON 데이터를 역직렬화하여 객체로 변환합니다.

 

 

 

 

'++ > CS' 카테고리의 다른 글

[TIL] CS공부 14일차  (0) 2024.03.21
[TIL] CS공부 13일차  (0) 2024.03.20
[TIL] CS공부 11일차  (1) 2024.03.18
[TIL] CS공부 10일차  (1) 2024.03.15
[TIL] CS공부 9일차  (0) 2024.03.14