본문 바로가기

TIL62

Code States 34일차 - HTTP/네트워크 실습 일차가 많아지니까 한번 까먹으면 처음부터 다시 세야한다. 그냥 적지말까... REST API REST API에서 REST는 "Representational State Transfer"의 약자로, 로이 필딩의 박사학위 논문에서 웹(http)의 장점을 최대한 활용할 수 있는 아키텍처로써 처음 소개되었다. REST API는 웹에서 사용되는 모든 자원을 HTTP URL로 표현하고, HTTP Method를 통해 요청과 응답을 정의하는 방식을 말한다. REST API를 사용한다는 것은 REST 아키텍처의 제약조건을 준수한다는 말이다. Endpoint root-endpoint(혹은 root-URL) : API로 요청을 서버와 통신할 때, 서버가 요청을 수락하는 시작점을 뜻한다. path : path(또는 url-pa.. 2021. 9. 3.
Code States 33일차 - HTTP/네트워크 기초 클라이언트 서버 아키텍처 클라이언트 서버 아키텍처, 다른 말로는 2티어 아키텍처라고 불리는 설계 방식에 대해 알아보자. 리소스를 사용하는 앱이 "클라이언트", 리소스를 제공하는 곳이 "서버"라고 한다. 클라이언트와 서버는 요청과 응답을 주고 받는 관계이다. 클라이언트 서버 아키텍처는 요청이 선행되고, 응답이 온다. 요청하지 않았는데 응답이 오는 경우는 없다. 일반적으로 서버는 리소스를 전달해주는 역할만 한다. 리소스를 저장하는 공간을 별도로 마련해 두는데, 이 공간을 "데이터베이스"라고 한다. 기존 2티어 아키텍처에 데이터베이스가 추가된 형태를 3티어 아키텍처라고 한다. 클라이언트는 웹사이트(웹 앱), 스마트폰/태블릿용 앱, 데스크탑 앱이 있고 서버는 웹 서버, 파일 서버, 메일 서버, 데이터베이스 서버.. 2021. 9. 2.
Code States 31일차 - 비동기 코드스테이츠는 비동기의 예를 커피숍을 들었다. 커피숍에 직원이 한명이 있다고 하면 손님이 주문을 하고 커피를 주고 다음 손님의 주문을 받는다. 이것을 blocking라고 한다. 커피 주문 완료시점과 커피 주문 시점이 같으면 동기적(synchronous)이라고 한다. blocking vs. non-blocking 전화 문자 하던 일을 멈추고 받아야 한다 (blocking) 확인 후, 나중에 답장할 수 있다 (non-blocking) 요청에 대한 결과가 동시에 일어난다 (synchronous) 요청에 대한 결과가 동시에 일어나지 않는다 (asynchronous) 커피 주문으로 알아보는 동기 vs. 비동기 동기: 요청에 대한 결과가 동시에 일어난다. 만일 커피 주문이 동기적으로 작동한다면? 손님 1이 아메리카.. 2021. 9. 2.
Code States 28일차 - 자료구조 기초 자료구조란 무엇인가? 여러 데이터들의 묶음을 저장하고, 사용하는 방법을 정의한 것이다. 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미한다. 자료구조는 자료의 특성과 크기, 주요 사용법과 수행하는 연산의 종류, 구현에 필요한 기억 공간 크기에 따라 여러 가지 종류의 자료구조 중 하나를 선택할수 있다. 자료구조의 종류로는 자료형의 따라 분류하는 단순 구조와 자료 간 관계가 1 : 1인 선형구조, 1 : N 또는 N : N 구조인 비선형 구조, 마지막으로 파일 구조가 있다. 구현에 따라 배열, 튜플, 연결 리스트, 원형 연결 리스트, 이중 연결 리스트, 환형 이중 연결 리스트, 해시 테이블이 있다. 형태에 따라 선형 구조인 스택, 큐, 덱이 있고, 비선형 구조인 그래프.. 2021. 8. 26.
Code States 27일차 - StringifyJSON JSON은 Javascript Object Notation의 줄임말로, 데이터 교환을 위해 만들어진 객체 형태의 포맷이다. 네트워크를 통해, 어떤 객체 내용을 다른 프로그램에게 전송한다고 가장한다. 이 객체 내용을 일종의 메신저 혹은 채팅 프로그램에서 쓰는 하나의 메시지라고 한다면, 다음 객체를 어떻게 전송해야할까? const message = { sender: "김코딩", receiver: "박해커", message: "해커야 오늘 저녁 같이 먹을래?", createdAt: "2021-08-25 08:21:38" } 메시지 객체가 전송 가능하려면, 메시지를 보내는 발신자와 메시지를 받는 수신자가 같은 프로그램을 사용하거나, 문자열 처럼 범용적으로 읽을 수 있는 형태여야 한다. 전송 가능한 조건 (tra.. 2021. 8. 25.
Code States 26일차 - 재귀 "재귀"란 무엇일까 동일한 구조의 더 작은 문제를 해결함으로써 주어진 문제를 해결하는 방법을 재귀(recursion)라고 한다. 설명을 추가하기 위해 JAVASCRIPT.INFO에서 가져온 재귀에 대한 설명이다. 재귀는 큰 목표 작업 하나를 동일하면서 간단한 작업 여러 개로 나눌 수 있을 때 유용한 프로그래밍 패턴이다. 목표 작업을 간단한 동작 하나와 목표 작업을 변형한 작업으로 단순화시킬 수 있을 때도 재귀를 사용할 수 있다. 특정 자료구조를 다뤄야 할 때도 재귀가 사용된다. 문제 해결을 하다 보면 함수에서 다른 함수를 호출해야 할 때가 있다. 이때 함수가 자기 자신을 호출할 수도 있는데, 이를 재귀라고 부른다. 재귀와 스택 ko.javascript.info 결론은 모르겠다. 글을 쓴 곳마다 의미가 다.. 2021. 8. 24.