Javascript 9

NestJS에서 TypeORM Repository layer 사용하기

NestJS를 인프런 무료 강의를 보면서 공부하고 있는데... TypeORM 버전이 달라 안되는 이슈가 발생했다. EntityRepository 데코레이터가 TypeORM 0.3.0 부터 deprecate 된 것. 해결하는 방법은 여기에서 찾을 수 있었다. 자세한 원리까지 나름 친절하게 되어있으니, 괜찮아 보이는데, 파일 경로나 자세한 내용이 보기 어려워 실제로는 여기를 참조했다. TypeORM 깃헙 레포에서 왜 없앴냐는 이유를 찾고 싶었으나, 답변이 달리진 않아보였다. 글타래를 보니, NestJS 깃헙 레포에 관련 이슈가 클로즈드 된 글을 연결할 수 있었고, 위 글을 통해 해결했다는 글을 찾았다. 그런데 다 적용해보고 나서 생각해보니... TypeORM 0.2.x 를 0.3.x로 업그레이드 하는게 아니..

자바스크립트 ES, ES5, ES6(ES2015)

자바스크립트(Javascript), ECMAScript, ECMA-262 자바스크립트를 공부하다보면 ES6 문법이라는 이야기를 많이 듣는다. 특히 변수 선언하면서 사용하는 let과 const 설명을 하며 자주 듣는데, ES6, ES5 하면 뭔가 버전 같기도 하고, 어떤 것인지 궁금했다. ES ES는 ECMAScript의 약자이다. 그리고 ECMAScript는 자바스크립트 언어의 표준 사양을 정의하는 규격이다. 이 규격은 Ecma International라는 국제 표준화 기구에서 정한 것. (European Computer Manufacturers Association이라는 이름에서 국제적으로 커지다보니 이름을 그냥 Ecma로 바꿨다고 한다.. ISO와 비슷하다고 생각하면 편할 듯) ISO 9001, 14..

Javascript/Basics 2023.04.09

this[0]

this, 이것 JS에서 this는 중요하다. 그리고 복잡하다. 지금까지 공부한 것을 정리하기 위해 글을 쓰지만, 아직 모르는 부분이 많은 것 같다. 우선 this를 쉽게 정리하면 "나를 불러온 객체가 이것이다"를 의미한다. 그러니까 this는 누가, 어떤 상황에서 불렀느냐에 따라 달라지는데 이때문에 헛갈리기 시작한다. 상황에 따라 달라진다는 것을 다음 두 상황에서 확인할 수 있다. ① 브라우저에서 this를 출력했을때와 ② node에서 this 출력했을때를 비교해보자. 위에서 보듯, 브라우저에서 출력한 this는 window라는 객체를 보여주고, node로 실행한 this는 빈 객체인 {}를 반환했다. 어떤 상황이냐에 따라 달라진다는 것은, 누가 나를 불러냈냐에 따라 다른데, 전역문맥이 다르기 때문이다..

Javascript/Basics 2023.04.08

Hoisting, 호이스팅

예전 회사에서 공장에 실사를 가면 호이스트를 많이 봤다. H빔에 연결된 도르레와 모터, 윈치... 물건을 들어 올리고 옮기는 데 사용하는 그 호이스트. 오늘 자바스크립트에서 호이스팅이라는 개념을 공부했다. 끌어 올린다는 뜻의 호이스트, 호이스팅은 JS가 브라우저나 node 같은 인터프리터에서 실행될 때, 어떤 순서로 변수를 선언하고 실행하느냐를 이해하는데 중요한 개념이다. function a () { console.log(b); var b = 'bbb'; console.log(b); function b() { } console.log(b); } a(); 위의 함수를 생각해보면, 처음 console.log(b)를 실행하면 b가 정의되지 않았으니, undefined가 출력이 되고, 그다음 b를 'bbb'로 ..

Javascript/Basics 2023.04.08

객체(Object) 다루기

