모두 Typescript로 만들고 싶다

소개



결론부터 말하면, "개발 프로젝트에서 다루는 개발 언어를 Typescript에 단일화해 본다"라는 것입니다.

배경



개발 프로젝트에서는 웹 앱만 만들지 않을 것입니다. 서버 측 (마이크로 서비스)과 쉬운 도구도 만들 것입니다. 그리고 개발하는 각 앱 툴은, 용도에 맞는 프레임워크나 개발 언어를 채용하고 있다고 생각합니다.

웹 앱이라면 React, Vue, Angular 등의 프레임워크가 되어 개발 언어는 Javascript 혹은 Typescript가 됩니다.
서버 측이면 Django, Spring Boot, ASP.NET 프레임 워크이며 개발 언어는 Python, Java, .NET (C# 등)입니다.
툴이나 배치가 되면 , , 선택사항은 많습니다만, 서버 측에서 채용한 개발 언어에 맞추거나 가동 OS에 의해 선택사항을 좁히게 되는 것은 아닐까요.

이전부터 계속하고 있는 프로젝트라면 어쩔 수 없지만, 신규 프로젝트에서는 하나로 정리하고 싶다!
그 때문에, 조사한 것을 이하에 써 보겠습니다.

개발 언어 채용 예



현시점에서, 자신이 신규로 개발한다면, 이하의 구성 패턴①②로 만드는 것이 좋은가라고 생각하고 있습니다.
그래도 Typescript와 (Java or Python)이 되어 버립니다.
그래서, 패턴 ③이라는 모치를 그려 보았습니다.
(이미 하고 있어!라는 분은 가득 있을지도 모르지만(웃음))


구성
GUI
서비스
Tool/Batch


패턴 1
Angular/React/Vue - Typescript
Spring Boot - Java
Spring Boot - Java

패턴 2
Angular/React/Vue - Typescript
장고 - 파이썬
파이썬

패턴 3(New!)
Angular/React/Vue - Typescript
NestJS - Typescript
oclif - Typescript


음 음! 전부 Typescript에 정리해 깨끗이입니다.
또, 표에 표현하고 있지 않습니다만, Electron을 사용하면 멀티 플랫폼인 데스크탑 앱도 만들 수 있고, nex에서도 같은 패키지화도 할 수 있지요.
그리고, 서버와 클라이언트로 같은 소스를 공유할 수 있으면, 원래 서버로 하고 있던 처리를 클라이언트측에 변경하거나, 라고 하는 최적화도 하기 쉽지요. PWA의 생각과 비슷합니다.

실현 가능성 확인



그럼 모두 Typescript로 만들 수 있을까? 쉽게 확인하고 싶습니다.
확인은 Hello World! 정도라고 생각하고 있습니다. (또한 Windows 10에서 실시하고 있습니다)

GUI(Angular)



@angular/cli 를 사용해 보았습니다.
npm i @angular/cli -g
ng new hello
cd hello
ng serve --open



서비스(NestJS)


npm i -g @nestjs/cli
nest new hello
cd hello
npm run start
http://localhost:3000 를 브라우저(chrome)에서 열어 보면 다음이 표시됩니다.



Tool/Batch(oclif)


npm i oclif
npx oclif multi mynewcli
cd mynewcli
bin\run --version
mynewcli/0.0.0 win32-x64 node-v10.15.3

패키징(ocliif+nexe)


npm i nexe -g
npx oclif multi mynewcli
cd mynewcli
nexe bin\run
.\run.exe --version
mynewcli/0.0.0 win32-x64 node-v10.15.3

패키징(nestjs+nexe)


npm i nexe -g
nest new hello
cd hello
nexe dist\main.js
main.exe
http://localhost:3000 를 브라우저(chrome)에서 여는 것처럼 응답이 있습니다.

소감



아직 "Hello World"밖에 시도할 수 없습니다만, 전부 Typescript로 만들 수 있을 것 같습니다.
그냥 장고와 스프링 부트의 대안으로 사용할 수 있습니까? 좀 더 검증이 필요할 것 같네요.

좋은 웹페이지 즐겨찾기