42서울 21

URL(Uniform Resource Identifier) [webserv개념 1-2]

URLURL(Uniform Resource Identifier)이란 웹을 뒷받침하는 주소체계입니다.URI? URL? URN? 각각 무슨 차이가 있을까?URI는 URL과 URN을 모두 포함하고 있는 개념입니다. URL은 Locator로 URN은 이름으로 추가 분류된 개념입니다.URI (Uniform Resource Identifier) URL (L : Locator), URN(N : Name)Uniform : 리소스를 식별하는 통일된 방식을 의미합니다.Resource : 자원, URI 로 식별할 수 있는 모든 것을 의미합니다.Identifier : 다른 항목과 구분하는데 필요한 정보를 의미합니다.URL : Locator 로 리소스가 있는 위치를 지정하는 방식입니다.URN : NAME으로 리소스에 이름을 부..

42서울/webserv 2024.05.03

HTTP 개관 및 버전별 특징 [webserv 개념 1-1]

HTTP의 정의HTTP는 HTML 문서와 같은 리소스를 가져올 수 있도록 해주는 프로토콜입니다.여기서 HTTP 요청의 대상을 "리소스"라고 하며, HTTP는 리소스의 특성을 제한하지 않습니다.다만, 리소스와 상호 작용하는 데 사용할 수 있는 인터페이스를 정의할 뿐입니다.대부분의 리소스는 URI(Uniform Resource Identifier)로 식별됩니다.클라이언트-서버 프로토콜 : 수신자(거의 웹브라우저)에 의해 요청이 초기화 되는 프로토콜을 말합니다.HTTP의 특징 : 요청(Request)과 응답(response)으로 통신 한다.요청은 일반적으로 브라우저지만, 검색엔진 인덱스 채우는 로봇인 경우도 존재합니다.요청과 응답 사이에는 여러 개체들이 있습니다.( 예 : 게이트웨이 또는 캐시 역할을 하는 프..

42서울/webserv 2024.04.26

Webserv 과제 분석 및 개요

인사말안녕하세요. 너무 늦게 찾아왔네요. 가이드를 만들고자고 다짐한 지 한참인데, 다른 할 일들을 하다 보니 너무 늦어졌네요. 꽤 긴 시리즈가 될 것 같은데요, 이제 시작해보고자 합니다.이번 게시물은 Webserv 과제를 한글로 분석해보고, 과제에서 공부해야 하는 개념들을 목록으로 나누겠습니다.과제 요약이 과제를 한 문장으로 요약하면 아래 문장으로 나타낼 수 있을 것 같습니다.HTTP 1.1 기준을 따르는 Nginx와 유사하게 동작하는 웹서버를 만들어라.오 그러면 nginx는 깃허브에 소스코드를 공개하니까 그걸 따라서 만들면 되겠다..! 라고 생각하고 처음에는 nginx 깃허브를 봤습니다.하지만 저희는 nginx의 동작을 참고하는 것이지, nginx를 똑같이 만들려먼 3명의 팀원으로는 1년이 걸려도 모자..

42서울/webserv 2024.04.25

Webserv 그 길었던 과정의 기록[1편]

시작하면서 42 공통 과정 중 큰 규모와 긴 기간, 난이도로 악명 높은 WebServ 과제를 진행하였습니다. 과제는 공부와 설계 그리고 코드 완성까지 해서, 2023년 6월 26일부터 2023년 8월 21일까지 진행하였습니다. 팀원은 총 4명이서 진행하였고, 진행과정 및 팀 프로젝트 후기에서 어떻게 협업을 진행했는지 다루도록 하겠습니다. WebServ 과제를 한 단어로 말하면 HTTP1.1로 동작하는 웹서버를 만드는 과제입니다. 과제의 공부했던 내용과 코드에 대한 디테일 한 부분은 추후에 게시물로 가이드 형식으로 남기고 이곳에는 프로젝트를 어떻게 진행했는지와 느낀점을 위주로 쓰는 회고록을 먼저 작성하도록 하겠습니다.개념공부 시간 (대략 1주~2주)과제의 주제는 'nginx의 동작을 참고하여 웹서버를 만들..

42서울/webserv 2024.01.28

Build context [42 inception 과제 개념 심화2]

Build contextLearn how to use the build context to access files from your Dockerfilehttps://docs.docker.com/build/building/context/🚨이 공식 문서는 docker 파일을 사용하는 build 명령에 대해서 설명합니다. 이 내용도 과제의 범위를 벗어납니다. 한번 읽어 만 보시는 것을 권장합니다.docker build 또는 docker buildx build 명령은 도커 이미지를 Dockerfile 과 context를 통해 빌드합니다. 명령 형식: docker build [OPTIONS] PATH | URL | - 이전에 다뤘던 build 명령에 대해서 더 깊게 다뤄 보겠습니다.기본적으로 context는 PA..

42서울/Inception 2023.06.24

Multi-stage builds [42 inception 과제 개념 심화 1]

Builder pattern vs. Multi-stage builds in DockerThe Docker builder pattern just got a lot easier. Let's checkout some bleeding-edge PRs from the Docker project that are causing a stir.https://blog.alexellis.io/mutli-stage-docker-builds/Multi-stage buildsKeeping your images small with multi-stage buildshttps://docs.docker.com/build/building/multi-stage/#name-your-build-stages💡위 게시물은 인셉션 과제에서는 전혀 ..

42서울/Inception 2023.06.24

best practices for writing Dockerfiles (과제 요구사항) [42 inception 과제 개념12]

시작하면서Best practices for writing DockerfilesHints, tips and guidelines for writing clean, reliable Dockerfileshttps://docs.docker.com/develop/develop-images/dockerfile_best-practices/About storage driversLearn the technologies that support storage drivers.https://docs.docker.com/storage/storagedriver/과제에 best practices for writing Dockerfiles 를 꼭 읽어보라는 내용이 있습니다.지금까지 42의 성향을 볼 때 이런 문항을 무시하고 넘어갔다가 ..

42서울/Inception 2023.06.24

컨테이너 빌드에 대한 권장사항 [PID 1] [42 inception 과제 개념11]

시작하며이전의 글들을 모두 읽고 이 글을 읽기를 권장합니다. 이 글은 구글의 컨테이너 빌드에 대한 권장사항을 기반으로 하고 있고, 그 권장사항들에 대해서 정리합니다.컨테이너 빌드에 대한 권장사항 | 클라우드 아키텍처 센터 | Google Cloudhttps://cloud.google.com/architecture/best-practices-for-building-containers?hl=ko#signal-handling이전에 도커파일에서 다뤘던 CMD와 ENTRYPOINT 와 깊은 연관이 있으니 그 부분과 함께 공부하면 좋습니다.이 글은 컨테이너를 실행과 동시에 꺼지는 상황을 해결하는데 해결책을 제시할 수 있습니다.그 중 중요한 부분인 PID1 에 대한 내용도 함께 다뤄보겠습니다.컨테이너 빌드에 대한 권..

42서울/Inception 2023.06.24

Docker Volume이란? [42 inception 과제 개념 10]

Docker Volume 왜 그리고 어떻게 쓰나요?데이터의 지속성을 위해서 도커 볼륨을 쓰고 싶어합니다.🚨컨테이너를 제거하거나 stop하면 모든 데이터가 사라지고 처음부터 시작합니다. 그 이유는 컨테이너에서 사용하는 파일 시스템은 실제로 저장을 할 수 있는게 아니라 가상 파일 시스템 이기 때문입니다.👨🏻‍💻그래서 컨테이너 run타임 중에는 데이터를 저장할 수는 있지만 컨테이너도 하나의 프로세스에 불과하기 때문에 프로세스가 종료되면 저장을 할 수가 없습니다.하지만 컨테이너를 stop 할 때마다 데이터가 사라진다고, 항상 컨테이너를 Running 상태로 두는 건 너무 비효율적 입니다. 갑자기 전원이 나가서 컨테이너가 꺼지면 모든 데이터가 없어지는 상태가 발생할 수도 있기 때문에 문제 해결이 필요해졌습니다. ..

42서울/Inception 2023.06.24

Dockerfiles이란? [42 inception 과제 개념 9]

이제 도커 이미지를 Dockerfile을 이용해 만들어보겠습니다.이전에 도커 이미지 게시글에서 잠깐 다뤘던 그림을 가져오겠습니다.도커파일의 특징👨🏻‍💻도커파일이란 도커 이미지를 만들기 위한 설계도입니다. 도커 이미지를 빌드하려면 해당 어플리케이션의 콘텐츠들을 도커파일에 복사해야만 합니다.👨🏻‍💻도커파일은 반드시 Dockerfile이라는 파일명을 가져야합니다.(대소문자 중요)👨🏻‍💻도커 파일에서 하나의 명령은 하나의 layer를 생성합니다.도커 파일의 문법👨🏻‍💻도커 파일에서 있는 모든 대문자는 다 Dockerfile의 문법입니다.👨🏻‍💻모든 도커파일의 첫번째 줄은 기반 이미지(base image)를 가져오는 것으로 시작합니다.첫번째 줄은 이 이미지의 기반 이미지가 무엇인지에 대해서 적어주는 것 입니다.예..

42서울/Inception 2023.06.24
728x90