달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2019. 6. 7. 19:55

요즘 내가 공부하는 것 공부하는 것2019. 6. 7. 19:55

몇 개월 전에 Visual Studio 2019가 새로이 나왔다.

몇 개월 전에 나오기는 했지만, Beta 버전도 개인적으로 사용하면서 VS 2017과 비교해보려고 했으나, 이전에 만들어 놓은 Application을 고치거나 개선할 일이 없어서, 현 상태를 유지가 전부였다.

 

요즘은 Windows Application이나 프로그램을 개발하는 사람을 주변에서 찾기가 어렵다.

내가 알고 있던 개발자분들은 벌써 오래전에 JAVA나 서버 개발자로 전환하거나 다른 길을 찾아서 일을 하고 있다.

 

회사에서도 10년 전에는 조직내에서 Server 개발자가 단지 4명 밖에 없고, 외주와 협력업체를 통해서 프로젝트를 진행하는 경우가 많았다. 10년도에는 iOS와 안드로이드로 전향한 개발자들이 많았었는데, 지금은 그 쪽 분야도 거의 Red Ocean이다. 하지만 정말 Red Ocean은 Windows 환경에서 개발하는 분야쪽이 아닐까라는 생각이 든다.

 

Windows Phone은 이미 사업적으로 실패한지 오래되어서, Windows Phone을 위한 개발 환경은 의미가 없어진지 이미 오래 되었다.

 

MS는 이미 오래전에 Cloud로 방향을 선회하고, 개발자들을 잘 지원하기 위한 툴들을 제공하는데 많은 노력을 해오고 있다. 이미 내가 가장 많이 사용하는 툴은 Visual Studion Code이다. Ultra editor를 사용한지는 오래되었지만, 요즘은 큰 파일을 열어볼때 가끔 한번씩 사용하고, VS Code를 매일같이 사용하고 있다. 

가볍고, 기능 지원이 정말 빠르고, 윈도우 환경과 Mac에서도 지원을 한다라는 장점이 크다.

 

VS 2019가 나오고 별다른 차이점을 느끼고 있지 않았다.

VS 2017은 이전에 사용하던 VB에 대한 추억을 잊지 못해서, 개발 환경을 지원하기 위한 간단한 Rest API를 호출하고 테스트 할 수 있는 툴을 만들었었다. (사실, Java console 버전, nodejs로 만든 Web버전 등이 있다.)

그런데 Window 10환경의 지원을 위해서 UWP나 WPF가 필요해 보였기 때문에, 이 둘을 살펴보면서 XAML에 대해서 보고, 테스트 해보고 있는 중이다.

 

사실 XAML을 이용하는 UWP와 WPF가 WinForm 환경보다 좋다라고는 이야기 못하겠다.

기본적으로 HTML의 느낌이 물씬 나는데, 개발을 더 쉬게 만들어 준다고는 이야기 하기 어렵기 때문이다. 

다른 의미의 직관을 주기도 하지만, 익숙하던 기능을 사용하지 않고 새로이 익혀야하기 때문인지 낯설기도 하지만 생각되로 UI가 만들어 지지 않기 때문이다.

 

기존에 WinForm에서는 바로 되던 것이 안되는 것이 혼란스럽기도 하지만, 배우는 과정이기 때문에 계속 시행착오가 필요하다라고 생각한다.

 

그런데, 불편하다고 생각하는 것은 나만의 생각일까?

정말 Designer가 UI를 만들어 줄까?

 

UI에 Style을 넣고 고급진 UX를 만드는 것에는 필요해 보이기는 한데, 간단한 툴을 만들어 사용하려는 개발자에게는 너무 과하지 않나 생각이 든다. 

반응형 UI를 UWP에서 제공한다고 하는데, 웹의 그것에 비해서 얼마나 많이 사용할지는 모르겠다.

 

오늘도 짬짬히 Layer를 나누고, Split과 그리드로 화면을 나누어서 그리면서 생각나는대로 글은 남겨본다.

:
Posted by 행복상자
2018. 12. 18. 23:30

nodeJS와 Express 설치하기 공부하는 것/Node Js2018. 12. 18. 23:30

VS Code는 회사에서도, 집에서도 많이 사용하는 IDE이다.

오늘은 간단하게 테스트할 것이 있어서 띄웠는데, MacOS에는 nodeJS가 설치가 되어 있지 않았다.

간단하게, "nodeJS"를 설치하고, 내친김에 Express를 설치하려고 한다.


NodeJS는 "https://nodejs.org/ko/" 또는 "https://nodejs.org/en/" 에서 다은 받아 설치하면, 된다. 
브로우저가 설치되어 있는 OS에 따라서 다운해서 설치할 바이너리가 달라진다. 



위 화면에 두개의 버전이 있는데, "10.14.2 LTS" 버전을 설치하기로 한다.

윈도우즈와 MacOS 버전 모두 바이너리 버전으로 설치하기 때문에, 다운 받아서 실행하면 바로 설치가 가능하다. (다른 방식으로 cli 명령으로 설치도 가능한데, 오늘은 쉽게 가기로 한다.)


설치가 완료되었으면, 설치 버전을 확인해 본다. nodeJS설치할때 같이 설치되는 패키지 매니져인 npm의 버전과 nodeJS의 버전을 아래과 같이 확인해 본다.

mymac$ npm -v

6.4.1

