요즘 여러가지 이유로 인해 Typescript 문법을 좀 공부했었다.

Typescript가 무엇인지... 잠깐 언급하자면,

기존 Javascript는 변수, 상수 정의할 때 변수 타입을 정의하지 않고, 컴파일러가 추론하는 방식이었다.

타입을 고려하지 않으니 당장 짤 땐 편할 수도 있는데, 타입을 모호하게 정해놓고 코딩하면 끝없는 undefined를 처리하는게 절대 편하지 않다.

(요것은 그냥 썰로 들음) 예전에는 자바스크립트로 큰 프로젝트를 한다기 보단, DOM을 조작하는 스크립트 언어로 사용되어서 빠르게 코딩하기 위해 변수 타입을 없앴다고 한다.

그러나 요즘은 자바스크립트로 FE, BE 전부 할 수 있는 시대이고, 이러한 자바스크립트 특성은 장점이 아닌 단점이 되어버렸다고 한다.

나는 자바스크립트를 배운 이후로 자바스크립트로만 개발했었는데, 타입스크립트를 공부해보니 이게 과연 얼마나 유용할까...? 싶었다.

공부하고 기존에 자바스크립트로 짰던 것을 타입스크립트로 전환해 보았는데, 여기서 타입스크립트를 사용하는 것이 얼마나 좋은 것인지를 깨달았다.

 

타입스크립트의 장점(a.k.a. 자바스크립트로 코딩할 때 타입을 중요시하지 않으면 생기는 결과)

  1. 유지보수하기 편하다
    • 분명 내가 짠 코드인데, 6개월만에 다시 보니까 타입스크립트를 적용하다가 곳곳에서 에러가 난무해서 포기했다. ID가 number인지 string인지, task 객체 안에는 어떤 멤버가 있는지를 모르니 코드를 뒤져가면서 '내가 뭘로 했더라...' 찾아가야 했었다. 심지어 그 때는 주석도 대충 달던 시절이라 주석에도 정보가 없어서 힘들었다.
  2. 협업하기 편하다.
    • 내가 짠 코드도 에러 수정하느라 힘들었는데, 남이 짠 코드였으면 손도 못댔을 거라는 생각이 들었다. 주석을 상세하게 적는 방법도 있겠지만, 처음부터 interface 키워드로 객체를 잘 정의해 두면 남의 코드를 읽을 때 훨씬 쉽게 이해할 수 있을 것 같다.
  3. IDE가 자동완성을 잘 해준다/컴파일 과정에서 에러를 많이 잡을 수 있다.
    • JS 자동완성은 그냥 앞에 나왔던 단어 중에 똑같은게 있는지 정도밖에 안해주는 것 같다.(VS Code) 그러나 Typescript로 작성해 보니, 자동완성도 잘 되고, 문제가 있을 부분을 미리 ESLint가 잡아주니 거의 컴퓨터에 고마움을 느끼는 수준이었다.

 

앞으로 js로 프로젝트를 생성한다면, 반드시 타입스크립트로 작업하려 한다.

유지보수할 일이 없는 일회용 코드라고 할 지라도, (내 경험상) 무조건 유지보수를 한 번은 하기 때문에 미리 체계있게 짜 두는 것이 중요하다.

그리고 무엇보다 js로 복잡하게 짜둔 프로젝트를 타입스크립트로 변환하기가 굉장히 까다로웠다...(그렇다고 any를 주구장창 쓸수는 없잖아.)

 

기술을 배운 것도 그렇지만, 코딩 스타일에 대한 교훈을 얻을 수 있었던 과정이었다.

회사에서 그냥 일회용으로 쓰고 버릴 페이지라고 대충 빨리빨리 코딩했었는데, 결국 그거 유지보수하고 재활용하게 되더라...ㅋㅋㅋㅋㅋㅋ 처음 짤 때부터 타입부터 주석까지 확실하게 짜두는 것이 정말 중요하다고 생각한다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기