![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcevvBj%2Fbtq7C3D0gUd%2FA48r7eNbRx0cNVh8r2Yrkk%2Fimg.png)
[C++] 예제로 알아보는 std::pair, std::tuple
2021. 6. 20. 20:09
C++/공부
std::pair https://en.cppreference.com/w/cpp/utility/pair std::pair - cppreference.com template struct pair; std::pair is a class template that provides a way to store two heterogeneous objects as a single unit. A pair is a specific case of a std::tuple with two elements. If neither T1 nor T2 is a possibly c en.cppreference.com #include #include #include std::pair Login(int ..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcLm4qi%2Fbtq64SCljGC%2FiEQMD9UhkPUC4dvcEev0Ck%2Fimg.png)
[YAML] yaml & yaml-cpp
2021. 6. 12. 19:33
기타 프로그래밍
YAML 기본 문법 YAML? YAML(Yet Another Markup Language) .yml, .yaml 들여쓰기 (indent) 2칸(권장) 또는 4칸 person: name: Nabin Kim job: developer skills: - docker - kubernetes 데이터 정의 (map) key: value apiVersion: v1 kind: Pod metadata: name: echo labels: type: app 배열 정의 (array) - 로 표시 person: name: Nabin Kim job: Developer skills: - docker - kubernetes 주석 (comment) # 로 표시 # comment name: Nabin Kim # comment 참/거짓 ..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FD6Ohx%2Fbtq3JTdAe2n%2FC9V7sNWNT9CiF0kJnh3Yt0%2Fimg.png)
[JavaScript] The Modern JavaScript Tutorial - (2-15) Functions
2021. 4. 30. 00:59
JavaScript/The Modern Tutorial JS
함수 함수는 프로그램을 구성하는 주요 '구성 요소(building block)'이다. 함수를 이용하면 중복 없이 유사한 동작을 하는 코드를 여러 번 호출할 수 있다. 함수 선언 function name(parameters) { // 함수 본문 } function 키워드, 함수 이름, 괄호로 둘러싼 매개변수를 차례로 쓰면 함수를 선언할 수 있다. 매개변수가 없을 수도 있으며, 만약 매개변수가 여러 개 있다면 각 매개변수를 콤마로 구분한다. 이어서 함수 본문(body)을 중괄호로 감싸 붙여 주면 된다. 새롭게 정의한 함수는 함수 이름 옆에 괄호와 매개변수를 붙여서 호출할 수 있다. function showMessage() { alert("안녕하세요!"); } showMessage(); showMessage(..
[JavaScript] The Modern JavaScript Tutorial - (2-14) The "switch" statement
2021. 4. 29. 23:51
JavaScript/The Modern Tutorial JS
switch문 복수의 if문은 switch문으로 변경할 수 있다. 문법 switch문은 하나 이상의 case문으로 구성된다. default문도 있으나, 필수는 아니다. switch(x) { case 'value1': // if (x === 'value1') break; case 'value2': break; case 'value3': break; default: break; } 변수 x의 값과 case의 값을 일치 비교한다. x의 값과 일치하는 값을 찾으면 해당 case문 아래의 코드가 실행된다. 이때, break문을 만나거나 switch문이 끝나면 코드의 실행이 멈춘다. 일치하는 case가 없다면 default문 아래의 코드가 실행된다. (단, default문이 있는 경우에만) 예시 let a = 2 ..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnSU2X%2Fbtq3Aq8XZE1%2F0fGHPcgfwhAKAGsC78YU61%2Fimg.png)
2021년의 개발 공부 계획
2021. 4. 27. 01:26
중얼중얼
4월, 5월 따배씨 완강! 퇴근 후 1강 목표 6월 언리얼 강좌 2. DirectX12부터 수강 시작 (루키스님 커리큘럼) 꾸준하게 JavaScript (현재 하고 있는 튜토리얼 완료) Effective C++ Electron - 어떻게 공부할까 고민 중 🤔 언리얼 개발의 정석 (이득우 교수님 책) 게임 수학 (이득우 교수님 강의) 게임 수학 (책) 수학 (조범희님 강의) 고민 중 공부하고 싶어서 방통대 고민 중. 이왕이면 편입 말고 입학으로? 이것도 좀 고민. 다이어리를 따로 안 써서 😅 블로그에 대략적인 계획을 적어 놓으려고 한다. 다 한 것들은 틈틈히 들어와서 체크 처리 해야지. 파이팅! 💪
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FL7bP9%2Fbtq3y5xmT27%2FdTbqOJcHjey16DqftzFNTK%2Fimg.png)
[JavaScript] The Modern JavaScript Tutorial - (2-13) Loops: while and for
2021. 4. 26. 21:10
JavaScript/The Modern Tutorial JS
'while' 반복문 while (condition) { // 반복문의 body } condition이 truthy라면 반복문 body가 실행된다. let i = 0; while (i < 3) { alert(i); i++; } 반복문 body가 한 번 실행되는 걸 반복(iteration)이라고 한다. 위 예시에서는 세 번의 iteration을 만든다. let i = 3; while (i) { // i가 0이 되면 조건이 falsy가 되므로 반복문이 멈춘다. alert(i); i--; } 'do...while' 반복문 do { // 반복문 본문 } while (condition); body가 먼저 실행되고, 조건을 확인한 후 조건이 truthy인 동안에 body가 계속 실행된다. 조건이 truthy인지 아..
[JavaScript] The Modern JavaScript Tutorial - (2-12) Nullish coalescing operator '??'
2021. 4. 22. 21:06
JavaScript/The Modern Tutorial JS
개요 null 병합 연산자(Nullish coalescing operator) ??를 사용하면, 짧은 문법으로 여러 피연산자 중 그 값이 '확정되어 있는' 변수를 찾을 수 있다. a ?? b의 평가 결과는 다음과 같다. a가 null도 아니고 undefined도 아니면 a 그 외의 경우는 b let firstName = null; let lastName = null; let nickName = "Supercoder"; // null or undefined가 아닌 첫 번째 피연산자 alert(firstName ?? lastName ?? nickName ?? "Anonymous"); // Supercoder '??'와 '||'의 차이 ||는 첫 번째 truthy 값을 반환한다. ??는 첫 번째 정의된(def..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn0Cux%2Fbtq3c9zSffv%2FTBgBLcu89wB5K0XcKCm0U0%2Fimg.png)
[JavaScript] The Modern JavaScript Tutorial - (2-11) Logical operators
2021. 4. 21. 22:13
JavaScript/The Modern Tutorial JS
자바스크립트에는 세 종류의 논리 연산자 ||, &&, !가 있다. || (OR) result = a || b; 인수 중 하나라도 true이면 true를 반환하고, 그렇지 않으면 false를 반환한다. 즉, 피연산자가 모두 false인 경우를 제외하고는 연산 결과가 항상 true이다. alert(true || true); // true alert(false || true); // true alert(true || false); // true alert(false || false); // false 피연산자가 불린형이 아니면, 평가를 위해 불린형으로 변환된다. if (1 || 0) { // if (true || false) alert('truthy!'); } OR 연산자 ||는 if문에서 자주 사용되며, 주..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcif753%2Fbtq2QTExXkb%2FCHo0MHH5jpTVukK5E0uTMK%2Fimg.png)
[수학] 수포자를 위한 게임 수학 - 1. 공간의 수학 : 게임 수학의 개요
2021. 4. 20. 12:40
수학/수포자를 위한 게임 수학
youtu.be/WnZIgKYfY6w 그래픽 라이브러리를 사용하지 않는 이유 3차원 그래픽 사용 시 게임 엔진 언리얼 엔진 유니티 엔진 그래픽 라이브러리 DirectX OpenGL 점 찍는 기능에서 출발해서 모든 것을 직접 구현해 보자. → 3차원 그래픽과 관련된 연산 과정을 그래픽 카드에 일임한다. 따라서 렌더링 파이프라인에서 사용되는 핵심적인 수학을 알 길이 없다. 가장 확실한 공부 방법은 밑바닥에서부터 하나씩 만들어 나가는 것. 공리에서부터 시작하여 하나씩 쌓아 나가기. 게임 수학의 분류 공간에 대한 수학 물체에 대한 수학 회전에 대한 수학 공간에 대한 수학 게임 세계 == 현실 세계를 모방한 가상 세계 현실 세계와 게임 세계가 움직이는 원리는 완전 다르다고 생각해야 한다. 컴퓨터로 구성된 세계는 ..
[JavaScript] The Modern JavaScript Tutorial - (2-10) Conditional branching: if, '?'
2021. 4. 19. 21:50
JavaScript/The Modern Tutorial JS
'if'문 if(...)문은 괄호 안에 들어가는 조건을 평가하고, 그 결과가 true이면 코드 블록이 실행된다. 멀티라인은 중괄호 {}로 감싼다. let year = prompt('ECMAScript-2015 명세는 몇 년도에 출판되었을까요?', ''); if (year == 2015) alert('정답입니다!'); if (year == 2015) { alert("정답입니다!"); alert("아주 똑똑하시네요!"); } 불린형으로의 변환 if (...) 문은 괄호 안의 표현식을 평가하고, 그 결과를 불린 값으로 변환한다. 숫자 0, 빈 문자열 "", null, undefined, NaN은 불린형으로 변환 시 모두 false가 된다. ⇒ 'falsy' 이 외의 값은 true가 된다. ⇒ 'truthy' ..
[JavaScript] The Modern JavaScript Tutorial - (2-9) Comparisons
2021. 4. 18. 19:25
JavaScript/The Modern Tutorial JS
개요 a > b, a = b, a 1); // true alert(2 == 1); // false alert(2 != 1); // true let result = 5 > 4; // 비교 결과를 변수에 할당 alert(result); // true 문자열 비교 자바스크립트는 사전순으로 문자열을 비교한다. 실제 단어를 사전에 실을 때 단어를 구성하는 문자 하나하나를 비교해서 등재하는 것과 같이, 자바스크립트에서도 문자열을 구성하는 문자 하나하나를 비교한다. // String comparison alert('Z' > 'A'); // true alert('Glow' > 'Glee'); // true alert('Bee' > 'Be'); // true 문자열 비교 알고리즘 두 문자열의 첫 글자를 비교..
[JavaScript] The Modern JavaScript Tutorial - (2-8) Basic operators, maths
2021. 4. 16. 22:01
JavaScript/The Modern Tutorial JS
용어: '단항', '이항', '피연산자' 피연산자(operand)는 연산자가 연산을 수행하는 대상이다. 5 * 2에는 왼쪽 피연산자 5와 오른쪽 피연산자 2, 총 두 개의 피연산자가 있다. 인수(argument)라는 용어로 불리기도 한다. 피연산자를 하나만 받는 연산자는 단항(unary) 연산자라고 부른다. 단항 마이너스 연산자 -가 그 대표적이 예이다. let x = 1; x = -x; alert(x); // -1, 단항 마이너스 연산자는 부호를 뒤집는다. 피연산자를 두 개 받는 연산자는 이항(binary) 연산자라고 부르며, 앞서 나온 마이너스 연산자는 이항 연산자로도 사용할 수 있다. let a = 1, b = 3; alert(b - a); // 2, 이항 마이너스 연산자는 뺄셈 처리한다. 기호는 ..
[JavaScript] The Modern JavaScript Tutorial - (2-7) Type Conversions
2021. 4. 15. 22:50
JavaScript/The Modern Tutorial JS
형 변환 함수와 연산자에 전달되는 값은 대부분 적절한 자료형으로 자동 변환된다. 이를 형 변환(type conversion)이라고 한다. alert이 전달받은 값의 자료형과 관계없이 이를 문자열로 변환해서 보여 주는 것과 수학 관련 연산자가 전달받은 값을 숫자로 변환하는 경우가 대표적인 예라고 할 수 있다. 이외에도 전달받은 값을 원하는 타입으로 변환(명시적 변환)해 주는 경우도 있다. 문자형으로 변환 alert 메소드는 매개변수로 문자형을 받기 떄문에, alert(value)에서 value는 문자형이어야 한다. 만약 다른 형의 값을 전달받으면, 문자형으로 자동 변환된다. String(value) 함수를 호출해서 전달받은 값을 문자열로 변환할 수도 있다. let value = true; alert(typ..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcojVyS%2Fbtq2E9GVQJE%2Fl1HLJDA86Ij7upgLRUKwF1%2Fimg.png)
[JavaScript] The Modern JavaScript Tutorial - (2-6) Interaction: alert, prompt, confirm
2021. 4. 14. 22:54
JavaScript/The Modern Tutorial JS
alert alert 함수가 실행되면 사용자가 '확인(OK)' 버튼을 누를 때까지 메시지를 보여 주는 창이 계속 떠 있게 된다. alert("Hello"); 메시지가 있는 작은 창을 모달 창(modal window)이라고 부른다. 이 '모달'이란 단어에는 페이지의 나머지 부분과 상호작용이 불가능하다는 의미가 있으며, 따라서 사용자는 확인 버튼을 누르기 전까지는 모달 창 밖에 있는 버튼을 누르는 등의 행동을 할 수 없다. prompt 브라우저에서 제공하는 prompt 함수는 두 개의 인수를 받는다. title - 사용자에게 보여 줄 문자열 default - 입력 필드의 초기값(선택) result = prompt(title, [default]); 인수를 감싸는 대괄호 [...]는 해당 매개변수가 필수가 아닌..
[JavaScript] The Modern JavaScript Tutorial - (2-5) Data types
2021. 4. 13. 21:40
JavaScript/The Modern Tutorial JS
Dynamically typed language 자바스크립트의 변수는 자료형에 관계없이 모든 데이터일 수 있다. 따라서 변수는 어떤 순간에 문자열일 수 있고, 다른 순간엔 숫자가 될 수 있다. // no error let message = "hello"; message = 123456; 이처럼 자료의 타입은 있지만, 변수에 저장되는 값의 타입은 언제든지 바꿀 수 있는 언어를 '동적 타입(dynamically typed)' 언어라고 부른다. 숫자형 let n = 123; n = 3.141592; 숫자형(number type)은 정수 및 부동 소수점 숫자(floating point number)를 나타낸다. 일반적인 숫자 외에 Infinity, -Infinity, NaN 같은 '특수 문자 값(special ..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcAbB8Q%2Fbtq2aFnkitT%2FULGKZWdB7D73rKvvyAp9KK%2Fimg.png)
[JavaScript] The Modern JavaScript Tutorial - (2-4) Variables
2021. 4. 8. 23:55
JavaScript/The Modern Tutorial JS
변수 변수(variables)는 데이터를 저장할 때 쓰이는 '이름이 붙은 저장소'이다. 자바스크립트에서는 let 키워드를 사용하여 변수를 생성한다. let message; message = 'Hello!'; // 문자열을 저장한다. alert(message); // 변수에 저장된 값을 보여 준다. let message_one_line = 'Hello!'; // 선언과 함께 값을 할당할 수 있다. let user = 'John', age = 25, says = 'Hello'; // 한 줄에도 작성 가능하다. // 그러나 가독성을 위해 개행을 하는 편이 좋다. let user2 = 'Nabin'; let age2 = 25; let says2 = 'Hello!!'; // 이런 방식도 가능하다. let hell..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FD7vcl%2Fbtq1XTsC11x%2FssA8uQcycUtcgdk9q7pKb1%2Fimg.png)
[JavaScript] The Modern JavaScript Tutorial - (2-2~3) Code Structure & "use strict"
2021. 4. 7. 22:10
JavaScript/The Modern Tutorial JS
Code Structure 문장 문장(statement)은 어떤 작업을 수행하는 문법 구조(syntax structure)와 명령어(command)를 의미한다. 서로 다른 문장은 세미콜론으로 구분하며, 가독성을 위해 개행하는 것이 일반적이다. alert('Hello'); alert('World'); 세미콜론 줄 바꿈이 있다면, 세미콜론(semicolon)을 생략할 수 있다. 자바스크립트는 줄 바꿈이 있으면 이를 '암시적' 세미콜론으로 해석한다. 이를 세미콜론 자동 삽입(automatic semicolon insertion)이라고 부른다. ECMAScript® 2022 Language Specification ECMAScript® 2022 Language Specification The first and ..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQ3yhB%2Fbtq1XU57rgB%2Fk5V1Al916uyPBZcZeWaV3K%2Fimg.png)
[JavaScript] The Modern JavaScript Tutorial - (2-1) Hello, world!
2021. 4. 6. 22:13
JavaScript/The Modern Tutorial JS
서문 이 파트는 실행 환경에 독립적인 코어 자바스크립트(core JavaScript)를 다룬다. 코어 자바스크립트를 다루고 있긴 하나, 학습을 위해선 스크립트를 실행할 수 있는 환경이 필요하다. 실행 환경으로 브라우저를 사용하되, Node.js와 같이 브라우저 이외의 환경에 주력하는 학습자를 위해 브라우저 한정 명령어(alert 등)는 최소한으로 사용한다. 먼저, 웹 페이지에 스크립트를 삽입하는 방법에 대해 알아보자. Node.js처럼 서버 사이드 환경에서 스크립트를 실행하고 싶다면 node my.js와 같은 명령어를 사용하면 된다. 'script' 태그 스크립트 후 태그 옆에 붙은 주석은 절대 경로(/path/to/script.js)는 사이트의 루트에서부터 파일이 위치한 경로를 나타낸다. "script..