전체 글
-
-
GIT 브랜치 관리, 부가 기능Topic/git 2022. 2. 15. 13:47
GIT Branch 🌲 브랜치: 독립적으로 어떤 작업을 진행하기 위한 개념이다. 브랜치의 장점 1. 한 소스 코드에서 동시에 다양한 작업을 할 수 있다. 2. 소스코드의 한 시점과 동일한 상태를 만들고, 브랜치를 넘나들며 작업을 수행할 수 있다. 3. 각각의 브랜치에서 생긴 변화가 다른 브랜치에 영향을 주지 않고 독립적으로 코딩을 진행할 수 있다. Chapter 1. 혼자 작업할 때 김코딩이는 fork한 codestates 깃헙 리파지토리를 본인의 local에서 작업하려고 합니다. 복사한 깃헙 리파지토리 주소는 https://github.com/kimcoding/test.git 입니다. $ git clone https://github.com/kimcoding/test.git local working di..
-
네트워크 심화 과정Topic/CS 2022. 2. 15. 13:47
IP & IP Packet 💥 인터넷 내부에서 클라이언트와 서버가 통신하는 법 IP(인터넷 프로토콜) 주소를 컴퓨터에 부여하여 이를 사용 패킷 단위로 전송을 하면 노드들은 목적지 IP에 도달하기 위해 서로 데이터를 전달 IP 지정한 IP 주소(IP Address)에 패킷(Packet)이라는 통신 단위로 데이터 전달 IP Packet pack + bucket의 합성어 패킷! 우체국 송장처럼 전송 데이터를 무사히 전송하기 위해 출발지 IP, 목적지 IP와 같은 정보가 포함되어 있다. IP의 한계점 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송해버린다.. 비신뢰성 중간에 패킷이 사라질 수 있다! 패킷의 순서를 보장할 수 없다. Ex. 전달 데이터의 용량이 큰 경우 패킷 단위로 나눠 전달..
-
운영체제, 프로세스, 스레드, 멀티 스레드, 가비지 컬렉션Topic/CS 2022. 2. 11. 15:19
프로세스, 스레드, 멀티 스레드 ✔️ 프로세스 (process) 운영체제에서는 실행 중인 하나의 애플리케이션을 프로세스라고 부른다. 사용자가 애플리케이션을 실행하면, 운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션의 코드를 실행한다. 이때 실행되는 애플리케이션을 프로세스라고 부른다. Ex.크롬 브라우저를 두 개 실행하면, 두 개의 프로세스가 생성된다.(하나의 애플리케이션이 여러 프로세스(다중 프로세스)가 되기도함) -> MacOS에서는 활성 상태창, Windows에서는 작업관리자에서 확인 가능 스레드 (Thread) 한 가지 작업을 실행하기 위해 순차적으로 실행한 코드를 실처럼 이어 놓았다고 해서 스레드 라고 부른다. 하나의 스레드는 코드가 실행되는 하나의 흐름이기 때문에, 한 프로세스 내에 ..
-
컴퓨터 공학 기초, 문자열, 그래픽, 운영체제Topic/CS 2022. 2. 10. 11:54
문자열 ✔️ 2010년 이후, 컴퓨터 세계에서 우리는 인코딩 방식이 통일된 유니코드를 이용하고 있다. 문자열 하나는 몇 바이트일까? 알파벳 하나가 1바이트(byte)를 차지하던 시절이 있었지만 요즘에는 유니코드를 사용해야 텍스트를 정확히 저장할 수 있다. 유니코드란? 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이다. 이 표준에는 ISO 10646 문자 집합, 문자 인코딩, 문자 정보 데이터베이스, 문자를 다루는 알고리즘 등이 포함된다. 인코딩이란 어떤 문자나 기호를 컴퓨터가 이용할 수 있는 신호로 만드는 것. 이 신호를 입력하는 인코딩과 문자를 해독하는 디코딩을 하기 위해서는 정해진 기준을 바탕으로 입력과 해독이 처리되어야 한다. 이렇게 인코딩과 디코딩의 기준을 ..
-
쿠키, 세션, 토큰 정리Topic/Node.js | server 2022. 2. 10. 11:24
쿠키 ✔️ 서버가 클라이언트 (브라우저)에게 일방적으로 주는 것 HTTP Response (응답코드, 헤더, 바디 중 헤더에 set-cookie) 각 옵션의 의미 domain: 같은 사이트 path: 같은 경로 / httpOnly: 자바스크립트 사용 여부 maxAge, Expires: 만료 기간 설정 sameSite: 3rd-cookie LAX: 3rd-party가 GET일 때만 허용 STRICT: 3rd-party 쿠키 차단 none: 적용 안함 (https일 때만 가능) secure: HTTPS에 쿠키를 전달 여부 쿠키의 인증 상 한계 MaxAge or Expires, HttpOnly, SameSite 등 각종 옵션들을 이용해 XSS, CSRF 등의 공격에 대비할 수 있는 방법이 있기는 하지만 결국..
-
jwt, 쿠키, 세션, 토큰Topic/Node.js | server 2022. 2. 8. 22:06
세션 서버가 Client에 유일하고 암호화된 ID를 부여 중요 데이터는 서버에서 관리 설명 접속 상태 저장 경로 장점 단점 Cookie 쿠키는 단지 http의 stateless한 것을 보완해주는 도구 클라이언트 서버에 부담을 덜어준다. 쿠키 그 자체는 인증이 아니다. Session 접속 상태를 서버가 가짐(stateless) 접속 상태와 권한 부여를 위해 세션아이디를 쿠키로 전송 서버 신뢰할 수 있는 유저인지 서버에서 추가로 확인 가능 하나의 서버에서만 접속 상태를 가지므로 분산에 불리 토큰 세션기반 인증 = 서버(혹은 DB)에 유저 정보를 담는 방식 "이 부담을 클라이언트에게 넘겨줄 수 없을까?"에서 고안 대표적인 토큰 기반 인증 -> JWT(JSON Web Token) 토큰은 마패로 생각하자! (복잡..
-
인증 & 보안 기초Topic/Node.js | server 2022. 2. 7. 22:16
HTTPS HTTPS: Hyper Text Transfer Protocol Secure socket layer 인증에서 HTTPS 프로토콜을 사용해야만 하는 이유 HTTP보다 상대적으로 안전하고, 데이터 제공자의 신원을 보장받을 수 있기 때문이다. 암호화 HTTPS 프로토콜의 특징 중 하나는 암호화된 데이터를 주고받기 때문에, 중간에 인터넷 요청이 탈취되더라도 그 내용을 알아볼 수 없다. 그렇기 때문에 데이터를 암호화하여 전송하는 HTTPS 프로토콜을 사용한다면 비밀번호와 같은 중요한 데이터가 유출될 가능성이 HTTP 프로토콜보다 현저히 적어지게 된다. 인증서 브라우저가 응답과 함께 전달된 인증서 정보를 확인할 수 있는 특징을 가진다. 브라우저는 인증서의 도메인과 데이터를 제공한 제공자의 도메인을 비교할..