DevOps BootCamp 171

WAS 개발

const express = require('express') const app = express() const port = 3000 > require : HTTP 서버를 생성하기 위해 express 패키지 모듈을 불러옴 > express 함수를 호출하여 app 변수에 할당 > port 번호에 3000 지정 > HTTP 요청 중, 메소드가 get, 엔드포인트(Endpoint)가 /인 요청을 또 다른 함수로 처리하는 비지니스 로직 > req : 요청, res : 답변 객체 > res.send() : 데이터를 클라이언트에 보낼 수 있음 > app.listen(port, callback) 와 같음. listen 메소드는 특정 호스트와 port에서 연결을 수신한다라는 것을 표현하기 위해서 사용 ★ 클라이언트 요..

HTTPS

HTTPS : Hyper Text Transfer Protocol Secure Socket layer 의 약자 > HTTP over SSL(TLS), HTTP over Secure라고도 부르기도 함 > HTTPS : HTTP 요청을 SSL 혹은 TLS라는 알고리즘을 이용해, HTTP 통신을 하는 과정에서 내용을 암호화하여 데이터를 전송하는 방법 ★ SSL (Secure Sockets Layer)과 TLS (Transport Layer Security)는 모두 인터넷에서 안전한 통신을 할 수 있도록 하는 프로토콜, 암호화 기술을 제공 ※ SSL : Secure Sockets Layer의 약자, 초기에 넷스케이프(Netscape)에서 개발되었으며, 현재는 TLS로 대체 ※ TLS : Transport Lay..

nginx Web Server, 호스팅

★ nginx.conf 파일 구조 > 환경 설정 파일은 관리자가 편집하거나 프로그램을 분석할 수 있는 텍스트 파일 > nginx도 nginx.conf라는 텍스트 파일에 여러 가지 값을 지정해 프로그램의 작동 방법을 결정 > 환경 설정은 nginx.conf 파일에 값을 지정하여 설정 >. nginx.conf 파일은 논리적으로 작성되어 있는 지시어(Directives) 목록 > 애플리케이션 전체가 지시어에 부여하는 값에 의해서 작동 > NGINX는 특정 지시어의 묶음 형태로 모듈을 만들어 이를 통해 작동 > 가장 기본적인 지시어들은 NGINX의 코어 모듈에 포함되어 있으며, 필요한 모듈을 만들어 사용 sudo find / -name nginx.conf > 해당 디렉터리로 이동하여 디렉터리 구조를 살펴보니 n..

빌드와 언어별 빌드 도구

빌드 : 프로그램의 소스 코드를 독립적인 아티팩트(artifact)로 변환하는 과정 : 아티팩트 그 자체로도 실행이 가능하며, 대체로 런타임(소프트웨어 실행 환경)이 필요한 경우가 많음 프레임워크 : 소프트웨어 개발을 쉽게 만들어주기 위해 필요한 도구, 규약의 집합체 백엔드 웹 애플리케이션 개발용 프레임워크 Spring (Java, Kotlin) Django (Python) Express (JavaScript) 프론트엔드 웹 애플리케이션 개발용 프레임워크 React 및 관련 라이브러리 (JavaScript) Vue.js, Svelte (JavaScript) 모바일 및 데스크탑 애플리케이션 개발용 프레임워크 Flutter (Android, iOS 등) .NET Framework (Windows) Apple..

정적 웹사이트 vs 동적 웹사이트

정적 웹사이트: HTML 파일(코드) 자체로 배포되는 사이트 (CSR, Client Side Rendering) 동적 웹사이트: 서버에 의해 HTML 파일이 동적으로 생성되는 사이트 (SSR, Server Side Rendering) AJAX 이전 > 서버에서 웹페이지를 만드는 기술이 보편화되었고, 이러한 동적 웹사이트를 만드는 기술로는 PHP, JSP, ASP 등이 널리 사용 // 동적 웹페이지 예제 (node.js) const http = require('http'); const server = http.createServer((req, res) => { res.setHeader('Content-Type', 'text/html'); // HTML 문서의 형태로 전달됨 res.end('동적 웹페이지wi..

웹 서버

○ 서버 > 어떤 컴퓨터의 역할 > 어떤 컴퓨터 한 대가 요청을 이해하고, 이를 처리하여 요청에 맞는 내용을 응답으로 전달 - serve+er ★ 서버의 역할 사용자의 요청을 받고, 이에 따른 응답과 데이터를 보내주는 역할을 수행함 서비스를 제공하는 컴퓨터 내의 프로그램을 의미함 이러한 프로그램(소프트웨어)이 실행되는 컴퓨터(하드웨어) 역시 서버라고 불림 ★ 서버의 종류 웹 서버 : 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 있는 그대로 반환하는 서버 : 그림, CSS, JS을 포함 > 정적 파일 : 예시 - nginx, Apache Web Server 등 웹 애플리케이션 서버(WAS) : 웹 서버와 같이 웹 페이지를 전달하는 역할을 하기도 함 : 그러나 WAS의 핵심..

REST API

★ REST API란? - REST는 “Representational State Transfer”의 약자 - 로이 필딩의 박사학위 논문에서 웹(http)의 장점을 최대한 활용할 수 있는 아키텍처로 처음 소개 - 웹에서 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식 0 단계 > HTTP 프로토콜을 사용하는 것이 REST API의 출발점 1 단계 > 모든 자원은 개별 리소스에 맞는 엔드포인트(Endpoint)를 사용해야 한다는 것과 요청하고 받은 자원에 대한 정보를 응답으로 전달해야 한다는 것 - 엔드포인트 작성 시에는 동사, HTTP 메서드, 혹은 어떤 행위에 대한 단어 사용은 지양하고, 리소스에 집중해 명사 형태의 단어로 작성..

HTTP 주요 헤더

★ 요청(Request)에서 사용되는 헤더 From : 유저 에이전트의 이메일 정보 일반적으로 잘 사용하지 않음 검색 엔진에서 주로 사용 요청에서 사용 Referer : 이전 웹 페이지 주소 현재 요청된 페이지의 이전 웹 페이지 주소 A → B로 이동하는 경우 B를 요청할 때 Referer: A 를 포함해서 요청 Referer 를 사용하면 유입경로 수집 가능 요청에서 사용 referer는 단어 referrer의 오탈자이지만 스펙으로 굳어짐 User-Agent : 유저 에이전트 애플리케이션 정보 클라이언트의 애플리케이션 정보(웹 브라우저 정보, 등등) 통계 정보 어떤 종류의 브라우저에서 장애가 발생하는지 파악 가능 요청에서 사용 user-agent: Mozilla/5.0 (Macintosh; Intel M..