[오픈매트] - 03. 개발방법, 기술스택, 우선순위 정하기
RECOMMEND BEFORE POSTS
0. 들어가면서
이전 포스트에서는 요구사항과 간단한 기능을 정의했다.
이번에는 개발방법을 정하고, 기술스택을 정하고, 우선순위를 정하기 위해 고민했던 생각들을 정리하고 확정지을 것이다.
1. 개발방법
어떤식으로 개발을 할지 -> 크게 모놀리식, MSA 형태의 개발을 고민하였다.
1.1. 모놀리식
모든 기능을 하나의 프로젝트에 구현하는 방식
- 처음에는 이 방식으로 개발하는 것을 고려했다.
- 하지만 어플의 기능과 서비스를 확정 짓지 않았고, 기능과 서비스의 추가와 각각의 배포가 자유로워야 한다고 생각했다.
- 따라서 모놀리식 보다는 다른 방법을 찾아보게 되었다.
1.2. MSA
마이크로서비스가 여러개 존재하고, 이를 조합하여 하나의 어플리케이션을 구현하는 방식
- 어떠한 서비스를 만들어 어플을 구성할지 정확히 정하지 않았고, 기능과 서비스의 추가와 각각의 배포가 자유로워야 한다고 생각했다.
- 추후에는 서비스에 따라 어울리는 기술스택을 다르게 적용하여 개발해보고 싶었다.
- 또한 msa형태의 개발을 경험해보고 싶었다.
- 따라서 msa형태의 개발을 고려했다.
2. 기술스택
msa형태에 어울리는 기술스택을 고려해보았다.
- Frontend
- 어플로 구현할 것이기 때문에 선택지는 native, cross-platform으로 한정했다.
- native는 ios, android 모두 개발해야 하기에 cross-platform을 선택했다.
- cross-platform으로는 flutter, react-native이 있지만
- flutter가 ui적으로나 기능적으로나 더 우위에 있다고 판단하여 flutter를 선택했다.
- Backend
- 처음에는 go를 선택해서 개발하고 싶었다.
- 개인적인 관심도 있고 하고싶은 것에 go를 쓸일이 많을거 같다는 생각 때문이었는데
- go를 선택하게 될경우 msa로 개발하기 위해 선택해야 하는 라이브러리나 방법들이 다양하고 사람들이 이걸 많이 쓴다더라! 하는게 찾기 쉽지 않아서 이 생각은 우선 접었다.
- java, spring boot를 이용하기로 했다. 개발을 좀 더 빨리 진행하고 싶기도하고 msa를 구현함에 있어서 정형화된 방법이 있어 더 쉽게 구현할 수 있을거라고 생각했다.
- 따라서 1차적으로 java를 이용한 spring boot를 이용해 개발하고 추후에는 go로 바꿔주던지 다른 서비스를 go로 개발해 추가하던지의 방법을 통해 개발을 진행하려 한다.
결론: Flutter, Spring Boot, PostgreSql
3. 우선순위
요구사항에 따른 서비스의 우선순위
- 기본적으로 회원과 인증, 인가에 대한 부분은 가장 먼저 구현해야할 부분이라고 생각하며
- 고민이었던 부분은 중고거래와 오픈매트 시스템 중 어떤 서비스를 먼저 개발하느냐 였다.
- 중고거래의 경우 중고나라, 당근마켓, 플레이주짓수(네이버카페) 등 이미 존재하는 것이 많아 후순위로 미루었고
- 오픈매트라는 이름에 맞게 오픈매트를 통한 주짓수 수련인들의 관계라던가 오픈매트 그 자체에 집중할수 있게 오픈매트 관련 서비스를 먼저 개발하고자 한다.
- 오픈매트 서비스에서 채팅도 중요하기에 같이 또는 이어서 바로 채팅 서비스를 개발할 것이다.
- 또한 오픈매트 서비스 구조에 대해 다시한번 생각하고 정립하는 시간이 필요할 것이다.
CLOSING
다음 포스트들에서 생각해 보아야할 것은 무엇일까?(일단 주저리 주저리 써보자)
- 어떠한 방법, 스택, 우선순위를 가지고 개발할지 결정했다. 이제는 우선순위에 따라 조금 더 상세하게 구체화를 시키며 개발에 들어갈 것이다.
- 따라서 다음 포스트에서는 오픈매트에 대한 구체화와 msa형태에 대한 전반적인 아키텍처를 다룰 것이다.
- 또하 회원 및 인증/인가에 관련된 개발, 인터페이스 정의, 데이터베이스 정의 등으로 구성하려한다.
RECOMMEND NEXT POSTS
REFERENCE
없음
Leave a comment