Fascination
article thumbnail
[P4C] W4-W5: C언어로 HTTP 서버 구현
etc.../빡공팟(P4C) 4기 2022. 5. 21. 02:24

W4-W5: C언어로 HTTP 서버 구현 참고 자료: C, TCP 기반으로 간단한 HTTP 서버 작성하기 # 1. 구현 내용 - 서버 프로그램이 존재하는 디렉터리를 기준으로 파일을 접근할 수 있는 서버 - 개발 순서 socket(), bind(), listen() 등을 활용하여 TCP 소켓을 만듬 accept() 후에 HTTP 프로토콜로 처리하는 함수를 만듬 처리 중에 에러가 발생하면 404, 500 상태 코드로 응답 - 과제 제출 예시 영상 # 2. TCP 소켓 생성하기 1) TCP란? Transmission Control Protocol 서버와 클라이언트 간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜 데이터를 전송하기 전에 데이터 전송을 위한 연결을 만드는 연결지향 프로토콜 데이터는 네트..

article thumbnail
[LinuxProgramming] Chapter 06. 파일 시스템
Study/Linux 2022. 4. 25. 15:15

Chapter 06. 파일 시스템 리눅스 프로그래밍 원리와 실제 - 창병모 교수님 6.1 파일 시스템 1) 파일 시스템 구조 - 부트 블록(Boot block) 파일 시스템 시작부 위치, 첫 번째 섹터 차지 유닉스/리눅스가 처음 시작될 때 사용되는 부트스트랩 코드가 저장되는 블록 - 슈퍼 블록(Super block) 전체 파일 시스템에 대한 정보 저장 파일 시스템 내의 총 블록 수, 사용 가능한 i-노드 개수, 사용 가능한 블록들을 나타내는 비트 맵, 블록의 크기, 사용 중인 블록 수, 사용 가능한 블록 수 - i-리스트(i-list) 각각의 파일을 나타내는 i-노드들의 리스트 한 블록은 약 40개 정도의 i-노드 포함 - 데이터 블록(Data block) 파일의 내용(데이터)을 저장하기 위한 블록 2)..

article thumbnail
[WEB] 티스토리에 프로필 아이콘 생성해보기 feat. 베이스캠프
Study/WEB 2021. 9. 17. 20:05

티스토리 열심히 하다가 갑자기 내가 사용하는 스킨에 프로필 연동시키는 란이 없는게 아쉬웠던 나,, 그래서 뭔가 내가 안쓰는 메뉴바를 지우고 깃허브, boj solve.ac, 인스타 같은 프로필을 연결시키고 싶어져 버린 것! 우선 내가 쓰는 티스토리 스킨은 베이스 캠프에서 배포하는 무료 스킨이다 티스토리 블로그 반응형 무료 스킨 배포 :: 베이스캠프 (나눔, 추천) 업데이트 히스토리 Releases · ruden91/public-basecamp-skin 티스토리 무료 반응형 스킨 :: 베이스캠프. Contribute to ruden91/public-basecamp-skin development by creating an account on GitHub. github.c.. webruden.tistory.c..

article thumbnail
[DS] 자료구조 개념 및 구현 Chapter 5 연습문제
Study/Data Structure 2021. 9. 2. 22:42

