전체 215

[0407] (페어) 네트워크 기초 - Proxy Server

Achievement Goals 리버스 프록시(Reverse Proxy)와 포워드 프록시(Forward Proxy)에 대해서 이해하고, 특징을 학습합니다. 프록시 서버에 사용되는 지시어(directives)를 학습하고, 이를 활용합니다. 프록시 서버에서 원 서버로 전달되는 요청 헤더를 설정하는 방법을 학습합니다. 프록시 서버의 cache-control 방법과 캐시 관련 지시어 사용법을 확인합니다. Bare Minimum Requirements 내 컴퓨터를 원(origin) 서버의 리버스 프록시 서버로 만들어야 합니다. 캐싱 기능을 포함한 프록시 서버를 작성해야 합니다. sprint-proxy-server 레포지토리에 Pull Request를 통해, nginx.conf 설정 내용을 제출해야 합니다. 1. ..

Code States/TIL 2023.04.07

[0407] 네트워크 기초 - 아키텍처를 구성하는 요소들

학습 목표 OSI 7계층 모델과 TCP/IP 4계층 모델을 기반으로 한 네트워크 흐름에 대해 이해할 수 있다. TCP/IP 패킷이 왜 필요한 지 설명할 수 있다. TCP와 UDP의 차이에 대해 설명할 수 있다. 데이터 링크 계층과 물리적 계층에 대해서 설명할 수 있다. HTTP 기본 동작과 특징에 대해 이해할 수 있다. 상태유지(Stateful)과 무상태(Stateless)의 개념에 대해 설명할 수 있다. HTTP 메시지 구성에 대해 설명할 수 있다. 아키텍처의 구성요소에 대해서 알 수 있다. 프록시, 로드밸런서에 대해 설명할 수 있다. 캐시의 기본 원리와 CDN에 대해 설명할 수 있다. 프록시 서버를 만들고, 프록시 캐시를 컨트롤 할 수 있다. 프록시(proxy) 사전적 의미: 대리, 대리권 원 서버를..

Code States/TIL 2023.04.07

[0406] 네트워크 기초 - HTTP 버전별 특징

0.9(1991년) HTTP 초기 버전을 구분하기 위해 부르는 버전 요청은 단일 라인으로 구성되며, 리소스에 대한 메소드는 GET만 존재함 응답 또한 극도로 단순함(파일 내용 자체로만 구성됨) HTTP 헤더도 없고, HTML 파일만 전송 가능함 1.0(1996년) HTTP 헤더 개념이 도입되어 요청과 응답에 추가됨 메타 데이터를 주고 받고 프로토콜을 유연하고 확장 가능하도록 개선됨 버전 정보와 요청 메소드가 함께 전송되기 시작함 상태 코드 라인도 응답의 시작 부분에 추가되어 브라우저 요청의 성공과 실패를 파악할 수 있게 됨(해당 결과에 대한 로컬 캐시 갱신 등의 사용이 가능해짐) Content-Type 도입으로 HTML 이외의 문서 전송이 가능해짐 커넥션 하나당 요청 하나와 응답 하나만 처리 가능함 1...

Code States/TIL 2023.04.06

[0406] 네트워크 기초 - 소켓과 포트의 특징 및 차이점

소켓 프로그램이 네트워크에서 데이터를 송수신 할 수 있도록 “네트워크 환경에서 클라이언트와 서버가 서로 연결할 수 있게 만들어진 연결부”를 의미함 네트워크 상에서 돌아가는 두 개의 프로세스 간 양뱡향 통신에서 하나의 엔드포인트이며, 여기서 엔드포인트는 IP 주소와 포트 번호의 조합을 의미함 IP 주소는 데이터를 전달받을 호스트의 주소를 가리키고, 포트 번호는 그 데이터를 전달받을 호스트 안에서 원하는 프로세스를 찾는 용도로 사용됨 IP 주소, 포트 넘버, 프로토콜로 소켓을 정의할 수 있지만, 이것이 소켓을 유일하게 식별하진 않음 포트 네트워크 서비스나 특정 프로세스를 식별하는 논리 단위 전송 제어 프로토콜(TCP)와 사용자 데이터그램 프로토콜(UDP) 등 주로 전송 계층 프로토콜에서 사용함 각 포트는 번..

Code States/TIL 2023.04.06

[0406] 네트워크 기초 - OSI 7계층과 TCP/IP 4계층

학습 목표 OSI 7계층 모델과 TCP/IP 4계층 모델을 기반으로 한 네트워크 흐름에 대해 이해할 수 있다. TCP/IP 패킷이 왜 필요한 지 설명할 수 있다. TCP와 UDP의 차이에 대해 설명할 수 있다. 데이터 링크 계층과 물리적 계층에 대해서 설명할 수 있다. HTTP 기본 동작과 특징에 대해 이해할 수 있다. 상태유지(Stateful)과 무상태(Stateless)의 개념에 대해 설명할 수 있다. HTTP 메시지 구성에 대해 설명할 수 있다. 아키텍처의 구성요소에 대해서 알 수 있다. 프록시, 로드밸런서에 대해 설명할 수 있다. 캐시의 기본 원리와 CDN에 대해 설명할 수 있다. 프록시 서버를 만들고, 프록시 캐시를 컨트롤 할 수 있다. 물리계층 주로 물리적 연결과 관련된 정보를 정의함 주로 전..

