엄격한 타입 정의를 제외하고 TypeScript를 써야하는 결정적인 이유가 있을까요?
안녕하세요 저는 1년차 프론트엔드 개발자입니다.
react를 이용한 UI 위주의 개발을 하고있는데 저희 서비스에서는 TypeScript를 쓰고있습니다.
그런데 개발을 하면서 엄격한 타입 정의를 제외하고는 TypeScript의 장점이 잘 보이지 않습니다.
사실 엄격한 타입 정의도 any의 남발로 별 의미가 없어지고 있는 것 같습니다.
엄격한 타입 정의를 제외하고 코드만 길어지는 TypeScript를 써야하는 결정적인 이유가 있을까요?
안녕하세요.
프로그래밍은 원래 혼자서 독학해야 하는 직종입니다. 대부분의 모르는 것들은 구글에 검색하면 다 나옵니다. 혼자서 독학하기에 좋은 프로그래밍 인강 사이트는 유료로 한다면 인프런 이라는 사이트가 있고 일단 맛보기라도 먼저 해보고 싶으시다면 생활코딩이라는 사이트를 접속하셔서 한 번 영상 훑어보시는 것도 좋습니다.
시작하기 좋은 프로그래밍언어는 nodejs 혹은 javascript, python 등이 있습니다. 만약 앱개발을 원하신다면 무조건 자바를 하셔야 합니다. 안드로이드가 자바기반으로 되어 있으며 코틀린 언어를 사용하셔도 됩니다.
현업에서는 C언어를 거의 사용하지 않습니다. 파이썬을 사용하는 부서는 있으며 주로 자바나 자바스크립트 nodejs 를 사용하는 부서가 가장 많습니다.
그 외의 프로그래밍이라면 html, css, javascript 등과 같은 것은 https://w3schools.com 에서도 충분히 학습하실 수 있습니다.
질문하신 그대로가 맞습니다. 자바스크립트의 고오질병은 fault tolerance가 높다는 것인데, 유연하다고도 볼 수 있지만, 이로 인해서 문제점이 많았습니다. 예를 들어 함수의 입력되는 파라미터 값이 string인지 num인지 object인지 알려면 코드를 분석해야 하죠. 간단한 프로그램에서는 문제 없겠지만 대규모 서비스로 가고 코드가 길어질수록 해당 함수를 콜하고 어떤 변수를 넣어야 할지 바로 알기 힘듭니다. 또한, string '1'이 들어가야할 자리에 number 1이 들어간다 하더라도 에러가 안뜨기 때문에, 작성한 프로그램이 의도한 바와 다르게 작동되고 이게 어디서 문제가 생긴지 알기 힘든 경우도 있죠.
안녕하세요.
사실 static typing을 쓰지 않는다면 굉장히 큰 장점을 버리는 것과 같습니다. 이걸 제외하고 TS를 쓴다면 OOP를 지원한다는 정도가 있을 것 같습니다. 즉 class, interface, inheritence를 지원합니다. Javascript대비 code를 재활용하고 scale up을 하는데 굉장히 큰 장정입니다.
사실 ES6를 쓴다면 이또한 큰 차이는 없지만 static typing상으로 차이를 가지게 됩니다.
그리고 type을 any로 하더라고 역시 static typing의 장점은 생깁니다. 즉 변수의 선언 여부에 대해서 정확히 처리가 가능하기 때문입니다. 또한 이를 통해서 미리 버그를 잡을수도 있구요, any는 말그대로 변수의 type을 정말 모를때 또는 JS와 혼용된 코드를 작성할때에만 사용하는 것이 좋을 것 같습니다.