에뛰드 블로그
article thumbnail

🩷 4주차 미션

 

🩵 기본미션

🤍 02-1 마무리 용어

서버 : 정보나 서비스를 저장하고 있다가 필요한 경우 네트워크를 이용해 사용자의 컴퓨터 혹은 스마트폰으로 전달해 주는 것

 

클라이언트 : 데이터를 받는 것

 

데이터 센터, IDC : 해당 조건을 갖춘 전문 시설

  • 역할에 적합한 하드웨어 성능을 갖춰야 하며 언제 어디서든 접속할 수 있는 네트워크가 해킹으로부터 안전
  • 적절한 온도와 습도 유지
  • 정전이 나거나 기기에 물을 쏟거나 화재가 나는 사고를 미연에 방지
  • 사고가 났을 경우 빠르게 대처

 

서버 호스팅 : 서버용 컴퓨터를 임대해 주는 서비스

  • 데이터 센터에 설치된 컴퓨터에 원격으로 접속해서 내 컴퓨터처럼 사용할 수 있음

 

온프레미스 : 회사에서 자체적으로 서버를 갖추고 관리하는 것 

  • 보안 이슈, 회사의 필요에 따라 서버를 자유롭게 구축하고 통제할 필요가 있을 경우 사용

 

클라우드 컴퓨팅 : 서버, 저장소, 데이터베이스, 네트워킹, 소프트웨어 등과 같은 컴퓨팅 서비스를 인터넷 (클라우드)으로 제공하는 방식

  •  아마존 AWS, 마이크로소프트 애저, 구글 GCP, 네이버 NCP 
  • 장점
    • 필요에 따라 사용량을 탄력적으로 조절
    • 서버 사용에 필요한 어려운 기술적 요소들도 제공받을 수 있음
    • 자체적으로 전문가를 두지 않아도 안정적으로 자사 또는 개인 서비스 손쉽게 운영 가능
  • 단점
    • 서버가 회사 외부에 있음
    • 높은 비용

 

  사용자 특징
IaaS 각종 서버 설정부터 서비스 운영까지 직접 수행하는 운영자 가상화된 서버 컴퓨터에서 필요한 모든 인프라를 사용자가 구축
PaaS  인프라와 플랫폼을 사용하여 소프트웨어를 개발하는 개발자 이미 구축된 인프라 또는 플랫폼을 이용하여 애플리케이션 개발, 실행 및 관리
SaaS 클라우드 서비스 소비자 모든 인프라, 플랫폼 및 애플리케이션은 제공 업체가 관리하며 웹 브라우저로 제공

 

🤍 02-2 마무리 용어

HTML

HyperText MarkUp Language : 웹 페이지의 각 요소들을 배치하는 역할, 마크업 언어

 

태그 : '< >' 안에 글자가 들어간 body, div, h1 같은 요소

          형식 : <태그> 내용 </태그>

 

CSS : 특정 요소들의 디자인 속성을 지정해 주는 역할, 스타일 언어

 

자바스크립트 : 동적인 기능을 구현하는 역할

 

웹 표준 : 국제적으로 권고된 사항

 

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

 

적응형 웹 : 화면 크기에 따라 PC용과 모바일용 웹사이트를 따로 만드는 것

 

🤍 02-3 마무리 용어

쿠키 : 사용자의 브라우저에 저장되는 정보

  • 보안 상 민감한 정보를 저장하는 데에는 적합하지 않음
  • 혹여 남에게 탈취되거나 사용자에 의해 조작되어도 크게 문제가 되지 않을 정보를 브라우저에 저장함으로써 웹사이트 이용을 편리하게 해 주는 것

세션 : 서버가 사용자를 기억하고 있는 상태

 

토큰 : 서버가 기억해 둘 필요 없이 사용자가 스스로를 증명할 수 있는 수단

 

캐시 (cache) : 데이터를 다시 가져오지 않도록 가까이 저장해 두는 기술

 

CDN (콘텐츠 전송 네트워크) : 각지에 캐시 서버를 두어 부하를 분산시키는 기술

  • 본 서버는 캐시 서버에 데이터를 한 번만 전송하면 됨
  • 대량의 데이터를 전송하는 서비스, 유튜브나 넷플릭스 같은 동영상 서비스에 필수

 

  쿠키 세션
저장 위치 사용자의 브라우저 서버 (세션 쿠키 제외)
관리 주체 사용자 서비스 제공자
저장 대상 가벼운 편의를 위한 정보 서버가 관리해야 할 정보 (ex : 로그인)
유지 기간 브라우저를 종료해도 데이터 유지 브라우저 종료 시 데이터 삭제
요청 속도 빠름 느림 (서버 처리 필요)
보안 취약 (로컬 기기에 저장) 좋음 (브라우저 메모리에 저장)

 

