📑 Category
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZU4KT%2FbtrY2ohUnbl%2F7DijRdVkOPIvB6oksD2481%2Fimg.jpg)
[네트워크] SOP(Same Origin Policy)와 CORS(Cross-Origin Resource Sharing), CORS 오류 해결 방법
SOP(Same Origin Policy) 같은 출처의 HTTP 요청만을 허락하는 정책 자원을 요청한 출처와 해당 요청에 응답하는 서버의 출처가 다를 경우 해당 자원을 사용하지 못하도록 제한 -> CORS 정책을 지켰을 시에만 예외적으로 허용 SOP 정책이 없을 시 노출된 소스코드를 통해 CSRF(Cross-Site Request Forgery)나 XSS(Cross-Site Scripting)와 같은 방법으로 공격자의 사용자 정보 탈취 위험이 있음 ※ 출처(Origin)란? 위와 같은 URL 구조에서 Protocol + Host + Port에 해당하는 부분을 뜻한다. 브라우저는 Protocol, Host, Port가 모두 같다면 같은 출처, 셋 중 하나라도 다르다면 다른 출처라고 판단한다. CORS(Cr..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLFNdp%2FbtrYJREOfxx%2Fcok7KYhGKIQ5A77yEBcXLK%2Fimg.jpg)
[네트워크] 토큰 기반 인증(+JWT), 서버(세션)기반 인증
토큰(Token) 기반 인증 클라이언트가 서버에 접속 시 서버에서 해당 클라이언트에게 인증의 의미로 '토큰'을 부여 -> 인증(Authentication) 클라이언트는 또 다시 서버에 요청을 보낼 때 발급받은 토큰을 요청 헤더에 심어 전송 서버는 헤더 내 토큰을 열어 자신이 제공한 토큰이 맞는지 확인하여 인증 과정 처리 -> 인가(Authorization) 💡용어 정리 - 인증(Authentication): 자신이 누구인지 증명하고 검증하는 과정 (로그인) - 인가(Authorization): 인증 작업 이후에 인증된 사용자에 대한 자원 접근 확인 및 허가 절차 (권한 확인) 장점 토큰 정보를 클라이언트 측에서 저장하기 때문에 stateless(무상태)하며, 서버 확장에 용이 (서버 부담 X) 토큰은 한..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBJdri%2FbtrYBWzxKWq%2FJH6jybWEWpC876zEbpiVnk%2Fimg.jpg)
[네트워크] SSL/TLS 핸드쉐이크 - TLS 1.3
SSL과 TLS TLS(Transport Layer Security)는 SSL(Secure Socket Layer)의 상위 버전 표현이라고 할 수 있다. SSL은 SSL 1.0부터 시작해 SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.3까지 버전 업데이트가 되면서 SSL의 명칭이 TLS로 변경된 것이다. 이 포스트에서는 TLS 3.0을 기반으로 설명하며 명칭은 TLS로 통일한다. TLS는 전송계층에서 보안을 제공하는 프로토콜이다. HTTPS 통신 시 주로 사용되며, 클라이언트와 서버가 통신할 때 TLS를 통해 제3자가 메시지를 도청하거나 위조, 변조하지 못하도록 한다. TLS는 다음과 같은 기능 및 역할을 가진다. 암호화: 제3자와 주고받는 데이터를 숨김 인증: 통신의 대상이 신뢰할 수 있는..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAzjjb%2FbtrYzDS6mda%2FVuypUihqq5ebpJC1fSGUZ0%2Fimg.png)
[보안] 대칭키와 비대칭키(공개키) 암호화 + 디지털 인증서
대칭키 암호화 암복호화에 사용되는 키가 동일한 방식 장점: 암호화 속도 빠름, 대용량 데이터 암호화에 적합, 기밀성 제공 단점: 키 배송 문제 발생 - 키 교환 시 탈취 위험, 사람이 증가할수록 키 관리 어려움, 낮은 확장성, 무결성/인증/부인방지 제공 X Session Key(세션키), Secret Key(비밀키), Shared Key(공유키), 단용키라고도 함 대표적 알고리즘 : 공인인증서의 암호화방식으로 유명한 SEED, DES, 3DES, AES, ARIA, 최근 주목받고 있는 암호인 ChaCha20 비대칭키 암호화 암복호화에 사용되는 키가 서로 다른 방식 (공개키와 개인키) 장점: 키 분배 필요 X, 기밀성/인증/부인방지 기능 제공 단점: 암호화 속도 느림, 무결성 제공 X 암호 모드: 공개키로..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZgUjt%2FbtrYqTvwslO%2Fc9YhRQXQtiEBQSDblpRKq1%2Fimg.jpg)
[네트워크] HTTP/1.X, HTTP2, HTTP3 버전 차이, 특징
※ HTTP 개요: https://zu-techlog.tistory.com/60 [네트워크] HTTP와 HTTPS 프로토콜 HTTP (Hyper Text Transfer Protocol) 웹 상에서 클라이언트와 서버 간에 요청(request)과 응답(response)으로 정보를 주고 받을 수 있는 프로토콜 TCP와 UDP 사용, 80번 포트 사용 비연결(Connectionless) 클라이언트가 zu-techlog.tistory.com HTTP 버전 - HTTP/1.X, HTTP2, HTTP3 HTTP/1.0 한 연결당 하나의 요청을 처리하도록 설계 서버에게 요청 시 매번 연결과 해제의 과정을 반복해야 했기에 RTT가 오래걸린다는 문제 RTT: 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQ2ins%2FbtrYpmlcOpo%2Fpd3DQCL4rgCcJYeZBQKmek%2Fimg.png)
코딩테스트 주요 연산자/메소드 시간 복잡도 정리 - 파이썬(Python)
시간 복잡도 in 코딩테스트 N이 1000일 때의 연산 횟수 O(N) 1000 O(NlogN) 10000 O(N^2) 1000000 O(N^3) 1000000000 시간 제한이 1초인 문제일 때 N의 범위가 500인 경우: 시간복잡도가 O(N^3)인 알고리즘을 설계하면 문제를 풀 수 있다. N의 범위가 2000인 경우: 시간복잡도가 O(N^2)인 알고리즘을 설계하면 문제를 풀 수 있다. N의 범위가 100000(10만)인 경우: 시간복잡도가 O(NlogN)인 알고리즘을 설계하면 문제를 풀 수 있다. N의 범위가 10000000(1000만)인 경우: 시간복잡도가 O(N)인 알고리즘을 설계하면 문제를 풀 수 있다. 리스트(List) Operation Example Big-O Notes 1 Index l[i]..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmWV0o%2FbtrYid8xphf%2FZyCDGOlWF89V84OVkfFo0k%2Fimg.jpg)
[네트워크] TCP/IP 흐름제어와 혼잡제어
흐름제어 송신측과 수신측의 데이터 처리 속도 차이를 해결하기 위한 기법 송신측의 전송량이 수신측의 처리량보다 클 경우 수신측의 큐가 용량을 넘어 전송된 패킷의 손실이 일어날 수 있기 때문에 송신측의 패킷 전송량을 제어함 수신측이 송신측에게 현재 자신의 상태를 피드백하는 형태 1. Stop and Wait 매번 전송한 패킷에 대해 확인 응답(ACK)을 받아야만 그 다음 패킷을 전송 구조 상 비효율적 2. Sliding Window 수신측에서 설정한 윈도우 크기만큼 송신측에서 확인 응답 없이 패킷을 전송할 수 있게하여 데이터 흐름을 동적으로 조절 송신측은 먼저 윈도우에 포함되는 모든 패킷을 전송하고, 수신측으로부터 확인 응답(ACK)가 오면 윈도우를 옆으로 옮겨가며 다음 패킷들을 전송 동작 방식 송신측에서 ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdBTTIg%2FbtrXVle7qak%2FKKt5ZG7vzcDrMEyXdiUvC1%2Fimg.jpg)
[네트워크] HTTP 상태/응답 코드 정리
HTTP Status Code HTTP 상태 코드는 클라이언트가 보낸 요청(request)이 성공적으로 처리되었는지 그 상태를 응답(response)을 통해 알려주기 위해 활용된다. 이러한 응답은 5개의 그룹으로 나뉘어지며, 상태 코드를 표시하는 3자리 수 중 가장 앞자리 수가 바로 응답의 종류를 의미한다. 상태 그룹 역할 1XX Informational Response 조건부 응답 현재 요청까지 처리했다는 전송 프로토콜 수준의 임시적 응답 2XX Success 성공 클라이언트의 요청이 성공적으로 처리 3XX Redirection 경로 재지정 요청 처리를 완료하기 위해 클라이언트의 추가적인 조취 필요 4XX Client Error 클라이언트 오류 요청 내용이 잘못되는 등 클라이언트로 인한 오류 발생 5X..