Posts by Tag

크래프톤 정글

크래프톤 정글 회고

1 분 소요

크래프톤 정글을 수료하고… 5개월 동안 참으로 길면 길고, 막상 해보니 짧은것 같기도 하고 서로 얼굴 보던 사람들이 이제 헤어질 때가 되니 조금 시원섭섭하기도 하다

나만무 회고

3 분 소요

약 5주 간의 대장정 당연하다면 당연하겠지만 개인적으로 여태까지 진행했던 3개의 프로젝트 중 가장 인상깊고 또 가장 힘든 프로젝트였다고 생각한다. (고려전문학교 시절에 2번의 프로젝트 이후, 몇년 만의 팀 프로젝트인지..)

JS async, await, promise

최대 1 분 소요

JS의 비동기 키워드(async, await, promise) 작업을 ‘비동기’적으로 처리한다는 것은 ‘동시에’ 처리하되 ‘그 순서를 보장하지 않는다’는 말이다 그로 인하여, 특정한 작업이 끝날때까지 ‘대기’하는 중 프로그램이 멈추지 않고 다른 작업을 처리하도록 만들 수 있다...

React JS

3 분 소요

개인 과제 나만무 시작 전, 개인 과제를 진행하고 관련 프레임워크에 대한 공부를 하기 위해 내가 정한 것은 ‘프론트엔드’이며, 그 중 관련된 것은 ‘React’였다

AWS 강의

2 분 소요

AWS 강의 리전 : 서버가 호스팅 될 물리적인 위치 latency를 고려하여 리전을 배치한다

Pintos 회고

1 분 소요

Pintos Project3 까지… OS가 얼마나 대단하고 소중한 (?) 존재인지 깨달을 수 있었던 5주였던 것 같다 각각 스케쥴링, 시스템 콜, 가상 메모리 에 대한 OS의 핵심적인 역할에 대하여 보다 심도있게 이해할 수 있었다 이전에야 CS 적인 지식을 익히고 ‘OS...

Pintos VM

3 분 소요

pintos VM 진행 중 알게된 점들을 정리하기 일부 진행 중 궁금하였던 내용과 알게된 내용을 정리하는 용도의 TIL

Pintos VM

2 분 소요

이해 중… 일단 Git Book을 따라가며 진행 중이나 몇 가지 생각해야 할 부분이 존재한다

권영진 교수님 OS 강의 2

5 분 소요

정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다

Multi-level Page Table

2 분 소요

다중 레벨 페이지 테이블이 필요한 이유! Page Table은 기본적으로 메인 메모리에 존재한다 이는 ‘DRAM’에 존재한다는 것인데…. 문제는 Page의 개수가 상~당히 많다는 점이다

Mmap

1 분 소요

가상 주소 공간과 mmap [출처] : https://devraphy.tistory.com/428 가상 주소 공간의 ‘영역’은 주로 Code, Data (+ bss), heap, stack 등으로 이루어져 있다

Page Replacement Policy

2 분 소요

Page Replacement Policy [출처] : https://velog.io/@owlsuri/%ED%8E%98%EC%9D%B4%EC%A7%80-%EA%B5%90%EC%B2%B4-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

권영진 교수님 OS 강의

6 분 소요

정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다

핀토스 2주차 - Pintos_SystemCall

2 분 소요

system call 정말 정신없었던 1.5주 였던 것 같다 반에 코로나가 유행하였고, 개인적으로 컨디션이 좋지 않아 til도 잘 작성하지 못한 것 같다 ‘커널 공간’에서 진행되는 ‘사용자 공간’에 대한 처리 방식 즉, ‘시스템 콜’에 대한 이해가 부쩍는 듯 하다

atomic operation

최대 1 분 소요

Atomic Operation 직역하자면 ‘원자적 연산’이란 뜻을 가진다 마치 ‘원자’처럼 더 이상 ‘분할’할 수 없는 ‘작업’을 뜻하며

Cache 와 OS

1 분 소요

