크래프톤 정글 회고
크래프톤 정글을 수료하고… 5개월 동안 참으로 길면 길고, 막상 해보니 짧은것 같기도 하고 서로 얼굴 보던 사람들이 이제 헤어질 때가 되니 조금 시원섭섭하기도 하다
크래프톤 정글을 수료하고… 5개월 동안 참으로 길면 길고, 막상 해보니 짧은것 같기도 하고 서로 얼굴 보던 사람들이 이제 헤어질 때가 되니 조금 시원섭섭하기도 하다
별찍기10 (백준 2447) https://www.acmicpc.net/problem/2447
약 5주 간의 대장정 당연하다면 당연하겠지만 개인적으로 여태까지 진행했던 3개의 프로젝트 중 가장 인상깊고 또 가장 힘든 프로젝트였다고 생각한다. (고려전문학교 시절에 2번의 프로젝트 이후, 몇년 만의 팀 프로젝트인지..)
K번째 수 (백준 1300) https://www.acmicpc.net/problem/1300
기타레슨 (백준 2343) https://www.acmicpc.net/problem/2343
가르침 (백준 1062) https://www.acmicpc.net/problem/1062
폭발 문자열 (백준 9935) https://www.acmicpc.net/problem/9935
JS의 비동기 키워드(async, await, promise) 작업을 ‘비동기’적으로 처리한다는 것은 ‘동시에’ 처리하되 ‘그 순서를 보장하지 않는다’는 말이다 그로 인하여, 특정한 작업이 끝날때까지 ‘대기’하는 중 프로그램이 멈추지 않고 다른 작업을 처리하도록 만들 수 있다...
개인 과제 나만무 시작 전, 개인 과제를 진행하고 관련 프레임워크에 대한 공부를 하기 위해 내가 정한 것은 ‘프론트엔드’이며, 그 중 관련된 것은 ‘React’였다
에디터 (백준 1406) https://www.acmicpc.net/problem/1406
AWS 강의 리전 : 서버가 호스팅 될 물리적인 위치 latency를 고려하여 리전을 배치한다
배열 합치기 (백준 11728) https://www.acmicpc.net/problem/11728
숫자 더하기 (백준 11720) https://www.acmicpc.net/problem/11720
Pintos Project3 까지… OS가 얼마나 대단하고 소중한 (?) 존재인지 깨달을 수 있었던 5주였던 것 같다 각각 스케쥴링, 시스템 콜, 가상 메모리 에 대한 OS의 핵심적인 역할에 대하여 보다 심도있게 이해할 수 있었다 이전에야 CS 적인 지식을 익히고 ‘OS...
pintOS Project 3
pintos VM 진행 중 알게된 점들을 정리하기 일부 진행 중 궁금하였던 내용과 알게된 내용을 정리하는 용도의 TIL
이해 중… 일단 Git Book을 따라가며 진행 중이나 몇 가지 생각해야 할 부분이 존재한다
정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다
다중 레벨 페이지 테이블이 필요한 이유! Page Table은 기본적으로 메인 메모리에 존재한다 이는 ‘DRAM’에 존재한다는 것인데…. 문제는 Page의 개수가 상~당히 많다는 점이다
가상 주소 공간과 mmap [출처] : https://devraphy.tistory.com/428 가상 주소 공간의 ‘영역’은 주로 Code, Data (+ bss), heap, stack 등으로 이루어져 있다
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
정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다
system call 정말 정신없었던 1.5주 였던 것 같다 반에 코로나가 유행하였고, 개인적으로 컨디션이 좋지 않아 til도 잘 작성하지 못한 것 같다 ‘커널 공간’에서 진행되는 ‘사용자 공간’에 대한 처리 방식 즉, ‘시스템 콜’에 대한 이해가 부쩍는 듯 하다
Atomic Operation 직역하자면 ‘원자적 연산’이란 뜻을 가진다 마치 ‘원자’처럼 더 이상 ‘분할’할 수 없는 ‘작업’을 뜻하며
Cache 캐싱이란 ‘기존의 액세스한 데이터의 사본을 보관’하는 ‘임시 저장 공간’을 의미하며 동시에 ‘느린’ 데이터 저장 장치 에 존재하는 데이터를 빠른 저장장치에 보관시켜 전체적인 성능의 향상하는 ‘기법’에 대한 내용도 포함된다 (좀 더 세밀하게 말하자면 이러한 기법을 ...
User Stack 프로세스의 ‘User Mode’ 부분에서 실행되는 스택 각각의 프로세스가 가지는 ‘스택’ 영역이며 함수 호출 시 지역 변수, 매개 변수, 복구 주소 등이 User Stack에 저장된다
레지스터(Register) 와 메모리(Memory)
Advanced Scheduler Part 1 : Threads
Priority Scheduling Part 1 : Threads
핀토스 과정 중 배운 트릭
조건 변수(Condition Variable) 다중 프로세스 or 스레드 환경에서 사용하는 ‘동기화 도구’ 중 하나
Priority Scheduling Part 1 : Threads
Alarm Clock Part 1 : Threads
임계 영역(Critical Section) 보통 다중 쓰레드 or 프로세스 환경에서 공유된 자원(변수 or 자료구조 등)에 접근하는 ‘코드 영역’을 의미한다 (공유된 자원과 임계 영역은 다른 개념) (공유된 자원은 ‘데이터’,’메모리’, 변수, 파일 등의 실제 ‘자원’임) ...
운영체제의 개요 OS란 뭘까? 일단 프로그램은 ‘명령어의 집합’이라고 봐도 과언이 아닐것이다 폰 노이만 구조에서 프로그램의 각 명령어는 Fetch(가져오기) : PC(프로그램 카운터)에 저장된 메모리 주소에서 명령어를 가져온다 Decode(해독) : 가져온 명령어를 해독하...
운영체제의 스케쥴링 운영체제가 프로세스를 실행시키는 ‘정책’ 중 ‘고수준’에 해당하는 정책이며, (저수준은 ‘문맥 교환’이며, 이는 메모리 주소 공간에 대한 밀접한 관련이 있으며 이는 하드웨어와 가깝기에 ‘저수준’이라 표현한다)
Proxy Lab 개인적으로 정말 어려웠던 것 같다 (당장 다음주부터 핀토스 시작이지만)
피보나치 6 (백준 11444) https://www.acmicpc.net/problem/11444
IP 주소의 2가지 형태 공용 IP 주소(Public IP Address) 인터넷에 공개되는 주소로서 전 세계의 장치들이 인터넷에 연결될 때 사용된다 인터넷 상에서 고유하게 식별되는 주소 ISP(인터넷 서비스 제공업체)가 ...
DNS (Domain Network System) 도메인 이름과 IP 주소 간의 매핑을 관리하고 이를 위해 계층적이고 분산된 구조로 이루어진 시스템
행렬곱셈 (백준 2740) https://www.acmicpc.net/problem/2740
용어 정리 IP 주소 : 인터넷에 연결되기 위해 필요한 인터넷 상의 주소
체스판칠하기2 (백준 25682) https://www.acmicpc.net/problem/25682
웹 서버 클라이언트(웹 브라우저)로부터의 요청을 받고 요청된 웹 페이지, 파일, 이미지 or 기타 리소스를 제공
프록시(Proxy) ‘대리’,’대리인’ 등의 의미를 가진 영단어 실제 프록시 서버도 비슷하게 쓰인다
HTTP(HyperText Transfer Protocol) 클라이언트와 서버 간에 데이터를 주고 받는데 사용되는 표준 프로토콜 (L7 : Application Layer의 프로토콜) (응용 프로그램과 관련된 통신을 다룬다는 것을 의미한다) (사용자의 요구를 실제 네트워크로 ...
포트(port) 프로토콜 표준 Application Layer에서 데이터를 주고 받고 싶을때, 프로세스가 하위 계층과 연결을 해주는 장치가 필요함 이러한 데이터의 통로 역할을 하는 장치가 바로 ‘포트’ (프로세스와 연결된 데이터 통로 혹은 데...
파일 디스크립터 운영체제에서 I/O 리소스를 식별하는데 사용되는 정숫값 (유닉스 계열의 운영체제이며, 윈도우에서는 파일 핸들(File Handle)이 비슷한 개념이지만 구체적 구현과 사용방식에 차이 존재)
Datagram Socket 비연결형(Connectionless) 소켓이며, UDP(User Datagram Protocol) 기반 (UDP는 Transfort Layer의 프로토콜이며, 한 계층 아래의 IP 프로토콜과 유사한 특징을 가진다)
클라이언트 - 서버 모델 서비스를 요청하는 클라이언트와 서비스를 제공하는 서버의 상호작용을 기반으로 하는 구조
지리적 규모에 따른 네트워크의 분류 LAN(Local Area Network) 지리적으로 가까운 장치를 연결하는 네트워크 소규모 네트워크 이며, 주로 ‘이더넷’이 주로 사용 높은 속도와 낮은 지연 시간
운영 체제의 모드 User mode 일반적인 프로그램 실행 응용프로그램은 시스템 자원에 직접 접근 불가 제한된 명령어 집합 실행 가능 메모리 일부 영역에 접근 가능 제한된 운영체제 서비스에 접근이 가능 => 응용 프로그램 간의 상호 간섭의 최...
DMA(Direct Memory Access) 일종의 입출력 제어 방식으로 CPU의 개입 없이 주변장치(HDD,GPU 등)가 메모리에 직접 접근하여 데이터를 읽고 쓸 수 있게 해주는 시스템의 기능
malloc lab - segregated free list 일정한 크기로 나눈 가용 리스트를 이용하여 find - fit 시 검색 범위를 찾는 방식 내가 구현한 방식은 ‘명시적 가용 리스트 - LIFO’를 2의 지수승 으로 약 20개 정도를 만들어 관리하는 방식을 사용하였다
메모리 할당 정책 응용프로그램이 메모리의 블록을 요청할 때, 메모리 할당기는 요청한 블록을 저장하기에 충분히 큰 가용 블록을 리스트에서 검색한다
동적 할당을 위한 가용 리스트 함수를 호출하면 ‘스택’에 스택 프레임이 생성되고 지역변수를 선언하면 그것 역시 ‘스택’에 메모리를 잡는다
demand zero memory 운영 체제에서 사용되는 메모리 관리 방식 중 하나이며 가상 메모리를 효율적으로 관리할 수 있는 방식이다 (구현 방식에 따라 사용되지 않기도 한다)
malloc lab implict free list에 대한 내용은 CSAPP의 9.9에 존재하여 해당 내용을 구현하여 테스트 제출 시, 약 54 점 정도 나왔던 걸로 기억한다
동적 메모리 할당 기본적인 개념은 프로그램이 ‘실행시간 동안 사용할 메모리 공간을 할당하는 것’을 뜻한다
가상 메모리 ‘가상 메모리(virtual memory,VM)’ 는 메모리 관리 기술 의 일부로, 메인 메모리 (RAM) 과 보조 기억 장치(HDD,SSD) 의 조합으로 이루어진다 ‘가상 메모리 주소 공간’의 개념을 이야기 하는 표현으로도 사용된다
종이의 개수 (백준 1780) https://www.acmicpc.net/problem/1780
주유소 (백준 13305) https://www.acmicpc.net/problem/13305
전깃줄 (백준 2565) https://www.acmicpc.net/problem/2565
atm (백준 11399) https://www.acmicpc.net/problem/11399
포도주 시식 (백준 2156) https://www.acmicpc.net/problem/2156
가장 긴 바이토닉 부분 수열 (백준 11054) https://www.acmicpc.net/problem/11054
RB-Tree(Red-Black Tree) 각 노드가 레드 혹은 블랙 인 이진 탐색 트리 (단순한 추가정보)
BSS(Block Started by Symbol) bss 영역은 초기화되지 않았거나 0 혹은 NULL로 초기화된 전역 및 정적 변수를 저장하는데 사용하는 영역이다 ‘목적파일’에서는 공간을 차지하지 않는 특징이 있다 또한 프로그램 실행 시, 위의 변수들을 0으로 초기화시키...
B tree (B Tree) bst(이진탐색트리)와 유사하지만 자식 의 노드가 2개보다 많은 트리 key값의 응용
AVL 트리 BST의 한 종류 스스로 균형을 잡는 트리 (balance Factor를 이용)
1로 만들기 (백준 1463) https://www.acmicpc.net/problem/1463
쉬운 계단수 (백준 10844) https://www.acmicpc.net/problem/10844
스택 프로시저 호출 시 지역 변수와 매개변수를 저장하기 위한 메모리 공간 선언되는 순서와 반대로 메모리가 해제되는 LIFO(Last in First Out) 구조를 가짐 (이는 자료구조의 ‘스택’과 동일)
메모리 할당 시스템에서 메모리를 ‘동적 할당’하는 경우, OS가 virtual memory의 ‘heap’ 영역에서 사용 가능한 메모리 블록을 찾아 할당하고 그 주솟값을 반환한다
계단오르기 (백준 2579) https://www.acmicpc.net/problem/2579
점프 (백준 1890) https://www.acmicpc.net/problem/1890
세팅 작업 4주차에 C언어 세팅을 하면서 여러가지 고생을 하였지만 다행히 친절하신 동료분이 세팅을 도와주셔서 여러가지 인식할 수 있었다
점프 (백준 2253) https://www.acmicpc.net/problem/2253
외판원순회(백준 2098) https://www.acmicpc.net/problem/2098
멀티탭 스케쥴링(백준 1700) https://www.acmicpc.net/problem/1700
가징긴증가부분수열(백준 11053) https://www.acmicpc.net/problem/11053
행렬곱셈순서(백준 11049) https://www.acmicpc.net/problem/11049
동전(백준 9084) https://www.acmicpc.net/problem/9084
포인터 ‘메모리 주소 값’을 저장하는 변수 대표적인 예시로
최장 공통 부분 수열 (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) 한정된 용량에 일정한 ‘가치’와 ‘용량’을 가지는 물건을 넣어 가치가 ‘최대’가 되도록 배낭을 채우는 문제
최적 부분 구조 (Optimal Substructure) 각 부분 문제의 ‘최적해’로 전체 문제의 ‘최적해’를 쉽게 얻어낼 수 있는 경우 ‘최적 부분 구조’의 조건을 성립한다고 말할 수 있다!
구슬찾기(백준 2617) https://www.acmicpc.net/problem/2573
동전2(백준 2294) https://www.acmicpc.net/problem/2294
임계경로(백준 1948) https://www.acmicpc.net/problem/1948
그래프 수정(백준 1432) https://www.acmicpc.net/problem/1432
장난감조립(백준 2637) https://www.acmicpc.net/problem/2637
빙산(백준 2573) https://www.acmicpc.net/problem/2573
트라이 [출처] : https://www.medianet.cs.kent.edu/surveys/IAD06S-p2psearch-alok/index.html
탈출(백준 3055) https://www.acmicpc.net/problem/3055
미로만들기(백준 2665) https://www.acmicpc.net/problem/2665
미로(백준 2178) https://www.acmicpc.net/problem/2178
특정 거리의 도시 찾기(백준 18352) https://www.acmicpc.net/problem/18352
위상정렬(topological sort) [출처] : https://m.blog.naver.com/occidere/220921661731
트리
최단 경로 문제 그래프 이론에서 ‘가장 짧은 경로’에서 두 꼭짓점을 찾는 문제
MST (최소 신장 트리) 신장 트리?? 어떤 그래프 안에 있는 모든 노드를 연결하는 트리 그래프 안에 있는 변만을 사용 신장 트리는 여럿 있을 수 있음
DFS vs BFS
그래프의 정의
연결 리스트 배열과 같은 ‘연속된’ 메모리 공간을 잡는 것이 아닌, 하나의 Node(데이터)가 다음 Node 를 가리키는(포인터) 방식으로 만들어진 자료구조
해시 테이블
스택 [출처] : 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...
큐
우선순위 큐 [출처] : https://velog.io/@holicme7/%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84-%ED%81%90Prioirity-Queue-mbk48cz764
분할정복 알고리즘 ‘큰 문제를 작은 문제로 분할하여 문제를 해결하는 방식’ 전반적으로 ‘재귀’와 유사한 점이 많은 방식이다.
정렬된 데이터 : 데이터의 종류에 따라서 더욱 특화된 알고리즘을 사용하여 빠르게 처리할 수 있다 따라서 ‘정렬할 수 있는 데이터’의 경우, 그에 특화된 ‘이진탐색’이라는 알고리즘을 이용하여 더 효율적으로 데이터를 탐색할 수 있다
정렬 알고리즘 n개의 데이터가 입력으로 주어졌을 때, 특정한 기준에 따라 해당하는 데이터에 순서대로 열거하는 것 데이터를 정렬하는 경우 효율적인 ‘탐색’이 가능해진다
탐색 알고리즘 어떠한 ‘데이터 구조’ 안에 존재하는 것을 구해오는 알고리즘 일반적인 ‘선형(linear)’ 탐색 알고리즘의 시간 복잡도는 O(N) ‘해시 맵’을 이용한 탐색 알고리즘의 시간 복잡도는 O(1) (‘해시’와 관련한 내용은 차후 포스팅을 따로 다룰 ...
하노이의 탑(백준 1914) 일일이 블록을 이동하며, 뭔가 규칙성을 찾는 방식을 사용하였다 (혹시 그래서 ‘수학적 귀납법’이 사용된다고 말하는 걸까??)
반복문 일정한 명령을 일정 횟수만큼 반복하여 수행하는 명령 일반적으로 for 문 , while 문, do .. while 문이 존재
복잡도 : 알고리즘의 성능을 나타내는 척도 크게 시간, 공간 복잡도 로 나뉜다 입력한 데이터가 ‘많아짐’에 따라 다음의 요소가 얼마나 늘어나는지를 측정 시간 복잡도 : 실행 시간 공간 복잡도 : 필요한 공간(메모리) => 입력이 늘어남에 따른 시간과 필요 공간의 증가...
배열 메모리 한 덩어리라는 표현 (연속된 데이터 집합) 여러 데이터 (같은 타입)을 연속하여 세워 놓은 자료구조 각 자료의 데이터 타입의 크기를 알기에 해당 데이터 타입의 크기만큼 점프하여 인덱스로 접근 가능
지나온 과거에 대하여
pintOS Project 3
pintos VM 진행 중 알게된 점들을 정리하기 일부 진행 중 궁금하였던 내용과 알게된 내용을 정리하는 용도의 TIL
이해 중… 일단 Git Book을 따라가며 진행 중이나 몇 가지 생각해야 할 부분이 존재한다
정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다
다중 레벨 페이지 테이블이 필요한 이유! Page Table은 기본적으로 메인 메모리에 존재한다 이는 ‘DRAM’에 존재한다는 것인데…. 문제는 Page의 개수가 상~당히 많다는 점이다
가상 주소 공간과 mmap [출처] : https://devraphy.tistory.com/428 가상 주소 공간의 ‘영역’은 주로 Code, Data (+ bss), heap, stack 등으로 이루어져 있다
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
정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다
system call 정말 정신없었던 1.5주 였던 것 같다 반에 코로나가 유행하였고, 개인적으로 컨디션이 좋지 않아 til도 잘 작성하지 못한 것 같다 ‘커널 공간’에서 진행되는 ‘사용자 공간’에 대한 처리 방식 즉, ‘시스템 콜’에 대한 이해가 부쩍는 듯 하다
Atomic Operation 직역하자면 ‘원자적 연산’이란 뜻을 가진다 마치 ‘원자’처럼 더 이상 ‘분할’할 수 없는 ‘작업’을 뜻하며
Cache 캐싱이란 ‘기존의 액세스한 데이터의 사본을 보관’하는 ‘임시 저장 공간’을 의미하며 동시에 ‘느린’ 데이터 저장 장치 에 존재하는 데이터를 빠른 저장장치에 보관시켜 전체적인 성능의 향상하는 ‘기법’에 대한 내용도 포함된다 (좀 더 세밀하게 말하자면 이러한 기법을 ...
User Stack 프로세스의 ‘User Mode’ 부분에서 실행되는 스택 각각의 프로세스가 가지는 ‘스택’ 영역이며 함수 호출 시 지역 변수, 매개 변수, 복구 주소 등이 User Stack에 저장된다
레지스터(Register) 와 메모리(Memory)
Advanced Scheduler Part 1 : Threads
Priority Scheduling Part 1 : Threads
핀토스 과정 중 배운 트릭
조건 변수(Condition Variable) 다중 프로세스 or 스레드 환경에서 사용하는 ‘동기화 도구’ 중 하나
Priority Scheduling Part 1 : Threads
Alarm Clock Part 1 : Threads
임계 영역(Critical Section) 보통 다중 쓰레드 or 프로세스 환경에서 공유된 자원(변수 or 자료구조 등)에 접근하는 ‘코드 영역’을 의미한다 (공유된 자원과 임계 영역은 다른 개념) (공유된 자원은 ‘데이터’,’메모리’, 변수, 파일 등의 실제 ‘자원’임) ...
운영체제의 개요 OS란 뭘까? 일단 프로그램은 ‘명령어의 집합’이라고 봐도 과언이 아닐것이다 폰 노이만 구조에서 프로그램의 각 명령어는 Fetch(가져오기) : PC(프로그램 카운터)에 저장된 메모리 주소에서 명령어를 가져온다 Decode(해독) : 가져온 명령어를 해독하...
운영체제의 스케쥴링 운영체제가 프로세스를 실행시키는 ‘정책’ 중 ‘고수준’에 해당하는 정책이며, (저수준은 ‘문맥 교환’이며, 이는 메모리 주소 공간에 대한 밀접한 관련이 있으며 이는 하드웨어와 가깝기에 ‘저수준’이라 표현한다)
용어 정리 IP 주소 : 인터넷에 연결되기 위해 필요한 인터넷 상의 주소
웹 서버 클라이언트(웹 브라우저)로부터의 요청을 받고 요청된 웹 페이지, 파일, 이미지 or 기타 리소스를 제공
프록시(Proxy) ‘대리’,’대리인’ 등의 의미를 가진 영단어 실제 프록시 서버도 비슷하게 쓰인다
HTTP(HyperText Transfer Protocol) 클라이언트와 서버 간에 데이터를 주고 받는데 사용되는 표준 프로토콜 (L7 : Application Layer의 프로토콜) (응용 프로그램과 관련된 통신을 다룬다는 것을 의미한다) (사용자의 요구를 실제 네트워크로 ...
포트(port) 프로토콜 표준 Application Layer에서 데이터를 주고 받고 싶을때, 프로세스가 하위 계층과 연결을 해주는 장치가 필요함 이러한 데이터의 통로 역할을 하는 장치가 바로 ‘포트’ (프로세스와 연결된 데이터 통로 혹은 데...
파일 디스크립터 운영체제에서 I/O 리소스를 식별하는데 사용되는 정숫값 (유닉스 계열의 운영체제이며, 윈도우에서는 파일 핸들(File Handle)이 비슷한 개념이지만 구체적 구현과 사용방식에 차이 존재)
Datagram Socket 비연결형(Connectionless) 소켓이며, UDP(User Datagram Protocol) 기반 (UDP는 Transfort Layer의 프로토콜이며, 한 계층 아래의 IP 프로토콜과 유사한 특징을 가진다)
클라이언트 - 서버 모델 서비스를 요청하는 클라이언트와 서비스를 제공하는 서버의 상호작용을 기반으로 하는 구조
지리적 규모에 따른 네트워크의 분류 LAN(Local Area Network) 지리적으로 가까운 장치를 연결하는 네트워크 소규모 네트워크 이며, 주로 ‘이더넷’이 주로 사용 높은 속도와 낮은 지연 시간
운영 체제의 모드 User mode 일반적인 프로그램 실행 응용프로그램은 시스템 자원에 직접 접근 불가 제한된 명령어 집합 실행 가능 메모리 일부 영역에 접근 가능 제한된 운영체제 서비스에 접근이 가능 => 응용 프로그램 간의 상호 간섭의 최...
DMA(Direct Memory Access) 일종의 입출력 제어 방식으로 CPU의 개입 없이 주변장치(HDD,GPU 등)가 메모리에 직접 접근하여 데이터를 읽고 쓸 수 있게 해주는 시스템의 기능
malloc lab - segregated free list 일정한 크기로 나눈 가용 리스트를 이용하여 find - fit 시 검색 범위를 찾는 방식 내가 구현한 방식은 ‘명시적 가용 리스트 - LIFO’를 2의 지수승 으로 약 20개 정도를 만들어 관리하는 방식을 사용하였다
메모리 할당 정책 응용프로그램이 메모리의 블록을 요청할 때, 메모리 할당기는 요청한 블록을 저장하기에 충분히 큰 가용 블록을 리스트에서 검색한다
동적 할당을 위한 가용 리스트 함수를 호출하면 ‘스택’에 스택 프레임이 생성되고 지역변수를 선언하면 그것 역시 ‘스택’에 메모리를 잡는다
demand zero memory 운영 체제에서 사용되는 메모리 관리 방식 중 하나이며 가상 메모리를 효율적으로 관리할 수 있는 방식이다 (구현 방식에 따라 사용되지 않기도 한다)
malloc lab implict free list에 대한 내용은 CSAPP의 9.9에 존재하여 해당 내용을 구현하여 테스트 제출 시, 약 54 점 정도 나왔던 걸로 기억한다
동적 메모리 할당 기본적인 개념은 프로그램이 ‘실행시간 동안 사용할 메모리 공간을 할당하는 것’을 뜻한다
가상 메모리 ‘가상 메모리(virtual memory,VM)’ 는 메모리 관리 기술 의 일부로, 메인 메모리 (RAM) 과 보조 기억 장치(HDD,SSD) 의 조합으로 이루어진다 ‘가상 메모리 주소 공간’의 개념을 이야기 하는 표현으로도 사용된다
3.2 프로그램의 인코딩 시스템은 보다 간단한 추상화 모델을 이용하여, 세부 구현 내용은 감추며, 추상화의 여러 형태를 사용한다
1.5 캐시가 중요하다! 시스템은 ‘정보’를 이동시키는 일에 많~~은 시간을 사용한다 hello 프로그램은 하드 디스크에 저장되어 있었으며, 프로그램이 로딩될 때, ‘메인 메모리’에 복사된다 프로세서가 프로그램을 실행할 때, ‘인스트럭션’들은 ‘메인 메모리’ 에서 ‘프로...
1.1 정보는 비트와 컨텍스트로 이루어진다 비트 0과 1 을 가지는 최소한의 정보 표시 단위
별찍기10 (백준 2447) https://www.acmicpc.net/problem/2447
K번째 수 (백준 1300) https://www.acmicpc.net/problem/1300
기타레슨 (백준 2343) https://www.acmicpc.net/problem/2343
가르침 (백준 1062) https://www.acmicpc.net/problem/1062
폭발 문자열 (백준 9935) https://www.acmicpc.net/problem/9935
에디터 (백준 1406) https://www.acmicpc.net/problem/1406
배열 합치기 (백준 11728) https://www.acmicpc.net/problem/11728
숫자 더하기 (백준 11720) https://www.acmicpc.net/problem/11720
피보나치 6 (백준 11444) https://www.acmicpc.net/problem/11444
행렬곱셈 (백준 2740) https://www.acmicpc.net/problem/2740
체스판칠하기2 (백준 25682) https://www.acmicpc.net/problem/25682
종이의 개수 (백준 1780) https://www.acmicpc.net/problem/1780
주유소 (백준 13305) https://www.acmicpc.net/problem/13305
전깃줄 (백준 2565) https://www.acmicpc.net/problem/2565
atm (백준 11399) https://www.acmicpc.net/problem/11399
포도주 시식 (백준 2156) https://www.acmicpc.net/problem/2156
가장 긴 바이토닉 부분 수열 (백준 11054) https://www.acmicpc.net/problem/11054
1로 만들기 (백준 1463) https://www.acmicpc.net/problem/1463
쉬운 계단수 (백준 10844) https://www.acmicpc.net/problem/10844
계단오르기 (백준 2579) https://www.acmicpc.net/problem/2579
점프 (백준 1890) https://www.acmicpc.net/problem/1890
점프 (백준 2253) https://www.acmicpc.net/problem/2253
외판원순회(백준 2098) https://www.acmicpc.net/problem/2098
멀티탭 스케쥴링(백준 1700) https://www.acmicpc.net/problem/1700
가징긴증가부분수열(백준 11053) https://www.acmicpc.net/problem/11053
행렬곱셈순서(백준 11049) https://www.acmicpc.net/problem/11049
동전(백준 9084) https://www.acmicpc.net/problem/9084
구슬찾기(백준 2617) https://www.acmicpc.net/problem/2573
동전2(백준 2294) https://www.acmicpc.net/problem/2294
임계경로(백준 1948) https://www.acmicpc.net/problem/1948
그래프 수정(백준 1432) https://www.acmicpc.net/problem/1432
장난감조립(백준 2637) https://www.acmicpc.net/problem/2637
빙산(백준 2573) https://www.acmicpc.net/problem/2573
탈출(백준 3055) https://www.acmicpc.net/problem/3055
미로만들기(백준 2665) https://www.acmicpc.net/problem/2665
미로(백준 2178) https://www.acmicpc.net/problem/2178
특정 거리의 도시 찾기(백준 18352) https://www.acmicpc.net/problem/18352
메모리 할당 시스템에서 메모리를 ‘동적 할당’하는 경우, OS가 virtual memory의 ‘heap’ 영역에서 사용 가능한 메모리 블록을 찾아 할당하고 그 주솟값을 반환한다
포인터 ‘메모리 주소 값’을 저장하는 변수 대표적인 예시로
최장 공통 부분 수열 (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) 한정된 용량에 일정한 ‘가치’와 ‘용량’을 가지는 물건을 넣어 가치가 ‘최대’가 되도록 배낭을 채우는 문제
최적 부분 구조 (Optimal Substructure) 각 부분 문제의 ‘최적해’로 전체 문제의 ‘최적해’를 쉽게 얻어낼 수 있는 경우 ‘최적 부분 구조’의 조건을 성립한다고 말할 수 있다!
트라이 [출처] : https://www.medianet.cs.kent.edu/surveys/IAD06S-p2psearch-alok/index.html
위상정렬(topological sort) [출처] : https://m.blog.naver.com/occidere/220921661731
트리
최단 경로 문제 그래프 이론에서 ‘가장 짧은 경로’에서 두 꼭짓점을 찾는 문제
MST (최소 신장 트리) 신장 트리?? 어떤 그래프 안에 있는 모든 노드를 연결하는 트리 그래프 안에 있는 변만을 사용 신장 트리는 여럿 있을 수 있음
DFS vs BFS
그래프의 정의
연결 리스트 배열과 같은 ‘연속된’ 메모리 공간을 잡는 것이 아닌, 하나의 Node(데이터)가 다음 Node 를 가리키는(포인터) 방식으로 만들어진 자료구조
해시 테이블
스택 [출처] : 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...
큐
우선순위 큐 [출처] : https://velog.io/@holicme7/%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84-%ED%81%90Prioirity-Queue-mbk48cz764
분할정복 알고리즘 ‘큰 문제를 작은 문제로 분할하여 문제를 해결하는 방식’ 전반적으로 ‘재귀’와 유사한 점이 많은 방식이다.
정렬된 데이터 : 데이터의 종류에 따라서 더욱 특화된 알고리즘을 사용하여 빠르게 처리할 수 있다 따라서 ‘정렬할 수 있는 데이터’의 경우, 그에 특화된 ‘이진탐색’이라는 알고리즘을 이용하여 더 효율적으로 데이터를 탐색할 수 있다
정렬 알고리즘 n개의 데이터가 입력으로 주어졌을 때, 특정한 기준에 따라 해당하는 데이터에 순서대로 열거하는 것 데이터를 정렬하는 경우 효율적인 ‘탐색’이 가능해진다
탐색 알고리즘 어떠한 ‘데이터 구조’ 안에 존재하는 것을 구해오는 알고리즘 일반적인 ‘선형(linear)’ 탐색 알고리즘의 시간 복잡도는 O(N) ‘해시 맵’을 이용한 탐색 알고리즘의 시간 복잡도는 O(1) (‘해시’와 관련한 내용은 차후 포스팅을 따로 다룰 ...
하노이의 탑(백준 1914) 일일이 블록을 이동하며, 뭔가 규칙성을 찾는 방식을 사용하였다 (혹시 그래서 ‘수학적 귀납법’이 사용된다고 말하는 걸까??)
반복문 일정한 명령을 일정 횟수만큼 반복하여 수행하는 명령 일반적으로 for 문 , while 문, do .. while 문이 존재
복잡도 : 알고리즘의 성능을 나타내는 척도 크게 시간, 공간 복잡도 로 나뉜다 입력한 데이터가 ‘많아짐’에 따라 다음의 요소가 얼마나 늘어나는지를 측정 시간 복잡도 : 실행 시간 공간 복잡도 : 필요한 공간(메모리) => 입력이 늘어남에 따른 시간과 필요 공간의 증가...
배열 메모리 한 덩어리라는 표현 (연속된 데이터 집합) 여러 데이터 (같은 타입)을 연속하여 세워 놓은 자료구조 각 자료의 데이터 타입의 크기를 알기에 해당 데이터 타입의 크기만큼 점프하여 인덱스로 접근 가능
pintOS Project 3
pintos VM 진행 중 알게된 점들을 정리하기 일부 진행 중 궁금하였던 내용과 알게된 내용을 정리하는 용도의 TIL
이해 중… 일단 Git Book을 따라가며 진행 중이나 몇 가지 생각해야 할 부분이 존재한다
정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다
다중 레벨 페이지 테이블이 필요한 이유! Page Table은 기본적으로 메인 메모리에 존재한다 이는 ‘DRAM’에 존재한다는 것인데…. 문제는 Page의 개수가 상~당히 많다는 점이다
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
정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다
system call 정말 정신없었던 1.5주 였던 것 같다 반에 코로나가 유행하였고, 개인적으로 컨디션이 좋지 않아 til도 잘 작성하지 못한 것 같다 ‘커널 공간’에서 진행되는 ‘사용자 공간’에 대한 처리 방식 즉, ‘시스템 콜’에 대한 이해가 부쩍는 듯 하다
Atomic Operation 직역하자면 ‘원자적 연산’이란 뜻을 가진다 마치 ‘원자’처럼 더 이상 ‘분할’할 수 없는 ‘작업’을 뜻하며
Cache 캐싱이란 ‘기존의 액세스한 데이터의 사본을 보관’하는 ‘임시 저장 공간’을 의미하며 동시에 ‘느린’ 데이터 저장 장치 에 존재하는 데이터를 빠른 저장장치에 보관시켜 전체적인 성능의 향상하는 ‘기법’에 대한 내용도 포함된다 (좀 더 세밀하게 말하자면 이러한 기법을 ...
User Stack 프로세스의 ‘User Mode’ 부분에서 실행되는 스택 각각의 프로세스가 가지는 ‘스택’ 영역이며 함수 호출 시 지역 변수, 매개 변수, 복구 주소 등이 User Stack에 저장된다
레지스터(Register) 와 메모리(Memory)
Advanced Scheduler Part 1 : Threads
Priority Scheduling Part 1 : Threads
핀토스 과정 중 배운 트릭
조건 변수(Condition Variable) 다중 프로세스 or 스레드 환경에서 사용하는 ‘동기화 도구’ 중 하나
Priority Scheduling Part 1 : Threads
Alarm Clock Part 1 : Threads
임계 영역(Critical Section) 보통 다중 쓰레드 or 프로세스 환경에서 공유된 자원(변수 or 자료구조 등)에 접근하는 ‘코드 영역’을 의미한다 (공유된 자원과 임계 영역은 다른 개념) (공유된 자원은 ‘데이터’,’메모리’, 변수, 파일 등의 실제 ‘자원’임) ...
운영체제의 개요 OS란 뭘까? 일단 프로그램은 ‘명령어의 집합’이라고 봐도 과언이 아닐것이다 폰 노이만 구조에서 프로그램의 각 명령어는 Fetch(가져오기) : PC(프로그램 카운터)에 저장된 메모리 주소에서 명령어를 가져온다 Decode(해독) : 가져온 명령어를 해독하...
운영체제의 스케쥴링 운영체제가 프로세스를 실행시키는 ‘정책’ 중 ‘고수준’에 해당하는 정책이며, (저수준은 ‘문맥 교환’이며, 이는 메모리 주소 공간에 대한 밀접한 관련이 있으며 이는 하드웨어와 가깝기에 ‘저수준’이라 표현한다)
동전 1 (백준 Gold 4) https://www.acmicpc.net/problem/2293
스티커 (백준 Silver 1) https://www.acmicpc.net/problem/9465
블록이동하기 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/60063
단어퍼즐 (프로그래머스 알고리즘) https://school.programmers.co.kr/learn/courses/30/lessons/1882
등굣길 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/42898
피보나치 6 (백준 11444) https://www.acmicpc.net/problem/11444
전깃줄 (백준 2565) https://www.acmicpc.net/problem/2565
포도주 시식 (백준 2156) https://www.acmicpc.net/problem/2156
가장 긴 바이토닉 부분 수열 (백준 11054) https://www.acmicpc.net/problem/11054
1로 만들기 (백준 1463) https://www.acmicpc.net/problem/1463
쉬운 계단수 (백준 10844) https://www.acmicpc.net/problem/10844
계단오르기 (백준 2579) https://www.acmicpc.net/problem/2579
점프 (백준 1890) https://www.acmicpc.net/problem/1890
점프 (백준 2253) https://www.acmicpc.net/problem/2253
외판원순회(백준 2098) https://www.acmicpc.net/problem/2098
가징긴증가부분수열(백준 11053) https://www.acmicpc.net/problem/11053
행렬곱셈순서(백준 11049) https://www.acmicpc.net/problem/11049
동전2(백준 2294) https://www.acmicpc.net/problem/2294
쉬운 최단거리 (백준 Silver 1) https://www.acmicpc.net/problem/14940
알고스팟 (백준 Gold 4) https://www.acmicpc.net/problem/1261
파티 (백준 Gold 3) https://www.acmicpc.net/problem/1238
케빈 베이컨의 6단계 법칙 (백준 Silver 1) https://www.acmicpc.net/problem/1389
무인도여행 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/154540
리코쳇로봇 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/169199
경주로건설 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/67259
블록이동하기 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/60063
부대복귀 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/132266
보행자천국 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/1832
빙산(백준 2573) https://www.acmicpc.net/problem/2573
탈출(백준 3055) https://www.acmicpc.net/problem/3055
미로만들기(백준 2665) https://www.acmicpc.net/problem/2665
미로(백준 2178) https://www.acmicpc.net/problem/2178
특정 거리의 도시 찾기(백준 18352) https://www.acmicpc.net/problem/18352
pintOS Project 3
pintos VM 진행 중 알게된 점들을 정리하기 일부 진행 중 궁금하였던 내용과 알게된 내용을 정리하는 용도의 TIL
이해 중… 일단 Git Book을 따라가며 진행 중이나 몇 가지 생각해야 할 부분이 존재한다
정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다
다중 레벨 페이지 테이블이 필요한 이유! Page Table은 기본적으로 메인 메모리에 존재한다 이는 ‘DRAM’에 존재한다는 것인데…. 문제는 Page의 개수가 상~당히 많다는 점이다
정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다
system call 정말 정신없었던 1.5주 였던 것 같다 반에 코로나가 유행하였고, 개인적으로 컨디션이 좋지 않아 til도 잘 작성하지 못한 것 같다 ‘커널 공간’에서 진행되는 ‘사용자 공간’에 대한 처리 방식 즉, ‘시스템 콜’에 대한 이해가 부쩍는 듯 하다
Advanced Scheduler Part 1 : Threads
Priority Scheduling Part 1 : Threads
조건 변수(Condition Variable) 다중 프로세스 or 스레드 환경에서 사용하는 ‘동기화 도구’ 중 하나
Priority Scheduling Part 1 : Threads
Alarm Clock Part 1 : Threads
임계 영역(Critical Section) 보통 다중 쓰레드 or 프로세스 환경에서 공유된 자원(변수 or 자료구조 등)에 접근하는 ‘코드 영역’을 의미한다 (공유된 자원과 임계 영역은 다른 개념) (공유된 자원은 ‘데이터’,’메모리’, 변수, 파일 등의 실제 ‘자원’임) ...
운영체제의 개요 OS란 뭘까? 일단 프로그램은 ‘명령어의 집합’이라고 봐도 과언이 아닐것이다 폰 노이만 구조에서 프로그램의 각 명령어는 Fetch(가져오기) : PC(프로그램 카운터)에 저장된 메모리 주소에서 명령어를 가져온다 Decode(해독) : 가져온 명령어를 해독하...
Moo 게임 (백준 Gold 5) https://www.acmicpc.net/problem/5904
222-풀링 (백준 Silver 3) https://www.acmicpc.net/problem/17829
A to B (백준 Silver 2) https://www.acmicpc.net/problem/16953
N과 M (백준 Silver 3) https://www.acmicpc.net/problem/15654
치킨배달 (백준 Gold 5) https://www.acmicpc.net/problem/15686
하노이의탑 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/12946
사라지는발판 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/92345
전력망나누기 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/86971
소수찾기 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/42839
하노이의 탑(백준 1914) 일일이 블록을 이동하며, 뭔가 규칙성을 찾는 방식을 사용하였다 (혹시 그래서 ‘수학적 귀납법’이 사용된다고 말하는 걸까??)
미로탈출명령어 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/150365
0으로만들기 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/76503
올바른괄호의갯수 (프로그래머스 Level 4) https://school.programmers.co.kr/learn/courses/30/lessons/12929
불량사용자 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/64064
4단고음 (프로그래머스 Level 4) https://school.programmers.co.kr/learn/courses/30/lessons/1831
양과늑대 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/92343
가르침 (백준 1062) https://www.acmicpc.net/problem/1062
동전(백준 9084) https://www.acmicpc.net/problem/9084
구슬찾기(백준 2617) https://www.acmicpc.net/problem/2573
DNS (Domain Network System) 도메인 이름과 IP 주소 간의 매핑을 관리하고 이를 위해 계층적이고 분산된 구조로 이루어진 시스템
용어 정리 IP 주소 : 인터넷에 연결되기 위해 필요한 인터넷 상의 주소
웹 서버 클라이언트(웹 브라우저)로부터의 요청을 받고 요청된 웹 페이지, 파일, 이미지 or 기타 리소스를 제공
프록시(Proxy) ‘대리’,’대리인’ 등의 의미를 가진 영단어 실제 프록시 서버도 비슷하게 쓰인다
HTTP(HyperText Transfer Protocol) 클라이언트와 서버 간에 데이터를 주고 받는데 사용되는 표준 프로토콜 (L7 : Application Layer의 프로토콜) (응용 프로그램과 관련된 통신을 다룬다는 것을 의미한다) (사용자의 요구를 실제 네트워크로 ...
포트(port) 프로토콜 표준 Application Layer에서 데이터를 주고 받고 싶을때, 프로세스가 하위 계층과 연결을 해주는 장치가 필요함 이러한 데이터의 통로 역할을 하는 장치가 바로 ‘포트’ (프로세스와 연결된 데이터 통로 혹은 데...
Datagram Socket 비연결형(Connectionless) 소켓이며, UDP(User Datagram Protocol) 기반 (UDP는 Transfort Layer의 프로토콜이며, 한 계층 아래의 IP 프로토콜과 유사한 특징을 가진다)
클라이언트 - 서버 모델 서비스를 요청하는 클라이언트와 서비스를 제공하는 서버의 상호작용을 기반으로 하는 구조
지리적 규모에 따른 네트워크의 분류 LAN(Local Area Network) 지리적으로 가까운 장치를 연결하는 네트워크 소규모 네트워크 이며, 주로 ‘이더넷’이 주로 사용 높은 속도와 낮은 지연 시간
파티 (백준 Gold 3) https://www.acmicpc.net/problem/1238
케빈 베이컨의 6단계 법칙 (백준 Silver 1) https://www.acmicpc.net/problem/1389
홀짝트리 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/388354
0으로만들기 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/76503
지형이동 (프로그래머스 Level 4) https://school.programmers.co.kr/learn/courses/30/lessons/62050
양과늑대 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/92343
합승택시요금 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/72413
그래프의 정의
트라이 [출처] : https://www.medianet.cs.kent.edu/surveys/IAD06S-p2psearch-alok/index.html
트리
연결 리스트 배열과 같은 ‘연속된’ 메모리 공간을 잡는 것이 아닌, 하나의 Node(데이터)가 다음 Node 를 가리키는(포인터) 방식으로 만들어진 자료구조
해시 테이블
스택 [출처] : 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...
큐
우선순위 큐 [출처] : https://velog.io/@holicme7/%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84-%ED%81%90Prioirity-Queue-mbk48cz764
N과 M (백준 Silver 3) https://www.acmicpc.net/problem/15654
치킨배달 (백준 Gold 5) https://www.acmicpc.net/problem/15686
후보키 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/42890
단체사진찍기 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/1835
불량사용자 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/64064
양과늑대 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/92343
소수찾기 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/42839
땅따먹기 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/12913
리코쳇로봇 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/169199
경주로건설 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/67259
연속펄스부분수열의합 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/161988
보행자천국 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/1832
가장긴팰린드롬 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/12904
카운트다운 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/131129
후보키 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/42890
주차요금계산 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/92341
110옮기기 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/77886
단어퍼즐 (프로그래머스 알고리즘) https://school.programmers.co.kr/learn/courses/30/lessons/1882
반복문 일정한 명령을 일정 횟수만큼 반복하여 수행하는 명령 일반적으로 for 문 , while 문, do .. while 문이 존재
배열 메모리 한 덩어리라는 표현 (연속된 데이터 집합) 여러 데이터 (같은 타입)을 연속하여 세워 놓은 자료구조 각 자료의 데이터 타입의 크기를 알기에 해당 데이터 타입의 크기만큼 점프하여 인덱스로 접근 가능
110옮기기 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/77886
올바른괄호의갯수 (프로그래머스 Level 4) https://school.programmers.co.kr/learn/courses/30/lessons/12929
DFS vs BFS
정렬된 데이터 : 데이터의 종류에 따라서 더욱 특화된 알고리즘을 사용하여 빠르게 처리할 수 있다 따라서 ‘정렬할 수 있는 데이터’의 경우, 그에 특화된 ‘이진탐색’이라는 알고리즘을 이용하여 더 효율적으로 데이터를 탐색할 수 있다
탐색 알고리즘 어떠한 ‘데이터 구조’ 안에 존재하는 것을 구해오는 알고리즘 일반적인 ‘선형(linear)’ 탐색 알고리즘의 시간 복잡도는 O(N) ‘해시 맵’을 이용한 탐색 알고리즘의 시간 복잡도는 O(1) (‘해시’와 관련한 내용은 차후 포스팅을 따로 다룰 ...
단속카메라 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/42884
구명보트 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/42885
큰수만들기 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/42883
배낭 문제 (Knapsack Problem) 한정된 용량에 일정한 ‘가치’와 ‘용량’을 가지는 물건을 넣어 가치가 ‘최대’가 되도록 배낭을 채우는 문제
최적 부분 구조 (Optimal Substructure) 각 부분 문제의 ‘최적해’로 전체 문제의 ‘최적해’를 쉽게 얻어낼 수 있는 경우 ‘최적 부분 구조’의 조건을 성립한다고 말할 수 있다!
단체사진찍기 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/1835
프렌즈4블록 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/17679
기지국설치 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/12979
스타수열 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/70130
풍선터트리기 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/68646
Moo 게임 (백준 Gold 5) https://www.acmicpc.net/problem/5904
222-풀링 (백준 Silver 3) https://www.acmicpc.net/problem/17829
별찍기10 (백준 2447) https://www.acmicpc.net/problem/2447
분할정복 알고리즘 ‘큰 문제를 작은 문제로 분할하여 문제를 해결하는 방식’ 전반적으로 ‘재귀’와 유사한 점이 많은 방식이다.
임계경로(백준 1948) https://www.acmicpc.net/problem/1948
그래프 수정(백준 1432) https://www.acmicpc.net/problem/1432
장난감조립(백준 2637) https://www.acmicpc.net/problem/2637
위상정렬(topological sort) [출처] : https://m.blog.naver.com/occidere/220921661731
머티리얼 개선
갑작스런 과제 예비캠프의 마지막 주, 오늘도 열심히 진도를 나가볼까 하는 그때…!
분석하는 상황
게임 개발자는?
3.2 프로그램의 인코딩 시스템은 보다 간단한 추상화 모델을 이용하여, 세부 구현 내용은 감추며, 추상화의 여러 형태를 사용한다
1.5 캐시가 중요하다! 시스템은 ‘정보’를 이동시키는 일에 많~~은 시간을 사용한다 hello 프로그램은 하드 디스크에 저장되어 있었으며, 프로그램이 로딩될 때, ‘메인 메모리’에 복사된다 프로세서가 프로그램을 실행할 때, ‘인스트럭션’들은 ‘메인 메모리’ 에서 ‘프로...
1.1 정보는 비트와 컨텍스트로 이루어진다 비트 0과 1 을 가지는 최소한의 정보 표시 단위
홀짝트리 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/388354
트라이 [출처] : https://www.medianet.cs.kent.edu/surveys/IAD06S-p2psearch-alok/index.html
트리
최장 공통 부분 수열 (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) 한정된 용량에 일정한 ‘가치’와 ‘용량’을 가지는 물건을 넣어 가치가 ‘최대’가 되도록 배낭을 채우는 문제
최적 부분 구조 (Optimal Substructure) 각 부분 문제의 ‘최적해’로 전체 문제의 ‘최적해’를 쉽게 얻어낼 수 있는 경우 ‘최적 부분 구조’의 조건을 성립한다고 말할 수 있다!
최장 공통 부분 수열 (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) 한정된 용량에 일정한 ‘가치’와 ‘용량’을 가지는 물건을 넣어 가치가 ‘최대’가 되도록 배낭을 채우는 문제
최적 부분 구조 (Optimal Substructure) 각 부분 문제의 ‘최적해’로 전체 문제의 ‘최적해’를 쉽게 얻어낼 수 있는 경우 ‘최적 부분 구조’의 조건을 성립한다고 말할 수 있다!
포인터는 매~우 복잡하기에 버터와 함께 알아보자
클래스 데이터와 그 데이터를 다루는 함수를 하나로 묶은 ‘사용자 정의 자료형’ 사실 Struct와 Defalut 접근 제어자가 다를 뿐 나머지는 같음 Class는 private, Struct 는 Public C에서는 Struct에 변수만을 넣어 다루었기에 C++에서도 St...
포인터 ‘메모리 주소 값’을 저장하는 변수 대표적인 예시로
스타수열 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/70130
풍선터트리기 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/68646
멀티탭 스케쥴링(백준 1700) https://www.acmicpc.net/problem/1700
핀토스 과정 중 배운 트릭
메모리 할당 시스템에서 메모리를 ‘동적 할당’하는 경우, OS가 virtual memory의 ‘heap’ 영역에서 사용 가능한 메모리 블록을 찾아 할당하고 그 주솟값을 반환한다
쇠막대기 (백준 Silver 2) https://www.acmicpc.net/problem/10799
표편집 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/81303
스택 프로시저 호출 시 지역 변수와 매개변수를 저장하기 위한 메모리 공간 선언되는 순서와 반대로 메모리가 해제되는 LIFO(Last in First Out) 구조를 가짐 (이는 자료구조의 ‘스택’과 동일)
pintOS Project 3
동적 메모리 할당 기본적인 개념은 프로그램이 ‘실행시간 동안 사용할 메모리 공간을 할당하는 것’을 뜻한다
가상 메모리 ‘가상 메모리(virtual memory,VM)’ 는 메모리 관리 기술 의 일부로, 메인 메모리 (RAM) 과 보조 기억 장치(HDD,SSD) 의 조합으로 이루어진다 ‘가상 메모리 주소 공간’의 개념을 이야기 하는 표현으로도 사용된다
2주차 C++ 과제 2 C++의 다형성을 이용하여 기본적인 캐릭터와 플레이어, 그리고 플레이어들에 대한 전직과 몬스터를 구현하는 작업이다
2주차 C++ 과제 1 C++의 기본적인 기능들을 이용하여 캐릭터와 그 스탯, 입력 등에 대한 처리를 구현하는 것이 과제이다
C++ Casting Type 최근 C++에 대하여 다시 공부하며, TIL을 작성하려 한다 그 중, 이전에 공부하였지만 TIL을 작성하지 않은 것들을 위주로 몇몇 내용을 갱신해보려 한다
자물쇠와열쇠 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/60059
전력망나누기 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/86971
소수찾기 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/42839
보석 도둑 (백준 Gold 2) https://www.acmicpc.net/problem/1202
무지의먹방라이브 (프로그래머스 Level 4) https://school.programmers.co.kr/learn/courses/30/lessons/42891
야근지수 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/12927
좌표계 3D 렌더링에는 여러 ‘좌표계’가 사용되며 ‘좌표 변환’이 필요할 때가 있음
래스터화 vs 레이트레이싱에 대한 GPT의 답변
벡터와 포인트 포인트(Point) : 위치 O (방향 X, 크기 X) 벡터(Vector) : 방향 O, 크기 O (위치 X)
A와 B (백준 Gold 5) https://www.acmicpc.net/problem/12904
보석 도둑 (백준 Gold 2) https://www.acmicpc.net/problem/1202
A to B (백준 Silver 2) https://www.acmicpc.net/problem/16953
레지스터(Register) 와 메모리(Memory)
스택 프로시저 호출 시 지역 변수와 매개변수를 저장하기 위한 메모리 공간 선언되는 순서와 반대로 메모리가 해제되는 LIFO(Last in First Out) 구조를 가짐 (이는 자료구조의 ‘스택’과 동일)
주유소 (백준 13305) https://www.acmicpc.net/problem/13305
atm (백준 11399) https://www.acmicpc.net/problem/11399
피보나치 6 (백준 11444) https://www.acmicpc.net/problem/11444
종이의 개수 (백준 1780) https://www.acmicpc.net/problem/1780
malloc lab - segregated free list 일정한 크기로 나눈 가용 리스트를 이용하여 find - fit 시 검색 범위를 찾는 방식 내가 구현한 방식은 ‘명시적 가용 리스트 - LIFO’를 2의 지수승 으로 약 20개 정도를 만들어 관리하는 방식을 사용하였다
malloc lab implict free list에 대한 내용은 CSAPP의 9.9에 존재하여 해당 내용을 구현하여 테스트 제출 시, 약 54 점 정도 나왔던 걸로 기억한다
운영 체제의 모드 User mode 일반적인 프로그램 실행 응용프로그램은 시스템 자원에 직접 접근 불가 제한된 명령어 집합 실행 가능 메모리 일부 영역에 접근 가능 제한된 운영체제 서비스에 접근이 가능 => 응용 프로그램 간의 상호 간섭의 최...
demand zero memory 운영 체제에서 사용되는 메모리 관리 방식 중 하나이며 가상 메모리를 효율적으로 관리할 수 있는 방식이다 (구현 방식에 따라 사용되지 않기도 한다)
정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다
DMA(Direct Memory Access) 일종의 입출력 제어 방식으로 CPU의 개입 없이 주변장치(HDD,GPU 등)가 메모리에 직접 접근하여 데이터를 읽고 쓸 수 있게 해주는 시스템의 기능
포트(port) 프로토콜 표준 Application Layer에서 데이터를 주고 받고 싶을때, 프로세스가 하위 계층과 연결을 해주는 장치가 필요함 이러한 데이터의 통로 역할을 하는 장치가 바로 ‘포트’ (프로세스와 연결된 데이터 통로 혹은 데...
Datagram Socket 비연결형(Connectionless) 소켓이며, UDP(User Datagram Protocol) 기반 (UDP는 Transfort Layer의 프로토콜이며, 한 계층 아래의 IP 프로토콜과 유사한 특징을 가진다)
수들의 합 2 (백준 Silver 4) https://www.acmicpc.net/problem/2003
체스판칠하기2 (백준 25682) https://www.acmicpc.net/problem/25682
정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다
운영체제의 개요 OS란 뭘까? 일단 프로그램은 ‘명령어의 집합’이라고 봐도 과언이 아닐것이다 폰 노이만 구조에서 프로그램의 각 명령어는 Fetch(가져오기) : PC(프로그램 카운터)에 저장된 메모리 주소에서 명령어를 가져온다 Decode(해독) : 가져온 명령어를 해독하...
숫자게임 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/12987
에디터 (백준 1406) https://www.acmicpc.net/problem/1406
JS의 비동기 키워드(async, await, promise) 작업을 ‘비동기’적으로 처리한다는 것은 ‘동시에’ 처리하되 ‘그 순서를 보장하지 않는다’는 말이다 그로 인하여, 특정한 작업이 끝날때까지 ‘대기’하는 중 프로그램이 멈추지 않고 다른 작업을 처리하도록 만들 수 있다...
개인 과제 나만무 시작 전, 개인 과제를 진행하고 관련 프레임워크에 대한 공부를 하기 위해 내가 정한 것은 ‘프론트엔드’이며, 그 중 관련된 것은 ‘React’였다
K번째 수 (백준 1300) https://www.acmicpc.net/problem/1300
기타레슨 (백준 2343) https://www.acmicpc.net/problem/2343
크래프톤 정글을 수료하고… 5개월 동안 참으로 길면 길고, 막상 해보니 짧은것 같기도 하고 서로 얼굴 보던 사람들이 이제 헤어질 때가 되니 조금 시원섭섭하기도 하다
약 5주 간의 대장정 당연하다면 당연하겠지만 개인적으로 여태까지 진행했던 3개의 프로젝트 중 가장 인상깊고 또 가장 힘든 프로젝트였다고 생각한다. (고려전문학교 시절에 2번의 프로젝트 이후, 몇년 만의 팀 프로젝트인지..)
경로 찾기 (백준 Silver 1) https://www.acmicpc.net/problem/11403
합승택시요금 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/72413
지형편집 (프로그래머스 Level 4) https://school.programmers.co.kr/learn/courses/30/lessons/12984
쿠키구입 (프로그래머스 Level 4) https://school.programmers.co.kr/learn/courses/30/lessons/49995
수들의 합 2 (백준 Silver 4) https://www.acmicpc.net/problem/2003
쿠키구입 (프로그래머스 Level 4) https://school.programmers.co.kr/learn/courses/30/lessons/49995
셔틀버스 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/17678
징검다리건너기 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/64062
후보키 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/42890
자물쇠와열쇠 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/60059
파티 (백준 Gold 3) https://www.acmicpc.net/problem/1238
등산코스정하기 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/118669
언리얼 엔진의 가비지 컬렉터
C#의 자료형 최근 Unity와 C#에 대하여 다시 공부 중이며, 그 중 나중에 개념상 헷갈리지 않기에 몇가지 개념을 정리하려 한다
좌표계 3D 렌더링에는 여러 ‘좌표계’가 사용되며 ‘좌표 변환’이 필요할 때가 있음
벡터와 포인트 포인트(Point) : 위치 O (방향 X, 크기 X) 벡터(Vector) : 방향 O, 크기 O (위치 X)
Post Process ‘렌더링’이 끝난 후, 화면 전체에 적용되는 ‘후처리’효과로 화면 단위의 ‘픽셀’ 마다 개별적인 연산을 수행할 수도 있다 (이 부분은 DirectX의 ‘Pixel Shader’와 유사)
Material 머티리얼이란 특정한 게임 오브젝트의 ‘표면적 시각 특성’을 정의하는 개념으로 그 구성요소는 기본 색상(Base Color) 질감/거칠기 (Roughness) 반사/굴절 (Metalic, Specular, Refraction) 입체감 표현(Normal...
머티리얼 개선
갑작스런 과제 예비캠프의 마지막 주, 오늘도 열심히 진도를 나가볼까 하는 그때…!
N과 M (백준 Silver 3) https://www.acmicpc.net/problem/15654
치킨배달 (백준 Gold 5) https://www.acmicpc.net/problem/15686
들어가기 앞서 내용 자체는 그렇게 어렵지 않았으나 코드 + 설명을 하다보니 포스팅 크기가 너무 길어지는 듯 하여 분할하여 올릴 예정이다
들어가기 앞서 개인적으로 포스팅을 하는 글이며 기본적으로는 Honglab의 강의 글을 통해 공부하는 용도이다
지나온 과거에 대하여
지나온 과거에 대하여
복잡도 : 알고리즘의 성능을 나타내는 척도 크게 시간, 공간 복잡도 로 나뉜다 입력한 데이터가 ‘많아짐’에 따라 다음의 요소가 얼마나 늘어나는지를 측정 시간 복잡도 : 실행 시간 공간 복잡도 : 필요한 공간(메모리) => 입력이 늘어남에 따른 시간과 필요 공간의 증가...
정렬 알고리즘 n개의 데이터가 입력으로 주어졌을 때, 특정한 기준에 따라 해당하는 데이터에 순서대로 열거하는 것 데이터를 정렬하는 경우 효율적인 ‘탐색’이 가능해진다
람다 함수(Lambda Function) ‘간단한 함수’를 선언없이 사용하는 방식
람다 함수(Lambda Function) ‘간단한 함수’를 선언없이 사용하는 방식
MST (최소 신장 트리) 신장 트리?? 어떤 그래프 안에 있는 모든 노드를 연결하는 트리 그래프 안에 있는 변만을 사용 신장 트리는 여럿 있을 수 있음
최단 경로 문제 그래프 이론에서 ‘가장 짧은 경로’에서 두 꼭짓점을 찾는 문제
트라이 [출처] : https://www.medianet.cs.kent.edu/surveys/IAD06S-p2psearch-alok/index.html
포인터 ‘메모리 주소 값’을 저장하는 변수 대표적인 예시로
세팅 작업 4주차에 C언어 세팅을 하면서 여러가지 고생을 하였지만 다행히 친절하신 동료분이 세팅을 도와주셔서 여러가지 인식할 수 있었다
세팅 작업 4주차에 C언어 세팅을 하면서 여러가지 고생을 하였지만 다행히 친절하신 동료분이 세팅을 도와주셔서 여러가지 인식할 수 있었다
AVL 트리 BST의 한 종류 스스로 균형을 잡는 트리 (balance Factor를 이용)
B tree (B Tree) bst(이진탐색트리)와 유사하지만 자식 의 노드가 2개보다 많은 트리 key값의 응용
BSS(Block Started by Symbol) bss 영역은 초기화되지 않았거나 0 혹은 NULL로 초기화된 전역 및 정적 변수를 저장하는데 사용하는 영역이다 ‘목적파일’에서는 공간을 차지하지 않는 특징이 있다 또한 프로그램 실행 시, 위의 변수들을 0으로 초기화시키...
BSS(Block Started by Symbol) bss 영역은 초기화되지 않았거나 0 혹은 NULL로 초기화된 전역 및 정적 변수를 저장하는데 사용하는 영역이다 ‘목적파일’에서는 공간을 차지하지 않는 특징이 있다 또한 프로그램 실행 시, 위의 변수들을 0으로 초기화시키...
RB-Tree(Red-Black Tree) 각 노드가 레드 혹은 블랙 인 이진 탐색 트리 (단순한 추가정보)
가상 메모리 ‘가상 메모리(virtual memory,VM)’ 는 메모리 관리 기술 의 일부로, 메인 메모리 (RAM) 과 보조 기억 장치(HDD,SSD) 의 조합으로 이루어진다 ‘가상 메모리 주소 공간’의 개념을 이야기 하는 표현으로도 사용된다
malloc lab implict free list에 대한 내용은 CSAPP의 9.9에 존재하여 해당 내용을 구현하여 테스트 제출 시, 약 54 점 정도 나왔던 걸로 기억한다
demand zero memory 운영 체제에서 사용되는 메모리 관리 방식 중 하나이며 가상 메모리를 효율적으로 관리할 수 있는 방식이다 (구현 방식에 따라 사용되지 않기도 한다)
동적 할당을 위한 가용 리스트 함수를 호출하면 ‘스택’에 스택 프레임이 생성되고 지역변수를 선언하면 그것 역시 ‘스택’에 메모리를 잡는다
동적 할당을 위한 가용 리스트 함수를 호출하면 ‘스택’에 스택 프레임이 생성되고 지역변수를 선언하면 그것 역시 ‘스택’에 메모리를 잡는다
메모리 할당 정책 응용프로그램이 메모리의 블록을 요청할 때, 메모리 할당기는 요청한 블록을 저장하기에 충분히 큰 가용 블록을 리스트에서 검색한다
malloc lab - segregated free list 일정한 크기로 나눈 가용 리스트를 이용하여 find - fit 시 검색 범위를 찾는 방식 내가 구현한 방식은 ‘명시적 가용 리스트 - LIFO’를 2의 지수승 으로 약 20개 정도를 만들어 관리하는 방식을 사용하였다
지리적 규모에 따른 네트워크의 분류 LAN(Local Area Network) 지리적으로 가까운 장치를 연결하는 네트워크 소규모 네트워크 이며, 주로 ‘이더넷’이 주로 사용 높은 속도와 낮은 지연 시간
파일 디스크립터 운영체제에서 I/O 리소스를 식별하는데 사용되는 정숫값 (유닉스 계열의 운영체제이며, 윈도우에서는 파일 핸들(File Handle)이 비슷한 개념이지만 구체적 구현과 사용방식에 차이 존재)
파일 디스크립터 운영체제에서 I/O 리소스를 식별하는데 사용되는 정숫값 (유닉스 계열의 운영체제이며, 윈도우에서는 파일 핸들(File Handle)이 비슷한 개념이지만 구체적 구현과 사용방식에 차이 존재)
프록시(Proxy) ‘대리’,’대리인’ 등의 의미를 가진 영단어 실제 프록시 서버도 비슷하게 쓰인다
행렬곱셈 (백준 2740) https://www.acmicpc.net/problem/2740
행렬곱셈 (백준 2740) https://www.acmicpc.net/problem/2740
DNS (Domain Network System) 도메인 이름과 IP 주소 간의 매핑을 관리하고 이를 위해 계층적이고 분산된 구조로 이루어진 시스템
IP 주소의 2가지 형태 공용 IP 주소(Public IP Address) 인터넷에 공개되는 주소로서 전 세계의 장치들이 인터넷에 연결될 때 사용된다 인터넷 상에서 고유하게 식별되는 주소 ISP(인터넷 서비스 제공업체)가 ...
IP 주소의 2가지 형태 공용 IP 주소(Public IP Address) 인터넷에 공개되는 주소로서 전 세계의 장치들이 인터넷에 연결될 때 사용된다 인터넷 상에서 고유하게 식별되는 주소 ISP(인터넷 서비스 제공업체)가 ...
Proxy Lab 개인적으로 정말 어려웠던 것 같다 (당장 다음주부터 핀토스 시작이지만)
운영체제의 스케쥴링 운영체제가 프로세스를 실행시키는 ‘정책’ 중 ‘고수준’에 해당하는 정책이며, (저수준은 ‘문맥 교환’이며, 이는 메모리 주소 공간에 대한 밀접한 관련이 있으며 이는 하드웨어와 가깝기에 ‘저수준’이라 표현한다)
운영체제의 개요 OS란 뭘까? 일단 프로그램은 ‘명령어의 집합’이라고 봐도 과언이 아닐것이다 폰 노이만 구조에서 프로그램의 각 명령어는 Fetch(가져오기) : PC(프로그램 카운터)에 저장된 메모리 주소에서 명령어를 가져온다 Decode(해독) : 가져온 명령어를 해독하...
임계 영역(Critical Section) 보통 다중 쓰레드 or 프로세스 환경에서 공유된 자원(변수 or 자료구조 등)에 접근하는 ‘코드 영역’을 의미한다 (공유된 자원과 임계 영역은 다른 개념) (공유된 자원은 ‘데이터’,’메모리’, 변수, 파일 등의 실제 ‘자원’임) ...
임계 영역(Critical Section) 보통 다중 쓰레드 or 프로세스 환경에서 공유된 자원(변수 or 자료구조 등)에 접근하는 ‘코드 영역’을 의미한다 (공유된 자원과 임계 영역은 다른 개념) (공유된 자원은 ‘데이터’,’메모리’, 변수, 파일 등의 실제 ‘자원’임) ...
임계 영역(Critical Section) 보통 다중 쓰레드 or 프로세스 환경에서 공유된 자원(변수 or 자료구조 등)에 접근하는 ‘코드 영역’을 의미한다 (공유된 자원과 임계 영역은 다른 개념) (공유된 자원은 ‘데이터’,’메모리’, 변수, 파일 등의 실제 ‘자원’임) ...
임계 영역(Critical Section) 보통 다중 쓰레드 or 프로세스 환경에서 공유된 자원(변수 or 자료구조 등)에 접근하는 ‘코드 영역’을 의미한다 (공유된 자원과 임계 영역은 다른 개념) (공유된 자원은 ‘데이터’,’메모리’, 변수, 파일 등의 실제 ‘자원’임) ...
임계 영역(Critical Section) 보통 다중 쓰레드 or 프로세스 환경에서 공유된 자원(변수 or 자료구조 등)에 접근하는 ‘코드 영역’을 의미한다 (공유된 자원과 임계 영역은 다른 개념) (공유된 자원은 ‘데이터’,’메모리’, 변수, 파일 등의 실제 ‘자원’임) ...
조건 변수(Condition Variable) 다중 프로세스 or 스레드 환경에서 사용하는 ‘동기화 도구’ 중 하나
조건 변수(Condition Variable) 다중 프로세스 or 스레드 환경에서 사용하는 ‘동기화 도구’ 중 하나
핀토스 과정 중 배운 트릭
레지스터(Register) 와 메모리(Memory)
Cache 캐싱이란 ‘기존의 액세스한 데이터의 사본을 보관’하는 ‘임시 저장 공간’을 의미하며 동시에 ‘느린’ 데이터 저장 장치 에 존재하는 데이터를 빠른 저장장치에 보관시켜 전체적인 성능의 향상하는 ‘기법’에 대한 내용도 포함된다 (좀 더 세밀하게 말하자면 이러한 기법을 ...
Atomic Operation 직역하자면 ‘원자적 연산’이란 뜻을 가진다 마치 ‘원자’처럼 더 이상 ‘분할’할 수 없는 ‘작업’을 뜻하며
정리 이전 권영진 교수님께서 pdf를 주셔서 해당 pdf의 일부 이미지를 참고하였고, 정리 중 일부 내용을 추가하였다
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 [출처] : 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
가상 주소 공간과 mmap [출처] : https://devraphy.tistory.com/428 가상 주소 공간의 ‘영역’은 주로 Code, Data (+ bss), heap, stack 등으로 이루어져 있다
다중 레벨 페이지 테이블이 필요한 이유! Page Table은 기본적으로 메인 메모리에 존재한다 이는 ‘DRAM’에 존재한다는 것인데…. 문제는 Page의 개수가 상~당히 많다는 점이다
Pintos Project3 까지… OS가 얼마나 대단하고 소중한 (?) 존재인지 깨달을 수 있었던 5주였던 것 같다 각각 스케쥴링, 시스템 콜, 가상 메모리 에 대한 OS의 핵심적인 역할에 대하여 보다 심도있게 이해할 수 있었다 이전에야 CS 적인 지식을 익히고 ‘OS...
AWS 강의 리전 : 서버가 호스팅 될 물리적인 위치 latency를 고려하여 리전을 배치한다
개인 과제 나만무 시작 전, 개인 과제를 진행하고 관련 프레임워크에 대한 공부를 하기 위해 내가 정한 것은 ‘프론트엔드’이며, 그 중 관련된 것은 ‘React’였다
약 5주 간의 대장정 당연하다면 당연하겠지만 개인적으로 여태까지 진행했던 3개의 프로젝트 중 가장 인상깊고 또 가장 힘든 프로젝트였다고 생각한다. (고려전문학교 시절에 2번의 프로젝트 이후, 몇년 만의 팀 프로젝트인지..)
베스트앨범 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/42579
전력망나누기 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/86971
자동완성 (프로그래머스 Level 4) https://school.programmers.co.kr/learn/courses/30/lessons/17685
길찾기게임 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/42892
길찾기게임 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/42892
사라지는발판 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/92345
사라지는발판 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/92345
지형이동 (프로그래머스 Level 4) https://school.programmers.co.kr/learn/courses/30/lessons/62050
지형이동 (프로그래머스 Level 4) https://school.programmers.co.kr/learn/courses/30/lessons/62050
2차원동전뒤집기 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/131703
표편집 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/81303
할인행사 (프로그래머스 Level 2) https://school.programmers.co.kr/learn/courses/30/lessons/131127
C#의 자료형 최근 Unity와 C#에 대하여 다시 공부 중이며, 그 중 나중에 개념상 헷갈리지 않기에 몇가지 개념을 정리하려 한다
C#의 자료형 최근 Unity와 C#에 대하여 다시 공부 중이며, 그 중 나중에 개념상 헷갈리지 않기에 몇가지 개념을 정리하려 한다
Extension Method(확장 메서드) 기존 클래스에 ‘새로운 메서드’를 추가하는 문법이나, 기존 클래스를 수정하지 않기에 각종 유틸리티 메서드 를 작성할때 특히 유용하다
셔틀버스 (프로그래머스 Level 3) https://school.programmers.co.kr/learn/courses/30/lessons/17678
벡터와 포인트 포인트(Point) : 위치 O (방향 X, 크기 X) 벡터(Vector) : 방향 O, 크기 O (위치 X)
래스터화 vs 레이트레이싱에 대한 GPT의 답변
래스터화 vs 레이트레이싱에 대한 GPT의 답변
게임 개발자는?
분석하는 상황
Level 게임 내에서 플레이어가 상호작용할 수 있는 공간인 ‘월드’의 ‘전부’ 이거나 ‘일부’라 표현 가능 (‘맵’ 혹은 ‘씬’ 등의 개념과 유사) .umap 확장자를 가지는 파일 게임에서 보이는 모든 것(지형,액터,빛,소리 등)을 배치하는 공간
Level 게임 내에서 플레이어가 상호작용할 수 있는 공간인 ‘월드’의 ‘전부’ 이거나 ‘일부’라 표현 가능 (‘맵’ 혹은 ‘씬’ 등의 개념과 유사) .umap 확장자를 가지는 파일 게임에서 보이는 모든 것(지형,액터,빛,소리 등)을 배치하는 공간
Level 게임 내에서 플레이어가 상호작용할 수 있는 공간인 ‘월드’의 ‘전부’ 이거나 ‘일부’라 표현 가능 (‘맵’ 혹은 ‘씬’ 등의 개념과 유사) .umap 확장자를 가지는 파일 게임에서 보이는 모든 것(지형,액터,빛,소리 등)을 배치하는 공간
Level 게임 내에서 플레이어가 상호작용할 수 있는 공간인 ‘월드’의 ‘전부’ 이거나 ‘일부’라 표현 가능 (‘맵’ 혹은 ‘씬’ 등의 개념과 유사) .umap 확장자를 가지는 파일 게임에서 보이는 모든 것(지형,액터,빛,소리 등)을 배치하는 공간
향상된 입력 시스템(Enhanced Input System) UE5에선 새로운 입력 시스템을 제공하며 기존 UE4의 입력 시스템을 보완하여 복잡한 입력 처리 요구 사항에 대응하기 위하여 설계되었다
향상된 입력 시스템(Enhanced Input System) UE5에선 새로운 입력 시스템을 제공하며 기존 UE4의 입력 시스템을 보완하여 복잡한 입력 처리 요구 사항에 대응하기 위하여 설계되었다
향상된 입력 시스템(Enhanced Input System) UE5에선 새로운 입력 시스템을 제공하며 기존 UE4의 입력 시스템을 보완하여 복잡한 입력 처리 요구 사항에 대응하기 위하여 설계되었다
향상된 입력 시스템(Enhanced Input System) UE5에선 새로운 입력 시스템을 제공하며 기존 UE4의 입력 시스템을 보완하여 복잡한 입력 처리 요구 사항에 대응하기 위하여 설계되었다
Unreal의 게임 플레이 오브젝트의 상속 구조
Unreal의 게임 플레이 오브젝트의 상속 구조
Unreal의 게임 플레이 오브젝트의 상속 구조
Unreal의 게임 플레이 오브젝트의 상속 구조
Controller Pawn을 조종하는 추상적 존재이며, ‘유저’ 혹은 ‘AI’의 대리하는 클래스
Controller Pawn을 조종하는 추상적 존재이며, ‘유저’ 혹은 ‘AI’의 대리하는 클래스
Controller Pawn을 조종하는 추상적 존재이며, ‘유저’ 혹은 ‘AI’의 대리하는 클래스
Controller Pawn을 조종하는 추상적 존재이며, ‘유저’ 혹은 ‘AI’의 대리하는 클래스
Controller Pawn을 조종하는 추상적 존재이며, ‘유저’ 혹은 ‘AI’의 대리하는 클래스
Controller Pawn을 조종하는 추상적 존재이며, ‘유저’ 혹은 ‘AI’의 대리하는 클래스
3D 그래픽스에 대한 기초용어 정리
LandScape LandScape는 언리얼에서 넓은 지형을 생성하고, 편집하기 위한 특수한 액터 타입으로 HeightMap 기반의 그리드형 타일 지형으로 구성된다
LandScape LandScape는 언리얼에서 넓은 지형을 생성하고, 편집하기 위한 특수한 액터 타입으로 HeightMap 기반의 그리드형 타일 지형으로 구성된다
Material 머티리얼이란 특정한 게임 오브젝트의 ‘표면적 시각 특성’을 정의하는 개념으로 그 구성요소는 기본 색상(Base Color) 질감/거칠기 (Roughness) 반사/굴절 (Metalic, Specular, Refraction) 입체감 표현(Normal...
클래스 데이터와 그 데이터를 다루는 함수를 하나로 묶은 ‘사용자 정의 자료형’ 사실 Struct와 Defalut 접근 제어자가 다를 뿐 나머지는 같음 Class는 private, Struct 는 Public C에서는 Struct에 변수만을 넣어 다루었기에 C++에서도 St...
클래스 데이터와 그 데이터를 다루는 함수를 하나로 묶은 ‘사용자 정의 자료형’ 사실 Struct와 Defalut 접근 제어자가 다를 뿐 나머지는 같음 Class는 private, Struct 는 Public C에서는 Struct에 변수만을 넣어 다루었기에 C++에서도 St...
클래스 데이터와 그 데이터를 다루는 함수를 하나로 묶은 ‘사용자 정의 자료형’ 사실 Struct와 Defalut 접근 제어자가 다를 뿐 나머지는 같음 Class는 private, Struct 는 Public C에서는 Struct에 변수만을 넣어 다루었기에 C++에서도 St...
벡터 이미 이전에 3D 관련으로 정의한 적이 있으나 좀 더 심층적으로 알아보려 한다
벡터 이미 이전에 3D 관련으로 정의한 적이 있으나 좀 더 심층적으로 알아보려 한다
📚 오늘의 목차
📚 오늘의 목차
📚 오늘의 목차
📚 오늘의 목차
📚 오늘의 목차
📚 오늘의 목차
📚 오늘의 목차
컬링(Culling) 3D 그래픽스에서 불필요한 ‘도형’이나 ‘픽셀’을 그리지 않는 최적화 기법
컬링(Culling) 3D 그래픽스에서 불필요한 ‘도형’이나 ‘픽셀’을 그리지 않는 최적화 기법
컬링(Culling) 3D 그래픽스에서 불필요한 ‘도형’이나 ‘픽셀’을 그리지 않는 최적화 기법
컬링(Culling) 3D 그래픽스에서 불필요한 ‘도형’이나 ‘픽셀’을 그리지 않는 최적화 기법
lValue 와 rValue ‘값’에 대한 ‘분류’이며 일종의 ‘표현식’에 가깝다
lValue 와 rValue ‘값’에 대한 ‘분류’이며 일종의 ‘표현식’에 가깝다
lValue 와 rValue ‘값’에 대한 ‘분류’이며 일종의 ‘표현식’에 가깝다
lValue 와 rValue ‘값’에 대한 ‘분류’이며 일종의 ‘표현식’에 가깝다
lValue 와 rValue ‘값’에 대한 ‘분류’이며 일종의 ‘표현식’에 가깝다
lValue 와 rValue ‘값’에 대한 ‘분류’이며 일종의 ‘표현식’에 가깝다
Interface 오늘은 TIL을 좀 더 가볍게 다뤄보려고 한다 기존의 포스팅은 작성에 몇시간이 걸리고 정리에 시간이 걸렸지만 오늘은 몸 상태가 좋지 않아 Interface 위주로 다루려 한다
UObject 기반 클래스에 대한 포인터 언리얼 강의를 듣던 중 TOjbectPtr라는 독특한 ‘포인터’를 발견하였다 (T* 방식의 일반 ‘생’ 포인터와는 다른)
UObject 기반 클래스에 대한 포인터 언리얼 강의를 듣던 중 TOjbectPtr라는 독특한 ‘포인터’를 발견하였다 (T* 방식의 일반 ‘생’ 포인터와는 다른)
나이아가라 시스템? UE 4.2 이후부터 도입된 차세대 파티클, VFX 시스템
언리얼 ‘Chaos’ 시스템 언리얼의 ‘물리 기반 시뮬레이션’을 위한 오브젝트 관리 및 파괴 시스템
Delegate ‘대리자’라는 개념을 가졌으며 기본적으로 C++에서 별도의 키워드로 분류되지는 않지만 ‘함수 포인터’를 다른 곳으로 넘겨주어 필요에 따라 ‘호출’을 ‘위임’하는 구조
Delegate ‘대리자’라는 개념을 가졌으며 기본적으로 C++에서 별도의 키워드로 분류되지는 않지만 ‘함수 포인터’를 다른 곳으로 넘겨주어 필요에 따라 ‘호출’을 ‘위임’하는 구조
Delegate ‘대리자’라는 개념을 가졌으며 기본적으로 C++에서 별도의 키워드로 분류되지는 않지만 ‘함수 포인터’를 다른 곳으로 넘겨주어 필요에 따라 ‘호출’을 ‘위임’하는 구조
Delegate ‘대리자’라는 개념을 가졌으며 기본적으로 C++에서 별도의 키워드로 분류되지는 않지만 ‘함수 포인터’를 다른 곳으로 넘겨주어 필요에 따라 ‘호출’을 ‘위임’하는 구조
Post Process ‘렌더링’이 끝난 후, 화면 전체에 적용되는 ‘후처리’효과로 화면 단위의 ‘픽셀’ 마다 개별적인 연산을 수행할 수도 있다 (이 부분은 DirectX의 ‘Pixel Shader’와 유사)
📚 목차
📚 목차
📚 목차
📚 목차
📚 목차
오늘의 과제 자신만의 레벨 디자인으로서 다양한 에셋과 함께 창의적인 레벨디자인을 만드는 것이다
오늘의 과제 자신만의 레벨 디자인으로서 다양한 에셋과 함께 창의적인 레벨디자인을 만드는 것이다
선형 변환
애파인 변환
📚 목차
기저 벡터의 변환
기저 벡터의 변환
배열 포인터
언리얼 엔진의 가비지 컬렉터
알고스팟 (백준 Gold 4) https://www.acmicpc.net/problem/1261
객체 지향적 설계 객체를 중심으로 프로그램을 구조화하는 설계 기법
객체 지향적 설계 객체를 중심으로 프로그램을 구조화하는 설계 기법
객체 지향적 설계 객체를 중심으로 프로그램을 구조화하는 설계 기법
Graphics Rendering Pipeline
디자인 패턴 개발 시 반복적으로 등장하는 문제를 해결하기 위한 일반화된 풀이 방법
디자인 패턴 개발 시 반복적으로 등장하는 문제를 해결하기 위한 일반화된 풀이 방법
디자인 패턴 개발 시 반복적으로 등장하는 문제를 해결하기 위한 일반화된 풀이 방법
댓글 기능의 추가와 giscus 블로그를 만든지 시간이 꽤 되었지만 놀랍게도 댓글 기능을 만들지 않았었다
들어가기 앞서 개인적으로 포스팅을 하는 글이며 기본적으로는 Honglab의 강의 글을 통해 공부하는 용도이다