🤍 02-4 마무리 용어

네이티브 앱 : 기기에 작동하는 운영체제에 특화된 방식으로 제작된 앱

  • 장점
    • 각 스마트폰의 모든 기능 사용할 수 있음
    • 성능을 최대한으로 활용할 수 있음
    • 카메라나 GPS, 블루투스 등 기기 내 장치 사용하는 앱, 영상 편집 앱과 같이 성능 최대한 사용해야 하는 앱에 최적화
  • 단점
    • IOS, 안드로이드에서 돌아가는 애플리케이션을 만들어야 하기 때문에 개발에 소요되는 인력과 시간 많이 필요
    • 앱을 공개하거나 업데이트 하는데 있어도 까다로움

 

크로스 플랫폼 : 하나의 소스 코드로 여러 개의 운영체제에서 작동할 수 있는 프로그램을 만드는 방식

  • 장점
    • 네이티브 앱으로 제작하는 것보다 더 쉽고 적은 자원으로 애플리케이션 제작 가능
      • 리액트 네이티브 - 자바스크립트
      • 닷넷 마우이 - C#
      • 스케줄 관리 앱, 쇼핑 앱, 사진 보정 앱과 같이 캘린더, 카메라 등 스마트폰의 기본 기능을 활용하면서도 높은 성능을 요구하지 않는 앱을 개발하기에 적합
    • 스케줄 관리 앱, 쇼핑 앱, 사진 보정 앱과 같이 캘린더, 카메라 등 스마트폰의 기본 기능을 활용하면서도 높은 성능을 요구하지 않는 앱을 개발하기에 적합
  • 단점
    • 네이티브 앱에 비해 성능을 100% 끌어올릴 수 없음
    • 기기의 활용도 떨어짐
    • 주요 기능을 업데이트할 때마다 양쪽 앱의 마켓의 심사를 거쳐야함

 

웹 앱 : 모바일 기기의 브라우저에서 접속할 수 있는 모바일 웹사이트로, 모바일 앱과 비슷한 UI/UX를 제공

  • 장점
    • 웹 개발만으로 모바일용 앱을 만들 수 있음
    • 새 기능을 추가할 때 서버에 파일을 업로드해서 사이트 내용만 바꿔주면 업데이트되므로 언제든 최신 버전으로 유지 가능
    • 플랫폼 제작 비용도 저렴하고 개발 기간도 짧음
  • 단점
    • 기기의 활용도와 성능 면에서 네이티브 앱과 크로스 플랫폼보다 뒤쳐짐
    • 높은 사양이 요구되는 작업이나 스마트폰 내부의 파일들을 다루는 기능, 각종 하드웨어 장치를 다루는 기능은 구현이 불가능하거나 어려움
    • 브라우저를 연 다음 필요한 앱 주소를 입력해서 접속해야 함

 

하이브리드 앱 : 네이티브 앱 안에 웹 뷰로 웹사이트를 실행해서 네이티브 앱과 웹 앱의 장점을 취할 수 있는 앱

  • 장점
    • 제품을 유연하게 운영할 수 있음
    • 웹사이트로 구현이 불가능한 필수 기능들만 네이티브 앱으로 개발하고, 나머지 기능은 모두 웹 뷰 안에 들어갈 웹사이트로 만들면 되기 때문에 비교적 개발 부담이 적음
    • 앱 기능을 업데이트할 때를 제외하고 앱 마켓의 심사 없이 언제든지 앱의 내용을 수정할 수 있음
    • 앱의 특성에 따라 네이티브로 제작할 부분과 웹 뷰로 제공할 부분을 다양하게 구성할 수 있음

 

PWA : 아이콘 추가 등 진보된 브라우저 기능을 활용해서 네이티브 앱 같은 다양한 편의 기능을 제공하는 웹 앱

  • 홈 화면에 저장되면 브라우저에서 실행되고 네이티브 앱처럼 작동됨

 

🤍 02-5 마무리 용어

프론트엔드 : 웹사이트 구성 요소 중 클라이언트 컴퓨터의 브라우저에서 작동하는 부분

 

백엔드 : 웹사이트나 모바일 앱과 같은 온라인 애플리케이션의 구성 요소 중 서버에서 작동하는 프로그램

 

프레임워크 : 프로그램의 기본 골격이 갖춰져 있어 개발자가 원하는 제품을 수월하게 만들 수 있도록 출시 된 개발키트

 

