Skip to content

kseysh/narratix

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,727 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 Narratix

취준생의 경험을 아카이빙하고, 자기소개서를 빠르게 완성하는 플랫폼

현대자동차 소프티어 부트캠프 7기 - Team 7. Jackpot


🎯 프로젝트 소개

Narratix는 취준생들이 흩어진 경험을 모으고, 자기소개서를 효율적으로 작성/관리할 수 있도록 돕는 플랫폼입니다.

해결하고자 한 문제

  • 자소서 초안, 문항, 경험 메모가 여러 곳에 흩어져 재활용이 어렵다
  • 지원 일정과 작성 진행도를 함께 관리하기 어렵다
  • 첨삭 과정이 메시지/문서로 분산되어 피드백 반영이 비효율적이다

핵심 가치

  • 경험 아카이빙: 업로드한 자료를 구조화해 기업/문항 단위로 재활용
  • 작성 생산성: 문항 중심 편집 + 검색/필터로 빠른 작성 흐름 지원
  • 피드백 루프: 공유 기반 첨삭으로 수정 사이클 단축

Landing Page


🧭 사용자 플로우

  1. [나의 채용공고] 공고 등록 또는 [자료 업로드] PDF 업로드로 자기소개서 생성

    • 텍스트로 공고 정보와 문항 직접 작성
    • PDF 업로드 시 AI가 자동 파싱 후 라이브러리에 저장
  2. [라이브러리] 에서 자료 탐색 및 스크랩

    • 기업별/문항별로 아카이빙된 자료 열람
    • 재활용할 내용 스크랩
  3. [자기소개서] 에서 문항별 초안 작성 / 수정

    • 사이드바에서 스크랩하거나 아카이빙된 자료를 참고하며 작성
  4. [자기소개서] 공유 링크 기반 실시간 첨삭 진행

  5. [나의 채용공고] 채용 캘린더로 지원 일정 관리


📸 핵심 기능 시연

1) 자료 업로드 + AI 라벨링

Upload Page

Labeling Page

2) 채용 일정 캘린더 관리

Calendar Page

3) 기업별/문항별 라이브러리 관리

Library Page

4) 자기소개서 작성

Editor Page

5) 첨삭 에디터

작성자

Review Page Review Page

첨삭자

Review Page Review Page

전체 기능

  • 홈 대시보드: 작성 통계, 시즌 지원 현황, 임박 일정 확인
  • 채용공고 관리: 캘린더 기반 공고 등록/수정/삭제
  • 자료 업로드: 자기소개서 파일 업로드 후 AI 라벨링 및 저장
  • 자기소개서 작성: 문항 단위 작성, 검색/필터 기반 문서 탐색
  • 친구 첨삭: 공유된 자기소개서 코멘트 작성 및 반영
  • 라이브러리: 기업별/문항별 아카이빙, 스크랩 기반 재활용
  • 인증: 로그인/회원가입 및 보호 라우팅

🏗 아키텍처 & ERD

아키텍처

image 아키텍처 링크

ERD

image

ERD 링크


🛠 기술 스택

Frontend



Backend




👥 팀 구성


🧑‍💻 역할 및 주요 기여

이름 포지션 담당 도메인
강유진 Frontend 실시간 텍스트 에디터 / 협업 첨삭 UI
박소민 Frontend 라이브러리(기업·문항) / 나의 채용공고(캘린더) / 자기소개서 작성 (랜딩 페이지 및 검색)
윤종근 Frontend 실시간 첨삭, 실시간 알림, 자료 업로드
김승환 Backend & Infra WebSocket 실시간 첨삭, SSE 알림, 자기소개서, 첨삭 링크 관리
이정민 Backend & Infra 자료 업로드, 라이브러리, 검색 , aws 인프라 구축

김승환 (Backend & Infra)

  • 비동기 이벤트 기반 아키텍처 구현: 자기소개서 PDF 업로드 및 AI 라벨링의 비동기 처리 과정에서 발생할 수 있는 상태 유실 문제를 해결하기 위해 비동기 이벤트 기반 아키텍처 구축
  • WebSocket/STOMP 기반 실시간 자소서 첨삭 기능 구현: WebSocket과 STOMP를 사용해 작성자(Writer)와 첨삭자(Reviewer) 간 실시간 자소서 첨삭 기능 구현
  • Operational Transformation 알고리즘을 사용한 중앙 집중 동시 편집 기능 구현: 자기소개서 작성자(Writer)와 첨삭자(Reviewer)가 자기소개서 동시 편집 시 충돌 없이 일관된 상태를 유지하도록 Operational Transformation 알고리즘을 도입하여 모든 사용자가 동일한 결과를 보도록 구현
  • Write Back 패턴을 사용하여 실시간 저장 로직 최적화: 매 텍스트 변경마다 DB IO를 발생시키지 않고, Redis에 Delta(변경분)를 임시 저장하고, 임계값 도달 시 DB에 Delta를 Flush하는 Write Back 캐싱 전략 구현
  • Redis 분산 락을 이용한 웹소켓 접속 유저 제한 정책 구현: 하나의 첨삭 링크에 Writer와 Reviewer 각 1명만 동시 접속이 가능하도록 Redis 분산 락 기반 제한 정책 구현, Lock의 TTL을 30초로 설정하여 비정상 종료 시에도 락이 자동 해제되도록 구현, Lock 갱신 로직에서 Pipeline과 Lua Script를 조합해 단일 네트워크 IO로 모든 세션의 Lock TTL을 10초마다 갱신하도록 구현
  • SSE 기반 알림 발송 로직 구축: Server-Sent Events를 활용하여 서버에서 클라이언트로 단방향 실시간 알림을 전송하는 시스템 구현

🚀 기술적 도전

Backend

About

자기소개서 작성자와 첨삭자 간 충돌 없는 실시간 동시 편집을 지원하는 웹 서비스

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 92.0%
  • Java 7.9%
  • Other 0.1%