목록DevOps (186)
devops
프록시(Proxy) 프록시는 원 서버를 대리하여 통신하며, 캐시, 로드밸런서 및 보안 등 중계역할을 하는 서버를 말한다. 프록시 서버가 중간에 위치하기 때문에 클라이언트를 프록시 서버를 '서버'로 인식하고 서버는 프록시 서버를 '클라이언트'로 인식한다. 이러한 프록시는 위치에 따라서 포워드 프록시(Forward proxy), 리버스 프록시(reverse proxy)로 나뉜다. 일반적인 프록시 서버는 포워드 프록시를 말한다. 이는 클라이언트와 서버 사이에서 클라이언트를 대리하여 클라이언트에서 서버로 리소스를 요청할 때 직접 하지 않고 프록시 서버를 거쳐서 요청한다. 로드밸런서(Load Balancer) 서버의 가용성(availability)를 높이기 위해서 하나의 서비스는 두 대 이상의 서버로 구성한다. ..
Socket(소켓) 소켓이란 네트워크 상에서 동작하는 프로그램 간 통신의 종착점(Endpoint)이다. 즉, 프로그램이 네트워크에서 데이터를 통신할 수 있도록 연결해주는 연결부라고 볼 수 있다. 데이터를 통신할 수 있도록 연결해주기 때문에 통신할 클라이언트와 서버 모두에 소켓이 생성되어야 한다. * Endpoint : IP 주소와 Port 번호의 조합을 뜻하며 최종 목적지 역할을 한다. 클라이언트가 소켓 호출하면, 클라이언트의 응용 프로그램과 서버의 응용 프로그램 간에 소켓 연결이 설정된다. 상황을 이해하기 쉽게 '전화'로 비유해보면, 1) 전화기에서 전화번호로 전화를 거는 것 = 소켓 호출을 시작 2) 전화 교환 장치는 통화를 완료하기 위해 논리적으로 올바른 교환 위치를 알고 있음 3) 전화 대화 중에..
OSI 7계층와 TCP/IP 계층 데이터 플로우(Data) 계층과 어플리케이션(Application) 계층으로 구분한다. 이 구분은 데이터를 만드는 어플리케이션 부분과 데이터를 전달하는데 집중하는 하부 계층으로 구분하는 것에 목적을 둔다. 그러나 현대 네트워크는 대부분 합리적이고 성능이 우수한 TCP/IP 프로토콜과 이더넷으로 이루어져있다. 그래서 TCP/IP 계층은 이론보다는 실용성에 중점을 둔 프로토콜이다. OSI 7계층 물리 계층 : 주로 물리적 연결과 관련된 정보를 정의한다. 주로 전기 신호를 잘 전달하는 것이 목적 데이터 링크 계층 : 물리 계층에서 들어온 전기 신호를 모아 알아 볼 수 있는 데이터 형태로 처리. 주소 정보를 정의하고 출발지와 도착지 주소를 확인하여 데이터 처리를 수행. 네트워크..
1) vscode 파일이 설치된 경로를 확인한다. 대체로 아래 경로에 위치해있음. "/mnt/c/Users//AppData/Local/Programs/Microsoft VS Code/bin" 2) 홈디렉토리에 .bash_profile 혹은 .profile 에 아래 코드를 입력해서 환경변수를 추가한다. (ls -a하면 숨김파일 나옴) export PATH=$PATH:"/mnt/c/Users/socia/AppData/Local/Programs/Microsoft VS Code/bin" 3) 터미널을 재실행한 후 다시 code .를 입력하면 정상 작동한다.
CORS 이제는 여러 서버에 있는 리소스를 요청한다. 즉 Cross Origin Resource Sharing, 같은 origin이 아닌 다른 곳에서 리소스 자원을 요청해서 사용한다는 개념이다. 그러나 브라우저들은 보안을 이유로 cross-origin HTTP 요청을 제한한다. 그러나 개발자들으느 cross-domain 요청을 할 수 있도록 요청하여 현재는 서버가 허용한 범위 내에서 cross origin 요청이 가능하다. SQL 데이터베이스 언어로 주로 관계형 데이터베이스에서 사용한다. MySQL, Oracle, SQLite 등 다양한 DB에서 SQL 구문을 사용할 수 있다. SQL이란 DB용 프로그래밍 언어다. 데이터베이스에서 쿼리를 보내 원하는 데이터를 가져오거나 삽입할 수 있다. SQL은 구조화된..
서버 사용자의 요청을 받아, 이에 따른 응답과 데이터를 보내주는 역할을 한다. 서비스를 제공하는 컴퓨터 내의 프로그램을 의미하기도 하며, 프로그램(S/W)이 실행되는 컴퓨터(H/W) 역시 서버라고 불린다. 웹 어플리케이션 서버(Web Application Server) WAS라고 불리며, 핵심 역할은 웹페이지를 구성하는 동적인 컨텐츠를 생성하거나 업데이트를 하는 비즈니스 로직을 수행할 수 있게 한다. 웹 어플리케이션 서버가 갖는 특징은 웹 페이지를 구성하는 동적인 요소를 생성하는 서버 사이드 코드가 구동될 수 있는 프로그래밍 언어적 런타임 혹은 S/W 엔진을 제공한다. 데이터 베이스 서버 데이터베이스 서버는 사용자가 데이터 베이스에 연결할 수 있도록 해준다. 프록시 서버 프록시 서버는 리소스를 요청하는 ..
REST API Representational State Transfer의 약자로 웹의 장점을 최대한 활용할 수 있는 아키텍처로 처음 소개되었다. REST API는 웹에서 사용되는 데이터, 리소스를 HTTP URI로 표현하고 HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식을 말한다. 좋은 REST API 디자인하기, 리차든 성숙도 모델 리차든 성숙도 모델 (RMM)은 총 4단계로 나누어진다. 이 모든 단계를 충족해야 REST API라고 부를 수 있지만 3단계는 충족하기 어렵기 때문에 2단계만 지키더라도 좋은 API 디자인이다. 이런 경우 HTTP API라고 부른다. REST 성숙도 모델 0단계 0단계는 단순히 HTTP 프로토콜을 사용해도 된다. REST 성숙도 모델 1단계 1단계에서는 개별 리소스와..
HTTP 표현 헤더 표현은 요청이나 응답에서 전달할 실제 데이터를 의미. 메시지의 본문은 통해서 표현 데이터를 전달한다. * 메시지 본문 = Payload(페이로드, 데이터를 실어나르는 부분) 표현 헤더는 표현 데이터를 해석할 수 있는 정보를 제공한다. (데이터 유형이나 데이터 길이, 압축 정도 등) HTTP 헤더는 HTTP 전송에 필요한 모든 부가정보를 담는다. 표현 헤더는 요청(request)와 응답(response) 둘 다 사용한다. 콘텐츠 협상 클라이언트가 선호하는 표현을 요청하는 것을 의미한다. - Accept : 클라이언트가 선호하는 미디어 타입 전달 - Accept-Charset : 클라이언트가 선호하는 문자 인코딩 - Accept-Encoding : 클라이언트가 선호하는 압축 코딩 - Ac..
1) Start line(시작 라인) - request와 response에 따라 다름 2) Header(헤더) 3) Empty line(공백 라인) 4) Body(메시지 본문) HTTP Header 구조 1) General header : 2) Response header / Request header 3) Entity header ▼ General Request URL : 요청 URL Request Method : 요청 method Status Code : 상태 코드 Remote Address : 클라이언트의 IP 주소 Referrer Policy : 요청에 포함되어야 하는 Referrer의 정보(개인정보 및 보안)를 제어.. * Referrer : 현재 요청된 페이지에 대한 링크가 따라온 이전 웹 페..
HTTP Header HTTP 헤더는 클라이언트와 서버가 요청 또는 응답으로 부가적인 정보를 전송할 수 있도록 해준다. 헤더는 대소문자를 구분하지 않는 이름과 콜론(:) 다음에 오는 값으로 이루어져있다. 헤더의 종류는 다음 4가지다. - General header : 요청과 응답 모두에 적용되나 body에서 최종적으로 전송되는 데이터와 관련이 없는 헤더 - Request header : 패치될 리소스나 클라이언트 자체에 대한 자세한 정보를 포함. - Response header : 위치, 서버 자체에 대한 정보와 같이 응답에 대한 부가적인 정보 포함 - Entity header : 콘텐츠 길이나 MIME 타입과 같이 entity body에 대한 자세한 정보를 포함. 요청(Request)에 사용되는 hea..