포트폴리오

아마추어스 (AMATEURS)

2025년 08월 09일
98

아마추어스 (AMATEURS)

image (1)


개발 인원 및 기간

  • 팀원: 6명 (백엔드 6명)
  • 기간: 2025.07 ~ 2025.08 (약 6주)
  • 역할: 백엔드 개발, API 설계 및 구현, DB 모델링

프로젝트 소개

아마추어스는 AI 부트캠프 수강생들을 위한 커뮤니티 플랫폼입니다.

다양한 커뮤니케이션 기능과 AI 기반 자동화 기능을 통해 백엔드 지향 개발자들의 정보 공유, 인증, 소통을 도와주는 서비스를 만들었습니다.


담당 역할 – 권규태 (팀장, 백엔드)

  • 커뮤니티 기능 백엔드 개발
    • 자유 게시판, Q&A, 프로젝트 허브 등 주요 게시판의 CRUD API 개발
    • 게시글 작성/수정/삭제 및 목록 조회 기능 구현
    • 게시글 정렬(최신순/인기순) 및 필터링 기능 설계
  • 신고 기능 및 관리 시스템 구축
    • 게시글 신고 접수 및 블라인드 처리 로직 개발
    • AI 기반 자동 판단(Confidence Score)에 따라 처리 여부 결정
    • LinkedBlockingQueue 기반 이벤트 큐 설계 및 비동기 처리 도입
  • AI 개인화 추천 기능 일부 구현
    • 사용자 게시글 임베딩 저장 및 유사도 비교 로직 일부 구현
    • 추천 결과 필터링 및 중복 제거 로직 참여
  • PM(팀장) 역할 수행
    • 개발 일정 및 이슈 관리, GitHub 프로젝트 보드 운영
    • 데일리 스크럼, 주간 회고 주도 및 팀 커뮤니케이션 중심 역할
    • 발표자료 구성 및 데모 시나리오 작성 참여

주요 기능 및 기술

AI 수강생 인증 시스템

  • CLIP + OCR 기반 얼굴 유사도 및 텍스트 분석
  • 인증 이미지 임베딩 → 표준 이미지와 유사도 비교 후 OCR 텍스트 추출
  • 임계값 통과 시 자동 인증
  • 인증 API 연동 (/verify/request)

AI 기반 개인화 추천

  • 사용자 게시글 스타일 분석 → 관심 키워드 추출
  • OpenAI 임베딩 API 활용 (text-embedding-3-small)
  • 사용자의 선호 주제와 유사한 게시글 추천 제공

인기 게시글 랭킹 시스템

  • 조회수, 좋아요, 댓글 수 기반 인기 게시글 산정
  • 가중치 및 통계 기반 정렬
  • jOOQ 사용 → 빠른 조회 성능 (400ms → 20ms)

실시간 기능

  • WebSocket + STOMP: DM 실시간 송수신
  • SSE: 알림 기능 구현 (하트비트, 시간 기반)

인증/보안

  • 쿠키 기반 JWT 인증 (Access + Refresh 토큰)
  • Redis에 Refresh Token 저장

인프라 / 운영

  • 무중단 배포: GitHub Actions + Blue-Green 전략
  • Observability: LGTM 스택(Grafana, Loki 등) 구축
  • 자동화: n8n을 통한 배포/리마인더/Slack 알림 설정
  • 테스트: Rest Assured 사용, 테스트 커버리지 60% 이상

기술 스택

  • Backend: Java 17, Spring Boot, jOOQ, MongoDB, Redis
  • DevOps: Docker, GitHub Actions, n8n, Grafana, Loki
  • AI 활용: LangChain4j, Gemini, OpenAI API (text/image)
  • 통신/비동기: WebSocket, SSE, Event Queue

회고 및 성과

  • 커뮤니티 기능에 AI를 실질적으로 도입하여 자동 인증/추천/신고 처리 등 운영 자동화를 경험
  • 무중단 배포와 실시간 로깅, 알림 시스템을 통해 운영 신뢰성 확보
  • 코드 커버리지, MSA 설계, 멀티 모듈 구조 도입을 통해 서비스 확장성 고려

서비스 링크

https://www.amateurs.co.kr/

ID: test@test1.com

PW: 12345678a


댓글을 불러오는 중...