배운 것 자바스크립트에서 객체는 python의 dictionary와 class 둘 다를 포괄하는 개념으로 이해했다. 오늘은 dictionary 같은 자료형으로서의 객체를 다루는 방법에 대해서 정리해 본다. 1. 객체(Object) 만들기 객체는 {propertyName: propertyValue}로 이뤄져 있다. 일단 this 를 쓰지 않고도 객체를 dictionary 처럼 만들 수 있다. this를 쓰는건 class형태로서의 Object를 정리할 때 볼 것 예를 들어, 아래와 같이 person이라는 객체를 만들 수 있다. let person = { name: 'Hong', age: 10, gender: "Male", } 그런데 자바스크립트는 loosely-typed language 라고 하지 않는가, ..

Javascript/Basics 2023.04.03

배열(Array) 다루기

배운 것 1. 배열(Array) 요소 다루기 1.1. push 배열 끝에 하나 이상의 요소를 추가 const arr = [1, 2, 3]; arr.push(4, 5); console.log(arr); // [1, 2, 3, 4, 5] 1.2. pop 배열의 마지막 요소를 제거하고 반환(return) shift와 unshift로 할거면 push랑 pull로 하지 const arr = [1, 2, 3]; const last = arr.pop(); console.log(last); // 3 console.log(arr); // [1, 2] 1.3. shift 배열의 첫 번째 요소를 제거하고 반환(return) const arr = [1, 2, 3]; const first = arr.shift(); consol..

Javascript/Basics 2023.04.01

데이터 타입

배운 것 1. 데이터 타입 JS에는 원시형과 객체가 있다. 1.1. 원시형(Primitive values) 원시형은 불변(immutable) 타입이다. 원시형에는 boolean, null, undefined, number, string, symbol 이 있다. boolean 타입 true와 false 두개만 있다. (왜 불린...으로 쓰고, 읽는 사람이 있는지 잘 모르겠다. 불리언 아닌가?) null 타입은 null 만 있고, undefined도 undefined만 있다. number는 -(2^53 − 1)부터 2^53 − 1까지의 수를 가진다. 왜냐면, 링크(64비트를 쓰는데, 부호에 1개, exponent에 11개, 나머지는 숫자로 한다는 약속). 그리고 +Infinity와 -Infinity, NaN..

Javascript/Basics 2023.04.01

jQuery와 querySelector

Issue jQuery를 사용해서 간단한 웹페이지 만들기 중에, jQuery에 대해서 한번 찾아봐야 겠다 싶었는데 뭔가 현업에서 사용하지 않는 분위기가 감지되었다. 최근 글은 많이 없고 2년 전 까지 게시물이 조금 있는 느낌. "jQuery 현업"으로 검색해보니 jQuery에 대한 슬픈 고찰이라는 재밌는 글을 발견했다. Try&Error 글의 요지는 초창기 Javascript에서 불편함을 해소하기 위해 jQuery가 탄생했으나, ES6이 나오고, SPA(Single Page App) 라이브러리, 프레임워크가 많아지면서 jQuery가 해소해주던 많인 부분이 ES6에서나 SPA 라이브러리, 프레임워크로 해결이 되니, 자연스럽게 사용빈도가 내려가고 있다는 것. 그래서 나도 간단하게 jQuery로 구현했던 것을..

Javascript로 페이지 이동 시 Query String 보내고 받기

월요일에 토이 프로젝트를 잠깐 기획하면서 점심메뉴 월드컵으로 주제를 정했고, 결과를 나열한 첫 페이지와 게임을 진행하는 페이지를 나눠야 할 필요가 생겼다. 페이지를 넘어가며 보내야 할 간단한 텍스트 정보가 있었는데, 지금까지 배운 것은 한 페이지에서 어떤 버튼(onclick)을 누르거나 페이지 로딩이 완료(.ready)하는 등의 상황에서, fetch를 이용해 GET이나 POST 요청을 해왔다. 우선 간단한 문자열을 가지고 넘어가는 방법을 찾고, 넘어간 페이지에서 그 값을 읽는 방법을 찾아야 했다. 가장 먼저 다른 페이지로 이동하는 방법을 알아야 했다. window.location.href("url") window.location.assign("url") window.location.replace("url..

728x90