CS

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

Ynghan 2024. 3. 14. 15:37

Q. RDBMS의 index가 무엇인가요? 그렇다면 유니크키 FK는 index인가요?

RDBMS에서 인덱스(Index) 데이터베이스 테이블의 데이터를 빠르게 조회할 있도록 돕는 데이터 구조입니다. 인덱스는 검색 속도를 향상시키기 위해 사용되며, 내부적으로는 대부분 B-트리 또는 해시 테이블 구조를 사용합니다. 인덱스를 사용하면 특정 조건에 맞는 데이터를 빠르게 찾을 있지만, 인덱스를 유지하기 위한 추가적인 공간이 필요하고 데이터를 삽입, 삭제, 수정할 때마다 인덱스도 업데이트해야 하므로 성능 저하를 일으킬 수도 있습니다.

유니크키(Unique Key) 외래키(Foreign Key, FK) 인덱스의 일종으로   있습니다. 유니크키는 테이블 내의  로우가 유일함을 보장하는 역할을 하며, 인덱스로 구현되어 빠른 검색을 돕습니다. 외래키도 관계를 맺고 있는 다른 테이블의 키를 참조하기 때문에, 참조 무결성을 유지하는  중요한 역할을 합니다.

 

Q. 댓글 기능을 구현하기 위해 포스트 Entity와 댓글 Entity를 어떻게 설계하셨는지 자세히 설명해주세요.

ERD를 설계할 때, 하나의 포스트 Entity에 여러 댓글 Entity가 필요함으로 1 : N 관계로 설정하였습니다.  포스트 Entity에 댓글 Entity 리스트를 두어 @OneToMany 어노테이션을 적용하고 orphanRemoval를 true로 설정해 댓글에 대한 고아 객체를 관리했습니다. 댓글 Entity에는 @ManyToOne 어노테이션을 적용하여 서로에 대한 연관관계를 정의했습니다. 

 

Q. Spring에서 Multipart 타입을 어떻게 처리하는지 아는 만큼 설명해주세요.

Spring에서 Multipart 타입은 주로 파일 업로드 사용됩니다. Spring MVC에서는 MultipartFile 인터페이스 사용하여 멀티파트 파일을 처리할 수 있습니다. 컨트롤러 계층에서 @RequestParam 어노테이션을 사용하여 MultipartFile 객체를 매개변수로 받을 있습니다. 

 

Q. 멀티미디어를 저장하는 다른 저장소는 뭐가 있었는지 알아보셨나요?

  1. 로컬 파일 시스템: 가장 기본적인 방법으로, 서버의 파일 시스템에 직접 파일을 저장합니다
  2. 클라우드 스토리지 서비스: AWS S3, Google Cloud Storage, Microsoft Azure Storage 같은 클라우드 기반 스토리지 서비스를 사용할 있습니다.
  3. 데이터베이스 BLOB 저장: BLOB(Binary Large Objects) 사용하여 이미지나 동영상 같은 멀티미디어 파일을 데이터베이스에 직접 저장할 수도 있습니다.