📆GMG(가면가) - 1(개발 환경 구성)


가면가 프로젝트

seukeulinsyas-2025-12-05-012947.png 캡스톤이 끝나고 막학기가 시작된 이후 좋은 기회로 훌륭한 기획자분을 알게 되어 같이 프로젝트를 진행하기로 했다. 실제로 서비스를 출시해서 사용자들의 피드백이나 로그등을 보면서 기능을 추가한다거나 성능을 개선하는 등의 경험을 가지기 위한 목적이 크다

일단 프로젝트에 대해 간단히 소개를 하면 모임 약속을 잡을 때를 생각해보면 단톡방이나 메신저에서 “언제 모여?”, “어디가 좋아?”를 물어보면서 시간이 많이 소요되는 문제가 있다. 다들 경험을 했을것이다. 그러다 흐지부지 된다거나 결국 못정해서 만나서 또 한참 고민한 경험들이 있을것이다. 이런 문제를 해결하기 위해 프로젝트를 진행하게 되었다.

기존 약속잡기 서비스들은 많이 있다. 하지만 우리가 실제 대화를 했을 때보면 난 여기 아니면 돼, 난 이때 아니면 가능해, 난 이것만 못먹어 같은 이야기를 하면서 약속 시간, 장소등을 정하는데 기존 서비스에서는 선호(가고 싶은곳, 가능한 시간)을 묻는다. 이렇듯 사람은 좋아하는 것보다 싫어하는 것을 비교적 더 빨리 말할 수 있는데 이런 특성들과 차별점을 두었다는 특징이 있다. 암튼 자세한 내용을 서비스가 완성된 후 자세하게 기록을 해봐야겠다.


개발 환경 구성

서비스 주제를 선정하는 것(중간에 변경이 되었던 것) -> 주제를 고도화 하는 것 -> 디자인 -> 기능 명세서 작성 -> 프론트엔드 개발자 구하기 -> 아키텍처 설계 -> 데이터 베이스 설계 -> API 초안 설계 등의 과정들이 있었지만 이런 것들은 생략을 하고 오늘 포스팅에서는 개발 환경 구성에 대해 기록하려고 한다. 이유는 이 프로젝트가 어떤 단체나 동아리 기업등에서 진행하는게 아니라 개인들끼리 모여서 하는 것이다보니 이게 아무런 지원이 없다 ㅋㅋ 그래서 개발 서버를 구성을 할 때 aws을 사용할 수 없었다. 과금이 되기 때문이다.

그래서 후보군이 오라클, GCP가 있었다. 서로 사양을 비교를 해보니 GCP는 너무 사양이 안좋았고 오라클은 아주 좋은 스팩을 사용을 할 수 있는 것을 보고 체크카드 등록해서 계정을 만들어서 만들어 보려고 했다. 근데 오라클이 너무 인기가 많았기 때문에 (free tier가) 가용한 용량이 없다는 것이다… 이런 ㅋㅋㅋ

그래서 azure를 사용하기로 했다. 크레딧을 300달러 주고 무료로 사용할 수 있는 서비스들도 개발 환경 구성하는데는 크게 무리가 없을 것 같아 바로 환경을 구축했다.


과정

우선 azure는 aws와 비슷하면서 달랐다 내가 너무 aws에 익숙해져 있어서 처음 적응하는데 조금 시간이 걸리긴 했다. 옛날에 azure로 인강을 들었었긴 한데 실제 springboot 서버 올리고 디비랑 연결까지 해본적이 없었다.

1
2
3
4
5
github action -> 
Dockerfile로 build 이미지 만들고 -> 
azuer container registry에 업로드 ->
이미지 pull ->
새로운 컨테이너 실행

대충 이런 플로우로 진행을 하는데 ci같은 과정에는 pull request가 열릴 때 수정될 때 test를 실행하도록 구성을 했다.

또 aws의 RDS for mysql같은 서비스인 Azure Database for MySQL을 만들어서 VM의 IP에서만 접근이 가능하도록 설정을 해두었다.

암튼 이 과정속에서 고군분투를 하긴 했지만 다음에 또 하면 아주 빠르게 할 수 있을것 같다 ㅋㅋ


앞으로

개발 환경 구성이 끝났기 때문에 본격적으로 api 개발을 해야한다~~ 또 저번 캡스톤을 진행하면서 고질적인 문제가 있었는데 실제 서버에 배포를 하고 났을때 생기는 문제를 파악하기 위해 서버 로그를 봐야 했었는데 그때는 그냥 서버에 ssh로 연결을 해서 logback설정해둬 각 단계별로 생기는 로그들을 일일이 봐야했던 번거로웠던 점이 있었다. 이번 기회에 이 문제를 해결해야할 필요가 있었고 또 실제로 서비스가 되는 프로젝트인 만큼 모니터링 시스템이 필요하겠다는 생각이 강하게 들었다. 그래서 찾아보다가 ELK라는 것이 있었다. Elasticsearch + Logstash + kibana 줄임말인데 로그나 상태들을 수집하는 방법이라고 하는데 한번 공부해보면서 구성을 해볼 생각이다. 재미있게따