이번 velog클론코딩을 진행하면서 처음으로 TypeScript를 사용하게 되었다. Javascript에서 Type만 지정해 주면 된다는 말에 처음에 가볍게만 생각하고 진행하였다.
1주일 안에 내가 담당한 기능들을 모두 완성해야하는데 처음쓰는 TypeScript와 그에 따른 ORM의 변경으로 처음 갈피를 잡는데 굉장히 힘들었다.
그럼 이번에 사용한 TypeScript에 대해 알아보자
위키 백과의 내용에 따르면 타입스크립트는
자바스크립트의 슈퍼셋인 오픈소스 프로그래밍 언어이다. 마이크로소프트에서 개발, 유지하고 있으며 엄격한 문법을 지원한다. C#의 리드 아키텍트이자 델파이, 터보 파스칼의 창시자인 Anders Hejlsberg가 개발에 참여한다. 클라이언트 사이드와 서버 사이드를 위한 개발에 사용할 수 있다. 타입스크립트는 자바스크립트 엔진을 사용하면서 커다란 애플리케이션을 개발할 수 있게 설계된 언어이다.자바스크립트의 슈퍼셋이기 때문에 자바스크립트로 작성된 프로그램이 타입스크립트 프로그램으로도 동작한다. 타입스크립트에서 자신이 원하는 타입을 정의하고 프로그래밍을 하면 자바스크립트로 컴파일되어 실행할 수 있다. 타입스크립트는 모든 운영 체제, 모든 브라우저, 모든 호스트에서 사용 가능한 오픈 소스이다.
간단하게 말해서 JavaScript의 확장판으로 기존의 JavaScript가 가진 단점들을 보완해 주기위해 만들어진 변형언어라고 할 수 있다.
자세한 내용은 TypeScript DOCS를 참고하자
솔찍하게 1주일 밖에 써보지 않아서 1,2,4번에 대해서 크게 공감을 할 수 있었지만 3번은 어디까지가 현재 최신의 문법인지 아직 잘 구분이 안가서 크게 체감이 되지 않고, 5번은 아직 잘 모르겠다.
1주일만에 프로젝트를 완성해야 하기 때문에 실제 TypeScript에서 사용하는 interface를 만들어서 쓰거나 클래스에 종속을 부여할때 implements를 사용하는 등의 문법을 쓰지는 못했지만, 최대한 any타입을 쓰는 것을 자체하고, 정확한 type을 지정해서 사용할 수 있도록 노력하였다.
코드의 오류를 사전에 방지해 주는 것은 분명 좋고, 이로 인해 런타임 중 발생할 에러를 미리 방지하여 개발의 코스트를 줄일 수 있는 장점이 분명 있지만, 너무 얕게 알고 쓴 나머지 오히려 type을 짜고 하나하나 미리 보여주는 에러를 잡느라 오랜 시간을 사용한 것 같다.