코드스테이츠| 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