yejichoi·2023년 3월 7일

코딩 지식

목록 보기
3/4
post-thumbnail

서버 호스팅

데이터 센터를 소유하지 않은 기업이나 개인에게 센터 안의 서버를 임대해 주는 데이터 센터
⚡️ 비용을 절감할 순 있지만, 유출되어서는 안 되는 정보를 외부 컴퓨터에 둔다는 리스크

온프레미스(on-premise)

회사에서 자체적으로 서버를 갖추고 관리하는 것
⚡️ 주로 민감한 정보를 다루는 회사들
⚡️ 서버에 관한 모든 것을 통제할 수 있다는 장점이 있지만, 서버에 대한 지식과 경험이 있는 인력이 필요

클라우드 컴퓨팅 서비스

컴퓨터 한 대를 통째로 임대하는 것이 아니라, 가상화 기술을 사용하여 수많은 컴퓨터를 클라우드 형태로 합친 다음 사용자들에게 필요한 만큼 작은 조각들로 떼어서 임대
⚡️ 필요에 따라 사용량을 탄력적으로 조절 가능
⚡️ 서버 사용에 필요한 어려운 기술적 요소들 제공 가능
⚡️ 아마존-AWS, MS-애저, 구글-GCP, 네이버-NCP

클라우드 서비스 종류

IaaS

이아스 또는 아이아스

  • 클라우드를 이용해서 서버용 인프라, 즉 가상화된 서버 컴퓨터를 대여해 주는 서비스
    단순 호스팅과 같음 → 보안, 네트워크 등 각종 설치 직접 수행해야 함
    ⚡️ AWS-EC2

PaaS

파스

  • 애플리케이션을 개발하고 서비스하기 위해 필요한 서버, 운영체제, 개발 환경 등을 자동으로 설치하고 제공하는 플랫폼
    소프트웨어만 개발하면 손쉽게 앱 실행 및 배포 가능
    ⚡️ AWS-일래스틱 빈스토크나 헤로쿠

SaaS

싸스

  • 소프트웨어가 이미 완성된 형태로 제공되는 클라우드 서비스
    인프라나 개발 환경을 구축할 필요 없이 사용료만 지불하면 이미 만들어진 소프트웨어 사용 가능
    불필요한 기능이 비용에 포함되어 있기도 함
    ⚡️ 구글 드라이드, 네이버 N클라우드, 드롭박스. MS 오피스 365

웹 브라우저

정적인 언어

  • HTML : 웹 페이지의 각 요소들을 배치
    📍 마크업 언어 : 문서나 데이터의 구조를 표현하는 데 사용되는 언어
  • CSS : 요소를 디자인하는 역할 (스타일 언어)

동적인 언어

  • Javascript : 요소에 기능을 넣어주는 역할

웹 표준

브라우저마다 HTML, CSS, 자바스크립트 코드를 실행하는 방식에 유의미한 차이가 없도록 해서 개발자들이 브라우저 문제로부터 자유롭게 웹사이트를 프로그래밍할 수 있도록 한 것

반응형 웹

페이지 내 요소들을 신축성 있게 만들어 기기나 화면 크기에 맞게 너비나 높이, 위치 등을 자동으로 조절하는 웹사이트

적응형

화면 크기에 따라 PC용과 모바일용 웹사이트를 따로 만드는 것
⚡️ m.naver.com

단순한 구조의 웹사이트는 하나의 반응현 웹
복잡한 구조의 웹사이트는 적응협 웹


반복되는 작업을 줄이는 이점

쿠키

크롬이나 사파리 같은 브라우저에 저장되는 작은 텍스트 조각
사용자가 갖고 있는 정보
제 3자가 조회하는 것도 가능 → 민감한 정보 저장 x
📍 남에게 탈취되어도 크게 문제되지 않을 정보를 브라우저에 저장함으로써 웹사이트 이용을 편리하게 해 줌
⚡️ 장바구니, 검색 기록, 웹 서핑 내역이 마케팅과 광고에 활용

