Skip to content

parallel45/portfolio_Practice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

portfolio_Pracitce

✨팀프로젝트_MeetU

참여자 : BE - 박종봉, 김준년, 박해빈, 김다소미, 이성미 / FE - 이승운, 김다인, 정연희 (총 8인)
프로젝트 기간: 2023. 12. 21 ~ 2024. 1. 23
프로젝트 도구: IntelliJ IDEA, MySQL, POSTMAN, GIT, GITHUB
개발 환경: Windows
기술 스택: JAVA, SPRING BOOT, SPRING SECURITY, MYSQL, GRADLE, AMAZON EC2, AMAZON AWS, JWT

📒 프로젝트 개요 및 배경

  • 해당 프로젝트는 경남ABC-LAB코스의 팀 프로젝트로서 출발하였으며, 해당 서비스를 구상하게 된 이유는 다음과 같습니다.
  • 신학기 새로운 반, 새로운 친구 사귀기에 고민을 느끼는 학생들을 위해 우리반 친구들과 친해질 수 있는 어플리케이션 서비스를 개발했습니다.
  • 기존 카카오톡 오픈채팅들과 차별점을 두기위해 회원의 MBTI와 취미생활등을 수집하여 비슷한 관심사의 친구들을 추천하도록 하였습니다.
  • 우리반 친구들만 가입할 수 있는 반(BAND)를 신설하여 친구들끼리 친목을 도모하는것에 목적이 있습니다.

📒 담당 역활 소개

  • 반(BAND)의 초기 데이터베이스 생성, 반의 생성, 조회, 삭제, 수정등의 4가지 코드를 구현하는 역활을 맡았습니다.
  • 4가지 코드를 구현하고 단위테스트를 실행하는 역활을 맡았습니다.
  • POSTMAN을 활용하여 API문서를 작성하였고, 각 백엔드 팀원들의 코드를 통합한 이후 오류코드를 수정하였습니다.
  • 제가 활용한 기술스택은 JAVA, SRPINGBOOT, SPRINGBOOT JPA, MYSQL, GRADLE 입니다.

📒 프로젝트 진행 단계

  • 프로젝트기간은 2023년 12월 19일부터 2024년 1월 25일까지였으나, 기존팀원의 하차 및 팀 재조정 이슈로 12월27일부터 새롭게 진행되었습니다.
  • 2023년 12월 27일 ~ 2024년 1월 3일 : 새로운 팀원들과 어떠한 서비스를 개발할 것인지 의논하였고, 오픈마켓, 운동코칭서비스, 여행가이드서비스, 친구만들기 프로젝트 중 친구만들기 서비스가 최종 선정되었으며 각 개발파트와 역활을 분담하고 요구사항 정의서와 API명세서 작성 ERD다이어그램등을 작성하는 시간을 가졌습니다.
  • 2024년 1월 4일 ~ 동년도 1월 10일 : 배정받은 개발파트에 대해서 코드 작성을 실시하였으며, 요구사항 정의서 보강, 화면정의서등을 작성 하였습니다.
  • 1월 11일 ~ 17일 : 반 관련 코드의 단위테스트 및 오류에 대해서 수정하였으며 각 팀원들의 코드를 1차로 합치고 머지 후 오류코드를 수정하였습니다. 또한 프로젝트 2주차에 작성한 API명세서를 보강하는 시간을 가졌습니다.
  • 1월 18일 ~ 24일 : 각 팀원들의 개발 코드를 하나로 병합하고 AMAZON AWS등을 이용해 배포하였으며, 24일날 발표하는 시간을 가졌습니다.

각 링크 첨부 : 테이블정의서 및 요구사항 정의서, ERD다이어그램, API명세서

📒 프로젝트 세부 과정

  • 기본 코드 작성 ) RESTful 방식으로 검색, 생성, 조회, 삭제등의 코드를 작성하였습니다.
    코드가 실제로 작동하는지 확인하기 위해 H2콘솔에서 mysql로 데이터베이스를 변경하였으나, 구동에 실패하였습니다.
    구동에 실패한 이유는 사전에 mysql이 intelliJ와 제대로 연동되어 있지 않았기 때문이었고, 이에 application.yaml에 mysql 관련 정보를 입력하니 mysql에 데이터테이블이 생성되고 postman을 통해서 관련정보를 입력시 입력한 정보들이 제대로 mysqlDB에 저장됨을 확인하였습니다.

  • 단위테스트 및 오류수정) 각 기능 코드들을 완성 할때마다 테스트를 실시하였기 때문에 단위테스트를 실시 할 때 크게 오류 점을 발견하지는 못하였습니다.
    그러나 밴드 고유번호로 조회할때와 학교명으로 검색시 초등학교의 경우는 6학년까지 존재한다는 점, 중고등학교는 3학년까지만 존재한다는 점등 학교에 따른 학년의 입력범위를 제한할 필요가 있는등의 개선점등이 파악되어 이를 수정하였습니다.

  • 통합 코드 수정) 각 백엔드팀원들의 코드를 병합한 후, 발견되는 오류들을 수정하였고, 오류 발생 부분에 대해서는 콘솔에 오류관련 문구를 보고 찾아가 수정하였습니다.
    대다수의 오류는 병합 전 표기법에 대해 지적받아 이 부분을 모두 카멜표기법에 맞추게 되었는데 모든 코드를 수정하지 않아 발생하는 것들이 많았고, 엔티티매핑에 관련한 오류들도 약간 있었으나 구글검색을 참고하여 수정하였습니다.

  • API 명세서 수정) 완성된 코드에 맞게 API명세서를 일부 수정하였습니다.

📒 프로젝트 결과

https://www.notion.so/codestates/5554f8b3326d4f16ad77c5339b1432cd?pvs=4#cbdf2f2af7fd403ca367524da9025b67 https://www.notion.so/codestates/5554f8b3326d4f16ad77c5339b1432cd?pvs=4#d5d3066417c949e69bda86fa04bc583c

📒 프로젝트 한계 및 개선방안

한계

  • 처음 반 관련 기능을 맡을 때 생성, 조회, 삭제, 수정, 가입 총 5가지 기능을 구현하려고 했으나 프로젝트를 시작하면서 Spring Boot Security의 코드과 jwt토큰에 대한 코드를 개발할 사람을 정하지 않고 후순위로 미뤄두고 시작해 보안관련기능들이 매우 늦게 구현되어 역량부족으로 프로젝트 종료시까지 반 가입에 대해서 구현하지 못한 것이 아쉬움이 남습니다.
  • 충분히 유효성 검사를 실시 했다고 생각했는데 프론트엔드과 결합했을 때 학교명이 공란임에도 불구하고 검색이 되고, 가입이 되거나하는등 오류가 발생하였고 시간관계상 수정하지 못하고 제출했던 점이 아쉽습니다

개선방안

  • 기능에 대해서 가능한 여러 변수에 대해서 스스로 검토하고 유효성검사를 보다 꼼꼼하게 실시하고 여건이 된다면 타인에게도 검수를 부탁하여 안전성에 만전을 기하고 싶습니다.
  • 보안관련해서 공부량이 부족함을 인정하고 교육수료후에도 보안관련 보충학습 실시하여 스스로 보안코드를 작성하고 응용할 수 있도록 하겠습니다.

About

포트폴리오 작성연습

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published