캡스톤 디자인 회고 - 프로젝트 개요

최수환·2023년 6월 8일
1

캡스톤 디자인

목록 보기
1/5
post-thumbnail

회고 개요

  • 약 3달가량 진행된 캡스톤 디자인 프로젝트에 대해서 무엇을 했고, 어떤 것을 배웠는지, 무엇을 느꼈는지 회고해보려고 한다.
  • 이번 회고는 프로젝트 과정에서 마주쳤던 문제들과 주로했던 고민들에 대해서 중점적으로 서술할 예정이다. 따라서 기타 주제 및 인프라나 환경등에 대해서는 간략하게 설명하고 넘어갈 것이다.

주제선정 배경 및 목표

  • 현대인들은 건강 관리를 매우 중요시한다. 운동은 필수요소가 되기 시작했으며, 영양소를 철저하게 계산해 식단을 계획하기도 한다. 이에 따라 식단을 관리해 주는 어플리케이션에 대한 수요가 꾸준히 증가하고 있다.

  • 따라서 Daily-PT 라는 딥러닝을 활용한 식단관리 어플리케이션을 개발하였다.

    • (어플리케이션 초기화면)
    • 이 어플리케이션은 사용자가 자신의 식단사진을 올리면 딥러닝을 통해 음식을 식별하고 몇 칼로리를 섭취하였는지 알려준다.
    • 위의 기능 외에도 복용하는 영양제를 등록하면 같이 섭취하면 안되는 영양제 정보를 알려주고, 복용시간을 알려주는 알림 기능이 있다.
  • 높은 식단 인식율과 효율성 있는 식단 및 건강 관리 앱을 개발하여 실용화하고, 개발한 IOS 안드로이드 앱을 스토어에 등록하는 것을 목표로 하였다.

프로젝트 환경

이 프로젝트에서 나는 CI/CD와 인프라 설계 및 배포를 담당했다.

< DB 환경 >

  • PostgreSQL

< Backend 환경 >

  • nestJs 9.1.9
  • npm 9.5.0

< Frontend 환경 >

  • React Native
  • expo 6.3.2

< AI 환경 >

  • YOLO Model

< 인프라 환경 >

  • EKS
  • Docker
  • AWS
  • ArgoCD

< CI/CD 환경 >

  • Github Actions
  • DockerHub

인프라 설계

지난 프로젝트에 이어 쿠버네티스를 좀 더 다뤄보고 싶은 마음에 EKS를 이용해 클러스터로 배포하였다.

  • ArgoCD를 이용해 EKS 오브젝트를 배포
  • 사용자의 식단 이미지를 저장하기 위한 퍼블릭 S3사용 및 IAM을 통한 접근제한
  • RDS를 사용한 DB관리
  • Frontend와 Backend, AI서버는 각각 도커라이징 후 Deployment를 사용해 배포
  • Ingress를 사용하여 Frontend서버를 외부에 노출
  • EC2 인스턴스에 대해 AutoScailing Group으로 지정해 트래픽 변화에 유동적으로 대응할 수 있도록 함

여러가지 문제와 고민들

  • 프로젝트를 진행하면서 수많은 문제들을 직면했지만 그중 가장 기억에 남는 문제와 고민 몇가지를 회고해보려 한다.
  • 다음 블로그부터 아래의 내용들을 하나씩 회고할 것이다.

1. 어플리케이션 배포에 대한 고민
2. Frontend 도커라이징 에러 해결
3. Nginx 경로 문제 및 Backend 주소 노출 위험 해결
4. Jenkins 대신 Github Actions 선정

profile
성실하게 열심히!

0개의 댓글