mymac$ node -v

v10.14.2


이번에는 nodeJS를 이용하여 웹을 개발할때 사용하는 Express 라는 Framework을 설치할 차례다.

Express는 "https://expressjs.com/ko/starter"에 나오는 순서대로 설치하면 된다.


아래와 같이 npm을 이용하여 express 패키지를 설치한다.  만약 설치시 권한문제로 설치가 단되면 sudo 명령을 사용해서 "sudo npm install express"와 같이 실행하면 된다.

mymac$ sudo npm install express

...


mymac$ sudo npm install express-generator -g 

...


자 이제 마지막으로, express를  이용하여 web 프로젝트를 생성해 본다.

아래의 "- e" 옵션은 templet엔진을 "ejs"를 사용하겠다는 옵션이다.

mymac$ express -e showdata

   create : showdata/

   create : showdata/public/

   create : showdata/public/javascripts/

   create : showdata/public/images/

   create : showdata/public/stylesheets/

   create : showdata/public/stylesheets/style.css

   create : showdata/routes/

   create : showdata/routes/index.js

   create : showdata/routes/users.js

   create : showdata/views/

   create : showdata/views/error.ejs

   create : showdata/views/index.ejs

   create : showdata/app.js

   create : showdata/package.json

   create : showdata/bin/

   create : showdata/bin/www


프로젝트가 생성이 되었으면 실행을 해보자.

아래와 같이 "showdata" 디렉토리로 이동해 들어가서, npm을 이용하여 기본 패키지를 설치하고, "npm start" 명령으로 서버를 동작시킨다.

mymac$ cd showdata

mymac$ npm install

mymac$ npm start


기본 포트는 3000번 포트를 사용하므로, 브라우저에서 "http://localhost:3000"을 치면 다음과 같은 화면이 나타나게 된다. 


만약, 실행 포트를 바꾸고 싶다면, "showdata/bin/www" 파일을 열어서 변경하면 된다.


 


  


 

:
Posted by 행복상자

Visual Studio Code의 단축키들을 정리한 파일들이다. 가끔식 확인이 필요하거나 책상에 프린트에서 붙여 놓으면, 참고하는데 도움이 될 것이다.  VS Code의 메뉴상에서는 "도움말" > "바로가기 키참조"에서 확인 가능하다.


아래는 각 OS별로 작성된 Shortcut 키 매핑에 대한 파일들의 링크와 위치이다.



[MacOS용 Shortcut 파일] 

   https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf






[Windows용 Shortcut 파일

    https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf





[Linux용 Shortcut 파일]

    https://code.visualstudio.com/shortcuts/keyboard-shortcuts-linux.pdf



:
Posted by 행복상자

지난 며칠전에 Windows 환경에서 리눅스나 Unix에서 사용하는 kill 명령과 비슷한 프로그램으로 "taskkill"에 대해서 이야기하였다. 내가 "taskkill"에 대해서 찾아보게된 계기는 Visual Studio의 Debug Mode상에서 생성된 Process를 중단할 필요에 의해서 였는데, 실제로 해보고 결과를 이야기하기로 하였었다. (지난 글)


"Taskkill"을 이용해서 Visual Studio개 생성한 Process의 제거는 결론적으로 실패였다.


우선 Visual Studio의 실행을 중단하고, 

TASKKILL /IM myprogram.exe /F /T

을 실행하거나 또는


TASKKILL /PID 1004 /F /T


를 실행해 보았지만, "Access Denied" 메시지를 보이고, 중단을 원하던 Process는 그대로 남아 있었다.


그래서, 또하나의 방법으로 "Power Shell"에서 제공하는 "Stop-Process" Cmdlet을 이용해 보기로 하였다. "Power Shell"은 kill 이라는 Alias명으로 이미정의 정의되어져서 "Stop-Process" 대신 사용이 가능하다.

(Power Shell의 "Stop-Process" 참조 사이트 : Version 6기준)


Powershell을 실행하고, 콘솔창에서 다음과 같이 실행하여 보았다.

Stop-Process -Name "myprogram.exe"

그러나 역시나 "Access Denied" 메시리즐 보이면서 Process를 중단하는 것을 실패했다. (다른 옵션들도 주고 테스트했지만 실패했다.)



뭔가 강력한 어떤것이 필요하다고 생각이 들어서, 이리 저리 찾아보니, WMI를 이용하는 방법을 찾았다. 

이전에 알던 WMI의 사용법은 Windows시스템에 대한 정보들을 얻어오는 방법으로 이용을 하곤 하였는데, 좀 다른 방식의 사용법으로 Process를 Kill하는 방법도 제공하고 있었다.


WMI를 사용하여 Process를 제거하는 방법은 다음과 같다.

WMIC process where name='myprogram.exe' delete


결과적으로는 그토록 중단시키려고 했던, 좀비 프로그램을 메모리에서 삭제해버리고야 말았다.


여러가지 방법들을 찾아서 실행하면서 이전에 모르던 많은 것들을 알게 되어서 나름 즐거웠다.

오랜만에 WMI를 살펴보니, Program 이름과 PID를 가져오는 방법도 제공하고 있는데, 좀 더 살펴보고 시간이 되면 정리해 봐야겠다.


공부할 것은 많다. 알게되는 것도 많지만, 잊어버리는 것도 그만큼 많은것 같다.


:
Posted by 행복상자