타입스크립트 - 비동기 처리

HTTP 요청은 비동기이므로 콜백 헬과 같은 중첩 스코프를 만들어 냅니다. 타입스크립트는 ES6에서 제안된 프로미스를 이용해 콜백 헬이 되지 않도록
제어 흐름을 개선할 수 있습니다.
자바스크립트는 비동기 요청 후 응답 결과를 콜백 함수로 처리합니다. 이렇게 콜백 함수로 처리하는 상황은 대체로 응답 시점을 예측할 수 없을 때입니다.
이와 같은 상황의 예로 HTTP 요청에 대한 응답 처리나 파일 I/O 작업 등이 있습니다. 비동기 요청 후 응답 결과는 콜백 함수의 매개변수를 통해 전달됩니다.

스코프가 깊어지게 되면 콜백 함수와 제어문 사용으로 스코프가 중첩돼 가독성이 안좋습니다.

타입스크립트 - 제네릭

제네릭(generics)은 클래스와 함수에 타입이 고정되는 것을 방지하고 재사용할 수 있는 요소를 선언할 수 있게 합니다. 제네릭은 C#이나 자바와 같은 언어에서 제공됐던 기능으로 타입스크립트 0.9 부터 지원됐습니다.

  • 제네릭의 타입 검사를 컴파일 시간에 진행해 타입 안정성을 보장한다.
  • 캐스팅과 관련한 코드를 제거할 수 있다.
  • 제네릭을 이용하면 제네릭 로직을 이용해 재사용이 가능한 코드를 만들 수 있다.

타입스크립트 - 타입 선언과 변경, 타입호환

타입 에일리어스(type alias)

타입 에일이어스는 타입스크립트 1.4 버전부터 지원된 특징입니다. 타입 에일리어스를 이용하면 기존 타입에 새로운 이름을 지을 수 있습니다.

[형식]
type<바인딩 식별자> = 타입;

바인딩 식별자(binding identifier)는 타입의 별칭에 해당하는 타입 에일라어스입니다.
타입에 새로운 별칭을 만드는 과정을 줄여서 에일리어싱(aliasing)이라고 합니다.

타입스크립트 - 고급타입

유니언 타입

유니언 타입은 타입스크립트 1.4에 추가된 특징입니다. 유니언타입은 2개 이상의 타입을 하나의 타입으로 정의한 타입입니다.
유니언 타입을 선언 할 때는 파이프(|)를 타입명 사이에 넣습니다.

타입A | 타입B | 타입C …

유니언 타입으로 선언된 변수는 나열된 타입 중 하나의 타입에 속한 값만 할당 받습니다.

타입스크립트 - 모듈

모듈(modules)은 독립 가능한 기능의 단위 입니다. 프로그램은 여러 모듈로 구성돼 있고 모듈을 결합해 하나의 프로그램을 만듭니다.
모듈을 사용하면 다음과 같은 장점이 있습니다.

  • 유지보수의 용이성
  • 전역 스코프 오염을 방지
  • 재사용성 향상

첫 번째 장점은 모듈을 사용하면 유지보수가 쉬워집니다. 공통기능을 모듈로 정의해 사용하면 애플리케이션의 전체적인 수정 없 모듈의 수정이나
교체만으로도 코드를 효과적으로 수정할 수 있습니다.

두 번째 장점은 모듈은 전역 스코프 오염(global scope pollution)을 방지합니다. 전역 스코프틑 전역 이름 공간을 가지므로 변수의 이름이나
함수 이름을 중복해 선언 할 수 없습니다. 그런데 변수나 함수등을 파일 내부에 한정해 모듈로 선언하면 이름 공간이 파일 단위로 제한되며 전역 이름 공간을 침범하지 않습니다.

세 번째 장점은 모듈을 사용하면 재사용성이 향상 됩니다. 모듈화를 잘 해두면 현재의 프로젝트뿐 아니라 다른 프로젝트에도 공유해 재사용할 수 있습니다.

타입스크립트 - 클래스와 인터페이스

객체지향 프로그래밍과 클래스 기초

객체지향 프로그래밍(Object Oriented Programming, OOP)은 커다란 문제를 클래스 단위로 나누고 클래스 간의 관계를 추가하면서 코드 중복을
최소화 하는 개발방식
이다. 클래스 간의 관계를 추가할 때는 상속이나 포함 관계를 고려하여 추가한다. OOP를 통해 어플리케이션을 개발하면 코드 중복을
상당히 줄일 수 있다. 타입스크립트는 자바스크립트(ES6)에 비해서 OOP를 지원하는 부분이 훨씬 더 많다.

타입스크립트 - 함수

함수는 애플리케이션의 코드를 구성하는 기본 요소입니다. 타입스크립트에서 함수는 클래스나 네이스페이스 내에 선언할 수 있고 때론 모듈로서 사용됩니
다. 자바스크립트에서 함수를 선언했던 것과 동일한 방식으로 선언해 사용자가 원하는 단위 기능을 수행 할 수 있습니다. 다른 점이 있다면 함수의 매개변수나 반환값에 타입을 지정해 타입 안전성을 강화할 수 있습니다.

자바스크립트 함수

기명 함수와 익명 함수의 선언

함수의 이름을 명시해 선언하는 기명 함수(named function)와 함수의 이름을 명시하지 않고 사용하는 익명 함수(anonymous function)로 나뉩니다.

webstorm 과 jira 연동해서 사용하기

webstorm을 사용하고 업무를 진행할 때 jira를 사용하다보니 jira를 별도의 창으로 띄워놓고 이슈를 생성하고, webstorm에서 작업하다가 커밋하면서
jira 티켓번호 생성하고 푸시한 다음에 티켓을 이동시켜주고 하는 반복작업이 많아졌습니다. 어떻게 보면 별거아닌 작업일 수 있지만 까먹게 되는 일이
많고 바쁠때는 모아서 하기도 하다보니 이슈 트레킹 하는데 문제가 있어보여 찾아보다가 연동하는 방법을 찾아 정리해 보았습니다.

단축키는 Mac OS를 기준으로 정리하였습니다.

webstorm에서 gitflow 사용하기

vscode 에서 webstorm으로 갈아타면서 플러그인으로 사용하던 몇가지 기능들을 webstorm 에서도 사용해 보고 싶었습니다.
그 중에 git 을 사용하다 보면 대부분의 경우 git-flow 를 따라서 작업을 진행하게 됩니다. 물론 cli 를 이용해서
정책만을 따라 가며 작업할 수 있지만 번거로운 작업들도 있고 급할때는 까먹기도 하기 때문에 편하게 사용하는 방법을 찾아보았습니다.
IntelliJ Git Flow Integration를 이용한 방법입니다.

gitflow 란? git-flow 를 사용한 브랜치 전략

GitFlow?

깃플로우(git-flow) 전략은 소프트웨어의 소스코드를 관리하고 출시하기 위한 ‘브랜치 관리 전략(branch management strategy)’중 하나이다.
git-flow 전략외에도 github flowgitlab flow 전략등도 있다. 각자에게 맞는 전략을 선택해서 사용하는게 가장 중요하다.
git-flow 는 Vicent Driessen 이 제안한 git 의 workflow 디자인에 기반한 브랜칭 모델이다. git-flow 에서 사용하는 브랜치의 종류는 5가지이며,
크게 항상 유지되는 메인브렌치(master, develop)와 일정 기간 유지되는 보조 브랜치(feature, realease, hotfix)로 나뉜다.

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×