본문 바로가기

분류 전체보기

(31)
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' " 리디렉션 (, >>) : 표준 출력을 파일로 보내기 >> : 표준 출력을 파일로 보내..
CSS 정리하기 이 포스팅은 생활코딩 및 드림코딩의 유튜브강의를 기반으로 작성했습니다. CSS란 Cascading Style Sheets (계단식 스타일 시트) 라고 함 HTML과 CSS가 만나는 법 1. style 태그 사용 2. style 속성 사용 3. .css 작성 후 link 태그로 연결 CSS 선택자 (* 매우 중요) 선택자(Selector)와 선언(Declaration) 선택자의 종류 1) 태그 선택자 (tag) h1 { color : powderblue; } ...html CSS 2) 클래스 선택자 (.class) .class_selector { color : red; } ...html CSS 3) 아이디 선택자 (#id) #id_selector{ color : red; } ...html CSS 범위: 태..
ft_services - 가이드 및 참고자료 정리하기 (42seoul) 다음 포스팅은 ft_services를 진행하기 싫거나, 막막할 때 42cadet들을 위한 글임 (음슴체 주의) 큰 도움은 되지 않겠지만, 어느정도의 가이드, 참고자료를 남겨두려고 함 ft_services가 어렵거나 막막한 이유 1) 어디서 부터 시작해야 할지 막막함, 서브젝트를 읽어도 용어 & 키워드를 모름, 쿠버네티스가 뭔데? -> 위의 3가지일 경우 그냥 "쿠버네티스" 공부하면 됨 -> 공식 홈페이지도 좋겠지만 개인적으로 빠르게 알고 싶으면 subicura 설명글보는게 정신건강에 이로움 -> 왜냐하면 쿠버네티스는 추상화를 엄청해놨기 때문에 잘 모르는 초보자가 보면 용어보고 기절함 2) 배포는 상관없으나 이제 도커 이미지를 만드는 게 힘듦, Alpine Linux의 개같음 -> 자료가 충분하지 않으나 ..