마스크는 답답하다
HTTP / HTTPS
Computer Science/Network 2023. 5. 3. 16:30

HTTP (Hyper Text Transfer Protocol) HTTP는 쉽게 말하면 서버와 클라이언트간에 데이터를 주고 받는 프로토콜이다. 웹 서핑을 할 때 서버에서 브라우저로 데이터를 전송해 주는 용도로 가장 많이 사용되었으며, 오래전 생긴 기술인 만큼 보안에 취약하다. HTTPS (Hyper Test Transfer Protocol Secure) HTTPS는 기존 HTTP의 문제점인 보안 취약성을 개선하고자 나온 프로토콜이다. 기존 HTTP 프로토콜의 문제점은 서버로부터 브라우저로 전송되는 데이터가 암호화 되지않아, 중간에 해킹을 당할 위험성이 높다는 점이다. 그러한 문제점을 HTTPS에서는 SSL(보안 소켓 계층)을 사용함으로써 해결했다. 이 SSL 인증서는 사용자가 사이트에 제공하는 정보를 암..

CI / CD
Computer Science/Network 2023. 5. 2. 19:25

CI /CD (지속적 통합 / 지속적 배포) 이미 시행중인 서비스가 있다고 가정했을 때, 단 한줄의 코드를 수정한다면 이를 다시 빌드하고 테스트하고 배포해야한다. 만약 지속적으로 수정해야 한다는 상황이 온다면 어떨까? 코드를 수정하는 시간보다 빌드부터 배포까지 하는 시간이 더 오래 걸릴것이다. 이러한 불편함과 시간낭비를 줄이기 위해 나온 개념이 CI와 CD이다. 또한 DevOps 엔지니어의 핵심 업무라고도 할 수 있다. CI (Continuous Integration) CI란 쉽게 말하면 빌드/테스트 자동화 과정이다. 더 풀어 설명하자면 어플리케이션의 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합되는 것을 의미한다. CI를 제대로 구축한다면 수정사항을 커밋할 때마다 빌드와 일련..

article thumbnail
JWT (Json Web Token)
Computer Science/Network 2023. 5. 1. 11:43

JWT (Json Web Token) JWT란 Json Web Token의 웹 상에서 사용자 인증을 위해 사용하는 암호화된 토큰이다. 원리는 간단하다. 서버는 인증된 클라이언트에게 암호화된 토큰을 발급하고, 클라이언트가 서버에 요청을 보낼 때 HTTP Header에 토큰을 함께 보내 해당 요청이 인증된 클라이언트인지 확인한다. JWT의 구성 요소 Header (헤더) 토큰의 타입과 해시 암호화 알고리즘으로 구성 아래 설명할 Signature를 해싱하기 위한 알고리즘을 지정 Payload (정보) 사용자가 담고자 하는 정보를 담는 곳 Signatuer (서명) 토큰 인코딩 또는 유효성 검증을 할 때 사용하는 고유한 암호화 코드 Header와 Payload의 값을 BASE64로 인코딩 후 인코딩한 값을 비밀..

Context Switching (컨텍스트 스위칭)
Computer Science/Network 2023. 4. 30. 04:18

Context Switching Context Switching(컨텍스트 스위칭)이란 CPU가 현재 실행중인 프로세스의 상태 및 정보를 PCB에 저장하고, 다음 실행 예정인 프로세스의 상태 및 정보를 PCB에서 읽어 레지스터에 옮기는 과정이다. 모르는 용어도 많고 쉽게 이해되지 않는 개념이다. PCB (Process Control Block) PCB란 CPU가 프로세스를 제어하기 위해 프로세스의 상태 정보를 저장하는 구조체이다. (공학에서 나오는 PCB, FPCB와는 다른 개념이니 주의해야한다.) 흔히 게임을 하면서 노래를 듣는 등 PC를 사용하면서 여러 개의 작업(프로세스)을 동시에 처리할 때가 많다. 하지만 정확히 말하면 PC는 이 작업들을 동시에 처리하는 것이 아닌 여러 프로세스를 바꿔가며 처리하는..