API (Appliction Programming Interface) : 여러 소프트웨어의 특정 기능들을 요청하고 호출하기 위한 약속

 

API는 인터넷으로 연결된 주체뿐만 아니라 컴퓨터 내부의 시스템과 소프트웨어끼리 기능을 호출하는 데도 사용됨

 

  • 일반적으로 하나의 서비스를 만드는 프론트엔드 개발자와 백엔드 개발자 사이에 만들어짐
    • 프론트엔드 개발자 : 요청을 보내고 응답으로 반환된 결과를 화면에 반영하는 기능 다룸
    • 백엔드 개발자 : 요청된 작업을 수행하는 기능 다룸

 

XML : 마크업 언어, HTML과 같은 원리이며 동일한 태그가 사용됨

  • 각 항목은 해당 이름의 태그 사이에 정보가 들어 있는 형태로 구성되어 있음
  • 태그 안에 또다른 태그를 다층적으로 포함할 수도 있음

 

JSON : XML의 단점을 보완한 또다른 형식

  • XML 보다 구문이 간단하고 높은 가독성을 가지고 있음
  • 각 항목마다 따옴표가 붙고 그 뒤에 [대괄호]로 둘러싸인 배열, {중괄호}로 둘러싸인 또 다른 객체가 오는 식으로 정보 작성

YAML : 정보 인식을 위해 줄바꿈과 들여쓰기가 필수 문법 요소

  • 주로 프로그램 설정 파일과 같이 개발자가 편리하게 읽고 작성하기 위한 용도로 사용됨

 

🤍 02-6 마무리 용어

IP 주소

  • 각 기기를 식별할 수 있는 특수한 번호
  • 기기 자체의 주소가 아니라 기기와 연결된 네트워크 끝 단의 주소
  • 통신을 위해 사용하는 식별 번호

IP (Internet Protocol) : 인터넷 상에서 데이터를 주고받기 위한 통신 규약

 

도메인 : 사람이 기억하기 쉽도록 문자로 만들어 특정 IP에 연결한 인터넷 주소

 

DNS : IP 주소와 이에 해당하는 도메인의 IP 정보를 갱신하며, 특정 도메인에 대한 요청이 들어오면 IP 주소를 찾아 알려주는 시스템

 

WWW : 월드 와이드 웹의 줄임말, 전 세계의 사람들이 정보를 공유하고 소통할 수 있는 인터넷 공간을 의미

  • WWW는 하이퍼텍스트를 지원하기 때문에 문서 활용에 엄청난 편리성 제공함
  • 인터넷에 제공되는 많은 서비스를 통합 접속하는 역할을 함
    • 기존 프로토콜과 서비스 제공
    • 인터넷에 존재하는 텍스트 형태의 문서, 그림, 음성 등 다양한 자료 또한 URL 형태인 인터넷 주소를 이용해서 하나의 문서로 관리 및 제공

 

HTTP : 클라이언트의 요청과 서버의 응답으로 이뤄지는 통신규약을 나타냄, 네트워크로 이어진 두 컴퓨터가 어떤 종류의 소통을 할지 지정하는 것

 

웹사이트에서 세션이나 토큰을 사용해야만 로그인 상태를 유지할 수 있는 것은 웹사이트에서 사용하는 통신의 종류가 HTTP이기 때문이다. 이 HTTP의 한계를 극복하기 위해 브라우저에 쿠키로 세션 ID 또는 토큰을 담아 각 요청과 함께 반환해서 로그인 여부를 증명하는 것

 

단점

  • 요청과 응답 사이에 아무런 보안 장치 없이 데이터가 그대로 보내짐
  • 클라이언트와 서버가 HTTP로 주고받는 편지는 암호화되지 않은 평문이기 때문에 중간에 누군가 들여다보면 내용이 그대로 노출됨
  • 아이디와 패스워드를 입력하고 로그인 버튼을 눌렀을 때 이 정보를 서버로 보내는 편지가 탈취당하면 그대로 유출됨

 

HTTPS : HTTP에 보안 기능을 추가해서 보다 안전하게 만든 통신 규약

 

