🖥 CS

    Cookie와 Session

    Cookie와 Session

    ✔️ 쿠키와 세션을 사용하는 이유 HTTP 프로토콜의 특성이자 약점을 보완하기 위해서 사용합니다. connectionless : 클라이언트가 요청을 한 후 응답을 받으면 그 연결을 끊어버리는 특징 stateless : 연결을 끊는 순간 클라이언트와 서버의 통신이 끝나며 상태 정보를 유지하지 않는 특징 쿠키와 세션을 이용하면 서버는 클라이언트가 누구인지 알 수 있게 됩니다. ✔️ 쿠키(Cookie) 클라이언트(브라우저)의 로컬에 저장되는 키와 값으로 구성된 String 형태의 작은 데이터입니다. 클라이언트의 상태 정보를 클라이언트의 PC에 저장하였다가 필요 시 참조하거나 재사용할 수 있습니다. 📌 사용 목적 세션 관리(Session Management) : 로그인, 사용자 닉네임, 접속 시간, 장바구니 등..

    CGI란?

    CGI란?

    ✔️ CGI(Common Gateway Interface)란? 웹 서버에서 동적인 페이지를 보여주기 위해 임의의 프로그램을 실행할 수 있도록 하는 초기 기술 중 하나입니다. 웹 서버와 외부 프로그램 사이에서 정보를 주고 받는 방법이나 규약들을 말합니다. CGI 스크립트는 이 표준에 맞춰 만들어진 것으로 여러 프로그래밍 언어(C, Perl 등)로 만들 수 있습니다. 더보기 Interface ? 상호 간의 소통을 위해 만들어진 물리적 매개체나 프로토콜 프로토콜 ? 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계 📌 구조 요청이 웹 서버로 전달 웹 서버는 요청에 들어 있는 주소가 CGI 프로그램에 대응되는지 확인 대응되면 프로그램을 실행해서 환경 변수와 표준 입력의 형태로 요청을 전..

    WS? WAS?

    WS? WAS?

    ✔️ 정적 페이지? 동적 페이지? 📌 정적(static) 페이지 image, html, css, javascript 파일과 같이 컴퓨터에 저장되어 있는 파일들을 의미합니다. 웹 서버에서 요청에 알맞은 파일을 반환하며 항상 동일한 페이지를 반환합니다. WS(Web Server)에서 제공합니다. 📌 동적(dynamic) 페이지 들어온 요청에 맞게 동적으로 만들어진 컨텐츠를 의미합니다. 데이터베이스, 서버 내 로직 등을 활용해 만들어진 컨텐츠를 반환합니다. WAS(Web Apllication Server)에서 제공합니다. ✔️ WS(Web Server)란? 클라이언트로부터 HTTP 요청을 받아 정적 컨텐츠를 제공하는 프로그램입니다. 이외에도 인증, 정적 컨텐츠 관리, HTTPS 지원, 컨텐츠 압축, 가상 호스..

    MIME과 Base64

    MIME과 Base64

    ✔️ 텍스트와 바이너리 텍스트와 바이너리는 컴퓨터가 파일을 구분하는 두 가지 종류입니다. 텍스트 (ASCII 파일) 사람이 알아볼 수 있는 문자만 저장되어 있는 파일 숫자는 문자로 변환 후 형식에 맞게 문자만을 다룬다 바이너리 파일 (이진 파일) 사람이 알아보기 어려운 문자와 숫자가 저장되어 있는 파일 데이터를 있는 그대로 읽고 쓴다 ✔️ MIME(Multipurpose Internet Mail Extensions)란? MIME(영어: Multipurpose Internet Mail Extensions)는 전자 우편을 위한 인터넷 표준 포맷이다. 전자우편은 7비트 ASCII 문자를 사용하여 전송되기 때문에, 8비트 이상의 코드를 사용하는 문자나 이진 파일들은 MIME 포맷으로 변환되어 SMTP로 전송된다..

    기본적인 컴퓨터 구조와 부팅

    기본적인 컴퓨터 구조와 부팅

    ✔️ 폰노이만 구조 오늘 날의 컴퓨터는 대부분 폰노이만 구조를 따릅니다. 폰노이만 구조는 CPU, 메모리, 입출력장치, 저장장치가 버스로 연결되어 있는 구조를 말합니다. 이 구조가 등장하기 이전에는 하드와이어링 형태로 전선 연결을 계속 바꾸는 형태였습니다. 폰노이만 구조에서 가장 중요한 특징은 '모든 프로그램은 메모리에 올라와야 실행할 수 있다'는 것입니다. 저장장치에 있는 프로그램이 있다고 해서 실행되는 것이 아니라 메모리에 올라와야 실행할 수 있는 것입니다. ✔️ CPU의 기본 구성 CPU는 명령어를 해석하여 실행하는 장치로 산술논리 연산장치(ALU), 제어장치(Control Unit), 레지스터로 구성됩니다. - 산술논리 연산장치(ALU) CPU에서 데이터를 연산하는 장치입니다. 데이터의 덧셈, 뺄..

    ARP(Address Resolution Protocol)

    ARP(Address Resolution Protocol)

    ✔️ ARP란? ARP(Address Resolution Protocol)은 IP 주소를 MAC 주소와 매칭시키기 위한 프로토콜입니다. ARP를 사용하는 이유는 로컬 네트워크(LAN)에서 단말과 단말 간 통신을 하기 위해서는 IP 주소와 함께 MAC 주소를 이용하게 되는데, IP 주소를 MAC Address와 매칭하여 목적지 IP의 단말이 소유한 MAC 주소를 향해 제대로 찾아가기 위함입니다. 📌 RARP RARP(Reverse Address Resolution Protocol)은 ARP와 반대로 MAC 주소를 이용해 IP 주소를 알아내는 프로토콜입니다. 📌 GARP GARP(Gratuious Address Resolution Protocol)은 송신 IP와 수신 IP가 동일한 ARP Request입니다..

    운영체제의 구조

    운영체제의 구조

    운영체제는 커널과 인터페이스를 분리하여, 같은 커널이어도 다른 인터페이스 형태로 제작이 가능합니다. 예를 들어 UNIX의 사용자 인터페이스는 쉘(Shell)이라고 하며, bash 쉘, C 쉘, T 쉘 등 여러 종류의 쉘이 있습니다. 이처럼 인터페이스에 따라 사용자가 사용하기에 불편함의 정도가 달라서 운영체제를 어렵게 느끼곤 합니다. ✔️ 커널 프로세스 관리, 메모리 관리, 저장장치관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것으로, 자동차가 운영체제라고 한다면 엔진은 커널에 해당합니다. 📌 커널의 역할 프로세스 관리 프로세스에 CPU를 분배하고 작업에 필요한 제반 환경을 제공합니다. 메모리 관리 프로세스에 작업 공간을 배치하고 실제 메모리보다 큰 가상공간을 제공합니다. 파일 시스템 관리 데이터 저장하..

    What is OS?

    What is OS?

    ✔️ OS란? OS(Operating System)는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있는 환경을 제공하는 여러 프로그램의 모임입니다. 일반적으로 하드웨어를 관리하고, 응용 프로그램과 하드웨어 사이에서 인터페이스 역할을 하며 시스템의 동작을 제어하는 시스템 소프트웨어로 정의합니다. 즉, 운영체제(OS)는 시스템의 자원과 동작을 관리하는 소프트웨어입니다. 이러한 운영체제의 종류로는 Windows, UNIX, LINUX, MS-DOS 등이 있습니다. 주로 Windows는 개인용, UNIX와 LINUX는 서버용 운영체제로 사용됩니다. ✔️ 운영체제의 목적 운영체제를 사용하는 가장 주된 목적은 컴퓨터의 하드웨어를 관리하는 것입니다. 컴퓨터에는 수 많..

    OWASP 보안 취약점

    OWASP 보안 취약점

    ✔️ OWASP이란? OWASP(The Open Web Application Security Project)는 오픈소스 웹 애플리케이션 보안 프로젝트입니다. 주로 웹에 관한 정보노출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하며, 10대 웹 애플리케이션 취약점을 발표했습니다. OWASP TOP 10은 웹 애플리케이션 취약점 중에서 빈도가 많이 발생하고, 보안상 영향을 크게 줄 수 있는 것들 10가지를 선정하여 2017년, 2013년 등을 기준으로 발표되었고, 문서가 공개되었습니다. 📌 OWASP Top 10 (2017) 1. Injection (인젝션) SQL, OS, XXE(Xml eXternal Entity), LDAP 인젝션 취약점은 신뢰할 수 없는 데이터가 명령어나 쿼리문의 일부분으로써, ..

    SSL/TLS, HTTPS

    SSL/TLS, HTTPS

    ✔️ SSL/TLS SSL(Secure Sockets Layer, 보안 소켓 계층)은 Netscape사에서 웹서버과 브라우저 사이의 보안을 위해 만들었습니다. SSL은 웹사이트와 브라우저 사이(또는 두 서버 사이)에 전송되는 데이터를 암호화하여 인터넷 연결을 보호하기 위한 표준 기술입니다. 또한 CA(Certificate Authority)라 불리는 서드 파티로부터 서버와 클라이언트의 인증을 하는데 사용됩니다. TLS(Transport Layer Security, 전송 계층 보안)은 SSL과 같은 의미입니다. SSL이 발명되고 폭넓게 사용되다가 표준화 기구인 IETF의 관리로 변경되면서 TLS라는 이름으로 바뀌었습니다. TLS 1.0은 SSL 3.0을 계승하고 TLS이 생기며 SSL은 취약점 등의 문제로..

    이진 탐색(Binary Search)

    이진 탐색(Binary Search)

    ✔️ 이진 탐색이란? 이진 탐색이란 데이터가 정렬되어 있는 배열에서 특정한 값을 찾아내는 알고리즘입니다. 배열의 중간에 있는 임의의 값을 선택하여 찾고자 하는 값 X와 비교합니다. 만약 X가 중간 값보다 작으면 중간 값을 기준으로 좌측의 데이터들로, X가 중간 값보다 크면 중간 값을 기준으로 우측의 데이터들로 다시 탐색을 시작하여 해당 값을 찾을 때까지 반복합니다. 📌 시간 복잡도 N개의 배열을 이진 탐색하게 되면 N, N/2, N/4, N/8 ... 으로 진행될 것입니다. 여기서 탐색 횟수가 시간 복잡도가 될 것이고 그 값을 K라고 한다면 K = log2N일 것입니다. 즉, 이진 탐색의 시간 복잡도는 O(logN)입니다. ✔️ 이진 탐색의 예시 1. 예를 들어 { 17, 28, 43, 67, 88, 9..

    DHCP(Dynamic Host Configuration Protocol)

    DHCP(Dynamic Host Configuration Protocol)

    ✔️ 고정(Static) IP 와 동적(Dynamic) IP 고정 IP는 컴퓨터에 고정적으로 부여된 IP로 한 번 부여되면 IP를 반납하기 전까지는 다른 장비에 부여할 수 없는 IP 주소를 말합니다. 유동 IP는 장비에 고정적으로 IP를 부여하지 않고 컴퓨터를 사용할 때 남아 있는 IP 중에서 돌아가면서 부여하는 IP 주소를 말합니다. ✔️ DHCP란? 부여받은 IP가 10개이고 접속해야 할 컴퓨터가 20대라면 10대는 고정 IP를 부여할 경우 IP가 모자라므로 유동 IP로 10개를 20대가 돌아가면서 사용할 수 있습니다. 이러한 유동 IP를 컴퓨터에게 자동으로 할당해서 사용할 수 있도록 해주고, 사용하지 않으면 반환받아 다른 컴퓨터가 사용할 수 있도록 해주는 것이 DHCP입니다. 이는 보통 라우터 장비..