개발기간 2022.06 ~ 2022.09 (3개월)
플랫폼 Android
담당역할
유저 (로그인, 수정, 보안) 개발, CICD(Docker, DockerHub, Jenkins) 파이프라인 구축
infra 서버 구축, NCP이용한 SMS 문자 인증
패키지 구조 설정, Exception Handler구성
이번 앱런칭은 방학기간에 사이드 프로젝트를 진행하고싶어 지인들로 구성하여 앱런칭을 진행하였다.
이번 앱런칭에 회고를 작성한다.
회고
첫째, 코드리뷰의 부재
기술 발전에 큰 도움이 된 것은 '집단지성'이라고 생각한다. 코드리뷰는 집단지성을 극대화 할 수 있다. 하지만, 각각의 팀원은 사이드 프로젝트이기에 투자할 수 있는 시간은 모두가 달랐다. 그렇기에 코드리뷰를 진행하게 되면 누군가에게 업무가 몰리는 현상이 일어나 코드리뷰를 진행하지 않았다. 하지만, 프로젝트가 끝나고 난 이후 다른 사람들의 코드를 보면 충분히 배울 점과 아쉬운 부분이 있었는데 이것들을 서로 짚어줬더라면 서로 성장하는 프로젝트가 됐을텐데 아쉬움이 남는다.
둘째, 모니터링과 이중화
"실제 서비스를 한다고 생각했으면 아래와 같은 아키텍쳐를 가졌을까?" 라는 생각에서 시작되었다. 실제 서비스와 사용 유저가 있었으면 단순히 2개의 서버로 CI서버와 CD서버로 구성하지 않았을 것이다. 개발 서버와 배포 서버를 분리하고 사용자들의 안정적인 사용이 가능하게 설계를 해야했는데 이중화 작업을 하지 못해서 DB만 이중화를 진행하고 서버는 이중화를 진행하지 않았다. 또한, 모니터링을 통해 몇 명의 유저가 어떠한 호출에 서버의 자원이 어느정도 사용되는지 모니터링 툴을 반영했어야 했다. 그 점에서 사이드 프로젝트를 단순히 토이 프로젝트 수준으로 내가 규제한 것은 아닌지? 생각하게 되며 다음 프로젝트에서는 실제 서비스와 유저가 있다고 생각하고 설계를 하는 것이 나에게 많은 성장할 것 같다.
셋째, 실제 사용자 유치
총 3번의 앱 출시를 거치면서 실제 유저가 있던 적은 없다. 출시에 의의를 두고 개발하였지만 실제 사용자가 없는 것은 때로는 허망함을 줄 때도 종종 있었다. 실제 트래픽을 관리해보고 싶은 욕구도 있는데 막상 출시가 이루어지면 다들 개발에도 루즈해지는 것도 있으며 새로운 프로젝트를 시작하는 경우가 많았다. 이제는 실제 사용자를 유치해보고 싶다. 그렇다면 다시 서비스(앱)를 돌아보면 유저가 좋아하는 서비스인지 내가 성장을 위한 서비스인지 묻는다면 나는 내가 성장을 위한 서비스였다. 내가 넣고싶은 기술과 아키텍쳐를 넣었다. 그 부분에서 사용자 유치는 힘들지않았을까 라는 생각과 이제는 내가 하고싶은 기술을 사용자가 원하는 서비스에 넣는 프로젝트를 진행하고 싶다.
개발 구성
개발환경
Language | JAVA (JDK 1.8) |
Infra | AWS EC2(Ubuntu 20.04), RDS, S3 |
Framework | Spring Framework 2.7.1, Hibernate |
DB | MySQL |
Library, API | JPA, Naver Cloud Platform, JWT |
CICD | Jenkins, Docker, DockerHub |
Collaboration | Slack, Swagger, Figma, Discord |