데이터베이스는 제3정규형(3NF)을 준수하여 설계하였으며, 유저 테이블을 기준으로, 게시글, 댓글, 좋아요, 팔로우, 채팅방, 채팅 메시지 등의 주요 기능을 구현하기 위해 필요한 테이블들을 설계하였습니다. Sequelize(ORM)을 사용하여 테이블을 모델로서 정의 및 관리하고, 테이블간 관계를 설정하여 데이터베이스를 효율적으로 관리할 수 있도록 하였습니다.
Project Detail
Inst@gram
~
인스타그램의 주요 기능을 일부 구현한 백엔드 중심의 프로젝트입니다. 자유 주제로 진행한 개인 프로젝트 과제로 제출한 결과물입니다.
- Database Design: Sequelize를 활용한 제3정규형(3NF) 준수 데이터베이스 설계 및 관리
- File Upload Security: 파일 업로드 시 크기, 형식 제한 및 파일명 충돌 방지 로직 적용
- Real-Time Chat: 웹 소켓을 활용한 실시간 채팅과 댓글/좋아요 반응 구현
- Asynchronous Communication: Axios를 활용한 비동기 통신 구현
Links
Primary Skills
메인 페이지에서는 나와 내가 팔로우한 사용자의 게시글만 볼 수 있습니다.
게시글에서는 댓글과 답글을 작성하고, 이에 대한 좋아요를 표시할 수 있습니다. 웹 소켓을 활용하여 댓글과 좋아요 반응을 실시간으로 업데이트합니다.
게시글 작성 시 사진을 직접 선택하거나 Drag & Drop을 통해 사진을 업로드할 수 있습니다. 파일 업로드 시 파일 크기와 형식을 제한하고, 파일명 충돌을 방지하는 로직을 적용하여 보안성과 안전성을 강화했습니다.
프로필 페이지에서는 해당 사용자가 작성한 게시글, 팔로워, 팔로잉 수를 볼 수 있습니다.
사용자의 팔로워 및 팔로잉 수를 클릭하면 해당 목록을 볼 수 있으며, Message 버튼을 통해 새로운 채팅방을 생성하거나 사용자와의 채팅방으로 이동하여 실시간 채팅을 할 수 있습니다.