본문 바로가기

Backend study

(43)
프로세스(process)와 스레드(thread) 프로세스(process)와 스레드(thread)는 컴퓨터 프로그램의 실행 단위로, 운영 체제(OS)가 프로그램을 실행하고 관리하는 중요한 개념이다. 프로세스와 스레드는 서로 다른 개념이지만, 긴밀하게 연관되어 있으며, 둘 다 병렬 처리나 멀티태스킹 환경에서 중요한 역할을 한다. 1. 프로세스 (Process)프로세스란?프로세스는 메모리에서 실행 중인 프로그램이다. 프로그램은 디스크에 저장된 정적인 파일이며, 프로세스는 이 프로그램이 실행되었을 때 생성되는 동적인 실행 단위이다.운영 체제는 각 프로그램이 독립적인 실행 환경을 가지도록 프로세스를 생성하고, 프로세스는 해당 프로그램이 동작하는데 필요한 자원을 할당받는다. 이러한 자원에는 CPU 시간, 메모리 공간, 파일 입출력 핸들 등이 포함된다.프로세스의 ..
HTTP와 HTTPS HTTP와 HTTPS는 웹에서 데이터를 전송하는 데 사용되는 두 가지 프로토콜이다. 이 두 프로토콜은 많은 면에서 유사하지만, 보안 측면에서 큰 차이가 있다.1. HTTP (HyperText Transfer Protocol)HTTP는 인터넷 상에서 데이터를 전송하는 프로토콜이다. 주로 웹 브라우저와 웹 서버 간의 데이터 통신을 관리하며, 텍스트, 이미지, 비디오와 같은 다양한 콘텐츠를 전달하는 데 사용된다.특징데이터 비암호화: HTTP로 전송되는 데이터는 암호화되지 않으며, 평문(plain text)으로 전송된다. 즉, 중간에서 누군가가 트래픽을 가로채면 쉽게 데이터를 읽을 수 있다.기본적인 데이터 전송: HTTP는 기본적으로 데이터를 주고받는 간단한 프로토콜이다. 그러나 데이터의 무결성, 기밀성, 인증..
VPN, Port Forwarding, DNS, DDNS VPN(Virtual Private Network), Port Forwarding, DNS(Domain Name System), 그리고 DDNS(Dynamic DNS)는 네트워크 및 인터넷 구조에서 매우 중요한 개념이다. 이 개념들을 깊이 이해하면 네트워크 보안, 연결성, 그리고 통신을 더 잘 이해할 수 있다. 각각의 개념에 대해 자세히 설명하고, 이를 이해하는 데 필요한 연관된 개념들을 추가로 설명하겠다.1. VPN (Virtual Private Network)VPN은 공용 네트워크(인터넷)에서 사설 네트워크를 가상으로 구성하는 기술이다. VPN을 사용하면 사용자가 공용 인터넷을 통해 데이터를 안전하게 전송할 수 있다. 기본적으로 VPN은 인터넷 상의 트래픽을 암호화하여 사용자의 프라이버시를 보호하고,..
HTTP Content-Type Content-Type은 HTTP 헤더 중 하나로, 클라이언트와 서버 간의 통신에서 전송되는 데이터의 미디어 타입을 명시하는 역할을 한다. 클라이언트가 서버에 요청을 보낼 때 또는 서버가 클라이언트에 응답을 보낼 때, 해당 데이터가 어떤 형식으로 인코딩되어 있는지를 Content-Type 헤더를 통해 알릴 수 있다. 1. 기본 역할Content-Type 헤더는 HTTP 요청(request) 또는 응답(response)에서 본문의 데이터가 어떤 형식인지 알려주는 중요한 헤더이다. 이를 통해 클라이언트와 서버는 서로 전송되는 데이터의 형식을 인지하고, 해당 형식에 맞게 데이터를 처리할 수 있다.예시JSON 데이터 전송: 클라이언트가 JSON 형식의 데이터를 서버에 전송할 경우Content-Type: appl..
비동기(Asynchronous)와 동기(Synchronous) 동기(Synchronous)와 비동기(Asynchronous)에 대한 이해 동기와 비동기는 프로그램의 작업 처리 방식을 설명하는 개념으로, 특히 입출력(I/O)이나 멀티태스킹에서 많이 언급됩니다. 이 두 개념은 작업을 어떻게 처리하고, 작업 완료를 기다리는 방식에서 큰 차이를 보인다. 1. 동기(Synchronous)동작 원리:동기 방식에서는 하나의 작업이 완료될 때까지 기다린 후 다음 작업을 진행한다. 즉, 작업을 순차적으로 실행하며, 이전 작업이 끝나기 전에는 다음 작업으로 넘어가지 않는다.비유:예를 들어, 식당에서 음식을 주문한 후 그 음식이 나올 때까지 아무것도 하지 않고 기다리는 상황이다. 이 경우에는 음식이 준비되기 전까지는 다른 일을 할 수 없다.실생활 예:은행에서 업무 처리를 생각해보면, ..
세션(Session), 쿠키(Cookie), 캐시(Cache) 1. 세션(Session)세션은 서버와 클라이언트 간의 상태를 유지하는 방법 중 하나이다. 웹은 기본적으로 무상태(stateless) 프로토콜인 HTTP를 사용하기 때문에, 서버는 클라이언트의 이전 요청이나 상태를 기억하지 못한다. 따라서, 세션은 서버 측에서 사용자와의 상호작용 상태를 유지하기 위한 중요한 기법이다.세션의 동작 방식:사용자가 웹사이트에 처음 접속하면, 서버는 그 사용자에게 고유한 세션 ID를 생성한다.이 세션 ID는 일반적으로 쿠키를 통해 클라이언트에 저장된다.사용자가 동일한 서버에 다시 요청을 보내면, 쿠키에 저장된 세션 ID를 서버에 전송하여 서버는 해당 사용자의 상태를 유지할 수 있게 된다.세션은 주로 서버의 메모리나 데이터베이스에 저장되며, 로그인 정보나 장바구니 정보와 같은 상..
REST API REST API(Representational State Transfer Application Programming Interface)는 네트워크 상에서 서로 다른 컴퓨터 시스템 간의 통신을 가능하게 하는 규칙 세트로, 주로 HTTP를 통해 작동한다. REST API는 웹 애플리케이션에서 서버와 클라이언트 간의 상호작용을 쉽게 하기 위한 방법으로 사용된다. REST는 특히 확장성과 단순함을 제공하여 현대의 웹 애플리케이션에서 매우 중요한 역할을 한다. 1. REST의 개념과 원리REST는 Representational State Transfer의 약자로, 자원(Resource)을 HTTP URI로 식별하고, 해당 자원에 대한 상태 정보를 HTTP 메서드로 처리하는 구조이다. REST는 주로 웹 애플리케이..
컨테이너 오케스트레이션 컨테이너 오케스트레이션(Container Orchestration)은 여러 컨테이너를 자동으로 배포, 관리, 확장, 네트워킹, 복구하는 프로세스를 의미한다. 도커 컴포즈가 여러 컨테이너를 정의하고 실행하는 도구인 반면, 오케스트레이션 도구는 수백, 수천 개의 컨테이너를 클러스터에서 효율적으로 관리하는 데 사용된다.대표적인 컨테이너 오케스트레이션 도구로는 쿠버네티스(Kubernetes)와 도커 스웜(Docker Swarm)이 있다. 이러한 도구들은 복잡한 애플리케이션을 다양한 환경에서 자동으로 배포하고 관리할 수 있게 해준다. 여기서 중요한 점은, 컨테이너 오케스트레이션이 단순히 컨테이너를 실행하는 것 이상의 복잡한 기능을 제공한다는 것이다. 쿠버네티스의 주요 용어들1. 파드(Pod)파드는 쿠버네티스에서 ..

728x90