AOP
Computer Science/Network 2023. 4. 26. 02:27

AOP (Aspect Oriented Progamming) AOP란 관점지향 프로그래밍이다. 우리가 흔히 Java를 OOP(객체지향 프로그래밍)라고 하는데, AOP란 OOP의 한계점을 보완하고 더 발전시키고자 나온 개념이다. 객체지향 프로그래밍에서는 공통의 목적이 있는 데이터와 동작을 묶어서 하나의 객체로 정의한다. 또한 이러한 객체를 적극적으로 활용하며 기능을 재사용할 수 있는 장점을 갖는다. 하지만 객체지향의 한계는 명확한데 트랜잭션, 로깅, 보안 등의 부가기능은 업무 기능과는 상관없지만, 여러 클래스에 적용이 되므로 중복되는 코드가 존재할 수 밖에 없다. 이러한 횡단 관심사(부가기능) 이라고 한다. OOP만으로 횡단 관심사 코드를 핵심 기능과 분리하는데 한계점이 있었고, 관심사 분리적 한계를 해결 ..

REST / REST API / RESTful
Computer Science/Network 2023. 4. 23. 23:20

REST (Representational State Transfer) REST란 Server-Client 구조 중 하나로 리소스를 이름으로 구분하여 해당 리소스의 상태를 주고받는 모든 것을 의미한다. HTTP URI를 통하여 자원을 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다. REST는 3가지로 구성이 되어있다. 자원(Resource) : HTTP URI 자원에 대한 행위 : HTTP Method (POST, GET, PATCH, DELETE 등) 자원에 대한 행위의 내용 : HTTP Message Pay Load REST 방식의 장단점 장점 HTTP프로토콜의 인프라를 그대로 사용하기 때문에 REST API를 위한 별도의 인프라를 구축할 ..

CORS (Cross-Origin Resource Sharing)
Computer Science/Network 2023. 4. 23. 03:12

CORS (Cross-Origin Resource Sharing) 프론트엔드와 백엔드 협업 프로젝트를 진행해봤다면 한번쯤은 CORS 에러를 겪어봤을 것이다. 먼저 CORS가 뭔지 설명부터 하자면 교차 출처 리소스 공유 정책으로 추가적인 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 리소스에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제이다. CORS를 이해하기 위해선 먼저 출처(Origin)와 SOP에 대한 이해가 필요하다. 출처 (Origin) 출처란 쉽게 설명하자면 URL 주소를 생각하면 된다. 동일한 출처라고해서 URL이 완전히 같은 것을 의미하는 것이 아니라 프로토콜, 도메인, 포트 번호가 같을 때 동일한 출처이다. 예를 들어 https://tlska..

article thumbnail
3-Way-Hadshake / 4-Way-Handshake
Computer Science/Network 2023. 4. 22. 09:16

3-Way-Hadshake / 4-Way-Handshake TCP 통신에 대해 공부하다보면 3-Way-Hadshake를 통해 연결 및 4-Way-Handshake를 통해 해제를 한다고 알려져 있다. 이 내용은 다음과 같다 3-Way-Hadshake 3-Way-Hadshake란 TCP 통신에서 데이터를 전송하기 위해 네트워크 연결을 설정하는 과정으로, 양쪽 컴퓨터 모두 데이터를 전송할 준비가 되어있다는 것을 보장한다. 다시 말해 TCP/IP 프로토콜을 이용하여 통신하는 응용 프로그램이 데이터를 전송하기 전에 정확한 전송을 보장하기 위해 상대방 컴퓨터와 세션을 수립하는 과정이다. 3-Way-Hadshake 작동 원리 작동원리에 앞서 3-Way-Handshake 방식은 서로 SYN과 ACK를 주고 받는다. S..

검색 태그