최신 글
-
Docker & Kubernetes 노트
What is Container & Docker? Container - 프로그램을 실행시키기 위한 Unit - Independent, Standardized "application package" - - 예: 음식을 담는 "바구니" => 같은 음식이 담긴 바구니를 다른 사람에게 그대로 줄 수 있다. - - 예: 공사현장의 "컨테이너 박스" => 무언가를 실어 그대로 나를 수 있다. - 프로그램이 복잡해질 수록 모든 개발자의 컴퓨터 환경을 같은 버전을 맞추기 위해 Docker가 필요하다. 옛날 방식의 가상 머신을 사용할 경우의 장/단점 - 장점: 개별적인 개발 환경 - 단점: 중복된 리소스, PC 성능 저하 요즘 방식의 Docker & Container를 사용할 경우 장점 - Built-in Contain..
더보기
-
행진곡 모음 (feat. Guitar)
March of Toreadors Wedding March (F. Mendelssohn) Wedding March (R. Wagner) Mickey Mouse March Colonel Bogey March Radetzky March Marcia Trionfale Glory Glory Hallelujah
더보기
-
[Golang] io.Reader 그리고 Heap, Stack
Intro - Escape Analysis A. Heap vs. Stack - Read 함수를 사용하여 byte를 읽는 방법이, - 아래와 같은 두가지 방법이 있는데, - 방법 1: Slice를 read 함수에서 만들어서 main으로 넘겨줄 경우 - 방법 2: Slice함수를 사용자가 직접 만듫어서 read 함수에 Argument로 사용하는 경우 - 2번의 경우가 모든 것이 stack에서 활동하므로 빠를 수밖에 없다. B. io.Reader - 그러므로.... Golang의 io.Reader 함수가 구현된 것을 보면 왜 아래와 같이 구현됬는지 알 수 있다. Reference - Understanding Allocations: the Stack and the Heap - GopherCon SG 2019 K..
더보기
-
Golang Concept Tutorials
BASIC Case - Golang Dependency Injection Made EASY - The Repository Pattern (Interface) Memory - Understanding Allocations: the Stack and the Heap - GopherCon SG 2019 (Escape Analysis) Concurrency - Master Go Programming With These Concurrency Patterns (in 40 minutes) - Learn Golang: Deep Dive into Concurrency in Golang (with real world application) | Part 3
더보기
-
기타 코드 Musical Notation + TAB
더보기
-
[Handmade Hero] 005 - Windows Graphics Review
오늘의 공부 (흐름) - WNDCLASS - Win32ResizeDIBSection (Backbuffer 할당) - WindowClass에서 변수를 Stack에 할당 - WIndowClass에서 받아온 변수를 RegosterClass로 넘긴다. - 윈도우창 생성 - PeekMessage (윈도우창 실행) - RenderweirdGradient (Backbuffer로 임시 디스플레이를 그린다, 256x256 블록 패턴) ### GetDC ### - Win32GetWindowDimension (사각형의 요소를 가지고 온다.) - Win32DisplayBufferinWindow (StretchDIBiats을 통해 Display한다.) ### ReleaseDC ### - Gradient Increment for..
더보기
-
[Handmade Hero] 004 - Animating the Backbuffer
오늘의 공부 - VirtualAlloc: 메모리 할당 - VirtualFree: 메모리 헤제 - PeekMessage: 메시지가 없을 때 계속 Running 상태로 둔다. - GetMessage: 메시지가 없을때는 상태를 Block한다. - GetDC & ReleaseDC (for DeviceContext) 흐름 - 빈 BitmapMemory 변수에 메모리가 할당된다. (VirtualAlloc) - 할당된 메모리는 StretchDIBits가 전달받는다. - StretchDIBits가 Display를 그린다. 디버깅 BitmapMemory - BitmapMemory에 들어가있는 값이 0인걸 확인한다. - 수많은 Header들을 채워가면서 VirtualAlloc을 했을 때 BitmapMemory에 값이 들어..
더보기
-
[Primal Engine] 004 - Loading game projects
오늘의 공부 - 저장된 프로젝트 폴더 경로를 받아서 불러오는 기능 (OpenProject.cs) - Save, Load, Unload, Active Scene 기능 (Project.cs) - 불러올 때 문제가 있을 경우 문제가 있다고 알려주는 알림 메시지를 보여주기 (MainWindow.xaml.cs) - 그외 자잘한 파일들 수정 (Scene.cs) 디버깅 ActiveScene에 올바른 데이터가 들어갔는지 확인 (Project.cs) DataContext에 올바른 데이터가 들어갔는지 확인 (MainWindow.xaml.cs) 결론 - 실질적으로 프로젝트를 오픈한 것은 아니지만 DataContext에 알맞은 데이터가 들어간 것을 확인하였다.
더보기
-
[Handmade Hero] 003 - Allocating a Backbuffer
오늘의 공부 Win32 API - CreateDIBSection: 마우스에 의한 윈도우창 사이즈 변경 - - BITMAPINFO: 각각의 헤더들의 설정을 지정해준다 - WM_SIZE가 불릴 때마다 Memory Leak이 있는지 확인하기 C++ Static의 사용처 3종류 - Global Variable: 누구나 사용할 수 있기에 일반적으로 사용을 비추천한다. - Local Variable: Local Persist - Local to file: 해당 파일에서만 사용할 수 있다. (internal) Reference - Official Lesson
더보기
-
[Handmade Hero] 002 - Opening a Win32 Window
현대 게임의 특징 - Rendering에 관한 모든 걸 GPU에 맡긴다. - GPU가 하는 일을 모른 채로 그냥 맡긴다. Handmade Hero 엔진의 특징 - GPU가 어떻게 일하는지 모르기때문에 직접 Win32 API를 이용해 Renderer를 만들어 사용한다. - 실제로 Rendering이 어떤 방식으로 이루어지는가 이해하기 위함. 오늘의 공부 Win32 지식 Basic Functions - WNDCLASS : 여러가지 기본 설정을 할 수 있는 function들을 사용하기위해 쓰인다. - WindowProc: Callback Function, 메시지를 받아서 실행한다.- RegisterClass: WNDCLASS를 통해 윈도우창을 열기 위해 필요한 Function.- CreateWindow: 여러..
더보기
-
난리블루스 기초화성 2: 화성학의 핵
3화음 (Triad chords) - 둘중 어느 계산법으로 해도 똑같은 값이 나온다. 파란색 계산법 - 근음을 기준으로 해서 3도와 5도 계산 노란색 계산법 - 근음을 기준으로 해서 3도 2개 계산 Reference - 기타 코드의 탄생과 이해: 화성학의 핵심 - 난리블루스
더보기
-
난리블루스 기초화성 1 - 음정, 음계
온음과 반음 - 온음 = tone (C-D, D-E, F-G, G-A) - 반음 = semitone (E-F, B-C) 음정 - 1도 => ex: 파파 (같은음) - 2도 => ex: 도레 - 3도 => ex: 도레미 - 7도 => ex: 도레미파솔라시 - 8도 => ex: 파솔라시도레미파 (옥타브) 예: 같은 3도라도 온음 2개 혹은 온음1개 반음1개가 되어있는 음정이 있다. - - 장3도란? => 온음 2개 - - 단3도란 => 온음1개, 반음1개 - - 장,단을 구분할 때 반음만 헤아리자. - - 반음이 하나도 없다면 "장" (2,3도 해당) => Major, 밝은 느낌 - - 반음이 1개가 있다면 "단" (2,3도 해당) => Minior, 어두운 느낌 - - 반음이 1개면 장 (6,7도 해당) ..
더보기
-
온음계적 음정 (Tritone, 증, 감)
Definition - 온음 = Whole tone - 음정 = interval = 음간의 거리 - Tritone: 온음 3개로 구성된 음 - 온음계적 음정: 흰 건반만 사용하는 음정 증4도 (Augmented) - 4도 - 6개의 반음이 이동한다. - 완전4도보다 거리가 멀기때문에 Augmented (증)을 사용 감5도 (Diminished) - 5도 - 6개의 반음이 이동한다. - 완전5도보다 거리가 짧기때문에 Diminished (감)을 사용 Conclusion - 파-시 = 증4도 - 시-파 = 감5 - 어느 음정을 봐도 빠르고 정확하게 계산할 수 있도록 계산하여야 한다. Reference - 음정을 풀어보자 I - 온음계적 음정 문제풀이
더보기
-
[Handmade Hero] 001 - Setting Up the Windows Build
기본 설정 - startup.bat @ C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup => Windows 시작시 가상 드라이브 실행 - build.bat (.exe파일을 빌드하기 위한 batch 파일) - shell.bat (비쥬얼 스튜디오 컴파일러를 사용하기 위한 batch 파일) - devenv \build\win32_handmade.exe (.sln 파일을 사용하기 위한 커맨드) - user32.lib -> MessageBox같은 function을 사용하기 위해 컴파일할 때 포함시켜야 한다. 개념 - CRT Library for C compiler - Import Library (Ex: user32.lib) -> 특정 Function을 ..
더보기
-
[Handmade Hero] Intro to C on Windows - Day 5
1. 코드 => 실행 프로그램까지의 과정source code to Executable- OBJ + LIB into Linker - Executable (Defined by Microsoft + Intel format)Exe File- Header - Fixup table (Call windows code) - Intel format code (Start running)2. Virtual MemoryPage- Divided into "page" (Physical) - Page Table - Each page has flags (Read, Write, Execute) - Page Fault - ICache for efficient CPU operation3. Shift Operator- Shift the b..
더보기
인기 글
-
백병동 화성학 제2장 "3화음" [금지]
금지되는 진행 - 완전 음정은 너무 잘 어울려서 안좋은 소리가 나게된다. - 병행 5도 금지 (?) - 병행 8도 금지 (?) - 반진행 8도 (종지만 허용) (?) - Ex: C1+ A2 & G1+ D2 => 같은 방향으로 도약해서 완전 음정으로 도달한다. (?) - 예외: 소프라노가 순차진행할 때는 OK (?) 성부의 연결 - 노래 부르기 힘들기때문에 금지한다. - 증음정 금지 (예: F, G#, 증2도 금지) (?) - 증2도 금지 => F, G# (?) - 증4도 금지 => F, B (?) - 위와같은 선율을 잘 쓰지 않는다. - A minor harmonic scale에 등장하는 F, G# => 증음정이 발생한다. - 증4도가 감5도로가면 허용한다. (반진행 해결이 필요하다) (?) - 그외 금..
더보기
-
난리블루스 기초화성 1 - 음정, 음계
온음과 반음 - 온음 = tone (C-D, D-E, F-G, G-A) - 반음 = semitone (E-F, B-C) 음정 - 1도 => ex: 파파 (같은음) - 2도 => ex: 도레 - 3도 => ex: 도레미 - 7도 => ex: 도레미파솔라시 - 8도 => ex: 파솔라시도레미파 (옥타브) 예: 같은 3도라도 온음 2개 혹은 온음1개 반음1개가 되어있는 음정이 있다. - - 장3도란? => 온음 2개 - - 단3도란 => 온음1개, 반음1개 - - 장,단을 구분할 때 반음만 헤아리자. - - 반음이 하나도 없다면 "장" (2,3도 해당) => Major, 밝은 느낌 - - 반음이 1개가 있다면 "단" (2,3도 해당) => Minior, 어두운 느낌 - - 반음이 1개면 장 (6,7도 해당) ..
더보기
-
5가지 메이저 스케일 모양 외우기
- 윗줄부터 시작 - 는 프렛 한칸 이동 - 어느 프렛에서 시작하는지는 무관 E Shape 2-4 (string #6) [i-m] (도-레) 1-2-4 [i-m-i] (미-파-솔) 1-3-4 [m-i-m] (라-시-도) 1-3-4 [i-m-i] (레-미-파) 2-4 [m-i] (솔-라) 1-2-4 [m-i-m] (시-도-레) D Shape 2-4 (4번줄) [i-m] 1-2-4 [m-i-m] 1-3-4 [i-m-i] 1-3-4 A Shape (C, ) 2-4 (5번줄 시작) [i-m] 1-2-4 [m-i-m] 1-3-4 (i-m-i) 1-3-4 [m-i-m] 1-3 [i-m] C Shape 4 (5번줄) [i-m] 1-3-4 [m-i-m] 1-3 [i-m] 1-2-4 [i-m-i] 1-2-4 [m-i-m..
더보기
-
백병동 화성학 제2장 - "3화음"
어휘 - Part = 성부 (예: 소프라노, 알토, 테너, 베이스) - 상3성 = 소프라노, 악토, 테너 (한 옥타브이상 벌어지지 말 것) - 하3성 = 알토 테너 베이스 (한 옥타브 이상 벌어져도 될 것) 4성체 구성 - SATB (Soprano, Alto, Tenor, Bass) - 4개의 성부 (소프라노,알토, 테너, 베이스)로 화성화를 시킨다. - 사람의 목소리의 한계를 염두해두어야한다. - 내성 = 알토 테너 - 외성 = 소프라노 베이스 - 상3성 = 소프라노 알토 테너 - 하3성 = 알토 테너 베이스 - 규칙의 예: 병행은 내성과 외성과 상관없이 5음 병진행을 금한다. (?) 화음의 중복과 생략 - 성부를 4개로 풀이를 해야하므로 하나의 음을 중복할 필요가 있다. - 근음을 중복하는게 가장 좋..
더보기