본문 바로가기
C++ 200제/코딩 IT 정보

TypeScript 강의 1. 프론트엔드 개발자와 TS

by vicddory 2019. 11. 3.

직장에서 바로 사용할 수 있는 TypeScript : 서문 - 본 문서의 위치


서문

본 문서의 위치

이 문서는 아직 미완성입니다. 웹 프론트엔드 개발을 배울 때 JavaScript를 거치지 않고 처음부터 TypeScript(타입스크립트)를 배운다는 시점에서 작성되었습니다. TypeScript는 기본적으로 JavaScript의 상위 호환이며, JavaScript는 오랜 역사만큼이나 안정적인 문법 또한 많습니다. 따라서 TS 문법을 배운다는 뜻에는 최신 웹 소스 코드 작성 기법을 배운다는 측면 또한 강합니다.



현재 B2B 기업, B2C가 아닌 기업들도 웹 프론트엔드 개발자가 부족하다고 말합니다.


이전에는 기업 시스템의 프론트엔드 개발자 업무라면 DB 테이블이 있고, 각 행의 CRUD(Create : 생성, Read : 읽기 Update : 갱신 Delete : 삭제) 작업을 만드는 등 단순 작업을 의미했습니다. 또한, 화면은 템플릿을 사용하여 서버에서 생성하고 반환하는 것이었습니다.


그러나, 사용자 개인적으로 웹 경험이 다양(복잡)해졌고, 이에 호응하도록 프론트엔드의 프레임워크나 개발 기술도 복잡해졌습니다. 이에 따라, 실시간에 가깝운 요청 응답(결과 반환), 화면 전환 속도 향상, 동적으로 변하는 화면에서 효율적으로 정보를 제공하는 등의 기술이 보편화하였습니다.


소비자를 위한 화려한 웹 -> 여기에 익숙해진 대다수 사용자 -> 오래된 UI 불편.


하루의 대부분을 직장에서 보내는 직장인에게 구식 시스템과 UI를 제공할 순 없습니다. UI 상식에서 빗나가 사용자 기대감을 낮추는 "사용하기 어려운" 시스템은 스트레스로 이어집니다.


최근, React, Vue.js, Angular 등 최신 프레임워크는 기업 내부 시스템에도 적극적으로 도입되고 있습니다. 그러나 프론트엔드 측에선 업무량이 많아집니다. Bootstrap과 jQuery 시대처럼 버튼을 눌렀을 때만 동작하는 것이 아니기 때문이죠. 업무량이 늘어나는 만큼, 모듈 분할 방법을 강구하거나 계층을 제대로 분리한 아키텍처를 도입하는 등 제대로 된 설계가 요구됩니다.

퓨처 아키텍트 및 미래 개발 방법론을 도입해 효율적으로 개발하는 것은 현재진행형이며, 전통적으로 서버 측에서 처리되던 많은 일을 응용 프로그램(앱)이 담당하도록 구현된 시스템은 수많은 성공 케이스를 남겼습니다.


한편, 전술한 바와 같이 프론트엔드의 비중이 높아지면, 당연히 프로젝트에서 차지하는 프론트엔드 개발자의 비율을 높일 필요가 있습니다.


회사에서 신입 사원 교육의 시간은 한정되어 있기 때문에 너무 많은 것을 가르치는 것은 어렵습니다. 현실적으로 서버 측 지식을 중심으로 교육해야 합니다. (복잡한 프레임워크나 어플리케이션은 외주 제작이 더 싸고 더 적은 시간이 듬. 대기업 또한 규모를 떠나 외주 개발 인력(회사)을 적극적으로 활용하는 추세)


서버사이드 Java 및 SQL 등은 거의 모든 직원이 익힐 수 있지만, 프론트엔드 측 개발을 진행하려면 새로운 학습 기회 제공이 필요합니다. (별도 사외 교육의 필요성)


남는 시간에 마음대로 공부해 두라는 것은 기업 활동 측면에서 효율적이지 않으며, 직원은 공부해도 지식을 인정받기 어렵습니다 (취미로 하는 일을 중지하라는 뜻은 아닙니다). 업무 수행을 위해 필요한 자원, 지식을 업무 시간에 얻을 수 있도록 체제를 갖추어야 합니다. 지금까지 고객 요구, 고도화 등 프론트엔드 개발이 필요한 업무에는 일부 취미로 공부하던 기존 직원, 경력직 신규 입사자, 혹은 잘 몰라도 맨땅에 부딪히며 알아서 처리하는 형태가 많았습니다.


하지만, 고객사의 요구에 능동적(합리적)으로 대응하기 위해선 제대로 된 교육 체제 구축이 필요합니다.



TypeScript 기반 프론트엔드 개발의 어려운 점은 코드를 작성하는 것보다 환경 구축 난이도가 높고, 그 환경을 구축하지 않으면 코드 작성을 시작할 수 없다는 점에 있습니다.


또한, JavaScript 전용 패키지로 TypeScript에 형식 정보를 컴파일러에 알려주는 정의 파일이 없다면, 개발 중에 이 부분도 정비해야 합니다. 그러나, 이런 일은 초보자가 갑자기 손을 댄다고 해결하기엔 어렵습니다. 최근 코드 생성기 등이 고도화되고 있으므로, Vue.js나 React, Angular와 같은 인기 많은 프레임워크를 함께 사용하는 것은 그다지 어렵지 않습니다만, 그 부분은 팀의 수석급 프로그래머가 우선 틀을 잡아야 합니다.


이후 팀에서 필요한 템플릿, 디자인패턴, 환경구축 등을 차근차근 구축하고 코딩을 시작해야 합니다.

이것을 시작점으로 두고 글을 계속 이어가겠습니다.

댓글