profile
piopiop1178@gmail.com
post-thumbnail

SW사관학교 정글 - 1기 후기

SW정글 1기 수료생인 나에게 3기 모집 문자가 날아왔다. 미뤄왔던 후기를 이제는 작성해야겠다는 생각이 들었다.

2021년 8월 24일
·
3개의 댓글
·

행렬곱셈 최적화 - 공간 지역성을 높인 캐시 친화적 코드 작성

캐시가 효율적으로 동작하려면, 캐시에 저장할 데이터가 지역성을 가져야 한다. 지역성이란 데이터 접근이 시간적, 혹은 공간적으로 가깝게 일어나는 것을 의미한다. (위키백과)

2021년 6월 17일
·
0개의 댓글
·

[프로그래머스] 모두 0으로 만들기 (Python)

프로그래머스 - 모두 0으로 만들기각 노드들의 가중치의 합이 0이 아니라면 모든 노드의 가중치를 0으로 만들 수 있는 방법이 없으므로 -1을 반환한다.각 노드들의 가중치의 합이 0이라면 주어진 그래프가 트리 구조라는 것을 이용해 리프 노드에서부터 루트 노드로 올라가며

2021년 5월 5일
·
0개의 댓글
·

[OS] Kaist Pintos project 3(VIRTUAL MEMORY) 후기

실제 물리메모리를 추상화해 각 프로세스에게 가상 주소를 제공하는 메모리 관리 기법을 말한다.각 가상 주소들은 MMU(Memory Management Unit)에서 물리 주소로 변환되게 된다.실제 물리 메모리는 OS가 알아서 관리해줄 것이기 때문에 각 프로세스들은 그냥

2021년 5월 4일
·
0개의 댓글
·

나만무 - 시작발표

저희 주제는 'gather town' 이라는 서비스에서 영감을 얻었고 오프라인에서 만나는 것 같은 느낌을 주는 온라인 모임을 위한 가상공간을 만들고자 합니다.2d아바타를 이용한 화상통화를 기본 컨셉으로하고, 오프라인의 느낌을 줄 수 있는 요소와 놀이 요소를 추가해 ‘친

2021년 3월 11일
·
0개의 댓글
·

나만의 무기 프로젝트 소개 - 다들 모여

다들 모여 (온라인 파티룸 – 온라인으로 오프라인에서 모여서 노는 것 같은 느낌을 줄 수 있는)오프라인에서 만나는 것 같은 느낌을 줄 수 있는 온라인 모임을 위한 가상공간을 만들고자 합니다. 2d아바타를 이용한 화상통화를 기본 컨셉으로하고, 오프라인의 느낌을 줄 수 있

2021년 3월 7일
·
4개의 댓글
·

[OS] Kaist Pintos project 2(USER PROGRAMS) 후기

유저 프로그램을 실행하기 위해서는 cmd line에서 실행할 프로그램의 이름과 인자들을 parsing 하고 레지스터와 스택에 passing 해야한다. argc와 argv의 시작 주소를 스택에 쌓았었는데 제대로 실행이 되지 않았다. 스택에 쌓는 대신 rdi와 rsi에 넣

2021년 2월 18일
·
0개의 댓글
·

[OS] Kaist Pintos project 1(THREAD) 후기

이제 OS가 어떻게 돌아가는지 아주 조금은 감이 오는 것 같다. 다행히도 핀토스의 악명에 비해서는 순조로운 한 주를 보낸 것 같다. 나머지 3개의 프로젝트도 팀원들과 잘 마무리 할 수 있도록 해야겠다. kaist pintos project1(thread)에서는

2021년 2월 3일
·
0개의 댓글
·

[LINUX] TINY webserver 만들기 (5) - TINY webserver 설계 (2)

말 그대로 uri를 나누는 함수이다. uri를 도메인, path, cgiargs으로 나눈다.cgiargs란 동적 컨텐츠의 실행파일에 들어갈 인자다.

2021년 1월 28일
·
4개의 댓글
·

[LINUX] TINY webserver 만들기 (4) - TINY webserver 설계

지금까지 공부한 내용으로 아주 작지만 기본 기능을 갖고 있는 웹 서버를 만들어보자.웹에 기초적인 내용이나 웹에서 컨텐츠를 제공하는 방법에 대해서는 코드를 살펴보며 간단하게 설명하도록 하겠다.

