Develop

41일차~54일차_2차 프로젝트 진행 본문

백엔드/KDT_Programmers

41일차~54일차_2차 프로젝트 진행

230801 2025. 5. 23. 02:45

안녕하세요 .ᐟ 

그동안 잘 지내셨나요?

 

여태 1일 1 블로그 포스팅을 하다가, 프로젝트에 들어가면서 단위별로 포스팅을 하고 있는데요 .ᐟ

이번에는 2차 프로젝트 내용으로 돌아왔습니다.

 

스프링 부트를 이용한 백엔드 팀프로젝트로, 팀원 5명이서 화면을 기준으로 프론트부터 백엔드까지 모두 경험 할 수 있게 역할을 분담했습니다. 개발 기간은 약 3주로 이론수업 + 맛보기 간단 CRUD 프로젝트 이후 처음진행하는 프로젝트였습니다.

 


📌 팀 프로젝트 개요

개발자 취준생을 위한 맞춤형 TODO 서비스

  • 서비스 설명 : 목표 기업의 채용 일정 등록해 체계적으로 관리하고, 준비 과정을 시각화할 수 있는 TODO 서비스
  • 주요 기능 : 지원 일정, TODO 관리, AI 피드백, 게이미피케이션 등 다양한 기능 구현
  • 개발 목적 : 타겟 사용자의 자기주도적 취업 준비 지원

 

📌 기획 및 설계 방향

  • 타겟 사용자
    • 개발자 취업을 준비하는 사용자
    • 특히 다수의 기업에 지원 중이며 일정 관리에 어려움을 느끼는 사람
  • 기획 포인트
    • 기업별 채용 전형(TODO)을 등록하고 관리할 수 있는 기능
    • 지원 마감일, 면접일 등 주요 일정에 대한 D-day 및 알림 기능
    • 준비 과정에 따른 경험치/레벨 시스템업적 달성으로 동기 부여
    • AI 피드백으로 감정 케어와 동기 유지 지원
  • 설계 구조
    • MVC 아키텍처 기반의 Spring Boot 구조 설계
    • MySQL 기반의 관계형 데이터베이스 모델링
    • ERD 설계 → DTO → 엔티티 → 서비스 계층 → 컨트롤러 구조로 정립
    • 주요 화면 흐름과 데이터 흐름을 미리 정리한 UI/UX 화면 설계서(Figma) + API 명세서(Notion) 기반 개발

 

📌 기술 스택

  • Backend
    • Java 21, Spring Boot, Spring Security, JPA (Hibernate), MySQL
  • Frontend
    • Thymeleaf (SSR 방식), HTML/CSS
  • 협업 및 문서화
    • GitHub, Trello, Notion, Figma, 슬랙
  • 기타
    • Gemini API 연동
  • 사용된 기술 정리
사용된 기술 개요 활용
Java 21 최신 LTS 버전, 백엔드 전반의 비즈니스 로직 구현에 사용 전체 서비스 로직 및 엔티티, DTO, 서비스 계층
Spring Boot 빠른 설정과 배포를 위한 프레임워크 전체 프로젝트의 구조 기반, 의존성 관리 및 서버 실행
Spring MVC Controller - Service - View 구조의 핵심 사용자 요청 처리, URL 매핑, Model 전달
Spring Security 인증/인가 구현 로그인, 세션 인증, CSRF 보호, 권한 설정
JPA (Hibernate) 객체지향 방식으로 DB를 다루기 위한 ORM 엔티티 설계, DB 조회/저장, 연관관계 매핑
MySQL 관계형 데이터베이스 유저, 목표기업, TODO, 레벨, 알림 데이터 저장
Thymeleaf 서버 사이드 렌더링 템플릿 엔진 대시보드, 마이페이지, TODO 목록 등의 HTML 뷰 렌더링
Lombok 반복되는 getter/setter, 생성자 자동 생성 DTO, Entity, Service 클래스에서 코드 간결화
REST API 클라이언트와의 데이터 통신 방식 /api/dashboard, /api/todo 등의 엔드포인트 제공
CSRF 보호 Cross Site Request Forgery 방지 th:attr="_csrf" 방식으로 POST 요청에 토큰 포함
세션 기반 인증 현재는 세션 기반 인증 방식 적용 @AuthenticationPrincipal을 통해 유저 정보 접근
Gemini AI API 외부 AI 멘탈케어 API 연결 목표 기업 상세 조회 시 응원의 메시지 제공
ModelMapper 객체 간 필드 매핑 자동화 Entity ↔ DTO 변환 자동화
Spring Data JPA CRUD 메서드 자동 제공 + Query 메서드 지원 Repository 계층 (findByUser, findByCompanyId 등)
Custom Query 복잡한 조건 검색 목표기업 D-DAY 필터링 및 주요 알림 정렬
Git & GitHub 버전 관리 및 협업 브랜치 전략(main, dev, feature/*), PR 리뷰 기반 협업
Commit Convention 팀 컨벤션(예: ✨ feat:, 🐛 fix:) 활용 커밋 메시지 일관성 유지 및 이력 관리 용이
Notion & Figma 문서화 도구 및 UI 설계 도구 기획안, 시스템 구성도, API 명세, 화면 설계
WBS (Work Breakdown Structure) 프로젝트 일정 및 작업 분배 관리 기획 단계부터 발표까지의 일정 관리

 

 

📌 개발 과정

  • 초기 설계 단계
    • 팀원들과 WBS 작성 및 역할 분담
    • UI/UX화면 구성안 기획 (Figma)
    • API 명세서(Notion) 기반으로 각 컨트롤러 및 서비스 설계
    • ERD 설계
  • 기능 구현
    • 사용자 회원가입 / 로그인 / 마이페이지
    • 대시보드에 실시간 D-day, 주요 알림 표시
    • 기업별 TODO 등록/수정/삭제
    • 업적 달성 → 축하 애니메이션 출력
    • Gemini AI와 연동하여 멘탈 케어 메시지 제공
  • 협업
    • Git 브랜치 전략 사용 (main, develop, 기능 브랜치로 나누어서 사용)
    • 커밋 컨벤션 적용, PR 리뷰 통한 코드 통합
    • 일정 관리 및 회의는 Trello, Zep으로 진행

 

📌 최종 결과물

  • 사용자 맞춤 대시보드
    • → TODO 현황, 레벨/XP 표시, 알림 ON/OFF 기능
  • 기업별 채용 전형 관리
    • → 기업마다 서류, 코테, 면접 등의 단계 관리 가능
  • AI 챗봇 연동
    • → 사용자의 상태에 맞는 피드백 응답
  • 업적 시스템
    • → 특정 업적 달성 시 축하 메세지(이펙트)와 경험치 지급

 

 


 

 

이번 프로젝트를 통해 사용자 중심의 서비스 기획, 실전 백엔드 로직 설계, 팀 협업의 전반적인 흐름을 실습할 수 있었고,

1차 간단한 CRUD 프로젝트에 비해서 기술적으로나 협업적으로나 많은 성장을 체감할 수 있었습니다  .ᐟ