CS

[항해 취업코스] 개발자 취준 기록 9일차

Ynghan 2024. 3. 20. 23:02

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

좋아요 기능을 구현하기 위해 게시판에 대한 좋아요 테이블과 댓글 테이블에 대한 좋아요 테이블을 나누어 정의하였습니다. 그리고 각각에 대해 1 : N 연관관계로 설정하고 좋아요 테이블에 외래키를 두어 정의하였습니다. 팔로우 기능을 구현하기 위해 사용자 테이블에 대해 팔로우 테이블을 1 : N 연관관계로 설정하고 사용자 테이블에 대한 두 개의 외래키를 두어 정의하였습니다. 이러한 방식으로 정의를 하면 팔로우 테이블이 여러 사용자들 간의 관계를 연결시켜주는 브릿지 테이블 역할을 수행할 수 있습니다.

 

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

API DOCS는 API 기능, 사용방법, 엔드포인트, 요청및 응답 형식 API 관련된 모든 정보를 문서화하는 것을 말합니다.

 

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

직렬화(Serialization)란?

직렬화는 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부에서 사용할 수 있도록 byte 형태로 데이터를 변환하는 과정입니다. 

  • ObjectOutputStream.writeObject(myObject)
  • byteArrayOutputStream.toByteArray() : 직렬화된 바이트스트림을 획득하는 메소드

역직렬화(Deserialization)란?

역직렬화는 직렬화의 반대 과정으로, byte 형태의 데이터를 원래의 객체 또는 데이터 형태로 복원하는 과정을 말합니다.

  • ObjectInputStream
  • objectInputStream.readObject() : 직렬화된 정보를 이용해서 객체로 역직렬화함.
  • New ObjectInputStream(byteArrayInputStream)

Spring 프레임워크에서 직렬화와 역직렬화는 클라이언트와 서버 간 데이터 교환을 원활하게 하고, 애플리케이션의 효율성과 안정성을 높입니다.