현수의 제 2의 뇌
article thumbnail
반응형

프로젝트 시작

대덕소프트웨어마이스터고등학교에 입학하고, 전공동아리를 들어가 1학년 신입생들과 함께 프로젝트를 진행하도록 하였다.
최대한 학교와 관련해서 프로젝트를 진행하려고 노력했는데, 우리 학교 급식실에 있는 급식 건의가 생각났다.
그래서 우리는 급식 건의를 좀 더 쉽게 할 수 있도록 하는 앱을 개발하고자 하였지만 더 나아가 음식을 주제로 급식 리뷰, 급식 건의, 배달파티, 급식 조회 등 기능을 생각해 내었고 프로젝트를 시작하게 됐다.

개요는 나의 전공인 백엔드를 기준으로 작성할거다
- 프로젝트 명칭 : 먹젠 
- 개발인원 : 5명 ( BE 2, Flutter 1, IOS 1, Design 1 )
- 개발기간 : 4월 11일 ~ 진행중
- 주요기능
     - 사용자 - Spring Security, Jwt, 사진 업로드
     - 급식 조회
     - 급식 게시판
          -댓글
     - 급식 건의
     - 급식 리뷰
          - 사진 업로드
          - 댓글
     - 배달파티
- 개발환경 : Spring boot 2.7.11-SNAPSHOT, gradle, Spring Data Jpa, Spring Security
- JDK 17
- 데이터베이스 : Mysql, Redis
- 배포 : EC2, S3, Docker-compose, Github Action CI/CD
- 툴 : Gtihub, GitKraken     

Api Docs

   Auth

User

Board

Board-comment

 

Meal

Review

Review-comment

Meal-suggestion

Delivery-party

이정도의 Api 가 나왔다.

 

와이어프레임 ( 화면 구성 )

나는 이 프로젝트에서 PM(Project Manager)을 하게 됐는데 가장 프로젝트에 대해 잘 알고 있었기 때문에 내가 와이어프레임을 만들고 디자이너가 UI를 만들었다.

UI

내가 제주도 사람이라서 프로젝트 이름을 제주도 방언으로 하였는데, UI도 약간 한라봉의 색인 주황색을 섞어서 디자인이 나왔다.

 

개발

학교에 입학하기 전에 백엔드를 공부했다고 해도, 프로젝트를 진행하는건 처음이었기 때문에 학교 선배의 도움이 필요했고 프로젝트를 진행하면서 학교 선배가 엄청 도움이 되었다. 우리의 목적은 프로젝트를 진행하는것도 있지만 프로젝트를 진행하면서 공부도 같이 해야하기 때문에 프로젝트 기간이 길다. 지금 서버 개발은 거의 끝났지만 Flutter 와 IOS는 아직 개발 초기에 있다.

 

모놀리식 아키텍쳐로 한 프로젝트와 한개의 DB를 사용하여 추후 유지보수가 어려울지라도, 엄청나게 대형 프로젝트가 아니기 때문에 모놀리식 아키텍쳐를 사용하였다. 

 

테스트

테스트는 그냥 Postman 을 이용해서 테스트를 진행하였다. 하지만 Postman 을 이용한 테스트를 하면서 반복되는 테스트를 계속 해야한다는 불편함을 느꼈다. 그래서 다음 프로젝트는 테스트 주도 개발을 해보고 싶다.

서버 배포

서버 배포는 Github Action 을 사용해서 무중단 배포를 구축하였다.

앱을 도커 이미지로 빌드하여 도커허브에 올려 EC2에 올려 PULL 받고 컨테이너로 올리는 방식을 사용했다.

이 과정을 자동화 하여 무중단 배포를 구축하였다.

앱에 있는 환경변수는 Docker-compose 를 사용해 설정해 주었다.

EC2

EC2는 간단하게 t3.small 로 만들었고

보안규칙의 인바운드 규칙에서 Mysql 3306 포트를 열어 내 로컬의 Datagrip 과 연결해서 DB를 보고있다.

S3

급식 리뷰와 유저 프로필사진을 업로드 하는 과정에서 S3 를 사용해서 기능을 구현하였다.

 

아주 간단하게 어떤식으로 배포했는지 설명해 보았다. 그래서 현재 앱 친구들은 이 서버와 통신하며 Api 연동을 하며 View도 짜면서 개발하는 단계에 있다.

 

Api 연동을 하는걸 옆에서 지켜보면서 어떻게 더 데이터를 보기쉽게 줄지 생각해 보았고 버그도 수정하고 있다.

 

마지막으로..

고등학교 신입생의 첫 프로젝트이고, 내가 정말 열심히 서버를 개발하였기 때문에 이 프로젝트가 무사히 끝났으며 좋겠다.

이 프로젝트를 진행하면서 프로젝트가 어떤식으로 진행되는지 잘 알게된것 같다.

이 글에서는 프로젝트를 정말 간단하게 소개했는데 추후 프로젝트가 완전히 끝나게 된다면 다시 올릴 생각이다.

아직 많이 부족하지만 이 프로젝트를 통해서 한단계 더 성장한것 같고 어떠한 결과물이 나온다는게 정말 좋은것 같았다.

 

 

Github

백엔드 레포지토리

https://github.com/mukgen/mukgen_BackEnd_V1

 

Organization

https://github.com/mukgen?view_as=public

 

mukgen

mukgen has 4 repositories available. Follow their code on GitHub.

github.com

 

SNS

개발 인스타 계정

https://instagram.com/dev_hyunx

 

profile

현수의 제 2의 뇌

@부현수

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!