목록전체 글 (81)
Fairy ' s
서버 ? 하드웨어적 : 정적인 파일들이 제공되고, 서버 애플리케이션이 실행되는 컴퓨터. 소프트웨어적 : 정적인 파일이나 서비스를 제공하는 애플리케이션 그 자체 즉, 서버는 사용자의 요청을 받고 이에 따른 응답과 데이터를 보내준다. 서비스를 제공하는 컴퓨터 내의 프로그램(프로그램)이며, 프로그램 실행되는 컴퓨터(하드웨어)도 서버이다. 웹 서버 - 클라이언트로부터 HTTP 요청을 받아들이고, 웹 페이지를 그대로 반환하는 서버 - 웹 페이지 : 그림, CSS, JS 등 정적 파일 - 정적 파일들을 브라우저에 그대로 전달하기 때문에 정적 웹 서버 라고 부르기도 한다. - ex. nginx, Apache Web Server 등 웹 애플리케이션 서버 (WAS) - 웹 페이지를 전달하는 역할을 하기도 하지만, 핵심 ..
HTTPS HTTP에 Secure을 더한 보안이 강화된 HTTP 비대칭 키 암호화 - ex. 암호화한 키 A는 한 쌍인 다른 키 B로만 복호화 가능 - 서버는 한 쌍의 키인 A와 B중에 하나는 숨겨두고 다른 하나는 클라이언트에 공개하여 데이터를 안전하게 전송 1. Hand Shake : 서로를 확인하고 서버는 공개키와 인증서 정보를 클라이언트에 전송 2. 비밀 키 생성 : 클라이언트와 서버는 서로 만들고 교환한 임의의 정보를 바탕으로 비밀 키를 생성 각자 생성한 키를 바탕으로 클라이언트가 테스트용 데이터를 만들어낸 비밀키로 암호화해서 전달 3. 상호 키 검증 : 서버 역시 만들어진 비밀키로 복호화를 하고 다시 암호화를 해서 클라이언트로 전달 클라이언트가 같은 내용의 데이터를 복호화하는데에 성공했다면, 성..
REST API - 데이터나 자원을 HTTP URI로 표현하는 데에 목적이 있다. - API 작성을 위해서는 어떠한 리소스를 요청/응답으로 주고 받을 것인지, 해당 리소스에 어떤 내용을 포함하는지 보아야한다. - 리소스 : 데이터 모델링의 한 부분으로 데이터를 여러 개의 표 형식으로 정의할 수 있다. 이것을 관계형 데이터 모델링 이라고 한다. 관계형 데이터베이스 - 행과 열(필드)로 구성된 표 형식으로 표현된다. - 데이터를 넣을 때는 모든 값이 일관된 자료형이어야 한다. - 필드 정보(스키마)만 포함하고 싶을 때는 자료형을 반드시 같이 적어주어야 한다. HTTP API - 데이터베이스 같은 데이터가 HTTP 프로토콜을 통해 전달되려면, HTTP body는 문자열로만 이루어져 있기 때문에 표를 문자열로만..
입·출력 alert() : 알림 창에 텍스트나 변수값 표시 confirm() : 취소, 확인 선택 창 prompt() : 입력 창 표시 console.log() : 콘솔 창을 통해 출력 document.write() : 웹 브라우저 창에 표시 undefined - undefined 가 나타나는 이유는 콘솔 창에서 실행한 명령이 반환하는 값이 없기 때문이다. - 콘솔 창에서 alert 실행 시 undefined, confirm이나 prompt 실행 시 반환 값이 나타난다. 템플릿 리터럴 문자열과 변수, 식을 섞어서 하나의 문자열을 만드는 표현 형식 '\n'과 같은 줄 let name = "fairycode" let classroom = 201 // 연결 연산자 이용 console.log(name + "님,..
위의 사진을 통해 유추할 수 있는 HTTP 구조, 요청과 응답, 헤더 등 내용을 작성해봅시다. General Request URL : 요청한 도메인 주소가 http://toss.im/ 이다. Request Method : GET 요청을 통해 toss 서버에 읽기 또는 검색 요청을 보냈다. Status Code : 상태코드가 200. 즉, 요청을 성공적으로 인식하고 수용했다. Remote Address : 요청을 보낸 클라이언트의 IP 주소이다. Referrer Policy - 'strict-origin-when-cross-origin' : 헤더에 참조 페이지 전체의 URL을 포함한다. - 'no-referrer' : 헤더에 어떤 정보도 포함하지 않는다. 응답 헤더 (Response Header) Conn..
Runtime (런타임) - 프로그램을 실행하는 환경 - JavaScript의 런타임은 node.js이다. NPM (Node Package Manager) - 필요한 모듈을 다운로드 할 수 있는 모듈 스토어 - 리눅스의 패키지 매니저가 apt이고 macOS의 패키지가 brew이듯, node.js 생태계의 패키지 매니저는 npm이다. - package.json : 프로그램을 실행시키기 위해 필요한 모듈의 이름, 실행 방법, 테스트 방법 등이 명시되어 있다. 프로그램을 실행시키기 위해 필요한 실제 모듈은 따로 'node_modules'라는 폴더에 저장되어 있다. - package.json 에서 필요하다고 하는 모듈은 npm install 명령어를 입력하면 node_modules 라는 디렉토리가 생기며 자동 ..
HTTP (HyperText Transfer Protocol) html 과 같은 문서 전송을 위한 응용 계층 프로토콜 HTTP는 무상태성 (Stateless)이라는 특징을 가지고 있다. 무상태성 (Stateless) : 서버는 동일한 클라이언트의 요청에 대한 정보를 유지하지 않으며, 독립적인 응답으로 응답한다. 즉, 상태를 저장하지 않는다는 뜻이며, 필요에 따라 다른 방법(쿠키-세션, API 등)을 통해 상태를 확인할 수 있다. HTTP messages : 클라이언트와 서버 사이 데이터가 교환되는 방식 - start line : 항상 첫 번째 줄에 위치하며, 요청이나 응답의 상태를 나타낸다. (응답에서는 'status line'이라고 부른다.) - HTTP headers : 요청을 지정하거나, 메시지에 ..
URL (Uniform Resource Locator) : 서버가 제공되는 환경에 존재하는 '파일의 위치'를 나타낸 정보 - scheme, hosts, url-path로 구분할 수 있다. URI (Uniform Resource Idenrifier) : 브라우저의 검색창을 클릭하면 나타나는 주소 - URL의 구성요소에 query와 port, bookmark를 포함한다. URL, URI / 'URL은 URI이다.' - URI는 URL을 포함하는 상위개념이다. - URL : file://127.0.0.1/Users/username/Desktop - URI : http://www.google.com:80/search?q=Javascript scheme hosts port url-path query URL fil..