세션

세션은 로그인 여부 등 사용자와 서버의 관계가 기억되어 보존되고 있는 상태 → 즉,
서버가 사용자를 기억하고 있는 상태

토큰

해당 서버만이 만들 수 있는 토큰을 발급함으로써 상태를 저장하지 않고도 사용자의 로그인 여부를 파악할 수 있게함
⚡️ 쿠키 + 세션 -> 토큰

세션토큰
장점사용자의 상태를 원하는대로 통제 가능상태를 따로 기억해 둘 필요가 없음
단점메모리에 로그인되어 있는 사용자의 상태를 보관해야 함한 번 로그인한 사용자의 상태는 토큰이 만료 될 때까지 제어가 불가능함

캐시(cache)

데이터를 다시 가져오지 않도록 가까이 저장해 두는 기술
반복적으로 사용하는 콘텐츠를 빠르게 이용할 수이 있고 데이터 사용량도 줄일 수 있음

쿠키와 캐시의 차이점

쿠키 - 사용자의 수고를 덜어주는 데 목적을 둠
캐시 - 데이터의 전송량을 줄이고 서비스 이용 속도를 높이는 데 목적을 둠

CDN

여러 지역에 설치된 캐시 서버들을 사용하여 본 서버로 들어오는 요청들을 분산 처리하는 서비스
⚡️ i.e) 체인점, 대량의 데이터를 전송하는 서비스는 필수(유튜브, 넷플릭스)


애플리케이션 만드는 방법

네이티브 앱

  • 각 운영체제에 맞게 앱을 개발하는 방법
    카메라, GPS, 블루투스 등 기기 내 장치들을 세밀히 다루거나, 영상 편집 앱과 같이 성능을 최대한 사용해야 하는 앱을 만들 때
    ⚡️ 안드로이드 - 코틀린, 안드로이드 스튜디오
    ⚡️ iOS - 스위프트, 엑스코드

크로스 플랫폼

  • 같은 소스 코드로 안드로이드, iOS 모두 작동
    💥 네이티브 앱에 비해 성능을 100% 끌어올릴 수 없음 → 주로 스케쥴 관리 앱, 쇼핑 앱, 사진 보정 앱(높은 성능을 요구하지 않는 앱)
    ⚡️ 구글-플러터, 페이스북-리액트 네이티브, MS- 닷넷 마우이(구 자마린)
    ⚡️ 플러터 - 다트, 리액트 네이티브 - 자바스크립트, 닷넷 마우이 - C#
    ⚡️ i.e) 에어비앤비, 페이스북, 인스타그램
    📍 모바일 뿐만 아니라 소프트웨어를 운영체제별로 개발할 때도 네이티브 앱, 크로스 플랫폼을 사용함

웹 앱

  • 스마트폰의 기종이나 기기에 상관없이 모든 단말기에서 같은 콘텐츠를 볼 수 있는 웹사이트
  • 앱 마켓에서 다운로드해 설치하는 응용 프로그램이 아니라 크롬이나 사파리 등의 브라우저에 접속해서 이용할 수 있는 애플리케이션 (사실상 웹사이트)
  • 모바일 앱과 비슷한 UI/UX를 제공

하이브리드 앱

  • 앱의 대다수 콘텐츠를 웹사이트로 제공하면서 추가로 네이티브 앱에서 사용 가능한 기능까지 제공하는 앱
  • 네이티브 앱 안에 웹 뷰로 웹사이트를 실행해서 네이티브 앱과 웹 앱의 장점을 취함
    📍 웹 뷰 : 브라우저 역할

PWA

  • 📍 Progressive Web Apps
  • 앱이 아닌 모바일 웹사이트
  • 아이콘 추가 등 진보된 브라우저 기능을 활용해서 네이티브 앱 같은 다양한 편의 기능을 제공하는 웹 앱
    ⚡️ 푸시 알림 기능, 카메라, 블루투스, 진동 알림 등 다양한 기능 활용

0개의 댓글