CS Repo/네트워크 - Top-down Approach + @ 26

네트워크와 프로토콜

네트워크의 역사와 발전과정, 네트워크의 기본 구조를 살펴보도록 하자.네트워크란?네트워크의 역사1960년대시분할 시스템(Time Sharing System)과 네트워크과거 1960년대에는, 한대의 대형 컴퓨터의 처리를 짧은 시간으로 나누어 여러 사람이 사용하도록 만들었다.따라서, TSS 단말에서 대형 컴퓨터에 전화를 걸어 접속한 뒤, 마치 이를 전용 컴퓨터처럼 취급하였다.이것이 네트워크의 시초이다.1970년대ARPANET데이터를 패킷이라 부르는 작은 단위로 잘라서 취급하는 패킷 교환 방식이 도입되었다.네트워크의 데이터 전송 방식네트워크의 데이터 전송 방식에는 크게 두가지가 있다.회선 교환 방식(Circuit Exchange Method)일대일 전송로를 먼저 만들고, 교환을 마칠때까지 전송로를 계속 사용하는..

백엔드 개발자가 알아야 할 기초 보안 - 인증, 인가, OAuth, OpenID Connect

1. 인증과 인가인증 (Authentication)정의: 사용자가 주장하는 신원을 확인하는 절차이다.목적: 사용자로부터 제공된 정보를 바탕으로, 실제로 해당 사용자인지 검증한다.인가 (Authorization)정의: 인증된 사용자가 특정 리소스에 접근할 권한이 있는지를 확인하는 절차이다.목적: 인증을 마친 사용자에게 적절한 접근 권한을 부여하여 시스템 자원의 보안을 유지한다.2. 암호화 방식 및 특징대칭 키 암호화원리: 암호화와 복호화에 동일한 키를 사용한다.장점: 연산 속도가 빠르며 대용량 데이터 암호화에 효율적이다.단점: 키의 분배와 관리가 취약하여, 키 노출 시 전체 보안에 심각한 영향을 미친다.공개 키 암호화원리: 서로 상보적인 공개 키와 개인 키를 사용하여 암호화와 복호화를 수행한다.장점: 키 ..

OSI 7 Layer, TCP/IP 4 Layer, 그리고 HTTP와 HTTPS

1. 계층 모델1.1 OSI 7계층OSI 7계층은 네트워크 통신의 각 기능을 계층별로 분리하여 정의한 모델이다. 각 계층은 아래와 같이 역할을 수행한다.물리 계층 실제 전송 매체를 통해 비트 단위의 데이터 전송을 담당한다.전기 신호, 광 신호, 무선 주파수 등을 사용하여 데이터 전송이 이루어진다.데이터 링크 계층 물리 계층에서 전송된 데이터를 프레임 단위로 관리하며, 오류 검출 및 수정 기능을 수행한다.MAC 주소 등을 이용한 노드 간의 통신을 지원한다.네트워크 계층 데이터를 패킷 단위로 관리하며, 최적의 경로를 선택해 목적지까지 전달하는 라우팅 기능을 담당한다.IP 주소를 사용하여 패킷의 출발지와 도착지를 지정한다.전송 계층 종단 간 데이터 전송의 신뢰성과 순서를 보장하기 위한 연결 설정, 데이..

백엔드 개발자를 위한 HTTP 기본 지식

1. RESTful API의 개념 및 설계 원칙RESTful API는 클라이언트와 서버 간의 역할을 명확히 분리하여 각 구성 요소가 독립적으로 발전할 수 있도록 설계된 아키텍처이다. 다음의 원칙들이 핵심이다.클라이언트-서버 구조클라이언트와 서버가 서로의 구현에 영향을 받지 않고 독립적으로 변경될 수 있도록 역할을 분리한다.무상태성(Stateless)서버는 클라이언트의 상태를 저장하지 않으며, 각 요청은 독립적으로 처리된다. 실제 개발 환경에서는 세션 등을 사용해 상태를 관리하기도 하지만, REST의 기본 원칙은 무상태를 유지하는 것이다.캐시 처리 가능(Cacheable)응답 데이터는 캐시될 수 있어, 네트워크 부하를 줄이고 성능을 개선할 수 있다.일관된 인터페이스(Uniform Interface)클라이언..

HTTP와 네트워크

HTTP-WEBWeb : HTML이라는 문서 형태와 HTTP라는 문서 전송 프로토콜, URL로 문서의 위치를 표시하는 시스템HTTP (Hypertext Transfer Protocol)웹에서 데이터를 주고받는 방식 (Server - Client 모델)클라이언트와 서버 사이에서 클라이언트가 메시지(요청, Request)를 주고, 서버가 메시지를 받아서 응답(Response)을 주는 형태의 통신 방법URI(Uniform Resource Identifier)Uniform: 리소스 식별하는 통일된 방식Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음)Identifier: 다른 항목과 구분하는데 필요한 정보HTML (Hyper Text Markup Language)하이퍼미디어 포맷XML을 바탕..

쿠키, XSS, CSRF, SOP, CORS

쿠키 개념Name (이름): 쿠키의 고유 식별자입니다.Value (값): 쿠키에 저장되는 실제 데이터입니다.Expires/Max-Age: 쿠키의 유효 기간을 설정합니다.Expires: 정확한 만료 날짜와 시간Max-Age: 쿠키가 유효한 초 단위 시간Domain: 쿠키가 전송될 수 있는 도메인을 지정합니다.set-Cookie 시 앱웹 서버가 직접 지정하여우리 사이트 전용 쿠키라는 것을 지정해둔다.Path: 쿠키가 유효한 서버의 경로를 지정합니다.Secure: HTTPS 연결에서만 쿠키를 전송하도록 합니다.HttpOnly: JavaScript를 통한 쿠키 접근을 방지합니다.SameSite: 크로스 사이트 요청에 대한 쿠키 전송 제어:StrictLaxNoneXSS사용자 브라우저에 스크립트를 실행시켜 정보를 ..