[운영체제] 운영체제란?
·
CS/운영체제
컴퓨터 시스템의 하드웨어와 소프트웨어 자원을 관리하고, 사용자가 컴퓨터를 효율적으로 사용할 수 있도록 지원하는 중앙 소프트웨어운영체제의 목적자원 관리: CPU, 메모리, 저장 장치 등 하드웨어 자원을 효율적으로 관리하여 여러 프로그램이 원활히 실행되도록 합니다.사용자 인터페이스 제공: 사용자와 컴퓨터 간의 상호작용을 쉽게 할 수 있도록 인터페이스(명령 줄 또는 GUI)를 제공합니다.프로그램 실행 환경 제공: 애플리케이션이 운영체제 위에서 실행되며, 기본적인 시스템 서비스와 자원 관리를 제공합니다.운영체제의 역할프로세스 관리: 프로세스 생성, 종료, CPU 할당 등을 관리하여 여러 프로세스가 효율적으로 실행될 수 있도록 합니다.메모리 관리: 시스템 메모리를 효율적으로 할당하고 해제하며, 각 프로세스가 필요..
[네트워크] 공인 IP와 사설 IP
·
CS/네트워크
공인 IP (Public IP)개념: 공인 IP는 인터넷에서 고유하게 할당되는 IP 주소로, 전 세계적으로 유일합니다. 인터넷 서비스 제공자(ISP)가 할당하며, 인터넷에 연결된 모든 기기는 고유한 공인 IP를 통해 서로 통신할 수 있습니다.할당 방식: 공인 IP는 ISP 또는 도메인 네임 시스템(DNS) 관리 기관에서 할당합니다.용도: 외부 인터넷과의 통신에 사용되며, 인터넷에 직접 연결되는 웹 서버, 이메일 서버, 네트워크 장비 등에 할당됩니다.보안: 공인 IP는 외부에 노출되므로, 방화벽 등의 보안 장치로 보호하는 것이 중요합니다.예시203.0.113.1, 198.51.100.5 같은 주소는 공인 IP의 예시입니다.사설 IP (Private IP)개념: 사설 IP는 내부 네트워크(로컬 네트워크)에서..
[네트워크] Stateful vs Stateless
·
CS/네트워크
Stateful(상태 유지)개념: Stateful은 서버가 클라이언트의 상태 정보를 지속적으로 유지하는 방식입니다. 클라이언트와 서버 간의 요청이 연속적인 상호작용을 통해 이루어지며, 서버는 이전 요청에 대한 정보를 기억합니다.특징: 각 요청에 대한 상태 정보를 저장하고, 클라이언트와의 상태가 유지된 상태에서 다음 요청을 처리합니다. 예를 들어, 사용자가 로그인한 상태를 유지하는 것이 Stateful 방식입니다.장점: 상태를 기억하기 때문에 지속적인 트랜잭션 처리가 필요한 작업에 유리합니다.단점: 서버가 각 클라이언트의 상태를 관리해야 하므로 서버 자원 소모가 증가하고, 확장성에 제약이 있습니다.예시FTP: 파일을 전송하는 동안 연결 상태를 유지합니다.온라인 게임: 사용자 세션을 유지하며, 진행 상황을 ..
[네트워크] 블로킹 vs 논블로킹(Blocking vs Non-blocking)
·
CS/네트워크
블로킹(Blocking)개념: 블로킹 방식은 작업이 완료될 때까지 해당 작업을 기다리는 방식입니다. 특정 I/O 작업이 완료되기 전까지는 프로그램이 다른 작업을 진행하지 못하고 대기합니다.특징: 하나의 작업이 끝날 때까지 기다리므로, 코드가 순차적으로 실행됩니다. 이 방식은 단순하지만, 작업이 오래 걸릴 경우 전체 프로세스가 느려질 수 있습니다.장점: 구현이 상대적으로 간단하고 직관적입니다.단점: 작업이 지연되면 CPU가 대기 상태로 전환되어 효율성이 떨어집니다. 특히 대규모 요청 처리에 부적합합니다.논블로킹(Non-blocking)개념: 논블로킹 방식은 작업을 요청한 후 결과를 기다리지 않고, 다른 작업을 진행하는 방식입니다. 요청된 작업이 끝나면 결과를 비동기적으로 받아옵니다.특징: 작업이 완료될 때..
[네트워크] 쿠키와 세션 차이(Cookie & Session)
·
CS/네트워크
쿠키(Cookie)개념: 쿠키는 클라이언트(사용자의 브라우저)에 저장되는 작은 텍스트 파일입니다.저장 위치: 클라이언트(브라우저) 측에 저장됩니다.생명 주기: 만료 날짜를 설정할 수 있어 일정 기간 동안 유지됩니다. 영구 쿠키(만료 날짜가 설정됨)와 세션 쿠키(브라우저 종료 시 삭제)로 나뉩니다.보안: 클라이언트에 저장되므로 보안에 취약할 수 있으며, 중요한 정보를 저장하기에는 위험합니다. HTTPS로 전송하거나, HttpOnly, Secure 옵션을 설정하여 보안을 강화할 수 있습니다.용도: 자동 로그인, 사용자 설정 저장, 방문자 추적 등 상태 정보를 간단히 저장할 때 사용됩니다.쿠키 예시Set-Cookie: userID=1234; Expires=Wed, 21 Oct 2025 07:28:00 GMT;..
[네트워크] DNS(Domain Name System)
·
CS/네트워크
사용자가 기억하기 쉬운 도메인 이름(예:www.example.com)을 입력하면 이를 **IP 주소(예: 192.0.2.1)**로 변환해주는 시스템DNS의 주요 역할도메인 이름을 IP 주소로 변환: 사용자가 브라우저에 입력한 도메인 이름을 해당 서버의 IP 주소로 변환하여 연결합니다.서버의 위치 은닉: 사용자가 직접 IP 주소를 입력할 필요가 없으므로 서버 위치가 은닉되어 보안성을 높입니다.서비스 연속성 보장: IP 주소가 변경되어도 도메인 이름은 동일하게 유지되기 때문에 서비스가 중단되지 않고 계속 제공될 수 있습니다.DNS의 동작 과정사용자 요청: 사용자가 브라우저에 도메인 이름을 입력합니다.캐싱 확인: 로컬 캐시 또는 웹 브라우저 캐시에서 IP 주소가 존재하는지 확인합니다. 있다면, 해당 IP 주소..
[네트워크] GET방식과 POST방식의 차이
·
CS/네트워크
1. GET 방식주요 특징: GET은 서버에 데이터를 요청하는 방식으로, 주로 조회나 검색과 같은 읽기 작업에 사용됩니다.데이터 전송 위치: URL의 쿼리 스트링(주소 뒤에 ?로 시작하는 부분)에 데이터를 포함시켜 전송합니다.데이터 크기 제한: URL 길이 제한 때문에 전송할 수 있는 데이터의 양이 제한됩니다 (주로 2048자 이내로 제한).보안성: 데이터가 URL에 노출되므로 민감한 정보를 포함하기에 적합하지 않습니다.캐싱 가능성: GET 요청은 캐시될 수 있으므로, 동일한 요청이 반복될 때 서버의 부담을 줄여줍니다.GET 요청 예시GET /search?q=example&sort=asc HTTP/1.1 여기서 q=example와 sort=asc는 서버로 전달되는 데이터입니다.2. POST 방식주요 특징..
[네트워크] RESTful의미와 설계규칙
·
CS/네트워크
REST (Representational State Transfer)아키텍처 스타일을 따르는 웹 서비스의 설계 방식입니다. REST는 클라이언트와 서버 간 통신에서 HTTP 프로토콜의 표준을 준수하며 리소스를 URL로 표현하고, HTTP 메서드를 통해 자원을 처리하는 구조를 따릅니다. RESTful은 이런 REST 원칙을 잘 구현한 API RESTful 설계의 의미RESTful 설계는 리소스를 URL로 명확하게 표현하고 HTTP 메서드를 활용해 CRUD (Create, Read, Update, Delete) 작업을 수행하는 구조입니다. RESTful API는 자원의 상태를 일정하게 유지하면서 요청과 응답을 처리하기 때문에 상태 비저장성과 클라이언트-서버 분리를 잘 구현할 수 있습니다.RESTful 설계 ..
[네트워크] 공개키 암호 & 대칭키 암호
·
CS/네트워크
대칭키 암호 (Symmetric Key Encryption)개념: 대칭키 암호는 하나의 키로 데이터를 암호화하고 해독하는 방식입니다. 송신자와 수신자가 동일한 키를 공유하고, 이 키를 사용해 데이터를 암호화하고 복호화합니다.장점: 암호화와 복호화 속도가 상대적으로 빠르며, 대량의 데이터를 처리하기에 효율적입니다.단점: 동일한 키를 공유해야 하기 때문에 키 분배가 어렵고, 키가 유출되면 데이터가 쉽게 노출될 위험이 있습니다.예시: AES, DES, 3DES, RC4 등이 대표적인 대칭키 암호 알고리즘입니다.사용 예시대칭키 암호화는 대량의 데이터 전송이 필요한 환경이나, 내부 시스템 간의 암호화된 통신 등에 주로 사용됩니다.공개키 암호 (Public Key Encryption, 비대칭키 암호)개념: 공개키 ..
[네트워크] HTTP와 HTTPS (feat.SEO)
·
CS/네트워크
HTTP와 HTTPS는 모두 웹에서 정보를 주고받기 위한 프로토콜이지만, 데이터의 보안성에 큰 차이가 있습니다. HTTP는 일반 텍스트로 데이터를 전송하는 반면, HTTPS는 데이터를 암호화하여 전송하여 보안을 강화합니다.HTTP (HyperText Transfer Protocol)기본 개념: HTTP는 인터넷에서 클라이언트와 서버 간 데이터를 주고받기 위한 프로토콜입니다. 사용자가 웹페이지에 접근하면, HTTP를 통해 서버에서 클라이언트로 데이터를 전송합니다.비암호화 통신: HTTP는 데이터를 일반 텍스트로 전송하기 때문에 중간에 제3자가 데이터를 쉽게 읽을 수 있습니다. 이를 '평문 통신'이라 하며, 해커가 데이터를 가로채거나 변조할 수 있습니다.포트 번호: HTTP는 기본적으로 80번 포트를 사용합..