크래프톤 정글 - TIL

크래프톤 정글 5기 TIL - Day 96(CS 면접 복습)

개발찾아 삼만리 2024. 6. 25. 23:17

🔥 CS 개념 복습

 

자료구조

   
   

OS

프로세스와 쓰레드 란? 프로세스(Process)
- 메모리에 로드되어 실행되고 있는 프로그램의 독립적인 개체
- 기본적으로 최소 1개의 쓰레드를 가짐
- 각각 독립된 메모리 영역(Code, Data, Stack, Heap)을 할당받음
- 스케줄링의 대상이 되는 작업(task) -> 실제로는 쓰레드 단위로 스케줄링

쓰레드(Thread)
- 프로세스 내에서 실행되는 흐름의 단위
- 각각 Stack만 따로 할당, Code, Data, Heap영역은 공유
동시성과 병렬성 이란? 동시성(Concurrency)
- 하나의 코어가 타임 슬라이스를 통해 동시에 실행되는 것처럼 보이게 하는 기술
- 여러 작업(쓰레드)의 문맥을 빠르게 전환해 동시에 처리하듯 보이게 하는 것
- I/O 작업이 많은 웹서버 / 데이터베이스 서버 등

병렬성(Parallelism)
- 두개 이상의 코어가 여러 작업을 동시에 실행하는 것
- 이미지 처리, 대규모 데이터 분석 등
📝 싱글 프로세스에서 멀티스레드는 동시성인가 병렬성인가?
정답 : 동시성
이유 : 하나의 프로세스는 한 번의 하나의 쓰레드만 처리할 수 있기 때문에 동시성을 통해 효율적으로 처리

네트워크 & HTTP

RESTful API 란? ✅ REST(Representational State Transfer)란?
- 자원에 고유한 주소를 부여해 그 주소를 통해 정보를 주고 받는 것
- HTTP URI(Uniform Resource Identifier, 자원을 식별하는 고유한 주소)를 통해 자원을 명시
- HTTP Method(GET, POST, PUT, DELETE, PATCH 등)를 통해
    - GET : 자원 조회
    - POST : 새로운 자원 생성
    - PUT : 기존 자원 전체 수정
    - PATCH : 기존 자원 일부 수정
    - DELETE : 자원 삭제
    - HEAD : header 정보 조회
- 해당 자원(URI)에 대한 CRUD 작업을 적용하는 것

 RESTful API
- URI 설계시 동사보다는 명사(/getuser -> /user)
- HTTP 메소드는 멱등성(idempotence) 안전성(safety) 고려해 사용
    - 멱등성 : 여러 번 요청해도 결과가 동일한 속성
    - 안전성 : 서버의 자원 상태를 변경하지 않는 속성
HTTP Method 란? - GET : 자원 조회
- POST : 새로운 자원 생성
- PUT : 기존 자원 전체 수정
- PATCH : 기존 자원 일부 수정
- DELETE : 자원 삭제
- HEAD : header 정보 조회
    - HTTP 헤더 : 클라이언트와 서버가 요청 또는 응답시 부가적인 정보를 전송
        - General Header : 요청과 응답 모두 사용되는 헤더 필드
        - Request Header : 요청 클라이언트에 대한 부가적인 정보로 사용되는 헤더 필드
        - Response Header : 응답 서버에 대한 부가적인 정보로 사용되는 헤더 필드
        - Representation Header : 메시지 본문(body)에 포함된 데이터 형식, 인코딩, 언어 등을 설명

[참조]
https://aday7.tistory.com/entry/Web-HTTP-Header-%EA%B5%AC%EC%A1%B0-Request-headerResponse-header