🩷 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
해당 글을 보시면 더 자세하게 설명되어 있습니다!!