: 개발 팀이나 조직 내 발생하는 버그, 기능 개선 요청, 일반적인 이슈를 체계적으로 관리할 수 있는 웹 애플리케이션 개발
핵심 기능 구현
백엔드 시스템 설계 역량 강화
팀 협업 기반 프로젝트 관리 경험
다른 팀과의 협업을 통한 기능 개발
상호 피드백과 조율을 통해 품질 높은 소프트웨어 제공 및 개발 프로세스 최적화
협업 과정에서 발생하는 문제를 효과적으로 해결하며, 전체 프로젝트 진행 사항을 공유하고 조율
데이터 보안 및 시스템 안정성 향상
프로젝트 문서화 및 프레젠테이션 기술 습득
실무 환경에서의 API 연계 및 협업 프로세스를 경험하고, 팀 간 요구 사항 분석, 구현, 테스트, 통합 과정을 학습.
이슈 트래커는 소프트웨어 개발 및 프로젝트 관리에서 널리 사용되는 도구로, 이를 구현함을써 실무에 가까운 경험을 쌓을 수 있음.
시작일: 2025년 1월 13일
종료일: 2025년 1월 24일
01/13 (월) : 프로젝트 주제 선정 및 요구사항 분석
- 프로젝트 주제 선정
- 프로젝트 요구사항 분석
- 요구사항 정의서 작성
01/14 (화) : 요구사항을 기반으로 백엔드 시스템 설계
- 데이터베이스 설계
- API 설계 (엔트포인트 정의, 요청 / 응답 스펙 명세)
- 보안 설계 (인증, 권한, 데이터 암호화 등)
- 필요 시 고객과 추가 미팅을 통해 설계 검토
01/15 (수) : 요구사항을 기반으로 백엔드 시스템 설계
- 데이터베이스 설계
- API 설계 (엔트포인트 정의, 요청 / 응답 스펙 명세)
- 보안 설계 (인증, 권한, 데이터 암호화 등)
- 필요 시 고객과 추가 미팅을 통해 설계 검토
01/16 (목) : 작성한 문서를 기반으로 백엔드 시스템 개발 및 테스트
- RESTful API 기반 백엔드 애플리케이션 개발
- 데이터 통합 및 가공 로직 구현
- 유닛 테스트 및 통합 테스트 진행
- 고객의 피드백을 수집하여 수정 / 개선
01/17 (금) : 작성한 문서를 기반으로 백엔드 시스템 개발 및 테스트
- RESTful API 기반 백엔드 애플리케이션 개발
- 데이터 통합 및 가공 로직 구현
- 유닛 테스트 및 통합 테스트 진행
- 고객의 피드백을 수집하여 수정 / 개선
01/18 (토) : 작성한 문서를 기반으로 백엔드 시스템 개발 및 테스트
- RESTful API 기반 백엔드 애플리케이션 개발
- 데이터 통합 및 가공 로직 구현
- 유닛 테스트 및 통합 테스트 진행
- 고객의 피드백을 수집하여 수정 / 개선
01/19 (일) : 작성한 문서를 기반으로 백엔드 시스템 개발 및 테스트
- RESTful API 기반 백엔드 애플리케이션 개발
- 데이터 통합 및 가공 로직 구현
- 유닛 테스트 및 통합 테스트 진행
- 고객의 피드백을 수집하여 수정 / 개선
01/20 (월) : 작성한 문서를 기반으로 백엔드 시스템 개발 및 테스트
- RESTful API 기반 백엔드 애플리케이션 개발
- 데이터 통합 및 가공 로직 구현
- 유닛 테스트 및 통합 테스트 진행
- 고객의 피드백을 수집하여 수정 / 개선
01/21 (월) : 작성한 문서를 기반으로 백엔드 시스템 개발 및 테스트
- RESTful API 기반 백엔드 애플리케이션 개발
- 데이터 통합 및 가공 로직 구현
- 유닛 테스트 및 통합 테스트 진행
- 고객의 피드백을 수집하여 수정 / 개선
01/22 (화) : 작성한 문서를 기반으로 백엔드 시스템 개발 및 테스트
- RESTful API 기반 백엔드 애플리케이션 개발
- 데이터 통합 및 가공 로직 구현
- 유닛 테스트 및 통합 테스트 진행
- 고객의 피드백을 수집하여 수정 / 개선
01/23 (수) : 시스템 최적화 및 문서화
- 성능 최적화 작업 (API 응답 속도 개선, DB 쿼리 최적화 등)
- 코드 및 시스템 사용 가이드 작성
01/24 (목) : 최종 결과물 발표
- 발표 자료 마무리 및 최종 산출물 제출
API 문서화
기능 구현
요구사항에 따라 각 기능을 설계하고 구현.
비즈니스 로직이 정상적으로 동작하는지 검증하는 단위 테스트 및 통합 테스트 작성.
팀 커뮤니케이션 및 협업
Project Structure
ERD
Flow Chart
프로젝트를 진행중 팀원의 Swagger가 갑자기 동작하지 않은 문제가 발생하였음.
⬇️
구글링을 통해 원인을 조사하였지만, 원인을 발견하지 못하여 문제가 발생했던 팀원의 Swagger 버전을 변경하여 이슈를 해결할 수 있었음.
Swagger를 통해 서버에 API 요청을 전달하던 중, 특정 팀원의 요청만 서버에 정상적으로 전달되지 않는 문제가 발생하였음.
⬇️
해당 팀원은 ModHeader를 사용중이었으며, 헤더의 key 값이 사용자가 설정한 key 값과 일치하지 않아 인증이 거부되어, 요청이 서버에 도달하지 않은 문제였음. ModHeader에서 해당 key를 제거하여 이슈를 해결함.
RestTemplate를 사용하여 외부 API로 헤더에 토큰 값을 담아 요청을 보냈지만, 토큰이 정상적으로 전달되지 않는 문제가 발생하였음.
⬇️
외부 API로 요청을 보냈다고 생각하였지만, 내부 서버에서 해당 요청을 처리하고 있었고, RestTemplate를 통해 요청을 전달할 때 헤더에 토큰을 추가하는 방식으로 이슈를 해결할 수 있었음.
협업 관련 미팅 중 요구사항 정의서에 JWT 처리 로직에 대한 내용이 포함되지 않았다는 점이 확인되었고, 이로 인해 개발 진행 시 토큰 정보를 어떻게 처리할 것인지에 대한 이슈가 발생.
⬇️
개발사에서는 토큰을 처리하는 기능을 배제하여 개발을 진행하였고, 고객사에서 토큰을 처리하는 로직은 기능 구현이 완료된 후 추가하는 방식으로 이슈를 해결.
개발사에게 요청한 기능들이 외주 개발 기간을 초과하여, 인증 정보 처리 로직을 고객사에서 개발 해야 하는 이슈가 발생.
⬇️
개발사에서 추가 인원을 투입하여 빠른 시일내에 기능을 구현.
프로젝트의 이슈를 관리하는 멤버들을 등록하기 위해 팀 생성, 조회, 수정, 삭제 기능 구현
이슈를 관리할 프로젝트의 생성, 조회, 수정, 삭제 기능을 구현
처음부터 팀 협업을 통해 API 문서화부터 핵심 기능 구현까지 서로의 역할과 목표를 명확히 하고, 각자 맡은 부분을 수행하면서 이를 해결해 나가는 과정에서 문제 해결 능력과 기술적 역량이 크게 성장했다고 느꼈습니다.
추가로 팀원들과의 지속적인 소통과 피드백을 통해 서로의 접근 방식을 공유하며 개발 지식을 더 많이 배울 수 있었습니다.
처음 협력 팀과 서로 고객이 되어 요구사항 명세서를 작성해보며 고객의 입장과, 서비스를 제공해주는 입장에서 새로 배우게 되는 것들이 많았습니다. 이번 경험이 추후 기업에서 업무를 진행할 때도 큰 도움이 될 것 같습니다.
요구사항 명세서 관련
개발 진행 중에 맞춰가는 것도 나쁘지 않으나, 처음부터 명확하고 자세하게 작성하면 불필요한 수정과 논의를 줄일 수 있음. 초기 요구 사항을 충분히 분석하고 정의하면 혼란을 최소화할 수 있고, 명확한 API 명세와 함께 유효성 검증, 에러 처리 방식, 데이터 구조 등을 구체적으로 작성하면 협업이 더 원활해질 것으로 보임. 결과적으로 개발 속도와 코드 품질 모두 향상될 가능성이 높음.
일정 관련
요구사항이 추가될 가능성이 있다면 미리 이 정보를 공유하고 대비할 수 있도록 하는 것이 중요하다고 생각됨. 개발 과정에서 변경 사항이 발생하는 건 자연스러운 일이지만, 사전에 이를 예측하고 팀원들과 공유하면 불필요한 혼란과 재작업을 줄일 수 있음. 또한, 유연한 설계와 확장성을 염두에 둔 개발 방식을 채택하면 요구사항 변경에 더 효과적으로 대응 할 수 있을 것으로 보임.
이번 이슈 관리 시스템 IssueMap 프로젝트는 실무에 가까운 개발 환경을 경험하며, 요구사항 분석부터 설계, 구현, 테스트, 배포까지 백엔드 개발 전 과정을 체계적으로 수행한 프로젝트였습니다. 각 팀원이 명확한 역할을 가지고 책임감 있게 기능을 구현했으며, API 설계 및 문서화, 보안 처리, 테스트 자동화 등 실무에서 요구되는 다양한 기술을 직접 적용해봄으로써 실력을 한층 끌어올릴 수 있는 계기가 되었습니다.
특히, JWT 기반 인증 처리, Redis를 활용한 토큰 저장 및 로그아웃 구현, RESTful한 API 아키텍처 설계, 외주 협업 이슈 해결 경험 등을 통해 실무에서 발생할 수 있는 다양한 상황에 유연하게 대응할 수 있는 역량도 함께 키울 수 있었습니다.
또한, 협력사와의 요구사항 명세서 기반 협업, 트러블슈팅 과정, 그리고 팀 내부의 지속적인 코드 리뷰와 피드백 문화는 향후 어떤 개발 환경에서도 빠르게 적응하고 협력할 수 있는 기반이 되었다고 생각합니다.
실시간 알림 기능: 이슈 상태 변경, 코멘트 등록 시 사용자에게 실시간 알림 기능 추가 (WebSocket, SSE 활용)
대시보드 시각화: 이슈 통계 및 프로젝트 진행 현황을 그래프로 시각화하여 관리 효율성 향상
모바일 대응: 반응형 UI 또는 모바일 앱 연동 기능 개발
DevOps 고도화: CI/CD 파이프라인 고도화 및 테스트 커버리지 자동 리포팅 시스템 적용
보안 강화: Refresh Token 재사용 방지, Access Token IP 기반 검증 등 고급 보안 정책 적용
Project Repository
https://github.com/Maptrackers/IssueMap