본문 바로가기

전체 글102

[TS] Type 타입스크립트에서 타입을 설정하는 방법은 다양합니다. 기본적인 부분만 정리해보려 합니다. 참고 할만한 핸드북 링크 - https://joshua1988.github.io/ts/ 1. 기본 타입 자바스크립드와 다르게 타입스크립트는 변수, 함수를 선언할 때, 타입을 꼭 설정해 주어야 합니다. 1. number const num: number = 3; 2. string const str: string = 'Hello World'; 3. boolean const bool: boolean = false; 4. void function World(): void { console.log('hello world'); return; } 함수가 어떠한 것도 리턴하지 않을 때 사용합니다. (생략 가능) 5. never fun.. 2022. 3. 7.
[TS] Type Script 타입스크립트는 2012년도에 마이크로소프트 회사에서 만든 언어 입니다. 자바스크립트는 어떠한 변수에 타입을 지정해주지 않아도 되지만, 타입스크립트에서는 어떠한 타입이 들어가야 하는지 정적으로 설정해 주어야 합니다. (자바스크립트는 Dynamically typed, 타입스크립트는 Statically typed) 자바스크립트를 사용하다가 타입스크립트를 사용한다면 타입이라는 부분에 불편한 언어라고 생각 할 수 있지만, 자바스크립트는 가독성이 떨어집니다.(어떤 변수와 함수를 쓰는지 유추하기 어려움) 그리고 사용자가 사용하면서 에러가 발생하여 죽는 경우가 빈번해지는데, 타입스크립트는 코딩을 하면서 실시간으로 에러를 확인 할 수 가 있습니다. 뿐만 아니라 강력한 객체지향 프로그래밍(OOP)을 할 수 가 있습니다. .. 2022. 3. 6.
[node.js] TDD / Jest(관련링크) 1. TDD TDD는 Test Driven Development의 약자로 '테스트 주도 개발', 개발하는 방식을 이야기 합니다. 쉽게 말해서 예상하거나, 원하는대로 코드가 동작하는지 확인 및 점검을하는 것 입니다. 수학문제를 풀 때 주로 하는 검산과 같은 맥락입니다. 이 검산을 자동으로 계속해서 반복하여 확인을 해주는 것 입니다. 만약 TDD를 구현하지 않으면 코드가 제대로 동작을 하는지 확인하기 위해서는, 모든 동작을 하나하나 일일이 눌러봐야하고, 시간이 굉장히 오래 걸립니다. 추가적으로 기능을 변경하거나 리팩터링을 하면서 결과값이 바뀌거나 버그가 생길 수 있습니다. 하지만 TDD를 작성한다면 이러한 문제점들을 신경쓰지 않고 쉽게 바로잡으면서, 시간절약과 동시에 빠르게 개발을 진행 할 수 있습니다. 또.. 2022. 3. 5.
[Node.js] TDD를 위한 Dependency Injection 재사용성을 높여줍니다. 테스트에 용이. 코드 단순화. 종속적이던 코드의 수를 줄임. 코드의 가독성이 높아짐. 종속성이 감소. 구성 요소의 종속성이 감소하면, 변경에 민감하지 않습니다. 결합도(coupling)는 낮추면서 유연성과 확장성은 향상. 객체간의 의존관계를 설정 가능. 객체간의 의존관계를 없애거나 줄임. Dependency Injection은 의존성 주입으로써 위와 같은 장점을 가집니다. 의존성은 A객체에서 B객체의 기능을 필요로 하는 경우 우리는 A객체는 B객체를 ‘의존한다’ 라고 표현할 수 있습니다. 왜냐하면 A객체를 온전히 사용하기 위해선 B객체가 필요합니다. 즉, 의존대상 B객체가 변하게 되면, 그것이 A에 영향을 미치는 것입니다. 그래서 강한 결합으로써 커플링이라 부르기도 합니다. 주입은.. 2022. 2. 21.
[Node.js] Sequelize ondelete ondelete 속성은 데이터를 삭제하는데 있어서 관련된 데이터를 삭제하는데 용이합니다. 1:N의 관계의 테이블에서 1의 데이터를 지우면 관련된 N을 지우게 됩니다. 예를들어 한 유저가 여러 게시물을 썼는데 그 유저가 회원 탈퇴를 하게 되면 그 유저가 쓴 게시물이 모두 사라지는 방식입니다. ondelete에 대해 쓰는 이유는 수없이 찾아보고 stackoverflow를 찾아 봤지만 동작이 되지 않았는데 결국 해결 방법을 찾았습니다. 아래는 user : photo = 1 : N 관계로 설정한 내용 입니다. 1(hasMany) : N(belogsTo) Model model - user.js (1) static associate(models) { user.hasMany(models.photo, { foreign.. 2022. 2. 15.
[JS] CommonJS와 ES6 JS 모듈화 역사 require는 NodeJS에서 사용되고 있는 CommonJS 키워드이고, import는 ES6(ES2015)에서 새롭게 도입된 키워드입니다. 일반적으로 import ES6(ES2015)는 사용자가 필요한 모듈 부분만 선택하고 로드 할 수 있기 때문에 더 선호됩니다. 최근 ES6(ES2015) 모듈 시스템인 import가 많이 사용되고 있지만, 그러나 아직까지는 import 키워드가 100% 대체되어 사용될 수 없습니다. 태그를 사용하는 브라우저 환경과, NodeJS에서도 CommonJS를 기본 모듈 시스템으로 채택하고 있기 때문에, Babel과 같은 ES6 코드를 변환(transpile)해주는 도구를 사용할 수 없는 경우에는 require 키워드를 사용해야 합니다. node.js프로젝.. 2022. 2. 13.