[Mobile] 애플리케이션 개발
by 구설구설모바일 애플리케이션 개발 프로젝트를 시작하기에 앞서서 애플리케이션을 개발한 이후에 퍼블리싱 하기 위해서는 어떤 과정을 거쳐야 하는지 알아보고자 한다.
웹 애플리케이션의 경우에는 기기에 설치하는 과정 없이 도메인을 통한 접속이 이루어지기 때문에 클라이언트와 백엔드 서버 모두 AWS와 같은 클라우드 서버로 가동할 필요가 있었다.
그러나 모바일 애플리케이션의 경우에는 설치된 앱을 통해 접속을 하기 때문에 클라이언트를 퍼블리싱 할 필요는 없이 설치 파일을 구글 플레이스토어 또는 애플 앱스토어에 설치할 수 있도록 등록하는 과정이 필요하다. (안해봐서 모름)
스토어에 등록하는 과정은 나중에 알아보려고 한다.
백엔드 서버의 경우 웹 애플리케이션과 동일하게 퍼블리싱을 진행하면 된다.
그렇게 된다면 퍼블리싱이 일어나는 것은 백엔드 서버 하나이기에 EC2를 통해서 퍼블리싱을 진행하면 될 것 같다.
로드 밸런서, NAT 게이트 웨이 등의 AWS기타 도구를 사용하여 AWS를 세팅하면 좋겠지만, 그것은 프리티어로 감당하기에는 역부족이기에 나중에 해도 될 것 같고, EC2로 돌아가는 Nodejs서버와 우리는 MongoDB Atlas를 통해서 DB를 관리할 예정이기에 DB의 소통만 관리하면 되지 않을까 싶다.
클라이언트와 백엔드 통신을 위해서는 REST API를 만들어야 하는데, Expressjs를 통해서 API를 개발하려고 한다. Expressjs에 대해서 알아보고 개발하면서 시행착오를 겪는 시간이 필요할 것 같다.
개인적으로는 JS로 프론트엔드만 개발을 진행하고 백엔드는 개발해본적이 없는데, DB스키마와 관계성 정의, 데이터 CRUD를 해보는 경험을 얻을 수 있을 것 같아서 기대 된다.
AWS설계
원래 생각했던 구조는 이건데, 지피티한테 돈 많냐고 개쳐맞고 수정함.
[AWS] 💰 프리티어 요금 폭탄 방지 💸 - 무료 사용량 정리
S3: 애플리케이션 설치 파일 (.apk, .ipa)등이 들어갈 예정
EC2: Node js로 구성된 백엔드 서버가 돌아갈 예정.
gateway: 요청 ip 확인 용
cloudFlare: 요청을 확인하고 ip를 변경해서 게이트웨이로 전달
DB: AWS가 아닌 MongoDB Atlas 사용
NAT Instance: 데이터 입출력 ip 통일하기 위해서
-------------------------------------------------------
Expressjs vs Nestjs
백엔드 API 개발 프레임워크는 아마 두가지..? 를 많이 사용하는거 같은데,
Expressjs보다 Nestjs를 기업에서 더 많이 선호하는 것 같다.
실제 채용 공고를 살펴보니 요구하는 스택에 Expressjs보다 Nestjs가 더 많음.
그래서 둘의 차이를 알아 볼 수 있는 글들
Express만 하다가 Nest를 하고 느낀 점
Express에서는 다음과 같이 CRUD를 만든다. 사실 간편하고 빠르게 서버 어플리케이션을 확장할 수 있다는 게 장점이다. 하지만 Express는 구조적으로 짜임새가 있지는 않다. 그래서 결국에는 차세대
velog.io
NestJS와 Express의 차이점 및 선택 기준
NestJS와 Express의 차이점을 비교하고 각 프레임워크의 장단점 및 적합한 사용 상황에 대해 알아봅니다.
f-lab.kr
Express <- 보통 js
Nextjs <- 보통 TS
타입 안정성 및 빌드 시에 발생하는 에러를 체크하는 것은 확실히 TS가 좋아 보임
그런데 TS를 팀원들이 가능하실 지 여쭤 볼 필요가 있어 보인다.
그리고 이를 통해서 JS와 TS를 정했다면 아마 프론트 엔드 개발 언어도 이를 따라가는 것이 좋지 않을까 생각이 든다.
안그러면 왔다갔다 해야하는 경우도 있고, 둘 다 사용하려면 러닝 커브도 복잡해 질 것 같고, 그리고 TS를 둘다 사용하면 정의한 타입을 바탕으로 DB에서 엔티티를 가져오는 것과 이를 통해 프론트엔드에서 활용하는 것도 하나의 타입을 바탕으로 할 수 있어 구조를 단순화 할 수 있고 타입의 안정성을 가져올 것이라고 생각한다.
DB의 위치
MongoDB와 AWS를 둘다 활용하는 방법은 크게 2가지가 있다.
블로그의 정보
공부중임
구설구설