2021년 1월 27일
·
0개의 댓글
·

[LINUX] TINY webserver 만들기 (3) - 소켓 인터페이스 도움 함수

소켓 인터페이스스와 getaddrinfo 함수를 처음 배웠을 때 바로 사용하기란 쉽지 않을 것이다.그래서 이번에는 한번에 클라이언트의 clientfd, 서버의 listenfd를 생성해주는 함수를 만들어 사용해보자.

2021년 1월 26일
·
0개의 댓글
·

[LINUX] TINY webserver 만들기 (2) - 호스트와 서비스 변환

리눅스는 getaddrinfo와 getnameinfo라고 하는 강력한 함수들을 제공하는데 이들은 이진 소켓 주소 구조체들과 호스트 주소, 포트번호 사이의 변환을 가능하게 해준다.

2021년 1월 25일
·
0개의 댓글
·

[LINUX] TINY webserver 만들기 (1) - socket interface

클라이언트와 서버는 연결(connection)을 통해서 통신이 가능해진다. 소켓(socket)은 연결의 종단점이자 네트워크 상의 다른 프로세스와 통신하기 위해 사용되는 파일이다. 여기서는 일단 연결의 종단점 역할을 한다는 것만 기억해두자

2021년 1월 24일
·
0개의 댓글
·

[Linux] tmux를 사용해보자

tmux는 사용자가 단일 단말기 창 또는 원격 터미널 세션 안에서 여러 별도의 터미널 세션에 액세스할 수 있도록 여러 가상 콘솔을 다중화하는데 사용할 수 있는 응용 소프트웨어이다.

2021년 1월 23일
·
0개의 댓글
·

[C] 분리 가용 리스트를 이용한 동적 메모리 할당기 구현(MALLOC-LAB) (4)

마지막으로 분리 가용 리스트를 이용한 할당기를 만들어 보자. 분리 가용 리스트는 다수의 가용 리스트를 유지하며, 각 리스트는 거의 동일한 크기의 블록들을 저장한다. 기본적인 아이디어는 모든 가능한 블록 크기를 크기 클래스라고 하는 동일 클래스의 집합들로 분리하는 것이다

2021년 1월 21일
·
0개의 댓글
·

[C] 명시적 가용 리스트를 이용한 동적 메모리 할당기 구현하기(MALLOC-LAB) (3)

이번에는 명시적 가용 리스트(explicit free list)를 이용한 할당기를 구현해 보자.명시적 가용 리스트는 가용 블록을 일종의 명시적 자료구조로 구성해 가용 리스트들을 모두 연결한다. 가용 블록의 header와 footer를 제외한 영역은 할당되어 데이터가 들

2021년 1월 20일
·
0개의 댓글
·

[C] 묵시적 가용 리스트를 이용한 동적 메모리 할당기 구현하기(MALLOC-LAB) (2)

관련 내용에 대해서는 저번 포스팅에서 설명했기에 이번 포스팅에서는 묵시적 가용 리스트를 이용해 구현한 동적 메모리 할당기 코드를 보도록 하겠다. 코드 1. mm_init mm_init 함수는 초기 힙 영역을 할당하는 것과 같은 필요한 초기화들을 수행한다. 가용리스트

2021년 1월 19일
·
0개의 댓글
·

[C] 동적 메모리 할당을 직접 구현해보자 (MALLOC-LAB) (1)

아래 내용은 컴퓨터 시스템(computer systems: a programmer's perspective)의 '9.9장 - 동적 메모리 할당'의 내용을 재구성 하였습니다. 동적 메모리 할당기는 힙(heap)이라고 하는 프로세스의 가상 메모리 영역을 관리한다.

2021년 1월 17일
·
0개의 댓글
·

[C] B+TREE를 구현해보자

B+TREE는 B-TREE와 거의 유사하지만 약간의 차이가 있다.B-TREE에서는 키와 데이터가 동일했지만 B+TREE에서는 키와 데이터가 분리되어있다.

2021년 1월 16일
·
0개의 댓글
·

[C] B-TREE를 구현해보자 (3)

이어서 노드의 병합과 삭제 과정을 살펴보겠다. 키를 삭제하는 연산을 수행했을 때에도 B-TREE의 속성 중 하나인 '모든 노드는 t(최소차수) - 1개 이상의 키를 가져야 한다.' 를 만족해야 한다. \

2021년 1월 15일
·
0개의 댓글
·