본문 바로가기

전체 글

(127)
HTTPS HTTPS 프로토콜 HTTPS는 Hyper Text Transfer Protocol Secure Socket layer의 약자입니다. HTTP over SSL(TLS), HTTP over Secure라고 부르기도 합니다. 접속한 서버가 의도된 서버임을 보장하며 암호화된 채널을 제공합니다. 암호화 된 채널은 무결성과 기밀성을 지켜줍니다. 무결성(integrity): 메세지가 조작되지 않음 (메세지가 원본 그대로 잘 도착함) 기밀성(privacy): 메세지를 가로챌 수 없음 HTTPS의 개념 HTTP 요청을 SSL 또는 TLS라는 알고리즘을 이용해 HTTP 통신을 하는 과정에서 내용을 암호화하여 데이터를 전송하는 방법으로 중간에 인터넷 요청이 탈취되더라도 내용을 알아볼 수 없습니다. SSL(Secure So..
URL & URI 브라우저의 주소창에 입력한 URL은 서버가 제공되는 환경에 존재하는 파일의 위치를 나타냅니다. https://mari-mo.tistory.com:443/ 사이트에 접속하게 되면, mari-mo.tistory.com 주소가 가리키는 서버의 기본 폴더를 뜻합니다. CLI 환경에서 폴더와 파일의 위치를 찾아 이동하듯이, / (슬레시)를 이용해 서버의 폴더에 진입하거나 파일을 요청할 수 있습니다. 그러나 기본적인 보안의 일환으로 외부에서 직접 접근이 가능한 경우는 거의 없습니다. URL (Uniform Resource Locator) 네트워크 상에서 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보를 나타냅니다. URL은 scheme, hosts, url-path로 구분할 수 있습니다. scheme(가장 먼..
[HTTP/네트워크] 클라이언트 - 서버 클라이언트-서버 아키텍처 2티어 아키텍처 (클라이언트-서버 아키텍처) 상품 정보같은 리소스가 존재하는 곳과, 리소스를 사용하는 앱을 분리시킨 것 클라이언트: 리소스를 사용하는 앱으로 리소스를 요청할 수 있습니다. 서버: 클라이언트의 요청에 따라 리소스를 제공(serve)하는 곳(응답) 상품 정보는 서버에서 다루고, 클라이언트는 상품 정보를 조회합니다. 3티어 아키텍처 기존 2티어 아키텍처에 데이터베이스(리소스를 저장하는 공간)가 추가된 형태를 3티어 아키텍처라고 부릅니다. 일반적으로 서버는 리소스를 전달해주는 역할만 담당합니다. 데이터베이스는 창고와 같은 역할을 합니다. 클라이언트는 서버로 요청을 보내고, 서버는 요청에 따라 적절한 응답을 클라이언트로 회신합니다. 레스토랑에서 종업원(server)에게 음..
API API(Application Programming Interface) 애플리케이션 프로그래밍 인터페이스, 응용 프로그램 인터페이스는 응용 프로그램에서 사용할 수 있도록 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻합니다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공합니다. REST API REST는 "Representational State Transfer"의 약자로, 웹에서 사용되는 모든 자원을 HTTP URI로 표현하고, HTTP Method를 통해 요청과 응답을 정의하는 방식을 말합니다. REST API를 사용한다는 것은, REST 아키텍처의 제약 조건을 준수한다는 말입니다. REST API 디자인 REST API는 공식적으로..
Callback / Promise / async await 콜백(Callback) 비유로 이해하는 콜백함수 콜백 함수의 동작 방식은 유명 맛집 자리 예약과 같습니다. 유명한 맛집을 가면 자리가 없을때가 있어서 대기자 명단에 이름과 연락처를 쓰고 자리가 날 때까지 주변을 돌아다니죠. 만약 식당에 자리가 생기면 전화로 자리가 났다고 연락이 옵니다. 그 전화를 받는 시점이 콜백 함수가 호출되는 시점과 같습니다. 손님 입장에서는 자리가 날 때까지 식당에서 기다리지 않고 근처 가게에서 잠깐 쇼핑을 할 수도 있고 아니면 다른 식당 자리를 알아볼 수도 있습니다. 자리가 났을 때만 연락이 오기 때문에 미리 가서 기다릴 필요도 없고, 직접 식당 안에 들어가서 자리가 비어 있는지 확인할 필요도 없습니다. 자리가 준비된 시점, 즉 데이터가 준비된 시점에서만 우리가 원하는 동작(자리..
비동기 Before You Learn 위 예시를 읽고, 아래 개념을 대략적으로 이해할 수 있다. blocking / non-blocking && synchronous / asynchronous 전화 문자 하던 일을 멈추고 받아야 한다 (blocking) 확인 후, 나중에 답장할 수 있다 (non-blocking) 요청에 대한 결과가 동시에 일어난다 (synchronous) 요청에 대한 결과가 동시에 일어나지 않는다 (asynchronous) 비동기의 주요 사례 DOM Element의 이벤트 핸들러 마우스, 키보드 입력 (click, keydown 등) 페이지 로딩 (DOMContentLoaded 등) 타이머 타이머 API (setTimeout 등) 애니메이션 API (requestAnimationFrame) 서..
BFS / DFS 그래프의 탐색은 하나의 정점에서 시작하여 그래프의 모든 정점들을 한 번씩 방문(탐색)하는 것이 목적입니다. 그래프의 데이터는 배열처럼 정렬이 되어 있지 않습니다. 그래서 원하는 자료를 찾으려면, 하나씩 모두 방문하여 찾아야 합니다. 지하철 노선도를 보여주는 애플리케이션에서 경로를 탐색할 때에는, 최단 경로나 최소 환승 등 하나의 목적에도 여러가지 방법이 있습니다. 이처럼 그래프의 모든 정점 탐색 방법에도 여러 가지가 있습니다. 그중에서 가장 대표적인 두 가지 방법, DFS와 BFS를 소개합니다. 이 둘은 데이터를 탐색하는 순서만 다를 뿐, 모든 자료를 하나씩 확인해 본다는 점은 같습니다. BFS (Breadth-First Search), 너비 우선 탐색 가까운 정점부터 탐색합니다. 그리고 더는 탐색할 정..
자료구조 기초 자료구조란? 여러 데이터들의 묶음을 저장하고, 사용하는 방법을 정의한 것입니다. 자료구조를 설명하기에 앞서, 데이터(data)는 무엇일까요? 데이터는 문자, 숫자, 소리, 그림, 영상 등 실생활을 구성하고 있는 모든 값입니다. 우리의 이름, 나이, 키, 집 주소, 목소리 혹은 유전자 DNA까지 데이터로 분류할 수 있습니다. 하지만 데이터는 그 자체만으로 어떤 정보를 가지기 힘듭니다. 예를 들어 나이라는 데이터만 알고 있다면, 이 나이가 사람의 나이인지, 고양이의 나이인지, 나무의 나이인지 알 수 없습니다. 이처럼 데이터는 분석하고 정리하여 활용해야만 의미를 가질 수 있습니다. 그 뿐만 아니라, 데이터를 사용하려는 목적에 따라 형태를 구분하고, 분류하여 사용합니다. 필요에 따라 데이터의 특징을 잘 파악(분..

반응형