삽질의 현장 478

TypeScript TypeORM Migration 정리

TypeORM 사용중 migration 기능을 대충 본것 같아 관련한 기능을 정리해봤다. 모델 변경사항을 데이터 베이스에 동기화해야한다. 일반적으로 데이터베이스에서 데이터를 가져오면 프로덕션에서 스키마를 동기화할 때 사용하는 synchronize: true 는 안전하지 않다. 마이그레이션은 데이터베이스 스키마를 업데이트하고 기존 데이터베이스에 새로운 변경사항을 적용하기 위해 SQL 쿼리가 포함된 단일 파일이다. import { Entity, Column, PrimaryGeneratedColum } from "typeorm" @Entity() export class Post { @PrimaryGeneratedColum() id: number; @Column() title: string; @Column() ..

TypeScript로 DI 구현해보기

TypeScript 공부 중 DI에 대한 좋은 자료가 있어 번역하며 정리해본다. 참고: Dependency Injection in TypeScript 성숙한 프레임워크는 일종의 의존성 주입(DI)를 구현할 수 있다. DI는 한 개체가 다른 개체의 종족성을 제공하는 기술이다. class Foo {} class Bar { foo: Foo; constructor() { this.foo = new Foo(); } } class Foobar { foo: Foo; bar: Bar; constructor() { this.foo = new Foo(); this.bar = new Bar(); } }이것은 클래스 간에 직접적이고 교환 불가능한 종속성을 갖게 된다. 코드가 복잡해지고 구성 요소의 재사용성이 어려워져 테스트도..

의존성 주입이란 무엇인가?

의존성 주입에 대해 리서칭하는 중 답변이 이해하기 좋아 댓글로 오고 간 내용을 정리해보았다. 참고: 의존성 주입이 뭔가요? 의존성 주입이란, '필요한게 있을 때 무엇이 필요하다고 선언하면 알아서 제공해줘' 즉, 관심의 분리(seperation of concern)을 의미한다. 일반적으로 class의 instance를 다음과 같이 생성하여 사용한다. MyClass myClass = new MyClass(); instance 생성 비용이 크다거나, 여러 군데서 사용한다거나, 일일히 생성할 필요가 있는지 등에 대한 이유로 instance의 생성을 컨테이너에 맡겨서 일괄적으로 진행하고, life-cycle 관리 역시 컨테이너에 맡겨버리게 된다. instance의 생성 및 관리 주체가 내가 아니라 컨테이너가 되기..

@Decorator에 대하여 알아보자

데콜레이터에 대해 알아보다가, TypeScript KR 깃허브 페이지에 번역 본이 있어 정리해봤다. TypeScript와 ES6의 클래스가 도입됨에 따라 클래스 및 클래스 멤버에 어노테이션 또는 변경을 지원하기 위해 추가적인 기능이 필요한 일부 상황이 있다. 데코레이터는 클래스 선언과 멤버에 대한 어노테이션과 메타-프로그래밍 구문을 모두 추가할 수 있는 방법을 제공한다. 데코레이터에 대한 실험적인 지원을 사용하려면 커멘드 라인이나 tsconfig.json 에서 experimentalDecorators 컴파일러 옵션을 사용하도록 활성화해야 한다. 데코레이터는 클래스 선언, 메서드 접근제어자, 프로퍼티 또는 매개변수에 첨부될 수 있는 특별한 종류의 선언이다. 데코레이터는 @표현식의 형태로 사용하는데, 여기서..

프로그램을 작성하는 33가지 방법 - Chaptor 09 정리

최근 '프로그래밍 패턴 (프로그램을 작성하는 33가지 방법)' 을 읽기 시작했다. 한 가지의 기능을 Chaptor 마다 각각 다른 패턴으로 구현하여 설명한 책이다. 모두 비슷하게 동작하지만 환경과 상황이라는 제약 조건 안에서 탄생된 패턴을 직접 코드로 보여주고 있어직접 코딩을 하며 이해하고 있는 중이다. 책에서 소개하는 한 가지 기능은 '텍스트 파일을 읽어 단어 빈도 출력' 하는 프로그램이다. 가장 빈도가 높은 단어 순으로 그에 해당하는 빈도를 내림차순으로 출력하는 기능을 구현하고 있다. 이전 Chaptor 보기 :프로그램을 작성하는 33가지 방법 - Chaptor 08 정리 Chaptor 09 유일 값이 변환될 대상인 추상화가 존재한다. 이 추상화는 (1) 값을 감싸 그 값을 해당하는 추상화로 만들고 ..

프로그램을 작성하는 33가지 방법 - Chaptor 08 정리

최근 '프로그래밍 패턴 (프로그램을 작성하는 33가지 방법)' 을 읽기 시작했다. 한 가지의 기능을 Chaptor 마다 각각 다른 패턴으로 구현하여 설명한 책이다. 모두 비슷하게 동작하지만 환경과 상황이라는 제약 조건 안에서 탄생된 패턴을 직접 코드로 보여주고 있어직접 코딩을 하며 이해하고 있는 중이다. 책에서 소개하는 한 가지 기능은 '텍스트 파일을 읽어 단어 빈도 출력' 하는 프로그램이다. 가장 빈도가 높은 단어 순으로 그에 해당하는 빈도를 내림차순으로 출력하는 기능을 구현하고 있다. 이전 Chaptor 보기 :프로그램을 작성하는 33가지 방법 - Chaptor 07 정리 Chaptor 08. 앞으로 차기 각 함수에서 추가 매개변수를 취하는데, 맨 마지막 매개변수는 일반적으로 다른 함수를 사용한다. ..

프로그램을 작성하는 33가지 방법 - Chaptor 07 정리

최근 '프로그래밍 패턴 (프로그램을 작성하는 33가지 방법)' 을 읽기 시작했다. 한 가지의 기능을 Chaptor 마다 각각 다른 패턴으로 구현하여 설명한 책이다. 모두 비슷하게 동작하지만 환경과 상황이라는 제약 조건 안에서 탄생된 패턴을 직접 코드로 보여주고 있어직접 코딩을 하며 이해하고 있는 중이다. 책에서 소개하는 한 가지 기능은 '텍스트 파일을 읽어 단어 빈도 출력' 하는 프로그램이다. 가장 빈도가 높은 단어 순으로 그에 해당하는 빈도를 내림차순으로 출력하는 기능을 구현하고 있다. 이전 Chaptor 보기 :프로그램을 작성하는 33가지 방법 - Chaptor 06 정리 Chaptor 07. 무한 거울 문제에서 모든 또는 중요한 부분을 귀납법을 통해 모델링한다. 즉, 기초 사례(n0) 다음에 n+1..

프로그램을 작성하는 33가지 방법 - Chaptor 06 정리

최근 '프로그래밍 패턴 (프로그램을 작성하는 33가지 방법)' 을 읽기 시작했다. 한 가지의 기능을 Chaptor 마다 각각 다른 패턴으로 구현하여 설명한 책이다. 모두 비슷하게 동작하지만 환경과 상황이라는 제약 조건 안에서 탄생된 패턴을 직접 코드로 보여주고 있어직접 코딩을 하며 이해하고 있는 중이다. 책에서 소개하는 한 가지 기능은 '텍스트 파일을 읽어 단어 빈도 출력' 하는 프로그램이다. 가장 빈도가 높은 단어 순으로 그에 해당하는 빈도를 내림차순으로 출력하는 기능을 구현하고 있다. 이전 Chaptor 보기 :프로그램을 작성하는 33가지 방법 - Chaptor 05 정리 Chaptor 06. 코드 골프 코드 줄 수를 가능한 적게 한다. 가능한 한 가장 짧은 프로그램을 다양한 프로그래밍 언어로 만드는..

프로그램을 작성하는 33가지 방법 - Chaptor 05정리

최근 '프로그래밍 패턴 (프로그램을 작성하는 33가지 방법)' 을 읽기 시작했다. 한 가지의 기능을 Chaptor 마다 각각 다른 패턴으로 구현하여 설명한 책이다. 모두 비슷하게 동작하지만 환경과 상황이라는 제약 조건 안에서 탄생된 패턴을 직접 코드로 보여주고 있어직접 코딩을 하며 이해하고 있는 중이다. 책에서 소개하는 한 가지 기능은 '텍스트 파일을 읽어 단어 빈도 출력' 하는 프로그램이다. 가장 빈도가 높은 단어 순으로 그에 해당하는 빈도를 내림차순으로 출력하는 기능을 구현하고 있다. 이전 Chaptor 보기 :프로그램을 작성하는 33가지 방법 - Chaptor 04 정리 Chaptor 05. 파이프라인 규모가 큰 문제를 함수형(functional) 추상화를 사용해 분해한다. 함수는 입력을 취해 출력..

프로그램을 작성하는 33가지 방법 - Chaptor 04 정리

최근 '프로그래밍 패턴 (프로그램을 작성하는 33가지 방법)' 을 읽기 시작했다.한 가지의 기능을 Chaptor 마다 각각 다른 패턴으로 구현하여 설명한 책이다.모두 비슷하게 동작하지만 환경과 상황이라는 제약 조건 안에서 탄생된 패턴을 직접 코드로 보여주고 있어직접 코딩을 하며 이해하고 있는 중이다.책에서 소개하는 한 가지 기능은 '텍스트 파일을 읽어 단어 빈도 출력' 하는 프로그램이다. 가장 빈도가 높은 단어 순으로 그에 해당하는 빈도를 내림차순으로 출력하는 기능을 구현하고 있다.이전 Chaptor 보기 :프로그램을 작성하는 33가지 방법 - Chaptor 03 정리 Chaptor 04. 요리책 절차적 추상화를 이용해 규모가 큰 문제를 더 작은 단위로 분할함으로써 제어 흐름 복잡도를 완화한다. 프로시저..