원리 :

  • 도메인의 소유주는 CA라 불리는 인증기관 중 하나로부터 유로 또는 무료로 인증서를 발급받음
  • 인증서를 웹사이트에 적용하면 이후 서버는 클라이언트가 접속할 때 먼저 인증서를 제시
  • 브라우저에는 신뢰받는 CA 목록과 그들이 발급한 인증서를 판별할 수 있는 장치가 있음
  • 브라우저는 이 장치를 사용해서 인증서가 유효한지 확인
  • 인증서가 확인된 웹사이트는 주소창에 자물쇠 표시로 HTTPS를 사용하는 곳임을 나타냄
  • 클라이언트와 서버는 서로 비밀리에 약속된 방식을 통해 주고받는 내용을 암호화하고 해독
  • 클라이언트가 보낸 편지는 내용이 암호화되어 있기 때문에 탈취자가 열어 봐도 내용을 확인할 수 없음
  • 해독법을 아는 서버만 열어볼 수 있음
  • 서버가 클라이언트에 보내는 편지 또한 마찬가지로 해독법을 아는 클라이언트 외에는 내용을 확인할 수 없음

장점

  • 웹사이트 노출이 HTTP보다 유리함

 

🤍 02-7 마무리 용어

데이터 : 어떤 의미나 목적 없이 단순히 수집된 순수한 '자료'

정보 : 데이터가 모여서 의도나 목적에 따라 분석되어 의미가 부여된 것

 

데이터베이스

  • 데이터 (data)의 기지 (base) 라는 단어로 구성되어 있음
  • 많은 양의 데이터를 한데 모아 놓은 곳
  • 소프트웨어를 통해 데이터를 저장하고 읽고 수정하거나 삭제할 수 있는 형태의 데이터 집합

데이터베이스 관리 시스템 (DBMS : DataBase Management System) : 데이터베이스 관리 전문적 프로그램

DBMS의 기능

  • 특정 데이터를 저장, 조회, 삭제, 수정
  • 데이터가 중복되거나 잘못된 형식으로 저장되는 것을 방지
  • 외부의 접근을 통제하고 사용자마다 권한을 지정해서 보안 유지
  • 허용된 사용자가 원하는 대로 데이터를 살펴보고 조작할 수 있도록 여러 가지 인터페이스 제공

관계형 데이터베이스 (RDBMS : Relational Database Management System) : 관계형 데이터베이스 관리 시스템

관계형 데이터베이스 특징

  • 테이블 (표) 에 데이터를 저장하는 방식으로 데이터베이스 관리
  • 테이블은 열과 행으로 이루어져 있음
  • 열에는 형식을 미리 설정하기 때문에 잘못된 데이터가 입력되는 것을 방지함
  • 각각 나누어진 테이블을 열의 관계에 따라 하나로 합쳐서 조회할 수 있는 조인 (join) 기능 제공
  • 데이터를 효율적이고 안정적으로 관리하는 동시에 편리하게 활용 가능

⭐ 관계형 데이터베이스는 테이블을 분할해서 데이터를 입력하는 방법 제공

 

SQL (구조화 질의 언어, Structured Query Lanauage) : 관계형 데이터베이스에 작업을 지시하기 위해 사용되는 언어

  • 구문이 영어 문장과 같은 구조로 되어 있어 비교적 직관적으로 명령의 의미를 파악할 수 있음
  • 프로그램에 필요한 모든 데이터 작업을 RDBMS에 요청할 수 있음

NoSQL : 관계형을 제외한 모델을 사용하는 DBMS를 가리키는 용어

 

🤍 02-8 마무리 용어

운영체제 (OS) : CPU, 메모리, 그래픽 카드 등의 기기를 가동하고 제어해서 사용자가 컴퓨터로 각종 작업을 할 수 있는 환경 마련

  • PC용으로 사용되는 운영체제
    • 마이크로소프트의 윈도우
    • 애플의 맥OS
    • 리눅스
  • 모바일용으로 사용되는 운영체제
    • 구글에서 만드는 안드로이드
    • 애플의 IOS
  • 스마트워치용 운영체제
    • WearOs
    • WatchOS
  • 초소형 컴퓨터 운영체제
    • 라즈베리 파이 OS

GUI (Graphic User Interface) : 그래픽으로 구성된 사용자 인터페이스

  • 그래픽 요소들을 사용해서 사용자와 상호 작용하는 것을 의미
  • 아이콘, 툴바, 버튼, 메뉴창, 탐색기나 파인더처럼 직관적이고 알기 쉬운 그림 요소로 구성되어 있음
  • 1981년 제록스에서 처음 마우스를 활용한 GUI를 만듬
  • 애플에서 GUI를 적극 활용하면서 컴퓨터의 대중화에 크게 기여함

CLI (Command Line Interpreter) : 명령어 줄을 입력해서 사용할 수 있는 인터페이스

  • 환경에 따른 기본 명령어를 알고 있어야 하기 때문에 진입 장벽 높음
  • 명령 프롬포트가 CLI의 대표적인 예시

