NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    Web 타입스크립트란? (Typescript)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 요즘은 타입스크립트를 모르고 웹을 개발하기란 쉽지 않은 시대가 왔습니다. 단순한 웹 개발이라면야 기존 자바스크립트를 이용해도 되긴하지만~ 웹 소프트웨어도 점점 복잡해지고, 규모가 엔터프라이즈급으로 커지면서 좀 더 타이트하게 관리되길 원하고 있죠. 타입스크립트는 2012년에 마이크로소프트에서 발표한 자바스크립트 확장 언어입니다. 기본 문법은 자바스크립트와 동일하지만, OOP 언어(C++, C#, Java)들과 같은 기능을 제공해줍니다. 개발자 커뮤니티인 Stack Overflow에서 조사한 내용을 보면 개발자가 좋아하는 프로그래밍 언어 2위에 오를 정도로 이제는 대세를 따라야 하지 않을까 생각되네요^^

    wUCJrOD.png

     

     

    타입스크립트는 OOP 언어들의 장점을 많은 부분 가져왔습니다. 몇가지 특징들을 살펴보면 아래와 같은데요.

    컴파일 언어, 정적 타입 언어

    자바스크립트는 동적 타입의 인터프리터 언어로 런타임에 오류를 발견할 수 있었습니다. 보통 컴파일 언어들은 컴파일 타임, 런타임에 오류를 검출할 수 있습니다. 예외적으로 디자인 타임을 가지기도 하지만, 이는 특수한 개발 도구에서만 가능하기 때문에 예외로 해야합니다. 아무튼, 타입스크립트는 정적 타입 언어지만, 컴파일러 또는 바벨을 거쳐 자바스크립트가 만들어지는 방식을 취하고 있습니다. 그렇다보니 코드 작성 단계에서 타입을 체크해 오류를 확인할 수 있고 이미 배포된 후 에러가 발생할 수 있는 여지를 사전에 제거할 수 있습니다. 물론, 여전히 정적 타입을 사용하기 때문에 기존의 문제점을 완전히 극복한건 아닙니다^^; 또한, 단점으로 코드량이 많아지면 컴파일 시간이 오래 걸린다는 문제점도 가지고 있습니다.

     

    자바스크립트 슈퍼셋(Superset)

    타입스크립트(Typescript)는 자바스크립트(Javascript, 자바와 관련은 없지만...)의 슈퍼셋, 즉 자바스크립트 기본 문법에 타입스크립트의 문법을 추가한 언어입니다. 따라서, 유효한 자바스크립트로 작성한 코드는 확장자를 js에서 ts로 변경하고 타입스크립트로 컴파일해서 변환할 수 있습니다.

     

    객체 지향 프로그래밍(OOP, Object-Oriented Programming)

    ES6은 2015년도에 발표된 새로운 문법과 클래스, 인터페이스, 상속, 모듈등등... 객체 지향 언어의 특성을 제공합니다. 이외에도 화살표 함수, 템플릿 리터럴과 프로미스라는 막강한 기능들이 포함되었습니다. 컴파일 언어들을 사용중인 개발자분들은 const에 대해 이미 잘 알고 있을겁니다. 자바스크립트는 상수(Constant)가 늦게 적용된 편이지만, 기존에 var를 사용함으로써 발생했던 문제들을 해소할 수 있는 계기가 되었습니다.

     

    왜 타입스크립트를 사용해야 할까?

    요즘 트렌드는 기존의 CS 프로그램을 웹으로 전환 해가고 있습니다. 기존 업무용 프로그램들은 클라이언트는 C#, 서버는 Java였습니다. 클라이언트가 프론트엔드로 바뀌면서 노드, 타입스크립트, 뷰 또는 리엑트로 이동했는데요. 하지만, 서버는 여전히 자바를 많이 사용합니다. 제가 일하는 산업군에서만 그런지는 모르겠으나, 자바와 스프링을 이용합니다. 이는 웹 개발에서 RestAPI를 쉽고 빠르게 개발할 수 있도록 도와주기 때문입니다.

     

    타입스크립트는 강력한 형식(String Type)을 사용함으로써, 개발자 의되에 벗어난 변수나 함수 형식을 컴파일 타임에 걸러낼 수 있습니다. 또한, 코드 자동 완성이나 실행 전 피드백을 제공하여 작업과 동시에 디버깅이 가능합니다. 이는 개발자의 생산성과 직결되는 문제이므로 아주 중요한 요소중에 하나라고 할 수 있습니다. 위에서도 언급했듯이 요즘은 타입스크립트로 프로젝트를 진행하는게 대부분입니다. 그렇기에 강력한 생태계를 구축한지 오래되었으며, 관련 자료와 예제를 쉽게 찾을 수 있습니다. 참고로, Visual Studio Code 2022에서 실시간 딥러닝 분석으로 코드량에 따라 제안해주는 코드의 품질도 많이 좋아졌습니다.

    ※ 인공지능이 적용되어 코드량, 검색에 따라 자동으로 코딩해주는 기술이 발전함에 따라 더이상 개발자가 코더의 역할을 할 수 없을 때가 곧 다가올거 같습니다^^

     

    OOP 언어를 다뤄봤고, 자바스크립트 안다면 러닝커브(학습 곡선, 보통 진입 장벽이라고 합니다.)가 상당히 낮은 편입니다. 제 경우에도 웹과 CS쪽을 모두 다루어본 결과 타입스크립트와 앵귤러, 노드등등... 프로젝트에 투입되어 이해하는데 하루 정도면 충분했습니다. 그만큼 다른 언어를 사용해본 개발자는 쉽게 적응할 수 있다는 장점이 존재합니다. 제가 일하고 있는 반도체, 제조, 공정등등... 은 웹으로 전환하기 위한 준비를 하고 있습니다. 일부 많은 부분에서 웹으로 전환되었기도 하구요. 아직 가야할 길이 많이 남아있지만~ 지금이라도 노드, 타입스크립트, 리엑트 또는 앵귤러를 공부한다면 앞으로 많은 기회가 있을거 같습니다. 꼭 제조쪽이 아니더라도 서비스를 개발하는쪽은 이미 다 사용하고 있으니 말이죠^^

     

    아직 늦지 않았습니다. 지금 시작해도 충분히 10년은 먹고 살만큼 일이 많으니 도전 해보세요!

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.