분류 전체보기(222)
-
[Array] Valid Mountain Array
Given an array of integers arr, return true if and only if it is a valid mountain array. Recall that arr is a mountain array if and only if: arr.length >= 3 There exists some i with 0 arr[i + 1] > ... > arr[arr.length - 1] 문제의 친절한 그림을 보면, valid mountain은 Increasing과 Decreasing의 변화가 단 한번만 일어나는 배열은 뜻하는 것 같다.(물론 mo..
2021.01.06 -
[Array] Check If N and Its Double Exist
Given an array arr of integers, check if there exists two integers N and M such that N is the double of M ( i.e. N = 2 * M). More formally check if there exists two indices i and j such that : i != j 0
2021.01.06 -
[자바스크립트] 프로토타입
듣고 싶은 강의가 있는데 클로져, this, 프로토타입 요 세가지는 정리를 하고 듣고 싶어서... 여기까지 정리한다 ㅠㅠ 1) 프로토타입 기본적인 구조는 이렇다. new 키워드를 이용하여 생성자 함수를 통해 인스턴스를 생성하는 경우, 생성자 함수는 protoType라는 메소드를 가지고 있고, 인스턴스에 생성된 __ proto__가 이를 참조하게 된다. 즉 자바스크립트의 함수인 객체는 (거의 항상) protoType을 가지고 있고 (거의 모든) 객체는 항상 __proto__라는 프로퍼티가 존재한다. 위의 그림을 예시로 들어보자. test()라는 함수객체를 생성하고, 이는 object객체를 참조한다(모든 객체 생성이 다 그렇다!) test는 protoType이라는 메소드를 가지고 있게 되고, 아래 새로 생성..
2020.03.01 -
[자바스크립트] this의 동작 방식
콘텍스트 객체는 this가 바라보고 있는 어떤 객체이다. 예컨데 const a = {name: gihong} 이고 this.name으로 기홍을 소환할 때 a가 바로 콘텍스트 객체가 되는 것이다. 여기에는 네가지 동작 방식이 존재한다 1) 기본 바인딩 기본적으로 this는 global객체인 window에 바인딩된다. 그러니까 아무생각없이, 아무 조건없이 this를 적용하면 이는 window에 바인딩된다는 뜻 (참고로 NodeJS에서는 전역객체가 window를 가리키지 않는다. 2) 암시적 바인딩 어떤 객체를 통해 함수가 호출되면, 그 객체가 this의 콘텍스트 객체가 된다. 위의 그림으로 예를 들어보자. 이 경우 global하겐 a를 3으로, obj 객체 안에서는 a를 5로 선언했다. 이 시점에서 func..
2020.03.01 -
[자바스크립트] 클로져(Closure)
클로져는 자바스크립트 ES6에서 let과 const를 지원하면서부터 거의 사용성이 소멸된 개념이지만 그래도 이해의 관점에서는 중요하기 때문에 정리해보았다. 1) 스코프 스코프를 한줄로 정의하면 '변수의 유효범위'가 된다. 즉, 특정 변수가 존재할 때, 이것이 영향을 미치는 범위를 뜻하는 것이다. 이를 다시한번 가공시켜 보자면, 변수의 선언을 어디에서 했는지 파악하는 것이라고 풀어낼 수 있다. 예시 코드를 보자. 이게 무슨 당연한 소리야! 라고 할 수도 있겠지만, a를 찍어내는 함수와 b를 찍어내는 함수의 기재는 다르다 a를 찍어내는 과정을 생각해보자면, 전역컨텍스트에서 a를 정의한 후-> aPrint 컨텍스트에서 찍어낼 a를 탐색-> global에서 정의된 a를 찾았다! 하지만 b를 찍어내는 과정은 전역..
2020.02.29 -
[Node.js] Sequelize와 MySQL 연결하기
무려 일곱시간을 헤맸다 ㅠㅠ 요게 자잘한 이슈들이 많아서 쉽게 접속이 되질 않는다. Sequelize는 Node.js에서 제공하는 ORM이다. ORM은 Object-Relation Mapping의 약자로, 딱 봐도 객체와 관련이 있어 보인다. 직역하면 '객체와의 관계 지도'정도 될 터인데, 사실 이놈을 사용함으로서 얻어지는 장점이 확 와닿진 않는다. 그러니까 도식화시켜보면 원래 이렇게 DB 접근을 위해서는, DB와 소통되는 언어인 쿼리를 사용해야 하지만 ORM이라는 친구가 있으면, 이렇게 DB와 대신 이야기해준다. 그러니까 쿼리를 잘 모르는 사람에게 매우 좋은 템일테다. 쿼리가 빠지면 코딩하는 양도 줄긴 할테고, 무엇보다 분업하기가 쉬울테니.. 자바는 JPA라는 유명한 ORM 기술 표준이 있고, 툴로는 ..
2020.02.24