목록분류 전체보기 (89)
설모의 기록
What's up with the IIFEThe js generated for the class could have been:클래스를 이용해 생성된 코드이다.function Point(x, y) { this.x = x; this.y = y; }Point.prototype.add = function (point) { return new Point(this.x + point.x, this.y + point.y); };The reason its wrapped in an Immediately-Invoked Function Expression (IIFE) i.e.즉시 실행함수 표기법으로 감싸진 이유는(function () { // BODY return Point; })();has to do with inherit..
superNote that if you call super on a child class it is redirected to the prototype as shown below:만약 자식 클래스에서 super 를 호출했다면 프로토타입으로 리디렉션된다.class Base { log() { console.log('hello world'); } } class Child extends Base { log() { super.log() }; }generates:var Base = (function () { function Base() { } Base.prototype.log = function () { console.log('hello world'); }; return Base; })();var Child = (f..
ClassesThe reason why it's important to have classes in JavaScript as a first class item is that:자바스크립트에서 일급 객체로서 클래스들을 사용하는게 왜 중요한지에 대한 이유가 나와있다. Classes offer a useful structural abstractionProvides a consistent way for developers to use classes instead of every framework (emberjs,reactjs etc) coming up with their own version.Object Oriented Developers already understand classes. 클래스들은 유용한 구조적..
Index SignaturesAn Object in JavaScript (and hence TypeScript) can be accessed with a string to hold a reference to any other JavaScript object.자바스크립트나 타입스크립트에서 객체는 다른 자바스크립트 객체에 대한 참조를 가지고 있는 string 으로 접근 가능하다. Here is a quick example:let foo:any = {}; foo['Hello'] = 'World'; console.log(foo['Hello']); // World We store a string "World" under the key "Hello". Remember we said it can store any J..
이 문제는 중복을 제거하고 수를 정렬해 출력하는 문제입니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int[] arr = new int[N]; for (int i = 0; i < N; i++)..
이 문제는 입력된 수만큼 사람이 원으로 앉고, 입력된 값만큼 원을 돌며 사람을 제거하는 문제입니다. 푸는 방식- 큐에 N 까지의 숫자를 모두 넣습니다.- (M - 1) 만큼 큐에서 숫자를 빼 마지막에 넣습니다.- 큐에서 한개를 pop 해 출력합니다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class..
이 문제는 dfs 와 bfs 두 방식을 이용해 그래프 탐색 결과를 출력하는 문제입니다. 단 방문할 때 낮은 정점 순으로 방문을 해야 합니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { static int N, M, V; static int[][] graph; static int[] dx = { 0, -1, 0, 1 }, dy = { 1, 0, -1, 0 }; static int[] visit; ..
이 문제는 큐를 이용하는 문제입니다. 우선순위가 높은 문서를 먼저 뽑고 그 다음 들어온 순서대로 문서를 프린트해 입력된 인덱스값의 문서가 몇 번째로 프린트되게 되는지를 구하는 문제입니다. 푸는 방식- linkedlist 에 우선순위 값을 전부 저장합니다. - 큐에 입력된 순서대로 우선순위를 저장합니다.- 큐를 돌면서 getMax() 함수를 이용해 가장 높은 우선순위를 구하고, 그 값과 현재 가장 앞에 있는 문서의 우선순위 값과 같으면 pop, 아니면 다시 push 합니다. 이 때, 우선순위 값도 같고 구하려는 인덱스가 현재의 문서의 인덱스와 일치하면 인덱스를 출력하고 다음 테스트케이스로 넘어갑니다. import java.io.BufferedReader; import java.io.BufferedWrite..
Cocos Creator 엔진, VS Code IDE, TypeScript 로 게임을 개발하기 위한 개발환경 구축에 대해 정리해보았습니다. 1. Cocos Creator 설지아래의 사이트에 들어가 본인의 OS 에 맞게 Cocos Creator 를 설치해줍니다.http://cocos2d-x.org/creator 아래는 Cocos creator 의 api reference 사이트입니다.http://cocos2d-x.org/docs/api-ref/creator/v1.0/2. Visual Studio Code 설치먼저 본인의 OS 에 맞게 VS Code 를 설치해줍니다.widow: https://code.visualstudio.com/docs/setup/windowsmac: https://code.visuals..
대학교 유니티 강의를 들을 때 GameManager 스크립트를 만들면서 싱글톤에 대해 살짝 배웠는데, 그때는 중요한지도 모르고 어려워서 넘겼던 개념인데,,회사에 다니면서 직접 싱글톤으로 코드를 구현하다보니 정말 중요한 패턴이라는 것을 꺠달았습니다.싱글톤 패턴은 어떤 특정 클래스의 인스턴스를 단 하나만 생성하는 것입니다. 따라서 동일한 클래스를 이용해 인스턴스를 여러개 생성해도 처음 생성한 인스턴스를 공유하게 되는 것입니다.싱글톤 패턴은 여러 언어에서 사용되지만, 지금은 자바스크립트를 기반으로 설명드리겠습니다.자바스크립트에서 객체를 생성하는 방식은 두가지가 있습니다. 각 방법마다 싱글톤을 구현하는 방법을 설명드리겠습니다. 1. 리터럴 방식리터럴 방식으로 생성을 한다면 그 자체가 싱글톤 패턴입니다. 변수 o..