Frontend/Computer Science
-
[OS] Process와 ThreadFrontend/Computer Science 2022. 3. 31. 19:18
우리가 다양한 프로그램을 한 번에 실행할 수 있는 것은 OS를 통해 CPU가 작업하는데 필요한 자원을 프로세스 또는 스레드 간에 나누는 멀티태스킹이 가능하기 때문이다. 여기에서 나오는 프로세스와 스레드의 개념에 대해 알아보자. Process와 Thread의 정의 Program: 어떤 작업을 위해 실행 할 수 있는 파일 Process: 운영체제로부터 자원을 할당받은 작업의 단위, 메모리에 적재되고 CPU자원을 할당받아 실행되고 있는 프로그램 Thread: 프로세스가 할당받은 자원을 이용하는 실행의 단위 메모리 영역 code: 실행 명령을 포함하는 코드들 data: static 변수 혹은 global 변수 heap: 동적 메모리 영역 stack: 지역변수, 매개변수, 변환값 등 일시적 데이터 Context ..
-
[자료구조] Array와 Linked ListFrontend/Computer Science 2022. 3. 30. 10:25
Array 논리적 저장순서와 물리적 저장 순서가 일치한다. 인덱스로 해당 원소에 접근이 가능하다. 인덱스만 알고 있다면 시간 복잡도 O(1)만에 해당 원소로 빠르게 찾을 수 있다. 배열의 원소를 삭제할 경우 삭제한 원소보다 큰 인덱스를 가진 원소들을 옮겨줘야(Shift) 하기 때문에 시간 복잡도 O(n)이 걸린다. 삽입의 경우, 새로운 원소를 추가하고 모든 원소들의 인덱스를 1씩 Shift 해줘야 하므로 시간 복잡도 O(n)이 걸린다. 데이터 추가 시 메모리 공간이 다 찼다면 새로운 메모리 공간을 할당받는다. Linked List 자료의 주소 값으로 노드를 이용해 서로 연결되어 있는 구조를 갖는다. 원하는 값을 찾기 위해서 최소 한 번은 리스트를 순회하여야 하므로 O(n)의 시간 복잡도를 갖는다. 삽입과..
-
[네트워크] HTTP와 HTTPSFrontend/Computer Science 2022. 3. 29. 01:26
네트워크에 대해 공부할 때 가장 흔하게 쓰이는 용어 중 하나이다. 익히 들어와서 익숙하지만 막상 말로 설명하려고 하면 모르는 부분이 많다. 자세한 개념에 대해 알아보기로 하자. HTTP 프로토콜의 개요 HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 하다. 보통 브라우저인 클라이언트에 의해 전송되는 메시지를 요청(requests)이라고 하고, 그에 대해 서버에서 응답으로 전송되는 메시지를 응답(responses)이라고 한다. HTTP의 구성요소 클라이언트와 서버 사이에는 서로 다른 작업을 수행하고 게이트웨이 또는 캐시 역할을 하는 프록시가 있다. 클라이언트 웹 페이지를 표시하기 위해..
-
[네트워크] REST API와 RESTfulFrontend/Computer Science 2022. 3. 26. 23:57
REST란 Representational State Transfer로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미한다. HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다. REST의 구성 자원(Resource) : HTTP URI 행위(Verb) : HTTP Method 표현(Representations) : HTTP Message payload REST의 특징 Server-Client(서버-클라이언트 구조) REST Server: API를 제공하고 비즈니스 로직 처리 및 저장을 ..
-
[네트워크] CORS에 대해Frontend/Computer Science 2022. 3. 24. 20:13
지난 포스팅에 same-site와 same-origin 그리고 cross-origin에 대해 다뤄보았다. [네트워크] same-site와 same-origin 프론트를 공부하다보면 CORS 에러를 자주 접하게 된다. CORS는 Cross-Origin Resource Sharing의 약자로 문제를 이해하기 위해 먼저 origin과 site 개념에 대해 정리해보았다. Origin https://www.exameple.com:.. jihye-dev.tistory.com 바로 CORS를 이해하기 위해 진정 빛을 발하는 것이 same-site와 same-origin 그리고 cross-origin에 대한 기본 개념이다. CORS가 생긴 배경, SOP SOP(same-origin policy, 동일 출처 정책)은 어..
-
[네트워크] same-site와 same-origin 그리고 cross-originFrontend/Computer Science 2022. 3. 23. 19:39
프론트를 공부하다보면 CORS 에러를 자주 접하게 된다. CORS는 Cross-Origin Resource Sharing의 약자로 문제를 이해하기 위해 먼저 origin과 site 개념에 대해 정리해보았다. Origin https://www.exameple.com:443 https: scheme www.example.com: host name 443: port same origin은 scheme, host name, port 가 모두 동일한 웹사이트를 말한다. origin B same-origin / cross-origin https://www.evil.com:443 cross-origin: domains 불일치 https://example.com:443 cross-origin: subdomains 불일..
-
[네트워크] 쿠키(Cookie)와 세션(Session)에 대해 알아보자Frontend/Computer Science 2022. 3. 22. 10:44
HTTP 특징 쿠키와 세션이 쓰이는 HTTP 프로토콜의 특징에 대해 먼저 알아보자. HTTP 프로토콜은 비연결성(connectIonless), 무상태성(stateless)이라는 특징이 있다. 비연결성(connectIonless)은 클라이언트와 서버가 한 번 연결을 맺은 후 클라이언트 요청에 서버가 응답을 마친 뒤 연결을 끊는 것을 말한다. 인터넷 상에서 불특정 다수와 통신을 해야하기 때문에 연결을 유지하기 위한 리소스를 줄일 수 있어 비연결적인 특성을 갖는다. 무상태성(stateless)은 통신이 끝나면 상태를 유지하지 않는 특성으로 비연결성으로 인해 클라이언트 상태를 식별할 수 없다. 쿠키와 세션이 없다면 장바구니 같은 페이지에서 매번 유저에 대한 정보를 요청할 것이다. HTTP는 stateless 특..
-
[네트워크] TCP/IP 이해하기 (3-way Handshake, 4-way Handshake)Frontend/Computer Science 2022. 3. 21. 11:52
네트워크 통신 레이어를 공부하며 TCP/IP를 자주 접했다. 그래서 오늘은 TCP/IP에 대한 개념을 짚고 정리해보는 시간을 가졌다.🤔 TCP/IP의 개념 먼저 위키백과에 정의된 개념은 다음과 같다. TCP/IP는 패킷 통신 방식의 인터넷 프로토콜인 IP (인터넷 프로토콜)와 전송 조절 프로토콜인 TCP (전송 제어 프로토콜)로 이루어져 있다. IP는 패킷 전달 여부를 보증하지 않고, 패킷을 보낸 순서와 받는 순서가 다를 수 있다.(unreliable datagram service) TCP는 IP 위에서 동작하는 프로토콜로, 데이터의 전달을 보증하고 보낸 순서대로 받게 해준다. HTTP, FTP, SMTP 등 TCP를 기반으로 한 많은 수의 애플리케이션 프로토콜들이 IP 위에서 동작하기 때문에, 묶어서 ..