자료구조 개념 및 구현 Chapter 5. 선형 자료구조 - 연습문제 Q1. 아래와 같이 선언된 배열 A가 메모리 상에 행 우선과 열 우선 순서로 각각 저장된다고 가정할 때 배열 원소 A[2][3][4]의 주소를 계산하시오 (단, &A[0][0][0] = 1000이고, sizeof(int) = 4 이다) int A[9][7][8] ; (1) 행 우선 순서(row-major order)로 저장 시 - 1560 / 1000 + (2 * 7 * 8 + 3 * 8 + 4) * 4 (2) 열 우선 순서(column-mafor order)로 저장 시 - 1572 / 1000 + (2 * 7 * 8 + 3 + 4 * 7) * 4 Q2. 7x7 희소 행렬에서 0이 아닌 원소만을 3-순서쌍(row, column, val..

article thumbnail
[DS] A Maze Problem (스택으로 미로 문제 풀기)
Study/Data Structure 2021. 9. 2. 22:09

# A Maze Problem - 목표: 입구로부터 출구까지의 경로를 찾음 - 조건: 0은 지나갈 수 있고, 1은 지나갈 수 없음. 직진이나 대각선 방향으로 이동이 가능 > 한 개의 프로그램은 한 개의 미로 경로를 탐색 > 현재 위치에서 이동 가능한 모든 방향 (북쪽부터 시작 → 시계방향으로 이동) 대하여 이동 가능 여부 판단 > 처음 발견한 이동 방향으로 마우스의 좌표를 수정 > 이동 가능한 방향이 없을 경우, 이전 위치로 되돌아감 > 스택을 이용하여 이동했던 위치를 기록하고 이전 위치로 찾아감. 만일 백 트랙을 시도했으나 스택이 비어있다면 결과는 실패 # 미로 찾기 스택 구현 - 구현: 경우의 수를 진행할 때는 스택 안에 쌓고, 벽에 막히면 pop하여 이전 단계까지 돌아옴 # 미로 문제의 특성 - a..

article thumbnail
[DS] Deque (Double-ended-queue)
Study/Data Structure 2021. 9. 2. 22:03

# Deque - double-ended queue - 후단(rear)으로만 데이터를 삽입할 수 있었던 기존 선형 큐, 원형 큐와 달리 큐의 전단(front) 와 후단(rear)에서 모두 삽입과 삭제가 가능한 큐 * 데이터 삽입: front 감소, rear 증가 * 데이터 삭제: front 증가, rear 감소 # Abstract Data Type in deque 1) 매크로 및 타입 재정의 - boolean: 참과 거짓을 return하는 함수 및 변수들을 위해 정의 - 원하지 않는 곳에서 함수가 종료될 시 return 값 통일을 위해 ERROR(-1) 정의 - int type 이외에 다른 type에도 사용하기 위해 element로 type을 정의 #define TRUE 1 #define FALSE 0 ..

article thumbnail
[DS] 자료구조 개념 및 구현 Chapter 4 연습문제
Study/Data Structure 2021. 8. 26. 23:13

자료구조 개념 및 구현 Chapter 4. 알고리즘 분석 - 연습문제 Q1. 점근적 표기법(asymptotic notation)을 사용하는 이유를 적으시오. - 알고리즘의 성능을 비교하기 위해 사용함. 입력의 수가 매우 커질 때, 알고리즘의 복잡도가 증가하는 패턴을 살펴봄 Q2. 시간 복잡도와 공간 복잡도는 각각 무엇을 의미하는가? - 시간 복잡도: 프로그램이 수행을 완료하는데 걸리는 시간 - 공간 복잡도: 알고리즘 실행에 필요한 메모리 Q3. 시간 복잡도에 대한 점근적 표기법의 세 가지 종류를 각각 설명하시오 - 상한선(Big-Oh) 표기법: 시간 복잡도 함수 f(n) = Ο(g(n))이라고 표기할 수 있다면, 이 알고리즘의 수행 시간은 상한선 c·g(n)을 넘지 않는다는 의미 - 하한선(Big-Ome..

article thumbnail
[DS] 자료구조 개념 및 구현 Chapter 3 연습문제
Study/Data Structure 2021. 8. 26. 22:19

자료구조 개념 및 구현 Chapter 3. 재귀 호출 - 연습문제 Q1. 반복문(iteration)과 비교한 재귀문(recursion)의 장단점은 무엇인가? - 장점: 알고리즘을 명료하게 표현 가능 - 단점: 빈번한 함수 호출로 인한 스택 오버플로우 현상 발생 Q2. n개의 정렬된 정수에 대하여 반복문과 재귀 호출 함수를 각각 사용하여 이진 탐색하는 프로그램을 작성하시오. 재귀 호출 함수가 몇 번 호출되는지 변수를 추가하여 확인하시오. [코드] #include #include int binary_search(int list[], int item, int left, int right); int rbinsearch(int list[], int searchkey, int left, int right); int..

article thumbnail
[DS] Polynomial (다항식)
Study/Data Structure 2021. 8. 25. 23:57

# Polynomial A(x) = 3x^20 + 2x^5 + 4 - a sum of terms(항), ax^e (x: variable, a: coeffiecient(계수), e: exponent(지수)) ​ ​ # Operations of Polynomial ADT - Zero(): 다항식을 0으로 만듦 ::= return 다항식, p(x) = 0 - IsZero(poly): 다항식이 0인지 검사 ::= if(poly) return FALSE else return True - Coef(poly, expon): 다항식에서 지수가 expon인 계수를 반환 - Lead_Exp(poly): 다항식에서 가장 큰 차수(지수의 값)를 반환 - Attach(poly, coef, expon): 계수가 coef이고 지수..

article thumbnail
[DS] 자료구조 개념 및 구현 Chapter 2 연습문제
Study/Data Structure 2021. 8. 25. 23:50

자료구조 개념 및 구현 Chapter 2. C언어 기초 - 연습문제 Q1. 주어진 코드를 사용하여 다음 세부 기능을 구현하시오 (1) 배열의 각 원소의 주소와 저장된 값을 출력한다 (2) 각 원소의 자료형 별로 할당되는 바이트 크기를 출력한다 [코드] #include #define SIZE 20 void printArray(int *ptr,int size); int main() { int list[SIZE], i; for(i=0;i