본문 바로가기

전체 글124

[Network] Cross-Origin Resource Sharing (CORS), Same-Origin Policy (SOP) 1. SOP (Same-Origin Policy) Cors를 이해하기 앞서 SOP라는 정책에 대하여 이해할 필요가 있다. 프로토콜, 호스트 및 포트가 같은 경우 URL은 동일한 출처를 가지고 있는 URL로 정의할 수 있다. https://ssnotebook.tistory.com의 각 부분 예시 - 프로토콜 : https - 호스트 : ssnotebook.tistory.com - 포트 : 생략 (http://127.0.0.1:80이라는 주소에서 :80의 부분에 해당) 위의 기준으로 3가지 조건이 같지 않다면 다른 출처를 뜻하게 되는 것이며, 특정 출처를 가진 자원과 다른 출처를 가진 자원(문서 또는 스크립트)이 상호작용 하지 못하도록 요청 발생을 제한하는 정책이 SOP이다. CSRF(Cross-Site R.. 2022. 12. 16.
[CS] Base64 (Encode/Decode) 1. 인코딩(Encoding) / 디코딩(Decoding) 인코딩(Encoding) : 파일에 저장된 정보의 형태나 형식을 특수한 목적(데이터 표준화, 보안 등)을 위해서 일정 규칙에 따라 다른 형태로 변환하는 행위 (암호화 또는 부호화라고도 불림) 디코딩(decoding) : 인코딩에 의해 변환된 데이터를 변환되기 전 기존의 데이터로 변환시키는 행위 (복호화라고도 불림) 2. Base64 Base64 : 2진수(Binary)로 이루어진 8bit 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 문자로 표현하기 위해 만들어진 인코딩 방식이며 64진법을 기반으로 사용한다. 3. 인코딩 과정 1. 원본 문자 -> 문자를 ASCII 기반의 8bit binary(2진수)로 변환 ex) 'A' -> [10진.. 2022. 11. 30.
[Web] 토큰 기반 인증 / JWT (Json Web Token) 1. 토큰 기반 인증이란? 사용자가 자신의 신원을 검증하여 대가로 본인을 나타내는 고유 Access Token을 받는 프로토콜이다. 2. 인증 토큰 유형의 분류 인증 토큰은 전부 접근을 허용하나 다음의 세 가지의 유형 별로 다르게 작동한다. 1) Connected : 키, 디스크, 드라이브 등의 물리적 장치가 액세스를 위해 시스템에 연결 2) Contactless : 장치가 서버와 통신이 가능할 정도로 가까이 있으나 연결은 되어있지는 않은 상태 3) Disconnected : 장치가 다른 장치와 접촉이 없더라도 장거리 통신을 통하여 서버와 통신하여 작동 3. JWT (Json Web Token) 사용자가 웹/앱을 통하여 시스템에 액세스를 하는 수가 늘어나면서 플랫폼에 대한 안전한 인증 방법에 대한 필요성.. 2022. 11. 9.
[Network] DNS (Domain Name System) - Domain Name System이란? DNS를 알아보기 전에 먼저 Internet Protocol(IP)에 관하여 알 필요가 있다. * IP : 인터넷에 연결된 컴퓨터들은 IPv4와 IPv6의 방식의 숫자로 된 고유 주소를 가지고 있다. 사용자가 인터넷에 연결된 다른 장치를 찾고 상호작용을 하기 위해서는 해당 장치의 고유 IP를 알아야 했다. 그러나 숫자로 구성된 IP를 외우는 것은 쉽지 않았고 그래서 생긴게 DNS(Domain Name System)이다. DNS를 통하여 어렵게 IP를 외우지 않아도 문자로된 도메인 주소를 입력하면 브라우저에서 요청을 하여 그에 알맞은 IP를 변환해줌으로 통신이 가능하게 되었다. ※ Domain Name의 간단한 예시로 구글(www.google.com)이나 유튜브(.. 2022. 11. 4.
[Search Engine] Meilisearch 1. Meilisearch란? Rust 기반으로 제작된 API 기반 오픈소스 검색엔진이다. https://www.meilisearch.com/ 프랑스 파리에서 설립된 스타트업 Meili에서 제작한 검색엔진이며 현재까지 1,500만 달러의 투자금을 유치하며 지속적으로 개발 중이다. 2. Support Language 공백을 기준으로 단어를 나누는 언어 (ex. English) - Default 중국어 일본어 히브리어 태국어 한국어 (Default -> 형태소 분석 적용 진행 중 - 2022.11.01) ※ 한국어는 현재 공백을 기준으로 단어를 토큰화하여 검색 (ex . 오늘은 월요일 입니다 -> [오늘은] [월요일] [입니다] | 오늘은월요일입니다 -> [오늘은월요일입니다]) ※ 형태소 분석 : 더 이상 .. 2022. 11. 1.
[Python] "_" in Python (Underbar) Python의 Code는 PEP-8에 의거하여 작성하는 것을 권장하고 Snake_case를 기반으로 표기를 하는데 Python 내에서도 Underbar(_)는 다양한 용도로 사용한다. 다음은 용도에 대하여 분류하였다. 1. Interpreter의 마지막 값의 대용으로 사용 Python에서 연산을 마쳤을 때 Underbar는 Interpreter에서 마지막으로 출력한 값으로 사용할 수 있다. python3 >>> 1+1 2 >>> _+1 3 >>> _*3 9 2. 버리는 값 Python에서 Code를 입력할 때 버리는 값으로 Underbar를 많이 사용한다. 하지만 기능적으로 의미가 있는 것은 아니고 버리는 값이라고 명시적으로 표기해 주는 것이다. Example : one = "*" two = "**" f.. 2022. 10. 30.