커널 : 운영체제의 핵심 기능을 담당하는 핵심 요소

  • 하드웨어와 응용 프로그램 사이에서 작동하며 컴퓨터에서 일어나는 모든 일을 통제
  • 여러 프로그램을 원활히 사용할 수 있도록 작업 간 우선순위를 정해서 컴퓨터 자원을 효율적으로 분배
  • 메모리가 어떤 작업에 얼마나 할당되는지, 어떤 프로그램이 CPU를 얼마나 오래 점유하는 지 등을 끊임없이 추적하며 컴퓨터가 안정적으로 작동할 수 있도록 관리함

오픈소스 : 누구나 소스 코드를 볼 수 있고 개발에 참여할 수 있는 소프트웨어

 

🩵 선택미션

🤍 데이터베이스 (DB)

  • 많은 양의 데이터를 한데 모아 놓은 곳 (base)
  • 특정 소프트웨어나 프로그램에 종속되지 않고 독립적인 정보의 집합 또는 저장소
  •  

🤍 DBMS (Database Management System)

  • 원하는 데이터를 쉽게 꺼내 쓰고 관리하기 위한 데이터베이스 관리 시스템 (소프트웨어)
  • 그 중 표처럼 생긴 데이터베이스를 "RDBMS (관계형 데이터베이스)" 라고 함
  • 관계형이 아닌 데이터베이스를 "비 관계형 데이터베이스 (NoSQL 데이터베이스)" 라고 함

 

🤍 SQL (구조화 질의 언어)

  • DB에 저장된 자료를 사용자가 원하는 방식대로 조회, 수정, 삭제 등을 하기 위해 데이터를 관리하는 방식
  • Sequel 이라고 부르기도 함
  • 표 같이 생긴 DB에 정보를 넣고 조작하는데 사용되는 언어
  • 범용 프로그램이라기 보다는 특정 사용처에 사용되는 도메인 특화 언어
  • RDBMS는 SQL을 통해 데이터를 관리

 

🤍 RDBMS (Relational Database Management System)

  • SQL 데이터베이스라고 함
  • 엑셀과 같이 테이블(표)에 데이터를 저장하는 방식
  • 데이터 형식이 미리 설정되어 있어 데이터가 잘못 입력되는 것을 방지함 (일관성)
  • 관계형 데이터베이스는 데이터가 중복되거나 수정 시 많은 row를 수정해야하는 등의 단점을 해결하기 위해 테이블을 분할해서 데이터를 입력하는 방법을 제공
  • 나누어진 테이블은 join 기능을 사용해서 다시 테이블을 합쳐서 보거나 관리할 수 있음.
  • 종류: 오라클 데이터베이스, MySQL, 마이크로소프트 SQL 서버 (MSSQL), PostgreSQL, MariaDB, SQLite

 

🤍 NoSQL

  • 관계형이 아닌 데이터베이스를 지칭하는 말
  • MongoDB : 문서 데이터베이스로 RDBMS의 일관성을 포기한 대신, 유연성과 속도를 장점으로 갖고 있음
    • 용량이 커졌을 때 다른 곳으로 분산하기 쉬워 빅데이터 등 대량의 데이터를 빨리 처리해야 할 때 사용
  • Redis : 키-값 데이터베이스로 한 쌍의 값으로 데이터가 간단하게 저장
    • 세션을 구현하기 위해 세션 아이디와 사용자 번호값을 메모리에 저장하는 용도로 사용
  • neo4j : 그래프 데이터베이스. 프로그래밍에서 graph는 여러 정점(node)들이 특정 방향과 방식으로 관계를 맺는 자료구조를 의미
    • cyper를 사용하여 sns 상의 사회적 관계 또는 키워드나 해시태그 기준으로 뉴스기사의 연관성 등을 알 수 있음

 

🩷 CHAPTER 02 정리

 

CHAPTER 02

🩷 02-1 서버는 뭐고 AWS는 뭔가요? 🩵 서버와 클라이언트 서버 : 정보나 서비스를 저장하고 있다가 필요한 경우 네트워크를 이용해 사용자의 컴퓨터 혹은 스마트폰으로 전달해 주는 것 클라이언

voielactee.tistory.com

해당 글을 보시면 더 자세하게 설명되어 있습니다!!

profile

에뛰드 블로그

@MISU 미수

매일매일 1px씩 성장하는 개발자입니다! 성장하면서 알게 된 저의 지식을 공유하고 성장하기 위한 블로그입니다

검색 태그