코드스테이츠| PMB 11/Review
[정리] App의 종류와 백엔드
Sutella
2022. 4. 26. 14:45
728x90
App
네이티브앱
- 모바일 기기에 최적화된 앱
- 기기의 고유 정보에 직접 접근 가능 → 관련 정보로 데이터 출력 가능
- 앱/플레이 스토어에 등록 및 판매, 다운로드 가능
- 게임처럼 퍼포먼스가 중요하거나, 카메라, 센서 등의 하드웨어 기능이 필요한 경우 선택
- iOS (언어: Swift, Objective C, 프레임워크: Cocoa)
- AOS (언어: C, C++, Java, Kotlin)
모바일 웹 vs. 모바일 웹앱
모바일 웹
- 모바일 화면에 맞춰 구성된 웹 화면
- PC로도 볼 수 있으나, PC에서의 출력은 고려 X 설계
- 풀브라우징 방식 (화면 전체 내용을 서버에서 새로 받아 현재 화면 갱신) → 앱에 비해 접속 속도 느림
- 이동중 서버 접속 장애 발생 가능성 (=불안정)
- ex. m.naver.com
모바일 웹앱
- 네이티브앱의 장점 + 모바일 웹의 장점
- 모바일 웹과 비슷하지만 출력화면과 구동 방식을 앱과 동일하게 보이도록 만드는 것
- 웹 기술로 네이티브 앱처럼 보이도록 구현 → But 실질적으로는 웹
- 네이티브 앱보다 성능 떨어짐, 하드웨어적 기능 사용 불가
반응형 vs. 적응형 웹앱
- 반응형 웹앱: 동일한 URL로 모바일 기기의 사이즈에 맞게 자동적으로 이미지나 텍스트가 변경되는 홈페이지
- 적응형 웹앱: 모바일 기기에 따라 각 화면에 맞게 제작하는 형태, 기기에 따라 별도의 URL 제공. 유지관리에 비용 많이 소모
하이브리드 앱
- 웹 + 네이티브 앱
- ex. 네이버, 다음, 구글
- 네이티브 앱 구동 시 특정 웹을 불러오는 방식
- 앱에 기반이 되는 콘텐츠 영역은 html 기반인 웹앱으로 제작, 최종 패키징 처리만 OS 플랫폼에서 처리
- 네이티브 앱 형태이기 때문에 마켓에서 다운받아 모바일에 설치 가능, 하드웨어 기능 사용 가능
- 네이티브 앱 자체보다는 퍼포먼스가 떨어질 수 있음. (GPS 정확도, 구동 속도 등)
- 트렌드
- 서비스 초기: 웹앱이나 하이브리드로 시작 (기능 적고 가격 저렴, 개발 기간이 짧음)
- 이후: 고객 니즈 다각화, 유저 수 급증 → 네이티브 앱으로의 변경 고민
프론트엔드 개발자와 소통 시 유의 점
- 개발 기간 고려하기
- 마크업과 클라이언트 구현 업무는 다르다
- 모든 UI의 구현은 의도를 명확하게 전달해야 한다
Server
- 프론트엔드와 달리 정해진 언어가 없어서 여러 언어/프레임워크 사용 가능
- 자바-스프링 / 자바스크립트-익스프렛스 js, 노드js / 파이썬-장고 / 루비 - 레일스
- DB = Data server + DBMS + SQL
백엔드 개발자와 소통 시 유의 점
- 한 번 정하면 바꾸기 어렵다
- 항상 관리자(Admin) 페이지를 고려해야 한다.
- 서버 리소스는 비즈니스와 직접적인 연관이 있다
- 트래픽 양 및 서버 비용
- 확장성, 유지보수
- 수집 데이터에 대한 관리 및 운영
클라우드 서비스와 기술 스택
- Load Balancer
- 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때, 여러대의 서버가 분산처리하여 서버의 로드율 증가, 부하력, 속도저하 등을 고려하여 적절히 분산처리해 주는 시스템
- 트래픽이 상시로 변하거나 일정 시간에 트래픽이 몰리는 서비스의 경우 load balance 설정이 서비스 안정성에 큰 역할
기술 스택을 결정하는 기준
- 기술 스택: SW를 만들기 위해 사용하는 프로그래밍 언어와 도구 일체 (프로그래밍 언어, DB, 프레임워크 등)
- 기술 스택을 설정하는데 중요한 요소
- 높은 생산성
- 신뢰성
- 개발자 고용 가능성
- 코칭 가능성
- HR, 기업 문화에 끼치는 영향도 생각해야 함
- 무조건 트렌디한 언어, 기술 선택 X
728x90