JavaScript & TypeScript31 [TS] 제네릭(Generics) 클래스 또는 함수에서 사용할 타입(Type)을, 그 클래스나 함수를 사용할 때 결정하는 것으로, 타입에 유연성을 제공하여 컴포넌트 등에서 재사용을 가능하게 해주는 타입입니다. 즉, 어떠한 타입이든 받으면서 받은 해당 타입을 그대로 리턴하게 하는 것 입니다. 제네릭 타입은 다양한 타입을 받을 수 있다는 유연성이란 점에서 타입의 정보가 동적으로 결정됩니다. 클래스 상속을 사용하면 별도의 자료 타입을 받고자 하는 클래스를 추가해야 하고 중복되는 코드를 양산하기에 불편합니다. 바로 이런 경우에 유용하게 사용할 수 있는 것이 제네릭 입니다. 함수 function checkNull(arg: T | null): T { if (arg == null) { throw new Error() } return arg; } fu.. 2022. 3. 14. [TS] OOP Class 타입스크립트에서는 타입을 기본적으로 설정을 해주어야 하는데, OOP를 만족하면서 코드를 작성해 주기 위해서는 결과물에 대한 타입을 먼저 설정해 주어야 합니다. type Smartphone = { color: string; brand: apple; }; 1. Encapsulation(캡슐화) 연관있는 데이터들을 하나의 오브젝트 안에 모아 두는 것이 캡슐화라고 합니다. 그리고 외부에서 보일 필요 없는 내부 데이터를 숨기기도 합니다. 그러므로 내부에 상태를 변경하지 않고 어떤 외부의 데이터가 들어오느냐에 따라 상태가 변하도록 만듭니다. static class 안에서 함수나 변수 앞에 static을 사용하면 class 레벨로 설정이 되며, 쉽게 말해서 만들고 있는 클래스에 고정된 데이터가 되는 것입니.. 2022. 3. 14. [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. 이전 1 2 3 4 5 6 다음