Code States/TIL 2023.04.06

코드스테이츠 DevOps 부트캠프 한 달차, Section 1 종료!

2023.03.07 ~ 04.05 Section 1. 서비스 운영기초, 개발 및 배포 벌써 부트캠프가 시작된지 한 달의 시간이 지났고, 섹션 1이 끝났다! 문득 날짜를 볼 때마다 벌써 일주일이 지났다고? 벌써 이주가 지났다고? 하고 있었는데, 벌써 한 달이 지났다. 부트캠프 개강을 기다릴때 까지만 해도 '언제 7월이 되고 끝나려나..' 라는 상태였는데, 이대로면 순식간에 남은 기간도 지나가고 취업 준비를 하고있을 것 같다. 첫 번째 섹션의 커리큘럼은 다음과 같다.개발 프로세스와 DevOps 업무 개요리눅스 운영체제웹서비스 개발 기초Git과 버전 관리 시스템HTTPWAS, Web Server 개요 개인적으로 느끼기에 비전공자들을 위한 시간이었다고 생각된다. 본격 데브옵스에 들어가기 전, 정말 기초 지식들을..

Code States/회고 2023.04.05

Section 1. 프로젝트 - WAS, Web Server 실습

2023.04.03-04.05 첫 번째 프로젝트가 끝났습니다 👏 일차별 작업 진행 사항은 TIL로 정리하였기 때문에, 해당 회고에서는 변경점이나 트러블슈팅 등을 기록합니다! (TIL 링크: Day 1 Day 2) 프로젝트 소개 프로젝트 주제는 LMS(학습 관리 시스템)였다. 작업 목표는 데이터베이스를 설계하고 그에 따른 ERD를 작성한다. 주어진 최소 요구사항을 만족하는 API를 디자인하고, fastify를 사용해 웹서버를 구현하여 작성한 API가 잘 작동되는지 확인하는 것이다. 진행 일정 Day 1: DB 설계, 주제 분석, ERD 및 API 문서 제작 Day 2: fastify 프로젝트 생성 및 DB 연결, DB 구성 및 서버 연결, API 문서에 따른 서버 구현 Day 3: 프로젝트 잔여 업무 진행..

Code States/회고 2023.04.05

[0404] Section 1. 프로젝트 - WAS, Web Server 실습 Day 2

데이터베이스 생성 class 테이블 course 테이블 users 테이블 WAS와 데이터베이스 연결 postgres.js 파일 및 .env 파일 생성 실행 확인 fastify 프로젝트 생성 확인 팀원의 이름으로 엔드포인트 설정하여 접근 가능한지 확인 각 테이블 별 엔드포인트 생성 및 API 기능 구현 users 테이블 구현 GET 동작 확인 PUT 동작 확인 teachers 테이블 구현 GET 동작 확인 course 테이블 구현 GET 동작 확인 POST 동작 확인 DELETE 동작 확인 class 테이블 구현 GET 동작 확인 POST 동작 확인 트러블 슈팅 PUT과 POST, DELETE의 경우, 사용자의 권한을 인증시켜야 한다 이를 위해 토큰 방식을 이용하는데, 이번 프로젝트는 백엔드와 프론트엔드를..

Code States/TIL 2023.04.04

[0403] Section 1. 프로젝트 - WAS, Web Server 실습 Day 1

주제 : LMS(학습 관리 시스템) 최소 요구사항 사용자는 모든 수업을 조회할 수 있다 사용자는 특정 분류의 수업을 조회할 수 있다(예: 강의자/ 수업명 / 수업코드 등) 사용자는 수업을 수강신청 할 수 있다 사용자는 모든 수강중인 수업을 조회할 수 있다 사용자는 이메일 정보와 같은 개인정보를 변경할 수 있다 사용자의 타입이 강의자일 경우 새로운 수업을 생성할 수 있다 사용자는 수업에 대한 수강신청을 취소 할 수 있다 데이터베이스 설계 및 ERD 제작 API 문저 제작 - GET /class { "class": [ { "id": 2, "title": "네트워크 기초", "teacher": "투명인간", "code": 100, "teacher_id": 4 }, { "id": 3, "title": "데이터베..

Code States/TIL 2023.04.03

[0331] (페어) 데이터베이스 - 로그 파이프라인

1. nginx 로그 분석 parse.js 파일을 수정하여 로그를 json 형식으로 출력하기 sample.log 를 보고 로그의 형식을 파악한다. 2. 파서(parser) 작성 const customParseFormat = require('dayjs/plugin/customParseFormat') dayjs.extend(customParseFormat) process.stdin.on("data", data => { // log 파일의 한줄을 저장 let raw = data.toString() // [\] : 대괄호([]) 로 묶인 문자열을 검색 // .+ : 모든 문자열이든 1개 이상 존재 가능 // g : 전역에서 검 let regex = /\[(.+)\]/g let match = regex.exec(..

Code States/TIL 2023.03.31