Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- AWS
- 99일지
- 자바
- 항해
- java
- 부트캠프
- 컴퓨터구조론 5판
- 스파르타내일배움캠프WIL
- til
- 프로그래머스
- 스파르타내일배움캠프TIL
- 내일배움캠프
- Python
- 99클럽
- 운영체제
- 소프트웨어
- MySQL
- 백준
- Flutter
- 개발자스터디
- Spring
- 개발자블로그
- 코딩테스트
- 컴퓨터개론
- 개인공부
- 스파르타내일배움캠프
- wil
- 스파르타코딩클럽
- 중심사회
- 국비
Archives
- Today
- Total
컴공생의 발자취
웹개발 용어 정리 3 본문
728x90
반응형
·✅ 중학생도 알아들을 수 있게 쉽게 정리해보세요!
스레드(Thread, 쓰레드)
: 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위
* 프로세스와 스레드의 차이점?
- 프로세스 : 운영체제로부터 자원을 할당받은 작업의 단위
- 프로그램은 코드 덩어리 파일, 그 프로그램을 실행하는 게 프로세스
- 스레드 : 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위
- 스레드는 프로세스의 코드에 정의된 절차에 따라 실행되는 특정한 수행 경로
멀티스레드(Multi Thread, 멀티쓰레드)
: 둘 이상의 스레드를 동시에 실행
* 장점
- Context-Switching 할 때 공유하고 있는 메모리만큼의 메모리 자원을 아낄 수 있다.
- 스레드는 프로세스 내의 Stack 영역을 제외한 모든 메모리를 공유하기 때문에 통신의 부담이 적어서 응답 시간이 빠르다.
* 단점
- 스레드 하나가 프로세스 내 자원을 망쳐버린다면 모든 프로세스가 종료될 수 있다.
- 자원을 공유하기 때문에 필연적으로 동기화 문제가 발생할 수 밖에 없다.
도메인(Domain)
: 인터넷에 연결된 컴퓨터를 사람이 쉽게 기억하고 입력할 수 있도록 문자(영문, 한글 등)로 만든 인터넷주소
DNS(Domain Name System)
: 호스트의 도메인네임(www.example.com)을 네트워크주소(192.168.1.0)로 변환하거나, 그 반대의 역할을 수행하는 시스템
* 동작 원리
- 컴퓨터에서 브라우저를 켜고 www.google.com을 입력한다.
- 컴퓨터는 컴퓨터 내부에 등록 되어 있는 DNS 서버로 www.google.com에 해당되는 IP 주소를 물어본다.
- DNS 서버는 해당 도메인의 IP 주소를 알려준다.
- 컴퓨터는 이를 받아서 IP 주소에 해당하는 컴퓨터에 접속하게 된다.
프로토콜(Protocol)
: 통신 프로토콜 또는 통신 규약은 컴퓨터나 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계
* 기본 요소
- 구문(Syntax) : 전송하고자 하는 데이터의 형식(Format), 부호화(Coding), 신호레벨(Signal Level) 등을 규정
- 의미(Sematics) : 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정
- 시간(Time) : 두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정
* 기능
- 단편화 ( Fragmentation ) : 송신측에서는 긴 데이터 블록을 손쉽게 전송할 수 있도록 크기가 똑같은 작은 블록으로 나누어 전송
- 재합성 ( Assembly ) : 수신측에서 쪼개진 작은 데이터 블록을 재합성하여 원래의 메시지로 복원하는 기능
- 캡슐화 ( Encapsulation )
- 각 프로토콜에 적합한 데이터 블록을 만들려고 데이터에 정보를 추가하는 것
- 플래그, 주소, 제어 정보, 오류 검출 부호 등을 부착하는 기능
- 연결 제어 ( Connection Control ) : 비연결 데이터 전송(데이터그램)과 연결 위주 데이터 전송(가상회선)을 위한 통신로를 개설 · 유지 · 종결하는 기능
- 흐름 제어 ( Flow Control ) : 데이터 양이나 통신속도 등이 수신 측의 처리 능력을 초과하지 않도록 조정하는 기능
- 오류 제어 ( Error Control ) : 데이터 전송 중 발생할 수 있는 오류나 착오 등을 검출하고 정정하는 기능
- 순서 결정 ( Sequencing ) : 연결 위주의 데이터를 전송할 때 송신 측이 보내는 데이터 단위 순서대로 수신측에 전달하는 기능
- 주소 설정 ( Addressing ) : 발생지, 목적지 등의 주소를 명기하여 데이터를 정확하게 전달하는 기능
- 동기화 ( Synchronization ) : 두 통신 객체의 상태 ( 시작, 종류, 검사 등 )를 일치시키는 기능
- 다중화 ( Multiplexing ) : 하나의 통신로를 여러 개로 나누거나 회선 여러 개를 하나의 통신로로 변환시켜 다수의 가입자가 동시에 사할 수 있도록 하는 기능
- 전송 서비스 ( Transmission Service ) : 통신 객체를 사용하기 쉽도록 별도로 추가 서비스( 패리티 검사, 보안도, 서비스 등급, 우선순위 등)를 제공하는 기능
HTTP, HTTPS
* HTTP : 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜
- 80번 포트 사용 및 보안 없음
- HTTP 구조 : 상태를 가지고 있지 않은 Stateless 프로토콜이며 Metho, Path, Version, Headers, Body 등으로 구성
* HTTPS : HTTP에 데이터 암호화가 추가된 프로토콜
- 443번 포트 사용 및 암호화 지원
- HTTPS 동작 과정
- 클라이언트 ( 브라우저 )가 서버로 최초 연결 시도
- 서버는 공개키 ( 인증서 )를 브라우저에게 넘겨줌
- 브라우저는 인증서의 유효성을 검사하고 세션키를 발급함
- 브라우저는 세션키를 보관하며 추가로 서버의 공개키로 세션키를 암호화하여 서버로 전송함
- 서버는 개인터로 암호화된 세션키를 복호화하여 세션키를 얻음
- 클라이언트와 서버는 동일한 세션키를 공유하므로 데이터를 전달할 때 세션키로 암호화/복호화를 진행함
동기 방식(Sync.) vs. 비동기 방식(Async.)
* 동기 방식 ( Synchronous ) : 서버에서 요청을 보냈을 때 응답이 돌아와야 다음 동작 수행 가능
즉, A 작업이 모두 진행 될 때까지 B 작업은 대기해야 한다.
- 장점 : 설계가 매우 간단하고 직관적
- 단점 : 결과가 주어질 때까지 아무것도 못하고 대기해야 함
* 비동기 방식 ( Asynchronous ) : 요청을 보냈을 때 응답 상태와 상관없이 다음 동작 수행 가능
즉, A 작업이 시작하면 동시에 B 작업이 실행된다. A 작업은 결과값이 나오는 대로 출력된다.
- 장점 : 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 작업을 할 수 있으므로 자원을 효율적으로 사용
- 단점 : 동기보다 복잡
AJAX(Async JavaScript and XML)
: 자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신기능
클라이언트와 서버 간에 XML 데이터를 주고 받는 기술
* 장점
- 웹페이지 속도 향상
- 서버의 처리가 완료될 때까지 기다리지 않고 처리 가능
- 기존 웹에서 불가능했던 UI를 가능하게 해줌
* 단점
- 페이지 이동이 없는 통신으로 보안상의 문제가 있을 수 있음
- 연속으로 데이터 요청시 서버 부하가 증가
- 히스토리 관리가 안된다
- Script로 작성되서 디버깅이 용이하지 않음
728x90
반응형
'📖 이론' 카테고리의 다른 글
JWT(Cookie vs Header) (0) | 2024.05.29 |
---|---|
JWT가 뭐길래.. (1) | 2024.05.27 |
쿠키-세션 방식과 JWT 기반 인증 (0) | 2024.05.21 |
웹개발 용어 정리 2 (0) | 2024.03.31 |
웹개발 용어 정리 1 (0) | 2024.03.29 |