본문 바로가기

42cursus

(13)
http 정리 HTTP 란 - HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜 - 웹에서 이루어지는 모든 데이터 교환의 기초 - 클라이언트-서버 프로토콜 HTTP 흐름 1. TCP 연결 (3 handshake) 2. 클라이언트가 서버에 http 메세지 전송 (Request) 3. 서버에 의해 전송된 응답(Response)을 클라이언트가 읽음 4. 연결을 닫거나, 다른 요청을 위해 재사용 HTTP 메시지 - 요청(Request) 예시 - 응답(Response) 예시 - 요청(Request)과 응답(Response)의 구조는 서로 닮음 HTTP 요청 - 시작 줄, 헤더, 본문으로 이루어짐 -> 각 줄은 캐리지 리턴(0x0D, \r, CR) + 라인피드(0x0A, \n, LF)으로 문자열을 마무리 -> 그..
webserv 하루 일기 1일차 (21 / 6 / 7) - select 함수의 사용법 익힘 - 간단한 에코서버 구현 - writefds의 이용 -> 변수를 이용하여 제어 2일차 (21 / 6 / 8) - conf파싱 -> request파싱 -> response 하나씩 구현하기로 함 - conf, server, location에 대한 대략적인 구조 논의 -> 일단 만들기, 유효성에 대해서는 스스로 정하기 - conf파싱, request파싱, 기본구조에 대한 분업 협의 -> conf(heryu), request(hyeonkim), 기본구조(mijeong) - git repo 파기 3일차 (21 / 6 / 9) - 기본적인 파싱 완성 -> 리펙토링, Valid검사, 변수설정 필요 - valid하지 않으면 무조건 예외던짐 4일차 (21..
philosophers[철학자] - 룰 그리고 쓰레드, 뮤텍스, 세마포어, 프로세스 0. 프로젝트 목표 쓰레드와 뮤텍스를 사용하여 공유 메모리에 대한 처리 하기 쓰레드와 세마포어를 사용하여 공유 메모리에 대한 처리 하기 프로세스와 세마포어를 사용하여 프로세스간 동기화에 대한 처리 하기 1. 기본 룰 1) 철학자들이 둥근 테이블에 앉아 있음 2) 3가지 상태가 존재함 (eat, sleep, think : 동시상태는 없음) 3) 중앙에 스파게티 접시가 있고, 철학자 수만큼의 포크가 존재 4) 한 철학자당 포크 2개로 식사를 함 5) 각 철학자들은 서로 말도 못하고, 상태확인도 하지 못함 (포크만 보는 것) 6) 철학자는 먹고 나서 포크를 두고 잠 (eating -> sleeping) 7) 철학자는 자고 나서 생각함 (sleeping -> thinking) 8) 이 시뮬레이션은 한명의 철학자..
philosophers[철학자] - 외부함수 정리하기 (시간, 쓰레드, 뮤텍스, 세마포어) === 시간 함수 === int usleep(useconds_t microseconds) 마이크로초 만큼 쓰레드 대기 헤더 - unistd.h 파라미터 - microseconds: 1 / 1000 * 1000 초 반환 - 성공 시: 0 반환 - 실패 시: -1 반환 1 2 3 4 5 6 7 8 9 10 11 12 13 #include #include int main(void) { int i = 0; while (i 부모쓰레드가 해당 쓰레드를 기다리지 않음 독립된 thread는 종료시 자동으로 리소스 해제 헤더 - pthread.h 파라미터 - thread: 쓰레드 식별값 (고유 아이디) 반환 - 성공 시: 0 반환 - 실패 시: 에러 넘버 int pthread_join(pthread_t thread, v..
minishell - 간단한 정리 0. 프로젝트 목표 - bash와 기능이 유사한 minishell 만들기 - 문자열 분석, 프로세스, 파일 디스크립터 관리가 주를 이룸 - 즉, 파싱, 포크, 파이프에 대해 중점적으로 학습하고 작성해야 함 - 또한 구조적으로 잘 잡아야지 클린한 데이터를 계속들고 다니면서 코딩할 수 있음 1. 학습 우선 키워드 정리하고 함수에 대한 정리가 필요 malbongcode.tistory.com/158 minishell - 명령어와 외부함수 정리하기 (command & External functions, 42seoul) 명령어 정리 echo - 출력 관리 cd, pwd - 디렉터리 관리 export, unset, env - 환경변수 관리 - env와 export차이가 하나씩 존재했음 -> _=/usr/bin/env..
minishell - 명령어와 외부함수 정리하기 (command & External functions, 42seoul) 명령어 정리 echo - 출력 관리 cd, pwd - 디렉터리 관리 export, unset, env - 환경변수 관리 - env와 export차이가 하나씩 존재했음 -> _=/usr/bin/env(env) , OLDPWD(export) exit - 프로세스 종료 세미콜론(;) - 명령어 구분, 차례대로 실행 (실패해도 그대로 실행함, &&와 다름) 따옴표 quote(', ") - SingleQuote : 모든 것을 메타문자가 아닌 문자 그대로 사용하게 함 - DoubleQuote : $, \, `을 메타문자로 인식, 나머지는 문자 그대로 - ex) echo " '$a' " 리디렉션 (, >>) : 표준 출력을 파일로 보내기 >> : 표준 출력을 파일로 보내..
ft_services - 가이드 및 참고자료 정리하기 (42seoul) 다음 포스팅은 ft_services를 진행하기 싫거나, 막막할 때 42cadet들을 위한 글임 (음슴체 주의) 큰 도움은 되지 않겠지만, 어느정도의 가이드, 참고자료를 남겨두려고 함 ft_services가 어렵거나 막막한 이유 1) 어디서 부터 시작해야 할지 막막함, 서브젝트를 읽어도 용어 & 키워드를 모름, 쿠버네티스가 뭔데? -> 위의 3가지일 경우 그냥 "쿠버네티스" 공부하면 됨 -> 공식 홈페이지도 좋겠지만 개인적으로 빠르게 알고 싶으면 subicura 설명글보는게 정신건강에 이로움 -> 왜냐하면 쿠버네티스는 추상화를 엄청해놨기 때문에 잘 모르는 초보자가 보면 용어보고 기절함 2) 배포는 상관없으나 이제 도커 이미지를 만드는 게 힘듦, Alpine Linux의 개같음 -> 자료가 충분하지 않으나 ..
Kubernetes(쿠버네티스) 개념 정리하기 들어가기 앞서 본 포스팅은 subicura님의 강좌를 보고 정리한 글입니다. 쿠버네티스 시작하기 - Kubernetes란 무엇인가? 쿠버네티스는 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼입니다. 1주일에 수십억 개의 컨테이너를 생성하는 구글이 내부 배포시스템으로 사용하던 borg를 기 subicura.com 초보를 위한 쿠버네티스 안내서 - 인프런 쿠버네티스를 1도 모르는 입문자, 초보자를 위한 쿠버네티스 안내서 입니다. 초보자도 이해하기 쉬운 내용과 흐름으로 구성했어요. 초급 인프라 서버 개발 Back-End DevOps Kubernetes 시스템 자동화 Doc www.inflearn.com 컨테이너 오케스트레이션 등장배경 1) 서버관리의 어려움으로 도커의 등장 2) 도커..