Cache 캐싱이란 ‘기존의 액세스한 데이터의 사본을 보관’하는 ‘임시 저장 공간’을 의미하며 동시에 ‘느린’ 데이터 저장 장치 에 존재하는 데이터를 빠른 저장장치에 보관시켜 전체적인 성능의 향상하는 ‘기법’에 대한 내용도 포함된다 (좀 더 세밀하게 말하자면 이러한 기법을 ...

User stack, Kernel stack

최대 1 분 소요

User Stack 프로세스의 ‘User Mode’ 부분에서 실행되는 스택 각각의 프로세스가 가지는 ‘스택’ 영역이며 함수 호출 시 지역 변수, 매개 변수, 복구 주소 등이 User Stack에 저장된다

조건 변수, 모니터

2 분 소요

조건 변수(Condition Variable) 다중 프로세스 or 스레드 환경에서 사용하는 ‘동기화 도구’ 중 하나

동기화 도구

2 분 소요

임계 영역(Critical Section) 보통 다중 쓰레드 or 프로세스 환경에서 공유된 자원(변수 or 자료구조 등)에 접근하는 ‘코드 영역’을 의미한다 (공유된 자원과 임계 영역은 다른 개념) (공유된 자원은 ‘데이터’,’메모리’, 변수, 파일 등의 실제 ‘자원’임) ...

Process 와 Thread

3 분 소요

운영체제의 개요 OS란 뭘까? 일단 프로그램은 ‘명령어의 집합’이라고 봐도 과언이 아닐것이다 폰 노이만 구조에서 프로그램의 각 명령어는 Fetch(가져오기) : PC(프로그램 카운터)에 저장된 메모리 주소에서 명령어를 가져온다 Decode(해독) : 가져온 명령어를 해독하...

CPU 스케쥴링 알고리즘

3 분 소요

운영체제의 스케쥴링 운영체제가 프로세스를 실행시키는 ‘정책’ 중 ‘고수준’에 해당하는 정책이며, (저수준은 ‘문맥 교환’이며, 이는 메모리 주소 공간에 대한 밀접한 관련이 있으며 이는 하드웨어와 가깝기에 ‘저수준’이라 표현한다)

Week06_Proxy_Lab

5 분 소요

Proxy Lab 개인적으로 정말 어려웠던 것 같다 (당장 다음주부터 핀토스 시작이지만)

IP 주소 와 subnet

2 분 소요

IP 주소의 2가지 형태 공용 IP 주소(Public IP Address) 인터넷에 공개되는 주소로서 전 세계의 장치들이 인터넷에 연결될 때 사용된다 인터넷 상에서 고유하게 식별되는 주소 ISP(인터넷 서비스 제공업체)가 ...

IP 주소 와 subnet

최대 1 분 소요

DNS (Domain Network System) 도메인 이름과 IP 주소 간의 매핑을 관리하고 이를 위해 계층적이고 분산된 구조로 이루어진 시스템

Network Layer

9 분 소요

용어 정리 IP 주소 : 인터넷에 연결되기 위해 필요한 인터넷 상의 주소

CGI, 웹 서버, MIME

1 분 소요

웹 서버 클라이언트(웹 브라우저)로부터의 요청을 받고 요청된 웹 페이지, 파일, 이미지 or 기타 리소스를 제공

Proxy

1 분 소요

프록시(Proxy) ‘대리’,’대리인’ 등의 의미를 가진 영단어 실제 프록시 서버도 비슷하게 쓰인다

HTTP

1 분 소요

HTTP(HyperText Transfer Protocol) 클라이언트와 서버 간에 데이터를 주고 받는데 사용되는 표준 프로토콜 (L7 : Application Layer의 프로토콜) (응용 프로그램과 관련된 통신을 다룬다는 것을 의미한다) (사용자의 요구를 실제 네트워크로 ...

Socket

2 분 소요

포트(port) 프로토콜 표준 Application Layer에서 데이터를 주고 받고 싶을때, 프로세스가 하위 계층과 연결을 해주는 장치가 필요함 이러한 데이터의 통로 역할을 하는 장치가 바로 ‘포트’ (프로세스와 연결된 데이터 통로 혹은 데...

File_Descriptor

2 분 소요

파일 디스크립터 운영체제에서 I/O 리소스를 식별하는데 사용되는 정숫값 (유닉스 계열의 운영체제이며, 윈도우에서는 파일 핸들(File Handle)이 비슷한 개념이지만 구체적 구현과 사용방식에 차이 존재)

Datagram socket, Stream socket

1 분 소요

Datagram Socket 비연결형(Connectionless) 소켓이며, UDP(User Datagram Protocol) 기반 (UDP는 Transfort Layer의 프로토콜이며, 한 계층 아래의 IP 프로토콜과 유사한 특징을 가진다)

Client - Server Model

최대 1 분 소요

클라이언트 - 서버 모델 서비스를 요청하는 클라이언트와 서비스를 제공하는 서버의 상호작용을 기반으로 하는 구조

이더넷(Ethernet)

1 분 소요

지리적 규모에 따른 네트워크의 분류 LAN(Local Area Network) 지리적으로 가까운 장치를 연결하는 네트워크 소규모 네트워크 이며, 주로 ‘이더넷’이 주로 사용 높은 속도와 낮은 지연 시간

system call

2 분 소요

운영 체제의 모드 User mode 일반적인 프로그램 실행 응용프로그램은 시스템 자원에 직접 접근 불가 제한된 명령어 집합 실행 가능 메모리 일부 영역에 접근 가능 제한된 운영체제 서비스에 접근이 가능 => 응용 프로그램 간의 상호 간섭의 최...

DMA(Direct Memory Access)

1 분 소요

DMA(Direct Memory Access) 일종의 입출력 제어 방식으로 CPU의 개입 없이 주변장치(HDD,GPU 등)가 메모리에 직접 접근하여 데이터를 읽고 쓸 수 있게 해주는 시스템의 기능

mallob lab - segregated free list

6 분 소요

malloc lab - segregated free list 일정한 크기로 나눈 가용 리스트를 이용하여 find - fit 시 검색 범위를 찾는 방식 내가 구현한 방식은 ‘명시적 가용 리스트 - LIFO’를 2의 지수승 으로 약 20개 정도를 만들어 관리하는 방식을 사용하였다

메모리 할당 정책

2 분 소요

메모리 할당 정책 응용프로그램이 메모리의 블록을 요청할 때, 메모리 할당기는 요청한 블록을 저장하기에 충분히 큰 가용 블록을 리스트에서 검색한다

묵시적, 명시적 가용 리스트

2 분 소요

동적 할당을 위한 가용 리스트 함수를 호출하면 ‘스택’에 스택 프레임이 생성되고 지역변수를 선언하면 그것 역시 ‘스택’에 메모리를 잡는다

demand zero memory

최대 1 분 소요

demand zero memory 운영 체제에서 사용되는 메모리 관리 방식 중 하나이며 가상 메모리를 효율적으로 관리할 수 있는 방식이다 (구현 방식에 따라 사용되지 않기도 한다)

mallob lab - explict free list

6 분 소요

malloc lab implict free list에 대한 내용은 CSAPP의 9.9에 존재하여 해당 내용을 구현하여 테스트 제출 시, 약 54 점 정도 나왔던 걸로 기억한다

동적 메모리 할당

1 분 소요

동적 메모리 할당 기본적인 개념은 프로그램이 ‘실행시간 동안 사용할 메모리 공간을 할당하는 것’을 뜻한다

가상메모리

3 분 소요

가상 메모리 ‘가상 메모리(virtual memory,VM)’ 는 메모리 관리 기술 의 일부로, 메인 메모리 (RAM) 과 보조 기억 장치(HDD,SSD) 의 조합으로 이루어진다 ‘가상 메모리 주소 공간’의 개념을 이야기 하는 표현으로도 사용된다

백준 11399 atm

최대 1 분 소요

atm (백준 11399) https://www.acmicpc.net/problem/11399

rb-Tree

6 분 소요

RB-Tree(Red-Black Tree) 각 노드가 레드 혹은 블랙 인 이진 탐색 트리 (단순한 추가정보)

bss 영역

최대 1 분 소요

BSS(Block Started by Symbol) bss 영역은 초기화되지 않았거나 0 혹은 NULL로 초기화된 전역 및 정적 변수를 저장하는데 사용하는 영역이다 ‘목적파일’에서는 공간을 차지하지 않는 특징이 있다 또한 프로그램 실행 시, 위의 변수들을 0으로 초기화시키...

bTree

3 분 소요

B tree (B Tree) bst(이진탐색트리)와 유사하지만 자식 의 노드가 2개보다 많은 트리 key값의 응용

AVL Tree

1 분 소요

AVL 트리 BST의 한 종류 스스로 균형을 잡는 트리 (balance Factor를 이용)

스택, 레지스터

1 분 소요

스택 프로시저 호출 시 지역 변수와 매개변수를 저장하기 위한 메모리 공간 선언되는 순서와 반대로 메모리가 해제되는 LIFO(Last in First Out) 구조를 가짐 (이는 자료구조의 ‘스택’과 동일)

C 메모리 할당 및 해제 함수들

1 분 소요

메모리 할당 시스템에서 메모리를 ‘동적 할당’하는 경우, OS가 virtual memory의 ‘heap’ 영역에서 사용 가능한 메모리 블록을 찾아 할당하고 그 주솟값을 반환한다

C 환경 세팅과 여러가지…

3 분 소요

세팅 작업 4주차에 C언어 세팅을 하면서 여러가지 고생을 하였지만 다행히 친절하신 동료분이 세팅을 도와주셔서 여러가지 인식할 수 있었다

백준 2098 tsp

1 분 소요

외판원순회(백준 2098) https://www.acmicpc.net/problem/2098

백준 9084 동전

최대 1 분 소요

동전(백준 9084) https://www.acmicpc.net/problem/9084

포인터

4 분 소요

포인터 ‘메모리 주소 값’을 저장하는 변수 대표적인 예시로

Longest Common Subsequence

2 분 소요

최장 공통 부분 수열 (LCS,Longest Common Subsequence) [출처] : https://velog.io/@emplam27/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B7%B8%EB%A6%BC%EC%9C%BC%EB%A1%9C-%E...

Knapsack Problem

1 분 소요

배낭 문제 (Knapsack Problem) 한정된 용량에 일정한 ‘가치’와 ‘용량’을 가지는 물건을 넣어 가치가 ‘최대’가 되도록 배낭을 채우는 문제

DP, Greedy

3 분 소요

최적 부분 구조 (Optimal Substructure) 각 부분 문제의 ‘최적해’로 전체 문제의 ‘최적해’를 쉽게 얻어낼 수 있는 경우 ‘최적 부분 구조’의 조건을 성립한다고 말할 수 있다!

트라이

1 분 소요

트라이 [출처] : https://www.medianet.cs.kent.edu/surveys/IAD06S-p2psearch-alok/index.html

백준 2178_미로

최대 1 분 소요

미로(백준 2178) https://www.acmicpc.net/problem/2178

위상정렬

2 분 소요

위상정렬(topological sort) [출처] : https://m.blog.naver.com/occidere/220921661731

최단 경로 알고리듬

8 분 소요

최단 경로 문제 그래프 이론에서 ‘가장 짧은 경로’에서 두 꼭짓점을 찾는 문제

MST

3 분 소요

MST (최소 신장 트리) 신장 트리?? 어떤 그래프 안에 있는 모든 노드를 연결하는 트리 그래프 안에 있는 변만을 사용 신장 트리는 여럿 있을 수 있음

연결 리스트

3 분 소요

연결 리스트 배열과 같은 ‘연속된’ 메모리 공간을 잡는 것이 아닌, 하나의 Node(데이터)가 다음 Node 를 가리키는(포인터) 방식으로 만들어진 자료구조

스택

최대 1 분 소요

스택 [출처] : https://roi-data.com/entry/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-4-%EC%8A%A4%ED%83%9DStack%EC%9D%B4%EB%9E%80-%EC%97%B0%EC%82%B0-%EA%B5%AC%ED%98%8...

최대 1 분 소요

우선순위 큐

최대 1 분 소요

우선순위 큐 [출처] : https://velog.io/@holicme7/%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84-%ED%81%90Prioirity-Queue-mbk48cz764

분할 정복

최대 1 분 소요

분할정복 알고리즘 ‘큰 문제를 작은 문제로 분할하여 문제를 해결하는 방식’ 전반적으로 ‘재귀’와 유사한 점이 많은 방식이다.

이분(이진)탐색

1 분 소요

정렬된 데이터 : 데이터의 종류에 따라서 더욱 특화된 알고리즘을 사용하여 빠르게 처리할 수 있다 따라서 ‘정렬할 수 있는 데이터’의 경우, 그에 특화된 ‘이진탐색’이라는 알고리즘을 이용하여 더 효율적으로 데이터를 탐색할 수 있다

정렬

4 분 소요

정렬 알고리즘 n개의 데이터가 입력으로 주어졌을 때, 특정한 기준에 따라 해당하는 데이터에 순서대로 열거하는 것 데이터를 정렬하는 경우 효율적인 ‘탐색’이 가능해진다

완전탐색_브루트포스

1 분 소요

탐색 알고리즘 어떠한 ‘데이터 구조’ 안에 존재하는 것을 구해오는 알고리즘 일반적인 ‘선형(linear)’ 탐색 알고리즘의 시간 복잡도는 O(N) ‘해시 맵’을 이용한 탐색 알고리즘의 시간 복잡도는 O(1) (‘해시’와 관련한 내용은 차후 포스팅을 따로 다룰 ...

하노이의 탑

1 분 소요

하노이의 탑(백준 1914) 일일이 블록을 이동하며, 뭔가 규칙성을 찾는 방식을 사용하였다 (혹시 그래서 ‘수학적 귀납법’이 사용된다고 말하는 걸까??)

반복문과 재귀함수

최대 1 분 소요

반복문 일정한 명령을 일정 횟수만큼 반복하여 수행하는 명령 일반적으로 for 문 , while 문, do .. while 문이 존재

복잡도와 빅O표기법

최대 1 분 소요

복잡도 : 알고리즘의 성능을 나타내는 척도 크게 시간, 공간 복잡도 로 나뉜다 입력한 데이터가 ‘많아짐’에 따라 다음의 요소가 얼마나 늘어나는지를 측정 시간 복잡도 : 실행 시간 공간 복잡도 : 필요한 공간(메모리) => 입력이 늘어남에 따른 시간과 필요 공간의 증가...

배열, 문자열

1 분 소요

배열 메모리 한 덩어리라는 표현 (연속된 데이터 집합) 여러 데이터 (같은 타입)을 연속하여 세워 놓은 자료구조 각 자료의 데이터 타입의 크기를 알기에 해당 데이터 타입의 크기만큼 점프하여 인덱스로 접근 가능

맨 위로 이동 ↑

CS

Pintos VM

3 분 소요

pintos VM 진행 중 알게된 점들을 정리하기 일부 진행 중 궁금하였던 내용과 알게된 내용을 정리하는 용도의 TIL

Pintos VM

2 분 소요

이해 중… 일단 Git Book을 따라가며 진행 중이나 몇 가지 생각해야 할 부분이 존재한다

권영진 교수님 OS 강의 2

5 분 소요

정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다

Multi-level Page Table

2 분 소요

다중 레벨 페이지 테이블이 필요한 이유! Page Table은 기본적으로 메인 메모리에 존재한다 이는 ‘DRAM’에 존재한다는 것인데…. 문제는 Page의 개수가 상~당히 많다는 점이다

Mmap

1 분 소요

가상 주소 공간과 mmap [출처] : https://devraphy.tistory.com/428 가상 주소 공간의 ‘영역’은 주로 Code, Data (+ bss), heap, stack 등으로 이루어져 있다

Page Replacement Policy

2 분 소요

Page Replacement Policy [출처] : https://velog.io/@owlsuri/%ED%8E%98%EC%9D%B4%EC%A7%80-%EA%B5%90%EC%B2%B4-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

권영진 교수님 OS 강의

6 분 소요

정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다

핀토스 2주차 - Pintos_SystemCall

2 분 소요

system call 정말 정신없었던 1.5주 였던 것 같다 반에 코로나가 유행하였고, 개인적으로 컨디션이 좋지 않아 til도 잘 작성하지 못한 것 같다 ‘커널 공간’에서 진행되는 ‘사용자 공간’에 대한 처리 방식 즉, ‘시스템 콜’에 대한 이해가 부쩍는 듯 하다

atomic operation

최대 1 분 소요

Atomic Operation 직역하자면 ‘원자적 연산’이란 뜻을 가진다 마치 ‘원자’처럼 더 이상 ‘분할’할 수 없는 ‘작업’을 뜻하며

Cache 와 OS

1 분 소요

Cache 캐싱이란 ‘기존의 액세스한 데이터의 사본을 보관’하는 ‘임시 저장 공간’을 의미하며 동시에 ‘느린’ 데이터 저장 장치 에 존재하는 데이터를 빠른 저장장치에 보관시켜 전체적인 성능의 향상하는 ‘기법’에 대한 내용도 포함된다 (좀 더 세밀하게 말하자면 이러한 기법을 ...

User stack, Kernel stack

최대 1 분 소요

User Stack 프로세스의 ‘User Mode’ 부분에서 실행되는 스택 각각의 프로세스가 가지는 ‘스택’ 영역이며 함수 호출 시 지역 변수, 매개 변수, 복구 주소 등이 User Stack에 저장된다

조건 변수, 모니터

2 분 소요

조건 변수(Condition Variable) 다중 프로세스 or 스레드 환경에서 사용하는 ‘동기화 도구’ 중 하나

동기화 도구

2 분 소요

임계 영역(Critical Section) 보통 다중 쓰레드 or 프로세스 환경에서 공유된 자원(변수 or 자료구조 등)에 접근하는 ‘코드 영역’을 의미한다 (공유된 자원과 임계 영역은 다른 개념) (공유된 자원은 ‘데이터’,’메모리’, 변수, 파일 등의 실제 ‘자원’임) ...

Process 와 Thread

3 분 소요

운영체제의 개요 OS란 뭘까? 일단 프로그램은 ‘명령어의 집합’이라고 봐도 과언이 아닐것이다 폰 노이만 구조에서 프로그램의 각 명령어는 Fetch(가져오기) : PC(프로그램 카운터)에 저장된 메모리 주소에서 명령어를 가져온다 Decode(해독) : 가져온 명령어를 해독하...

CPU 스케쥴링 알고리즘

3 분 소요

운영체제의 스케쥴링 운영체제가 프로세스를 실행시키는 ‘정책’ 중 ‘고수준’에 해당하는 정책이며, (저수준은 ‘문맥 교환’이며, 이는 메모리 주소 공간에 대한 밀접한 관련이 있으며 이는 하드웨어와 가깝기에 ‘저수준’이라 표현한다)

Network Layer

9 분 소요

용어 정리 IP 주소 : 인터넷에 연결되기 위해 필요한 인터넷 상의 주소

CGI, 웹 서버, MIME

1 분 소요

웹 서버 클라이언트(웹 브라우저)로부터의 요청을 받고 요청된 웹 페이지, 파일, 이미지 or 기타 리소스를 제공

Proxy

1 분 소요

프록시(Proxy) ‘대리’,’대리인’ 등의 의미를 가진 영단어 실제 프록시 서버도 비슷하게 쓰인다

HTTP

1 분 소요

HTTP(HyperText Transfer Protocol) 클라이언트와 서버 간에 데이터를 주고 받는데 사용되는 표준 프로토콜 (L7 : Application Layer의 프로토콜) (응용 프로그램과 관련된 통신을 다룬다는 것을 의미한다) (사용자의 요구를 실제 네트워크로 ...

Socket

2 분 소요

포트(port) 프로토콜 표준 Application Layer에서 데이터를 주고 받고 싶을때, 프로세스가 하위 계층과 연결을 해주는 장치가 필요함 이러한 데이터의 통로 역할을 하는 장치가 바로 ‘포트’ (프로세스와 연결된 데이터 통로 혹은 데...

File_Descriptor

2 분 소요

파일 디스크립터 운영체제에서 I/O 리소스를 식별하는데 사용되는 정숫값 (유닉스 계열의 운영체제이며, 윈도우에서는 파일 핸들(File Handle)이 비슷한 개념이지만 구체적 구현과 사용방식에 차이 존재)

Datagram socket, Stream socket

1 분 소요

Datagram Socket 비연결형(Connectionless) 소켓이며, UDP(User Datagram Protocol) 기반 (UDP는 Transfort Layer의 프로토콜이며, 한 계층 아래의 IP 프로토콜과 유사한 특징을 가진다)

Client - Server Model

최대 1 분 소요

클라이언트 - 서버 모델 서비스를 요청하는 클라이언트와 서비스를 제공하는 서버의 상호작용을 기반으로 하는 구조

이더넷(Ethernet)

1 분 소요

지리적 규모에 따른 네트워크의 분류 LAN(Local Area Network) 지리적으로 가까운 장치를 연결하는 네트워크 소규모 네트워크 이며, 주로 ‘이더넷’이 주로 사용 높은 속도와 낮은 지연 시간

system call

2 분 소요

운영 체제의 모드 User mode 일반적인 프로그램 실행 응용프로그램은 시스템 자원에 직접 접근 불가 제한된 명령어 집합 실행 가능 메모리 일부 영역에 접근 가능 제한된 운영체제 서비스에 접근이 가능 => 응용 프로그램 간의 상호 간섭의 최...

DMA(Direct Memory Access)

1 분 소요

DMA(Direct Memory Access) 일종의 입출력 제어 방식으로 CPU의 개입 없이 주변장치(HDD,GPU 등)가 메모리에 직접 접근하여 데이터를 읽고 쓸 수 있게 해주는 시스템의 기능

mallob lab - segregated free list

6 분 소요

malloc lab - segregated free list 일정한 크기로 나눈 가용 리스트를 이용하여 find - fit 시 검색 범위를 찾는 방식 내가 구현한 방식은 ‘명시적 가용 리스트 - LIFO’를 2의 지수승 으로 약 20개 정도를 만들어 관리하는 방식을 사용하였다

메모리 할당 정책

2 분 소요

메모리 할당 정책 응용프로그램이 메모리의 블록을 요청할 때, 메모리 할당기는 요청한 블록을 저장하기에 충분히 큰 가용 블록을 리스트에서 검색한다

묵시적, 명시적 가용 리스트

2 분 소요

동적 할당을 위한 가용 리스트 함수를 호출하면 ‘스택’에 스택 프레임이 생성되고 지역변수를 선언하면 그것 역시 ‘스택’에 메모리를 잡는다

demand zero memory

최대 1 분 소요

demand zero memory 운영 체제에서 사용되는 메모리 관리 방식 중 하나이며 가상 메모리를 효율적으로 관리할 수 있는 방식이다 (구현 방식에 따라 사용되지 않기도 한다)

mallob lab - explict free list

6 분 소요

malloc lab implict free list에 대한 내용은 CSAPP의 9.9에 존재하여 해당 내용을 구현하여 테스트 제출 시, 약 54 점 정도 나왔던 걸로 기억한다

동적 메모리 할당

1 분 소요

동적 메모리 할당 기본적인 개념은 프로그램이 ‘실행시간 동안 사용할 메모리 공간을 할당하는 것’을 뜻한다

가상메모리

3 분 소요

가상 메모리 ‘가상 메모리(virtual memory,VM)’ 는 메모리 관리 기술 의 일부로, 메인 메모리 (RAM) 과 보조 기억 장치(HDD,SSD) 의 조합으로 이루어진다 ‘가상 메모리 주소 공간’의 개념을 이야기 하는 표현으로도 사용된다

Chap3_프로그램의 기계수준 표현

2 분 소요

3.2 프로그램의 인코딩 시스템은 보다 간단한 추상화 모델을 이용하여, 세부 구현 내용은 감추며, 추상화의 여러 형태를 사용한다

Chap1_컴퓨터시스템으로의 여행

8 분 소요

1.5 캐시가 중요하다! 시스템은 ‘정보’를 이동시키는 일에 많~~은 시간을 사용한다 hello 프로그램은 하드 디스크에 저장되어 있었으며, 프로그램이 로딩될 때, ‘메인 메모리’에 복사된다 프로세서가 프로그램을 실행할 때, ‘인스트럭션’들은 ‘메인 메모리’ 에서 ‘프로...

맨 위로 이동 ↑

코딩 테스트

백준 11399 atm

최대 1 분 소요

atm (백준 11399) https://www.acmicpc.net/problem/11399

백준 2098 tsp

1 분 소요

외판원순회(백준 2098) https://www.acmicpc.net/problem/2098

백준 9084 동전

최대 1 분 소요

동전(백준 9084) https://www.acmicpc.net/problem/9084

백준 2178_미로

최대 1 분 소요

미로(백준 2178) https://www.acmicpc.net/problem/2178

맨 위로 이동 ↑

키워드

C 메모리 할당 및 해제 함수들

1 분 소요

메모리 할당 시스템에서 메모리를 ‘동적 할당’하는 경우, OS가 virtual memory의 ‘heap’ 영역에서 사용 가능한 메모리 블록을 찾아 할당하고 그 주솟값을 반환한다

포인터

4 분 소요

포인터 ‘메모리 주소 값’을 저장하는 변수 대표적인 예시로

Longest Common Subsequence

2 분 소요

최장 공통 부분 수열 (LCS,Longest Common Subsequence) [출처] : https://velog.io/@emplam27/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B7%B8%EB%A6%BC%EC%9C%BC%EB%A1%9C-%E...

Knapsack Problem

1 분 소요

배낭 문제 (Knapsack Problem) 한정된 용량에 일정한 ‘가치’와 ‘용량’을 가지는 물건을 넣어 가치가 ‘최대’가 되도록 배낭을 채우는 문제

DP, Greedy

3 분 소요

최적 부분 구조 (Optimal Substructure) 각 부분 문제의 ‘최적해’로 전체 문제의 ‘최적해’를 쉽게 얻어낼 수 있는 경우 ‘최적 부분 구조’의 조건을 성립한다고 말할 수 있다!

트라이

1 분 소요

트라이 [출처] : https://www.medianet.cs.kent.edu/surveys/IAD06S-p2psearch-alok/index.html

위상정렬

2 분 소요

위상정렬(topological sort) [출처] : https://m.blog.naver.com/occidere/220921661731

최단 경로 알고리듬

8 분 소요

최단 경로 문제 그래프 이론에서 ‘가장 짧은 경로’에서 두 꼭짓점을 찾는 문제

MST

3 분 소요

MST (최소 신장 트리) 신장 트리?? 어떤 그래프 안에 있는 모든 노드를 연결하는 트리 그래프 안에 있는 변만을 사용 신장 트리는 여럿 있을 수 있음

연결 리스트

3 분 소요

연결 리스트 배열과 같은 ‘연속된’ 메모리 공간을 잡는 것이 아닌, 하나의 Node(데이터)가 다음 Node 를 가리키는(포인터) 방식으로 만들어진 자료구조

스택

최대 1 분 소요

스택 [출처] : https://roi-data.com/entry/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-4-%EC%8A%A4%ED%83%9DStack%EC%9D%B4%EB%9E%80-%EC%97%B0%EC%82%B0-%EA%B5%AC%ED%98%8...

최대 1 분 소요

우선순위 큐

최대 1 분 소요

우선순위 큐 [출처] : https://velog.io/@holicme7/%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84-%ED%81%90Prioirity-Queue-mbk48cz764

분할 정복

최대 1 분 소요

분할정복 알고리즘 ‘큰 문제를 작은 문제로 분할하여 문제를 해결하는 방식’ 전반적으로 ‘재귀’와 유사한 점이 많은 방식이다.

이분(이진)탐색

1 분 소요

정렬된 데이터 : 데이터의 종류에 따라서 더욱 특화된 알고리즘을 사용하여 빠르게 처리할 수 있다 따라서 ‘정렬할 수 있는 데이터’의 경우, 그에 특화된 ‘이진탐색’이라는 알고리즘을 이용하여 더 효율적으로 데이터를 탐색할 수 있다

정렬

4 분 소요

정렬 알고리즘 n개의 데이터가 입력으로 주어졌을 때, 특정한 기준에 따라 해당하는 데이터에 순서대로 열거하는 것 데이터를 정렬하는 경우 효율적인 ‘탐색’이 가능해진다

완전탐색_브루트포스

1 분 소요

탐색 알고리즘 어떠한 ‘데이터 구조’ 안에 존재하는 것을 구해오는 알고리즘 일반적인 ‘선형(linear)’ 탐색 알고리즘의 시간 복잡도는 O(N) ‘해시 맵’을 이용한 탐색 알고리즘의 시간 복잡도는 O(1) (‘해시’와 관련한 내용은 차후 포스팅을 따로 다룰 ...

하노이의 탑

1 분 소요

하노이의 탑(백준 1914) 일일이 블록을 이동하며, 뭔가 규칙성을 찾는 방식을 사용하였다 (혹시 그래서 ‘수학적 귀납법’이 사용된다고 말하는 걸까??)

반복문과 재귀함수

최대 1 분 소요

반복문 일정한 명령을 일정 횟수만큼 반복하여 수행하는 명령 일반적으로 for 문 , while 문, do .. while 문이 존재

복잡도와 빅O표기법

최대 1 분 소요

복잡도 : 알고리즘의 성능을 나타내는 척도 크게 시간, 공간 복잡도 로 나뉜다 입력한 데이터가 ‘많아짐’에 따라 다음의 요소가 얼마나 늘어나는지를 측정 시간 복잡도 : 실행 시간 공간 복잡도 : 필요한 공간(메모리) => 입력이 늘어남에 따른 시간과 필요 공간의 증가...

배열, 문자열

1 분 소요

배열 메모리 한 덩어리라는 표현 (연속된 데이터 집합) 여러 데이터 (같은 타입)을 연속하여 세워 놓은 자료구조 각 자료의 데이터 타입의 크기를 알기에 해당 데이터 타입의 크기만큼 점프하여 인덱스로 접근 가능

맨 위로 이동 ↑

OS

Pintos VM

3 분 소요

pintos VM 진행 중 알게된 점들을 정리하기 일부 진행 중 궁금하였던 내용과 알게된 내용을 정리하는 용도의 TIL

Pintos VM

2 분 소요

이해 중… 일단 Git Book을 따라가며 진행 중이나 몇 가지 생각해야 할 부분이 존재한다

권영진 교수님 OS 강의 2

5 분 소요

정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다

Multi-level Page Table

2 분 소요

다중 레벨 페이지 테이블이 필요한 이유! Page Table은 기본적으로 메인 메모리에 존재한다 이는 ‘DRAM’에 존재한다는 것인데…. 문제는 Page의 개수가 상~당히 많다는 점이다

Page Replacement Policy

2 분 소요

Page Replacement Policy [출처] : https://velog.io/@owlsuri/%ED%8E%98%EC%9D%B4%EC%A7%80-%EA%B5%90%EC%B2%B4-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

권영진 교수님 OS 강의

6 분 소요

정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다

핀토스 2주차 - Pintos_SystemCall

2 분 소요

system call 정말 정신없었던 1.5주 였던 것 같다 반에 코로나가 유행하였고, 개인적으로 컨디션이 좋지 않아 til도 잘 작성하지 못한 것 같다 ‘커널 공간’에서 진행되는 ‘사용자 공간’에 대한 처리 방식 즉, ‘시스템 콜’에 대한 이해가 부쩍는 듯 하다

atomic operation

최대 1 분 소요

Atomic Operation 직역하자면 ‘원자적 연산’이란 뜻을 가진다 마치 ‘원자’처럼 더 이상 ‘분할’할 수 없는 ‘작업’을 뜻하며

Cache 와 OS

1 분 소요

Cache 캐싱이란 ‘기존의 액세스한 데이터의 사본을 보관’하는 ‘임시 저장 공간’을 의미하며 동시에 ‘느린’ 데이터 저장 장치 에 존재하는 데이터를 빠른 저장장치에 보관시켜 전체적인 성능의 향상하는 ‘기법’에 대한 내용도 포함된다 (좀 더 세밀하게 말하자면 이러한 기법을 ...

User stack, Kernel stack

최대 1 분 소요

User Stack 프로세스의 ‘User Mode’ 부분에서 실행되는 스택 각각의 프로세스가 가지는 ‘스택’ 영역이며 함수 호출 시 지역 변수, 매개 변수, 복구 주소 등이 User Stack에 저장된다

조건 변수, 모니터

2 분 소요

조건 변수(Condition Variable) 다중 프로세스 or 스레드 환경에서 사용하는 ‘동기화 도구’ 중 하나

동기화 도구

2 분 소요

임계 영역(Critical Section) 보통 다중 쓰레드 or 프로세스 환경에서 공유된 자원(변수 or 자료구조 등)에 접근하는 ‘코드 영역’을 의미한다 (공유된 자원과 임계 영역은 다른 개념) (공유된 자원은 ‘데이터’,’메모리’, 변수, 파일 등의 실제 ‘자원’임) ...

Process 와 Thread

3 분 소요

운영체제의 개요 OS란 뭘까? 일단 프로그램은 ‘명령어의 집합’이라고 봐도 과언이 아닐것이다 폰 노이만 구조에서 프로그램의 각 명령어는 Fetch(가져오기) : PC(프로그램 카운터)에 저장된 메모리 주소에서 명령어를 가져온다 Decode(해독) : 가져온 명령어를 해독하...

CPU 스케쥴링 알고리즘

3 분 소요

운영체제의 스케쥴링 운영체제가 프로세스를 실행시키는 ‘정책’ 중 ‘고수준’에 해당하는 정책이며, (저수준은 ‘문맥 교환’이며, 이는 메모리 주소 공간에 대한 밀접한 관련이 있으며 이는 하드웨어와 가깝기에 ‘저수준’이라 표현한다)

맨 위로 이동 ↑

DP

백준 2098 tsp

1 분 소요

외판원순회(백준 2098) https://www.acmicpc.net/problem/2098

맨 위로 이동 ↑

BFS

백준 2178_미로

최대 1 분 소요

미로(백준 2178) https://www.acmicpc.net/problem/2178

맨 위로 이동 ↑

PintOS

Pintos VM

3 분 소요

pintos VM 진행 중 알게된 점들을 정리하기 일부 진행 중 궁금하였던 내용과 알게된 내용을 정리하는 용도의 TIL

Pintos VM

2 분 소요

이해 중… 일단 Git Book을 따라가며 진행 중이나 몇 가지 생각해야 할 부분이 존재한다

권영진 교수님 OS 강의 2

5 분 소요

정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다

Multi-level Page Table

2 분 소요

다중 레벨 페이지 테이블이 필요한 이유! Page Table은 기본적으로 메인 메모리에 존재한다 이는 ‘DRAM’에 존재한다는 것인데…. 문제는 Page의 개수가 상~당히 많다는 점이다

권영진 교수님 OS 강의

6 분 소요

정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다

핀토스 2주차 - Pintos_SystemCall

2 분 소요

system call 정말 정신없었던 1.5주 였던 것 같다 반에 코로나가 유행하였고, 개인적으로 컨디션이 좋지 않아 til도 잘 작성하지 못한 것 같다 ‘커널 공간’에서 진행되는 ‘사용자 공간’에 대한 처리 방식 즉, ‘시스템 콜’에 대한 이해가 부쩍는 듯 하다

조건 변수, 모니터

2 분 소요

조건 변수(Condition Variable) 다중 프로세스 or 스레드 환경에서 사용하는 ‘동기화 도구’ 중 하나

동기화 도구

2 분 소요

임계 영역(Critical Section) 보통 다중 쓰레드 or 프로세스 환경에서 공유된 자원(변수 or 자료구조 등)에 접근하는 ‘코드 영역’을 의미한다 (공유된 자원과 임계 영역은 다른 개념) (공유된 자원은 ‘데이터’,’메모리’, 변수, 파일 등의 실제 ‘자원’임) ...

Process 와 Thread

3 분 소요

운영체제의 개요 OS란 뭘까? 일단 프로그램은 ‘명령어의 집합’이라고 봐도 과언이 아닐것이다 폰 노이만 구조에서 프로그램의 각 명령어는 Fetch(가져오기) : PC(프로그램 카운터)에 저장된 메모리 주소에서 명령어를 가져온다 Decode(해독) : 가져온 명령어를 해독하...

맨 위로 이동 ↑

재귀

하노이의 탑

1 분 소요

하노이의 탑(백준 1914) 일일이 블록을 이동하며, 뭔가 규칙성을 찾는 방식을 사용하였다 (혹시 그래서 ‘수학적 귀납법’이 사용된다고 말하는 걸까??)

맨 위로 이동 ↑

DFS

백준 9084 동전

최대 1 분 소요

동전(백준 9084) https://www.acmicpc.net/problem/9084

맨 위로 이동 ↑

네트워크

IP 주소 와 subnet

최대 1 분 소요

DNS (Domain Network System) 도메인 이름과 IP 주소 간의 매핑을 관리하고 이를 위해 계층적이고 분산된 구조로 이루어진 시스템

Network Layer

9 분 소요

용어 정리 IP 주소 : 인터넷에 연결되기 위해 필요한 인터넷 상의 주소

CGI, 웹 서버, MIME

1 분 소요

웹 서버 클라이언트(웹 브라우저)로부터의 요청을 받고 요청된 웹 페이지, 파일, 이미지 or 기타 리소스를 제공

Proxy

1 분 소요

프록시(Proxy) ‘대리’,’대리인’ 등의 의미를 가진 영단어 실제 프록시 서버도 비슷하게 쓰인다

HTTP

1 분 소요

HTTP(HyperText Transfer Protocol) 클라이언트와 서버 간에 데이터를 주고 받는데 사용되는 표준 프로토콜 (L7 : Application Layer의 프로토콜) (응용 프로그램과 관련된 통신을 다룬다는 것을 의미한다) (사용자의 요구를 실제 네트워크로 ...

Socket

2 분 소요

포트(port) 프로토콜 표준 Application Layer에서 데이터를 주고 받고 싶을때, 프로세스가 하위 계층과 연결을 해주는 장치가 필요함 이러한 데이터의 통로 역할을 하는 장치가 바로 ‘포트’ (프로세스와 연결된 데이터 통로 혹은 데...

Datagram socket, Stream socket

1 분 소요

Datagram Socket 비연결형(Connectionless) 소켓이며, UDP(User Datagram Protocol) 기반 (UDP는 Transfort Layer의 프로토콜이며, 한 계층 아래의 IP 프로토콜과 유사한 특징을 가진다)

Client - Server Model

최대 1 분 소요

클라이언트 - 서버 모델 서비스를 요청하는 클라이언트와 서비스를 제공하는 서버의 상호작용을 기반으로 하는 구조

이더넷(Ethernet)

1 분 소요

지리적 규모에 따른 네트워크의 분류 LAN(Local Area Network) 지리적으로 가까운 장치를 연결하는 네트워크 소규모 네트워크 이며, 주로 ‘이더넷’이 주로 사용 높은 속도와 낮은 지연 시간

맨 위로 이동 ↑

그래프

맨 위로 이동 ↑

자료구조

트라이

1 분 소요

트라이 [출처] : https://www.medianet.cs.kent.edu/surveys/IAD06S-p2psearch-alok/index.html

연결 리스트

3 분 소요

연결 리스트 배열과 같은 ‘연속된’ 메모리 공간을 잡는 것이 아닌, 하나의 Node(데이터)가 다음 Node 를 가리키는(포인터) 방식으로 만들어진 자료구조

스택

최대 1 분 소요

스택 [출처] : https://roi-data.com/entry/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-4-%EC%8A%A4%ED%83%9DStack%EC%9D%B4%EB%9E%80-%EC%97%B0%EC%82%B0-%EA%B5%AC%ED%98%8...

최대 1 분 소요

우선순위 큐

최대 1 분 소요

우선순위 큐 [출처] : https://velog.io/@holicme7/%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84-%ED%81%90Prioirity-Queue-mbk48cz764

맨 위로 이동 ↑

백트래킹

맨 위로 이동 ↑

dp

맨 위로 이동 ↑

문자열

반복문과 재귀함수

최대 1 분 소요

반복문 일정한 명령을 일정 횟수만큼 반복하여 수행하는 명령 일반적으로 for 문 , while 문, do .. while 문이 존재

배열, 문자열

1 분 소요

배열 메모리 한 덩어리라는 표현 (연속된 데이터 집합) 여러 데이터 (같은 타입)을 연속하여 세워 놓은 자료구조 각 자료의 데이터 타입의 크기를 알기에 해당 데이터 타입의 크기만큼 점프하여 인덱스로 접근 가능

맨 위로 이동 ↑

탐색

이분(이진)탐색

1 분 소요

정렬된 데이터 : 데이터의 종류에 따라서 더욱 특화된 알고리즘을 사용하여 빠르게 처리할 수 있다 따라서 ‘정렬할 수 있는 데이터’의 경우, 그에 특화된 ‘이진탐색’이라는 알고리즘을 이용하여 더 효율적으로 데이터를 탐색할 수 있다

완전탐색_브루트포스

1 분 소요

탐색 알고리즘 어떠한 ‘데이터 구조’ 안에 존재하는 것을 구해오는 알고리즘 일반적인 ‘선형(linear)’ 탐색 알고리즘의 시간 복잡도는 O(N) ‘해시 맵’을 이용한 탐색 알고리즘의 시간 복잡도는 O(1) (‘해시’와 관련한 내용은 차후 포스팅을 따로 다룰 ...

맨 위로 이동 ↑

탐욕

Knapsack Problem

1 분 소요

배낭 문제 (Knapsack Problem) 한정된 용량에 일정한 ‘가치’와 ‘용량’을 가지는 물건을 넣어 가치가 ‘최대’가 되도록 배낭을 채우는 문제

DP, Greedy

3 분 소요

최적 부분 구조 (Optimal Substructure) 각 부분 문제의 ‘최적해’로 전체 문제의 ‘최적해’를 쉽게 얻어낼 수 있는 경우 ‘최적 부분 구조’의 조건을 성립한다고 말할 수 있다!

맨 위로 이동 ↑

구현

맨 위로 이동 ↑

분할 정복

분할 정복

최대 1 분 소요

분할정복 알고리즘 ‘큰 문제를 작은 문제로 분할하여 문제를 해결하는 방식’ 전반적으로 ‘재귀’와 유사한 점이 많은 방식이다.

맨 위로 이동 ↑

위상정렬

위상정렬

2 분 소요

위상정렬(topological sort) [출처] : https://m.blog.naver.com/occidere/220921661731

맨 위로 이동 ↑

내일배움캠프

Slack 과제 TIL 1

1 분 소요

갑작스런 과제 예비캠프의 마지막 주, 오늘도 열심히 진도를 나가볼까 하는 그때…!

맨 위로 이동 ↑

CSAPP

Chap3_프로그램의 기계수준 표현

2 분 소요

3.2 프로그램의 인코딩 시스템은 보다 간단한 추상화 모델을 이용하여, 세부 구현 내용은 감추며, 추상화의 여러 형태를 사용한다

Chap1_컴퓨터시스템으로의 여행

8 분 소요

1.5 캐시가 중요하다! 시스템은 ‘정보’를 이동시키는 일에 많~~은 시간을 사용한다 hello 프로그램은 하드 디스크에 저장되어 있었으며, 프로그램이 로딩될 때, ‘메인 메모리’에 복사된다 프로세서가 프로그램을 실행할 때, ‘인스트럭션’들은 ‘메인 메모리’ 에서 ‘프로...

맨 위로 이동 ↑

트리

트라이

1 분 소요

트라이 [출처] : https://www.medianet.cs.kent.edu/surveys/IAD06S-p2psearch-alok/index.html

맨 위로 이동 ↑

최적 부분 구조

Longest Common Subsequence

2 분 소요

최장 공통 부분 수열 (LCS,Longest Common Subsequence) [출처] : https://velog.io/@emplam27/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B7%B8%EB%A6%BC%EC%9C%BC%EB%A1%9C-%E...

Knapsack Problem

1 분 소요

배낭 문제 (Knapsack Problem) 한정된 용량에 일정한 ‘가치’와 ‘용량’을 가지는 물건을 넣어 가치가 ‘최대’가 되도록 배낭을 채우는 문제

DP, Greedy

3 분 소요

최적 부분 구조 (Optimal Substructure) 각 부분 문제의 ‘최적해’로 전체 문제의 ‘최적해’를 쉽게 얻어낼 수 있는 경우 ‘최적 부분 구조’의 조건을 성립한다고 말할 수 있다!

맨 위로 이동 ↑

동적 계획

Longest Common Subsequence

2 분 소요

최장 공통 부분 수열 (LCS,Longest Common Subsequence) [출처] : https://velog.io/@emplam27/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B7%B8%EB%A6%BC%EC%9C%BC%EB%A1%9C-%E...

Knapsack Problem

1 분 소요

배낭 문제 (Knapsack Problem) 한정된 용량에 일정한 ‘가치’와 ‘용량’을 가지는 물건을 넣어 가치가 ‘최대’가 되도록 배낭을 채우는 문제

DP, Greedy

3 분 소요

최적 부분 구조 (Optimal Substructure) 각 부분 문제의 ‘최적해’로 전체 문제의 ‘최적해’를 쉽게 얻어낼 수 있는 경우 ‘최적 부분 구조’의 조건을 성립한다고 말할 수 있다!

맨 위로 이동 ↑

포인터

C++ 이것저것 1

5 분 소요

클래스 데이터와 그 데이터를 다루는 함수를 하나로 묶은 ‘사용자 정의 자료형’ 사실 Struct와 Defalut 접근 제어자가 다를 뿐 나머지는 같음 Class는 private, Struct 는 Public C에서는 Struct에 변수만을 넣어 다루었기에 C++에서도 St...

포인터

4 분 소요

포인터 ‘메모리 주소 값’을 저장하는 변수 대표적인 예시로

맨 위로 이동 ↑

그리디

맨 위로 이동 ↑

C

C 메모리 할당 및 해제 함수들

1 분 소요

메모리 할당 시스템에서 메모리를 ‘동적 할당’하는 경우, OS가 virtual memory의 ‘heap’ 영역에서 사용 가능한 메모리 블록을 찾아 할당하고 그 주솟값을 반환한다

맨 위로 이동 ↑

스택

스택, 레지스터

1 분 소요

스택 프로시저 호출 시 지역 변수와 매개변수를 저장하기 위한 메모리 공간 선언되는 순서와 반대로 메모리가 해제되는 LIFO(Last in First Out) 구조를 가짐 (이는 자료구조의 ‘스택’과 동일)

맨 위로 이동 ↑

가상 메모리

동적 메모리 할당

1 분 소요

동적 메모리 할당 기본적인 개념은 프로그램이 ‘실행시간 동안 사용할 메모리 공간을 할당하는 것’을 뜻한다

가상메모리

3 분 소요

가상 메모리 ‘가상 메모리(virtual memory,VM)’ 는 메모리 관리 기술 의 일부로, 메인 메모리 (RAM) 과 보조 기억 장치(HDD,SSD) 의 조합으로 이루어진다 ‘가상 메모리 주소 공간’의 개념을 이야기 하는 표현으로도 사용된다

맨 위로 이동 ↑

C++

2주차 C++ 과제 2

2 분 소요

2주차 C++ 과제 2 C++의 다형성을 이용하여 기본적인 캐릭터와 플레이어, 그리고 플레이어들에 대한 전직과 몬스터를 구현하는 작업이다

2주차 C++ 과제 1

1 분 소요

2주차 C++ 과제 1 C++의 기본적인 기능들을 이용하여 캐릭터와 그 스탯, 입력 등에 대한 처리를 구현하는 것이 과제이다

C++의 Casting

4 분 소요

C++ Casting Type 최근 C++에 대하여 다시 공부하며, TIL을 작성하려 한다 그 중, 이전에 공부하였지만 TIL을 작성하지 않은 것들을 위주로 몇몇 내용을 갱신해보려 한다

맨 위로 이동 ↑

완전탐색

맨 위로 이동 ↑

우선순위 큐

맨 위로 이동 ↑

그래픽스

좌표계

1 분 소요

좌표계 3D 렌더링에는 여러 ‘좌표계’가 사용되며 ‘좌표 변환’이 필요할 때가 있음

맨 위로 이동 ↑

회전 변환

변환 4

최대 1 분 소요

애파인 변환

변환 3

2 분 소요

다시 보는 회전 변환 회전 변환 역시 ‘선형 변환’이며 그렇기에 ‘행렬’로 표현이 가능

변환

1 분 소요

변환 좌표나 벡터를 다른 좌표나 벡터로 바꾸는 것

맨 위로 이동 ↑

그리디 알고리즘

맨 위로 이동 ↑

레지스터

스택, 레지스터

1 분 소요

스택 프로시저 호출 시 지역 변수와 매개변수를 저장하기 위한 메모리 공간 선언되는 순서와 반대로 메모리가 해제되는 LIFO(Last in First Out) 구조를 가짐 (이는 자료구조의 ‘스택’과 동일)

맨 위로 이동 ↑

greedy

백준 11399 atm

최대 1 분 소요

atm (백준 11399) https://www.acmicpc.net/problem/11399

맨 위로 이동 ↑

분할정복

맨 위로 이동 ↑

malloc lab

mallob lab - segregated free list

6 분 소요

malloc lab - segregated free list 일정한 크기로 나눈 가용 리스트를 이용하여 find - fit 시 검색 범위를 찾는 방식 내가 구현한 방식은 ‘명시적 가용 리스트 - LIFO’를 2의 지수승 으로 약 20개 정도를 만들어 관리하는 방식을 사용하였다

mallob lab - explict free list

6 분 소요

malloc lab implict free list에 대한 내용은 CSAPP의 9.9에 존재하여 해당 내용을 구현하여 테스트 제출 시, 약 54 점 정도 나왔던 걸로 기억한다

맨 위로 이동 ↑

운영 체제

system call

2 분 소요

운영 체제의 모드 User mode 일반적인 프로그램 실행 응용프로그램은 시스템 자원에 직접 접근 불가 제한된 명령어 집합 실행 가능 메모리 일부 영역에 접근 가능 제한된 운영체제 서비스에 접근이 가능 => 응용 프로그램 간의 상호 간섭의 최...

demand zero memory

최대 1 분 소요

demand zero memory 운영 체제에서 사용되는 메모리 관리 방식 중 하나이며 가상 메모리를 효율적으로 관리할 수 있는 방식이다 (구현 방식에 따라 사용되지 않기도 한다)

맨 위로 이동 ↑

DMA

권영진 교수님 OS 강의

6 분 소요

정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다

DMA(Direct Memory Access)

1 분 소요

DMA(Direct Memory Access) 일종의 입출력 제어 방식으로 CPU의 개입 없이 주변장치(HDD,GPU 등)가 메모리에 직접 접근하여 데이터를 읽고 쓸 수 있게 해주는 시스템의 기능

맨 위로 이동 ↑

소켓

Socket

2 분 소요

포트(port) 프로토콜 표준 Application Layer에서 데이터를 주고 받고 싶을때, 프로세스가 하위 계층과 연결을 해주는 장치가 필요함 이러한 데이터의 통로 역할을 하는 장치가 바로 ‘포트’ (프로세스와 연결된 데이터 통로 혹은 데...

Datagram socket, Stream socket

1 분 소요

Datagram Socket 비연결형(Connectionless) 소켓이며, UDP(User Datagram Protocol) 기반 (UDP는 Transfort Layer의 프로토콜이며, 한 계층 아래의 IP 프로토콜과 유사한 특징을 가진다)

맨 위로 이동 ↑

누적합

맨 위로 이동 ↑

프로세스

권영진 교수님 OS 강의

6 분 소요

정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다

Process 와 Thread

3 분 소요

운영체제의 개요 OS란 뭘까? 일단 프로그램은 ‘명령어의 집합’이라고 봐도 과언이 아닐것이다 폰 노이만 구조에서 프로그램의 각 명령어는 Fetch(가져오기) : PC(프로그램 카운터)에 저장된 메모리 주소에서 명령어를 가져온다 Decode(해독) : 가져온 명령어를 해독하...

맨 위로 이동 ↑

맨 위로 이동 ↑

Js

JS async, await, promise

최대 1 분 소요

JS의 비동기 키워드(async, await, promise) 작업을 ‘비동기’적으로 처리한다는 것은 ‘동시에’ 처리하되 ‘그 순서를 보장하지 않는다’는 말이다 그로 인하여, 특정한 작업이 끝날때까지 ‘대기’하는 중 프로그램이 멈추지 않고 다른 작업을 처리하도록 만들 수 있다...

React JS

3 분 소요

개인 과제 나만무 시작 전, 개인 과제를 진행하고 관련 프레임워크에 대한 공부를 하기 위해 내가 정한 것은 ‘프론트엔드’이며, 그 중 관련된 것은 ‘React’였다

맨 위로 이동 ↑

이진 탐색

맨 위로 이동 ↑

회고

크래프톤 정글 회고

1 분 소요

크래프톤 정글을 수료하고… 5개월 동안 참으로 길면 길고, 막상 해보니 짧은것 같기도 하고 서로 얼굴 보던 사람들이 이제 헤어질 때가 되니 조금 시원섭섭하기도 하다

나만무 회고

3 분 소요

약 5주 간의 대장정 당연하다면 당연하겠지만 개인적으로 여태까지 진행했던 3개의 프로젝트 중 가장 인상깊고 또 가장 힘든 프로젝트였다고 생각한다. (고려전문학교 시절에 2번의 프로젝트 이후, 몇년 만의 팀 프로젝트인지..)

맨 위로 이동 ↑

플로이드-워셜

맨 위로 이동 ↑

부분합

맨 위로 이동 ↑

투 포인터

맨 위로 이동 ↑

이진탐색

맨 위로 이동 ↑

set

맨 위로 이동 ↑

다익스트라

맨 위로 이동 ↑

Reflection

C#의 여러가지와 Reflection

3 분 소요

C#의 자료형 최근 Unity와 C#에 대하여 다시 공부 중이며, 그 중 나중에 개념상 헷갈리지 않기에 몇가지 개념을 정리하려 한다

맨 위로 이동 ↑

좌표계

좌표계

1 분 소요

좌표계 3D 렌더링에는 여러 ‘좌표계’가 사용되며 ‘좌표 변환’이 필요할 때가 있음

맨 위로 이동 ↑

Material

Post Process Material

3 분 소요

Post Process ‘렌더링’이 끝난 후, 화면 전체에 적용되는 ‘후처리’효과로 화면 단위의 ‘픽셀’ 마다 개별적인 연산을 수행할 수도 있다 (이 부분은 DirectX의 ‘Pixel Shader’와 유사)

Material

4 분 소요

Material 머티리얼이란 특정한 게임 오브젝트의 ‘표면적 시각 특성’을 정의하는 개념으로 그 구성요소는 기본 색상(Base Color) 질감/거칠기 (Roughness) 반사/굴절 (Metalic, Specular, Refraction) 입체감 표현(Normal...

맨 위로 이동 ↑

과제

Slack 과제 TIL 1

1 분 소요

갑작스런 과제 예비캠프의 마지막 주, 오늘도 열심히 진도를 나가볼까 하는 그때…!

맨 위로 이동 ↑

조합

맨 위로 이동 ↑

이동 변환

변환 4

최대 1 분 소요

애파인 변환

변환

1 분 소요

변환 좌표나 벡터를 다른 좌표나 벡터로 바꾸는 것

맨 위로 이동 ↑

스케일 변환

변환 4

최대 1 분 소요

애파인 변환

맨 위로 이동 ↑

Direct 3D

Direct X InitDirect3D

12 분 소요

들어가기 앞서 내용 자체는 그렇게 어렵지 않았으나 코드 + 설명을 하다보니 포스팅 크기가 너무 길어지는 듯 하여 분할하여 올릴 예정이다

Direct X Init 1

4 분 소요

들어가기 앞서 개인적으로 포스팅을 하는 글이며 기본적으로는 Honglab의 강의 글을 통해 공부하는 용도이다

맨 위로 이동 ↑

다짐

맨 위로 이동 ↑

에세이

맨 위로 이동 ↑

복잡도

복잡도와 빅O표기법

최대 1 분 소요

복잡도 : 알고리즘의 성능을 나타내는 척도 크게 시간, 공간 복잡도 로 나뉜다 입력한 데이터가 ‘많아짐’에 따라 다음의 요소가 얼마나 늘어나는지를 측정 시간 복잡도 : 실행 시간 공간 복잡도 : 필요한 공간(메모리) => 입력이 늘어남에 따른 시간과 필요 공간의 증가...

맨 위로 이동 ↑

정렬

정렬

4 분 소요

정렬 알고리즘 n개의 데이터가 입력으로 주어졌을 때, 특정한 기준에 따라 해당하는 데이터에 순서대로 열거하는 것 데이터를 정렬하는 경우 효율적인 ‘탐색’이 가능해진다

맨 위로 이동 ↑

파이썬

람다(Python)

최대 1 분 소요

람다 함수(Lambda Function) ‘간단한 함수’를 선언없이 사용하는 방식

맨 위로 이동 ↑

람다식

람다(Python)

최대 1 분 소요

람다 함수(Lambda Function) ‘간단한 함수’를 선언없이 사용하는 방식

맨 위로 이동 ↑

최소 신장 트리

MST

3 분 소요

MST (최소 신장 트리) 신장 트리?? 어떤 그래프 안에 있는 모든 노드를 연결하는 트리 그래프 안에 있는 변만을 사용 신장 트리는 여럿 있을 수 있음

맨 위로 이동 ↑

최단 경로 문제

최단 경로 알고리듬

8 분 소요

최단 경로 문제 그래프 이론에서 ‘가장 짧은 경로’에서 두 꼭짓점을 찾는 문제

맨 위로 이동 ↑

트라이

트라이

1 분 소요

트라이 [출처] : https://www.medianet.cs.kent.edu/surveys/IAD06S-p2psearch-alok/index.html

맨 위로 이동 ↑

연산자

포인터

4 분 소요

포인터 ‘메모리 주소 값’을 저장하는 변수 대표적인 예시로

맨 위로 이동 ↑

vs code

C 환경 세팅과 여러가지…

3 분 소요

세팅 작업 4주차에 C언어 세팅을 하면서 여러가지 고생을 하였지만 다행히 친절하신 동료분이 세팅을 도와주셔서 여러가지 인식할 수 있었다

맨 위로 이동 ↑

gcc

C 환경 세팅과 여러가지…

3 분 소요

세팅 작업 4주차에 C언어 세팅을 하면서 여러가지 고생을 하였지만 다행히 친절하신 동료분이 세팅을 도와주셔서 여러가지 인식할 수 있었다

맨 위로 이동 ↑

AVL Tree

AVL Tree

1 분 소요

AVL 트리 BST의 한 종류 스스로 균형을 잡는 트리 (balance Factor를 이용)

맨 위로 이동 ↑

bTree

bTree

3 분 소요

B tree (B Tree) bst(이진탐색트리)와 유사하지만 자식 의 노드가 2개보다 많은 트리 key값의 응용

맨 위로 이동 ↑

bss

bss 영역

최대 1 분 소요

BSS(Block Started by Symbol) bss 영역은 초기화되지 않았거나 0 혹은 NULL로 초기화된 전역 및 정적 변수를 저장하는데 사용하는 영역이다 ‘목적파일’에서는 공간을 차지하지 않는 특징이 있다 또한 프로그램 실행 시, 위의 변수들을 0으로 초기화시키...

맨 위로 이동 ↑

목적파일

bss 영역

최대 1 분 소요

BSS(Block Started by Symbol) bss 영역은 초기화되지 않았거나 0 혹은 NULL로 초기화된 전역 및 정적 변수를 저장하는데 사용하는 영역이다 ‘목적파일’에서는 공간을 차지하지 않는 특징이 있다 또한 프로그램 실행 시, 위의 변수들을 0으로 초기화시키...

맨 위로 이동 ↑

rb-Tree

rb-Tree

6 분 소요

RB-Tree(Red-Black Tree) 각 노드가 레드 혹은 블랙 인 이진 탐색 트리 (단순한 추가정보)

맨 위로 이동 ↑

페이징

가상메모리

3 분 소요

가상 메모리 ‘가상 메모리(virtual memory,VM)’ 는 메모리 관리 기술 의 일부로, 메인 메모리 (RAM) 과 보조 기억 장치(HDD,SSD) 의 조합으로 이루어진다 ‘가상 메모리 주소 공간’의 개념을 이야기 하는 표현으로도 사용된다

맨 위로 이동 ↑

explict free list

mallob lab - explict free list

6 분 소요

malloc lab implict free list에 대한 내용은 CSAPP의 9.9에 존재하여 해당 내용을 구현하여 테스트 제출 시, 약 54 점 정도 나왔던 걸로 기억한다

맨 위로 이동 ↑

메모리 관리

demand zero memory

최대 1 분 소요

demand zero memory 운영 체제에서 사용되는 메모리 관리 방식 중 하나이며 가상 메모리를 효율적으로 관리할 수 있는 방식이다 (구현 방식에 따라 사용되지 않기도 한다)

맨 위로 이동 ↑

동적 할당

묵시적, 명시적 가용 리스트

2 분 소요

동적 할당을 위한 가용 리스트 함수를 호출하면 ‘스택’에 스택 프레임이 생성되고 지역변수를 선언하면 그것 역시 ‘스택’에 메모리를 잡는다

맨 위로 이동 ↑

가용 리스트

묵시적, 명시적 가용 리스트

2 분 소요

동적 할당을 위한 가용 리스트 함수를 호출하면 ‘스택’에 스택 프레임이 생성되고 지역변수를 선언하면 그것 역시 ‘스택’에 메모리를 잡는다

맨 위로 이동 ↑

메모리 할당 정책

메모리 할당 정책

2 분 소요

메모리 할당 정책 응용프로그램이 메모리의 블록을 요청할 때, 메모리 할당기는 요청한 블록을 저장하기에 충분히 큰 가용 블록을 리스트에서 검색한다

맨 위로 이동 ↑

segregated free list

mallob lab - segregated free list

6 분 소요

malloc lab - segregated free list 일정한 크기로 나눈 가용 리스트를 이용하여 find - fit 시 검색 범위를 찾는 방식 내가 구현한 방식은 ‘명시적 가용 리스트 - LIFO’를 2의 지수승 으로 약 20개 정도를 만들어 관리하는 방식을 사용하였다

맨 위로 이동 ↑

이더넷

이더넷(Ethernet)

1 분 소요

지리적 규모에 따른 네트워크의 분류 LAN(Local Area Network) 지리적으로 가까운 장치를 연결하는 네트워크 소규모 네트워크 이며, 주로 ‘이더넷’이 주로 사용 높은 속도와 낮은 지연 시간

맨 위로 이동 ↑

운영체제

File_Descriptor

2 분 소요

파일 디스크립터 운영체제에서 I/O 리소스를 식별하는데 사용되는 정숫값 (유닉스 계열의 운영체제이며, 윈도우에서는 파일 핸들(File Handle)이 비슷한 개념이지만 구체적 구현과 사용방식에 차이 존재)

맨 위로 이동 ↑

파일 디스크립터

File_Descriptor

2 분 소요

파일 디스크립터 운영체제에서 I/O 리소스를 식별하는데 사용되는 정숫값 (유닉스 계열의 운영체제이며, 윈도우에서는 파일 핸들(File Handle)이 비슷한 개념이지만 구체적 구현과 사용방식에 차이 존재)

맨 위로 이동 ↑

프록시

Proxy

1 분 소요

프록시(Proxy) ‘대리’,’대리인’ 등의 의미를 가진 영단어 실제 프록시 서버도 비슷하게 쓰인다

맨 위로 이동 ↑

행렬곱셈

맨 위로 이동 ↑

슈트라센 알고리즘

맨 위로 이동 ↑

DNS

IP 주소 와 subnet

최대 1 분 소요

DNS (Domain Network System) 도메인 이름과 IP 주소 간의 매핑을 관리하고 이를 위해 계층적이고 분산된 구조로 이루어진 시스템

맨 위로 이동 ↑

IP

IP 주소 와 subnet

2 분 소요

IP 주소의 2가지 형태 공용 IP 주소(Public IP Address) 인터넷에 공개되는 주소로서 전 세계의 장치들이 인터넷에 연결될 때 사용된다 인터넷 상에서 고유하게 식별되는 주소 ISP(인터넷 서비스 제공업체)가 ...

맨 위로 이동 ↑

서브넷

IP 주소 와 subnet

2 분 소요

IP 주소의 2가지 형태 공용 IP 주소(Public IP Address) 인터넷에 공개되는 주소로서 전 세계의 장치들이 인터넷에 연결될 때 사용된다 인터넷 상에서 고유하게 식별되는 주소 ISP(인터넷 서비스 제공업체)가 ...

맨 위로 이동 ↑

Proxy lab

Week06_Proxy_Lab

5 분 소요

Proxy Lab 개인적으로 정말 어려웠던 것 같다 (당장 다음주부터 핀토스 시작이지만)

맨 위로 이동 ↑

스케쥴링

CPU 스케쥴링 알고리즘

3 분 소요

운영체제의 스케쥴링 운영체제가 프로세스를 실행시키는 ‘정책’ 중 ‘고수준’에 해당하는 정책이며, (저수준은 ‘문맥 교환’이며, 이는 메모리 주소 공간에 대한 밀접한 관련이 있으며 이는 하드웨어와 가깝기에 ‘저수준’이라 표현한다)

맨 위로 이동 ↑

스레드

Process 와 Thread

3 분 소요

운영체제의 개요 OS란 뭘까? 일단 프로그램은 ‘명령어의 집합’이라고 봐도 과언이 아닐것이다 폰 노이만 구조에서 프로그램의 각 명령어는 Fetch(가져오기) : PC(프로그램 카운터)에 저장된 메모리 주소에서 명령어를 가져온다 Decode(해독) : 가져온 명령어를 해독하...

맨 위로 이동 ↑

동기화

동기화 도구

2 분 소요

임계 영역(Critical Section) 보통 다중 쓰레드 or 프로세스 환경에서 공유된 자원(변수 or 자료구조 등)에 접근하는 ‘코드 영역’을 의미한다 (공유된 자원과 임계 영역은 다른 개념) (공유된 자원은 ‘데이터’,’메모리’, 변수, 파일 등의 실제 ‘자원’임) ...

맨 위로 이동 ↑

뮤텍스

동기화 도구

2 분 소요

임계 영역(Critical Section) 보통 다중 쓰레드 or 프로세스 환경에서 공유된 자원(변수 or 자료구조 등)에 접근하는 ‘코드 영역’을 의미한다 (공유된 자원과 임계 영역은 다른 개념) (공유된 자원은 ‘데이터’,’메모리’, 변수, 파일 등의 실제 ‘자원’임) ...

맨 위로 이동 ↑

세마포어

동기화 도구

2 분 소요

임계 영역(Critical Section) 보통 다중 쓰레드 or 프로세스 환경에서 공유된 자원(변수 or 자료구조 등)에 접근하는 ‘코드 영역’을 의미한다 (공유된 자원과 임계 영역은 다른 개념) (공유된 자원은 ‘데이터’,’메모리’, 변수, 파일 등의 실제 ‘자원’임) ...

맨 위로 이동 ↑

경쟁 상태

동기화 도구

2 분 소요

임계 영역(Critical Section) 보통 다중 쓰레드 or 프로세스 환경에서 공유된 자원(변수 or 자료구조 등)에 접근하는 ‘코드 영역’을 의미한다 (공유된 자원과 임계 영역은 다른 개념) (공유된 자원은 ‘데이터’,’메모리’, 변수, 파일 등의 실제 ‘자원’임) ...

맨 위로 이동 ↑

데드락

동기화 도구

2 분 소요

임계 영역(Critical Section) 보통 다중 쓰레드 or 프로세스 환경에서 공유된 자원(변수 or 자료구조 등)에 접근하는 ‘코드 영역’을 의미한다 (공유된 자원과 임계 영역은 다른 개념) (공유된 자원은 ‘데이터’,’메모리’, 변수, 파일 등의 실제 ‘자원’임) ...

맨 위로 이동 ↑

조건 변수

조건 변수, 모니터

2 분 소요

조건 변수(Condition Variable) 다중 프로세스 or 스레드 환경에서 사용하는 ‘동기화 도구’ 중 하나

맨 위로 이동 ↑

모니터

조건 변수, 모니터

2 분 소요

조건 변수(Condition Variable) 다중 프로세스 or 스레드 환경에서 사용하는 ‘동기화 도구’ 중 하나

맨 위로 이동 ↑

Struct

맨 위로 이동 ↑

메모리

맨 위로 이동 ↑

Cache

Cache 와 OS

1 분 소요

Cache 캐싱이란 ‘기존의 액세스한 데이터의 사본을 보관’하는 ‘임시 저장 공간’을 의미하며 동시에 ‘느린’ 데이터 저장 장치 에 존재하는 데이터를 빠른 저장장치에 보관시켜 전체적인 성능의 향상하는 ‘기법’에 대한 내용도 포함된다 (좀 더 세밀하게 말하자면 이러한 기법을 ...

맨 위로 이동 ↑

atomic

atomic operation

최대 1 분 소요

Atomic Operation 직역하자면 ‘원자적 연산’이란 뜻을 가진다 마치 ‘원자’처럼 더 이상 ‘분할’할 수 없는 ‘작업’을 뜻하며

맨 위로 이동 ↑

가상 주소 공간

권영진 교수님 OS 강의

6 분 소요

정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다

맨 위로 이동 ↑

페이지 교체 알고리즘/정책

Page Replacement Policy

2 분 소요

Page Replacement Policy [출처] : https://velog.io/@owlsuri/%ED%8E%98%EC%9D%B4%EC%A7%80-%EA%B5%90%EC%B2%B4-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

맨 위로 이동 ↑

Page Replacement Policy

Page Replacement Policy

2 분 소요

Page Replacement Policy [출처] : https://velog.io/@owlsuri/%ED%8E%98%EC%9D%B4%EC%A7%80-%EA%B5%90%EC%B2%B4-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

맨 위로 이동 ↑

memory

Mmap

1 분 소요

가상 주소 공간과 mmap [출처] : https://devraphy.tistory.com/428 가상 주소 공간의 ‘영역’은 주로 Code, Data (+ bss), heap, stack 등으로 이루어져 있다

맨 위로 이동 ↑

Multi-level Page Table

Multi-level Page Table

2 분 소요

다중 레벨 페이지 테이블이 필요한 이유! Page Table은 기본적으로 메인 메모리에 존재한다 이는 ‘DRAM’에 존재한다는 것인데…. 문제는 Page의 개수가 상~당히 많다는 점이다

맨 위로 이동 ↑

undefined reference

맨 위로 이동 ↑

static

맨 위로 이동 ↑

Pintos

Pintos 회고

1 분 소요

Pintos Project3 까지… OS가 얼마나 대단하고 소중한 (?) 존재인지 깨달을 수 있었던 5주였던 것 같다 각각 스케쥴링, 시스템 콜, 가상 메모리 에 대한 OS의 핵심적인 역할에 대하여 보다 심도있게 이해할 수 있었다 이전에야 CS 적인 지식을 익히고 ‘OS...

맨 위로 이동 ↑

AWS

AWS 강의

2 분 소요

AWS 강의 리전 : 서버가 호스팅 될 물리적인 위치 latency를 고려하여 리전을 배치한다

맨 위로 이동 ↑

React

React JS

3 분 소요

개인 과제 나만무 시작 전, 개인 과제를 진행하고 관련 프레임워크에 대한 공부를 하기 위해 내가 정한 것은 ‘프론트엔드’이며, 그 중 관련된 것은 ‘React’였다

맨 위로 이동 ↑

나만무

나만무 회고

3 분 소요

약 5주 간의 대장정 당연하다면 당연하겠지만 개인적으로 여태까지 진행했던 3개의 프로젝트 중 가장 인상깊고 또 가장 힘든 프로젝트였다고 생각한다. (고려전문학교 시절에 2번의 프로젝트 이후, 몇년 만의 팀 프로젝트인지..)

맨 위로 이동 ↑

해시

맨 위로 이동 ↑

dfs

맨 위로 이동 ↑

Try

맨 위로 이동 ↑

이진트리

맨 위로 이동 ↑

순회

맨 위로 이동 ↑

게임이론

맨 위로 이동 ↑

Minimax

맨 위로 이동 ↑

MST

맨 위로 이동 ↑

크루스칼

맨 위로 이동 ↑

비트마스킹

맨 위로 이동 ↑

연결 리스트

맨 위로 이동 ↑

Map

맨 위로 이동 ↑

C# 자료형

C#의 여러가지와 Reflection

3 분 소요

C#의 자료형 최근 Unity와 C#에 대하여 다시 공부 중이며, 그 중 나중에 개념상 헷갈리지 않기에 몇가지 개념을 정리하려 한다

맨 위로 이동 ↑

Getter / Setter

C#의 여러가지와 Reflection

3 분 소요

C#의 자료형 최근 Unity와 C#에 대하여 다시 공부 중이며, 그 중 나중에 개념상 헷갈리지 않기에 몇가지 개념을 정리하려 한다

맨 위로 이동 ↑

Extension

Extension Method

최대 1 분 소요

Extension Method(확장 메서드) 기존 클래스에 ‘새로운 메서드’를 추가하는 문법이나, 기존 클래스를 수정하지 않기에 각종 유틸리티 메서드 를 작성할때 특히 유용하다

맨 위로 이동 ↑

이분탐색

맨 위로 이동 ↑

용어정리

맨 위로 이동 ↑

레스터화

맨 위로 이동 ↑

레스터라이제이션

맨 위로 이동 ↑

1on1

맨 위로 이동 ↑

게임 분석

맨 위로 이동 ↑

Sub Level

Level, Sub Level, World Partition

1 분 소요

Level 게임 내에서 플레이어가 상호작용할 수 있는 공간인 ‘월드’의 ‘전부’ 이거나 ‘일부’라 표현 가능 (‘맵’ 혹은 ‘씬’ 등의 개념과 유사) .umap 확장자를 가지는 파일 게임에서 보이는 모든 것(지형,액터,빛,소리 등)을 배치하는 공간

맨 위로 이동 ↑

World Partition

Level, Sub Level, World Partition

1 분 소요

Level 게임 내에서 플레이어가 상호작용할 수 있는 공간인 ‘월드’의 ‘전부’ 이거나 ‘일부’라 표현 가능 (‘맵’ 혹은 ‘씬’ 등의 개념과 유사) .umap 확장자를 가지는 파일 게임에서 보이는 모든 것(지형,액터,빛,소리 등)을 배치하는 공간

맨 위로 이동 ↑

External Actor

Level, Sub Level, World Partition

1 분 소요

Level 게임 내에서 플레이어가 상호작용할 수 있는 공간인 ‘월드’의 ‘전부’ 이거나 ‘일부’라 표현 가능 (‘맵’ 혹은 ‘씬’ 등의 개념과 유사) .umap 확장자를 가지는 파일 게임에서 보이는 모든 것(지형,액터,빛,소리 등)을 배치하는 공간

맨 위로 이동 ↑

Data Layars

Level, Sub Level, World Partition

1 분 소요

Level 게임 내에서 플레이어가 상호작용할 수 있는 공간인 ‘월드’의 ‘전부’ 이거나 ‘일부’라 표현 가능 (‘맵’ 혹은 ‘씬’ 등의 개념과 유사) .umap 확장자를 가지는 파일 게임에서 보이는 모든 것(지형,액터,빛,소리 등)을 배치하는 공간

맨 위로 이동 ↑

Input Actions

Enhanced Input System

2 분 소요

향상된 입력 시스템(Enhanced Input System) UE5에선 새로운 입력 시스템을 제공하며 기존 UE4의 입력 시스템을 보완하여 복잡한 입력 처리 요구 사항에 대응하기 위하여 설계되었다

맨 위로 이동 ↑

Input Mapping Contexts

Enhanced Input System

2 분 소요

향상된 입력 시스템(Enhanced Input System) UE5에선 새로운 입력 시스템을 제공하며 기존 UE4의 입력 시스템을 보완하여 복잡한 입력 처리 요구 사항에 대응하기 위하여 설계되었다

맨 위로 이동 ↑

Input Modifiers

Enhanced Input System

2 분 소요

향상된 입력 시스템(Enhanced Input System) UE5에선 새로운 입력 시스템을 제공하며 기존 UE4의 입력 시스템을 보완하여 복잡한 입력 처리 요구 사항에 대응하기 위하여 설계되었다

맨 위로 이동 ↑

Input Triggers

Enhanced Input System

2 분 소요

향상된 입력 시스템(Enhanced Input System) UE5에선 새로운 입력 시스템을 제공하며 기존 UE4의 입력 시스템을 보완하여 복잡한 입력 처리 요구 사항에 대응하기 위하여 설계되었다

맨 위로 이동 ↑

UObject

맨 위로 이동 ↑

AActor

맨 위로 이동 ↑

APawn

맨 위로 이동 ↑

Acharacter

맨 위로 이동 ↑

AController

Controller

2 분 소요

Controller Pawn을 조종하는 추상적 존재이며, ‘유저’ 혹은 ‘AI’의 대리하는 클래스

맨 위로 이동 ↑

Player Controller

Controller

2 분 소요

Controller Pawn을 조종하는 추상적 존재이며, ‘유저’ 혹은 ‘AI’의 대리하는 클래스

맨 위로 이동 ↑

AI Controller

Controller

2 분 소요

Controller Pawn을 조종하는 추상적 존재이며, ‘유저’ 혹은 ‘AI’의 대리하는 클래스

맨 위로 이동 ↑

Behavior Tree

Controller

2 분 소요

Controller Pawn을 조종하는 추상적 존재이며, ‘유저’ 혹은 ‘AI’의 대리하는 클래스

맨 위로 이동 ↑

BlackBoard

Controller

2 분 소요

Controller Pawn을 조종하는 추상적 존재이며, ‘유저’ 혹은 ‘AI’의 대리하는 클래스

맨 위로 이동 ↑

Perception System

Controller

2 분 소요

Controller Pawn을 조종하는 추상적 존재이며, ‘유저’ 혹은 ‘AI’의 대리하는 클래스

맨 위로 이동 ↑

수학

맨 위로 이동 ↑

LandScape

LandScape, Foliage

2 분 소요

LandScape LandScape는 언리얼에서 넓은 지형을 생성하고, 편집하기 위한 특수한 액터 타입으로 HeightMap 기반의 그리드형 타일 지형으로 구성된다

맨 위로 이동 ↑

Foliage

LandScape, Foliage

2 분 소요

LandScape LandScape는 언리얼에서 넓은 지형을 생성하고, 편집하기 위한 특수한 액터 타입으로 HeightMap 기반의 그리드형 타일 지형으로 구성된다

맨 위로 이동 ↑

PBR

Material

4 분 소요

Material 머티리얼이란 특정한 게임 오브젝트의 ‘표면적 시각 특성’을 정의하는 개념으로 그 구성요소는 기본 색상(Base Color) 질감/거칠기 (Roughness) 반사/굴절 (Metalic, Specular, Refraction) 입체감 표현(Normal...

맨 위로 이동 ↑

클래스

C++ 이것저것 1

5 분 소요

클래스 데이터와 그 데이터를 다루는 함수를 하나로 묶은 ‘사용자 정의 자료형’ 사실 Struct와 Defalut 접근 제어자가 다를 뿐 나머지는 같음 Class는 private, Struct 는 Public C에서는 Struct에 변수만을 넣어 다루었기에 C++에서도 St...

맨 위로 이동 ↑

상속

C++ 이것저것 1

5 분 소요

클래스 데이터와 그 데이터를 다루는 함수를 하나로 묶은 ‘사용자 정의 자료형’ 사실 Struct와 Defalut 접근 제어자가 다를 뿐 나머지는 같음 Class는 private, Struct 는 Public C에서는 Struct에 변수만을 넣어 다루었기에 C++에서도 St...

맨 위로 이동 ↑

접근 제어자

C++ 이것저것 1

5 분 소요

클래스 데이터와 그 데이터를 다루는 함수를 하나로 묶은 ‘사용자 정의 자료형’ 사실 Struct와 Defalut 접근 제어자가 다를 뿐 나머지는 같음 Class는 private, Struct 는 Public C에서는 Struct에 변수만을 넣어 다루었기에 C++에서도 St...

맨 위로 이동 ↑

벡터 내적

벡터에 대한 추가 내용

1 분 소요

벡터 이미 이전에 3D 관련으로 정의한 적이 있으나 좀 더 심층적으로 알아보려 한다

맨 위로 이동 ↑

벡터 외적

벡터에 대한 추가 내용

1 분 소요

벡터 이미 이전에 3D 관련으로 정의한 적이 있으나 좀 더 심층적으로 알아보려 한다

맨 위로 이동 ↑

동적 메모리

맨 위로 이동 ↑

주소값

맨 위로 이동 ↑

캐스팅

맨 위로 이동 ↑

업/다운 캐스팅

맨 위로 이동 ↑

깊은/얕은 복사

맨 위로 이동 ↑

댕글리 포인터

맨 위로 이동 ↑

스마트 포인터

맨 위로 이동 ↑

컬링

Backface Culling

3 분 소요

컬링(Culling) 3D 그래픽스에서 불필요한 ‘도형’이나 ‘픽셀’을 그리지 않는 최적화 기법

맨 위로 이동 ↑

벡터의 외적

Backface Culling

3 분 소요

컬링(Culling) 3D 그래픽스에서 불필요한 ‘도형’이나 ‘픽셀’을 그리지 않는 최적화 기법

맨 위로 이동 ↑

삼각형 내부 판정

Backface Culling

3 분 소요

컬링(Culling) 3D 그래픽스에서 불필요한 ‘도형’이나 ‘픽셀’을 그리지 않는 최적화 기법

맨 위로 이동 ↑

바리센트릭 좌표계

Backface Culling

3 분 소요

컬링(Culling) 3D 그래픽스에서 불필요한 ‘도형’이나 ‘픽셀’을 그리지 않는 최적화 기법

맨 위로 이동 ↑

lValue

C++ 이것저것 3

3 분 소요

lValue 와 rValue ‘값’에 대한 ‘분류’이며 일종의 ‘표현식’에 가깝다

맨 위로 이동 ↑

rValue

C++ 이것저것 3

3 분 소요

lValue 와 rValue ‘값’에 대한 ‘분류’이며 일종의 ‘표현식’에 가깝다

맨 위로 이동 ↑

Move

C++ 이것저것 3

3 분 소요

lValue 와 rValue ‘값’에 대한 ‘분류’이며 일종의 ‘표현식’에 가깝다

맨 위로 이동 ↑

이동 생성자

C++ 이것저것 3

3 분 소요

lValue 와 rValue ‘값’에 대한 ‘분류’이며 일종의 ‘표현식’에 가깝다

맨 위로 이동 ↑

이동 대입 연산자

C++ 이것저것 3

3 분 소요

lValue 와 rValue ‘값’에 대한 ‘분류’이며 일종의 ‘표현식’에 가깝다

맨 위로 이동 ↑

Perfect Forwarding

C++ 이것저것 3

3 분 소요

lValue 와 rValue ‘값’에 대한 ‘분류’이며 일종의 ‘표현식’에 가깝다

맨 위로 이동 ↑

Interface

Interface

2 분 소요

Interface 오늘은 TIL을 좀 더 가볍게 다뤄보려고 한다 기존의 포스팅은 작성에 몇시간이 걸리고 정리에 시간이 걸렸지만 오늘은 몸 상태가 좋지 않아 Interface 위주로 다루려 한다

맨 위로 이동 ↑

TObjectPtr

UObject Ptr

3 분 소요

UObject 기반 클래스에 대한 포인터 언리얼 강의를 듣던 중 TOjbectPtr라는 독특한 ‘포인터’를 발견하였다 (T* 방식의 일반 ‘생’ 포인터와는 다른)

맨 위로 이동 ↑

Unreal GC

UObject Ptr

3 분 소요

UObject 기반 클래스에 대한 포인터 언리얼 강의를 듣던 중 TOjbectPtr라는 독특한 ‘포인터’를 발견하였다 (T* 방식의 일반 ‘생’ 포인터와는 다른)

맨 위로 이동 ↑

Niagara

나이아가라 시스템

4 분 소요

나이아가라 시스템? UE 4.2 이후부터 도입된 차세대 파티클, VFX 시스템

맨 위로 이동 ↑

Chaos

카오스 오브젝트 시스템

2 분 소요

언리얼 ‘Chaos’ 시스템 언리얼의 ‘물리 기반 시뮬레이션’을 위한 오브젝트 관리 및 파괴 시스템

맨 위로 이동 ↑

Delegate

Delegate

5 분 소요

Delegate ‘대리자’라는 개념을 가졌으며 기본적으로 C++에서 별도의 키워드로 분류되지는 않지만 ‘함수 포인터’를 다른 곳으로 넘겨주어 필요에 따라 ‘호출’을 ‘위임’하는 구조

맨 위로 이동 ↑

함수 포인터

Delegate

5 분 소요

Delegate ‘대리자’라는 개념을 가졌으며 기본적으로 C++에서 별도의 키워드로 분류되지는 않지만 ‘함수 포인터’를 다른 곳으로 넘겨주어 필요에 따라 ‘호출’을 ‘위임’하는 구조

맨 위로 이동 ↑

lambda

Delegate

5 분 소요

Delegate ‘대리자’라는 개념을 가졌으며 기본적으로 C++에서 별도의 키워드로 분류되지는 않지만 ‘함수 포인터’를 다른 곳으로 넘겨주어 필요에 따라 ‘호출’을 ‘위임’하는 구조

맨 위로 이동 ↑

Unreal Delegate

Delegate

5 분 소요

Delegate ‘대리자’라는 개념을 가졌으며 기본적으로 C++에서 별도의 키워드로 분류되지는 않지만 ‘함수 포인터’를 다른 곳으로 넘겨주어 필요에 따라 ‘호출’을 ‘위임’하는 구조

맨 위로 이동 ↑

Post Process

Post Process Material

3 분 소요

Post Process ‘렌더링’이 끝난 후, 화면 전체에 적용되는 ‘후처리’효과로 화면 단위의 ‘픽셀’ 마다 개별적인 연산을 수행할 수도 있다 (이 부분은 DirectX의 ‘Pixel Shader’와 유사)

맨 위로 이동 ↑

행렬

맨 위로 이동 ↑

내적

맨 위로 이동 ↑

직교 투영

맨 위로 이동 ↑

직교화

맨 위로 이동 ↑

외적

맨 위로 이동 ↑

Physics

Day 4 Work

2 분 소요

오늘의 과제 자신만의 레벨 디자인으로서 다양한 에셋과 함께 창의적인 레벨디자인을 만드는 것이다

맨 위로 이동 ↑

Root Component

Day 4 Work

2 분 소요

오늘의 과제 자신만의 레벨 디자인으로서 다양한 에셋과 함께 창의적인 레벨디자인을 만드는 것이다

맨 위로 이동 ↑

선형 변환

맨 위로 이동 ↑

애파인 변환

변환 4

최대 1 분 소요

애파인 변환

맨 위로 이동 ↑

Git

맨 위로 이동 ↑

변환의 구성

변환 5

2 분 소요

기저 벡터의 변환

맨 위로 이동 ↑

좌표계 변환

변환 5

2 분 소요

기저 벡터의 변환

맨 위로 이동 ↑

배열 포인터

맨 위로 이동 ↑

GC

맨 위로 이동 ↑

최단 경로

맨 위로 이동 ↑

응집도

객체 지향적 설계

7 분 소요

객체 지향적 설계 객체를 중심으로 프로그램을 구조화하는 설계 기법

맨 위로 이동 ↑

결합도

객체 지향적 설계

7 분 소요

객체 지향적 설계 객체를 중심으로 프로그램을 구조화하는 설계 기법

맨 위로 이동 ↑

SOLID

객체 지향적 설계

7 분 소요

객체 지향적 설계 객체를 중심으로 프로그램을 구조화하는 설계 기법

맨 위로 이동 ↑

Direct X

Direct X

2 분 소요

Graphics Rendering Pipeline

맨 위로 이동 ↑

싱글톤

디자인 패턴

9 분 소요

디자인 패턴 개발 시 반복적으로 등장하는 문제를 해결하기 위한 일반화된 풀이 방법

맨 위로 이동 ↑

데코레이터

디자인 패턴

9 분 소요

디자인 패턴 개발 시 반복적으로 등장하는 문제를 해결하기 위한 일반화된 풀이 방법

맨 위로 이동 ↑

옵저버

디자인 패턴

9 분 소요

디자인 패턴 개발 시 반복적으로 등장하는 문제를 해결하기 위한 일반화된 풀이 방법

맨 위로 이동 ↑

giscus

맨 위로 이동 ↑

Windows

Direct X Init 1

4 분 소요

들어가기 앞서 개인적으로 포스팅을 하는 글이며 기본적으로는 Honglab의 강의 글을 통해 공부하는 용도이다

맨 위로 이동 ↑