WSL에서 리눅스 프로세스 관리하기

리눅스 프로세스 또한 윈도우 작업 관리자에서 관리할 수 있다.
물론 속성 확인 등 윈도우 특화 기능은 지원하지 않는다. 오로지 끝내기 뿐.

아이콘이 있을 리 없으니 흰 아이콘만 뜰 뿐이다.
그리고 Sysinternals 에서 제공하는 Process Explorer 에서도 볼 수 있다.

대체적으로 맨 아래로 내리나 보다.

다음으로는 서비스를 확인해 보도록 하겠다.

composite / 2017년 8월 25일 / Piss Development / 0 Comments

WSL(윈도우 내 리눅스) 에서 데몬 유지 및 sshd 서버 돌리기

먼저 WSL의 특징을 설명하겠다.
일단 리눅스기 때문에 백그라운드 서비스, 즉, 데몬도 존재하며, 똑같이 돌아간다.
하지만 윈도우에서 bash 프로세스가 하나도 없으면, 리눅스 서비스는 다 죽고 리눅스 전원이 꺼진 것이나 다름없다.
그래서 윈도우를 키자마자 리눅스 서비스를 돌리고 싶으면 윈도우 시작하자마자 bash 프로세스를 돌려야 한다.
이를 기초하여 SSH 서버 데몬을 돌림으로 리눅스의 기능을 윈도우 시작 때부터 유지하는 방법을 설명하도록 하겠다.
이를 잘 정리한 링크로부터 출처를 가져왔다.

How to run sshd as a windows service ? #612
How to run Ubuntu service on Windows (at startup)?

  1. 윈도우에서 bash 실행한다.
  2. sudo dpkg-reconfigure openssh-server 실행하여 SSH 호스트 재구성한다.
  3. sudo nano /etc/ssh/sshd_config 실행하여 SSH 설정 파일 편집에 들어간다.
  4. UsePrivilegeSeparation 항목을 찾아 옆에 yesno로 변경
    (이유는 UsePrivilegeSeparation 옵션은 chroot() 호출을 WSL에서 아직 지원하지 않기 때문)
  5. 비번으로 접속하고자 할 경우 PasswordAuthentication 항목을 찾아 (없으면 추가) yes로 세팅.
    (만약 없으면 SSH 접속할 경우 키 파일을 요구함. 유저 파일에 키를 생성하고 클라이언트도 가지고 있어야 함.)
  6. ctrl+O 단축키로 저장 후 ctrl+X 로 편집기를 빠져나간다.
  7. sudo visudo 실행하여 sudo 권한설정 파일을 편집한다.
  8. 적당한 줄을 찾아 $USER ALL = (root) NOPASSWD: /usr/sbin/sshd -D 문구를 추가한 후, $USER를 로그인 이름으로 바꾼다.
    (로그인 이름 알고싶으면 pwd ~/ 쳐서 /home/ 뒤 명칭을 봐라.)
  9. 단축키로 저장 후 나가서 메시지 뜬 게 있는지 확인하고, 메시지 나올 경우 visudo 오류이므로 적절히 수정하여 해결한다. (모르면 검색해라.)
  10. (옵션) SSH 서버를 외부에서 접속하고 싶은 경우, 윈도우에서 방화벽에서 포트번호 22를 허용한다. (개인 및 도메인 범위까지 한다. 공용 말고)
  11. 윈도우 시작 시 SSH 서버를 돌리기 위해 (적당한파일명).vbs 파일을 메모장이나 아무 편집기로 생성 후 아래 내용을 넣는다.
set ws=wscript.createobject("wscript.shell")
ws.run "C:\Windows\System32\bash.exe -c 'sudo /usr/sbin/sshd -D'",0
  1. 저장했으면, 모든 bash 프로세스를 끄고(리눅스 실행 모두 다 종료) vbs 파일을 더블클릭 후 PuTTY 등으로 SSH 접속 되는지 확인한다.
  2. 성공했으면 bash.exe 프로세스 종료 후, 위 vbs 파일을 작업 스케줄러에 등록한다. (모르면 좀 검색하고). 물론 “시스템 시작시”에.
    (시스템 시작 시, 파일은 vbs파일 다이렉트 호출, 사용계정은 반드시 로그인할 계정. LOCAL SERVICE 같은 시스템계정 말고. 암호 저장 안해도 됨.)
  3. 윈도우 껐다 킨 후 PuTTY로 SSH 접속 되는지 확인해서 접속 되면 이제 윈도우와 리눅스는 한몸으로 실제처럼 돌아갈 것이다. 서비스도 다.

왜 굳이 vbs로 하냐고? 물론 bat 파일 쓰거나 직접 작업 스케줄러에 등록할 수는 있어.
근데 작업 스케줄러던 bat 등록하던 뭘 하던 도스창 뜬다. 너같으면 좋겠냐? vbsws.run 에 두번째 0 인자가 바로 창 안띄워 주는 고마운 인자다.
내가 필요 시 즐겨쓰는 놈이기도 하지. 이제 리눅스 VM으로 깔 필요도 없다. 편리하다.

끗.

composite / 2017년 8월 25일 / Piss Development / 0 Comments

WSL(윈도우 서브시스템 리눅스) 에서 node.js 개발하기

오늘 좀 골때리는 경험을 했기에 글 싸지른다. 왜인지는 후에 설명한다.
이 글은 윈도우 10 레드스톤 2(크리에이터즈 업데이트) 이상에서 리눅스 서브시스템을 설치한 사용자에 해당된다.
안깔았으면 이전 글을 참고하고, 해당사항 없으면 씹기 바란다.

1. node.js 설치

먼저 apt-get 공식 리포지토리의 node 는 옛날 버전이다.
원하는 버전을 설치하고자 할 경우 리포지토리를 추가하여 설치해야 한다.
설치 버전별 목록은 여기서 볼 수 있다.
여기서는 가장 최신 버전인 7.x 버전을 설치하도록 하겠다.
별거 없다.

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -  
sudo apt-get install -y nodejs  

끗. 사실 윈도우에 별도로 node.js 깐 적 없다면 1번에서 끝나면 된다.
URL 끝 setup_(메이저버전).x 파일명 부분에 자신이 원하는 버전 숫자로 바꾸면 된다.
하지만 윈도우 내 개발환경에서 node.jsPython 등을 설치했을 경우 골때리는 문제가 발생할 것이다.
이제부터 들어간다.

2. 환경변수 관리

이 글을 쓰는 이유이기도 한데, 기본적으로 리눅스 서브시스템을 실행하면 윈도우 환경변수가 리눅스로 공유된다.
그래서 윈도우 PATH 변수가 먼저 들어간 뒤, 리눅스 PATH 변수 내용이 짬뽕된다.
이 때문에, 예를 들어 윈도우 내 node.js를 설치한 상태일 경우, npm 실행 시 아래 메시지가 나올 것이다.

$ npm
: not foundram Files/nodejs/npm: 3: /mnt/c/Program Files/nodejs/npm:
: not foundram Files/nodejs/npm: 5: /mnt/c/Program Files/nodejs/npm:
/mnt/c/Program Files/nodejs/npm: 6: /mnt/c/Program Files/nodejs/npm: Syntax error: word unexpected (expecting "in")

물론 환경변수 공유는 편리할 수 있으나, 대부분 독립형 운영체제라 가정하고 설계하고 개발하기 때문에
개발자 입장에서는 난처하면서도 골 안때릴 수가 없다. 몇가지 방법이 있는데 취향껏 따라하면 된다.

윈도우 환경변수 공유하지 않도록 설정

윈도우 아니랄까봐 리눅스 서브시스템 옵션을 레지스트리에 등록하고 있다.
따라서 만약 윈도우 환경변수를 리눅스로 옮기기 싫으면 아래 레지스트리 소스를 메모장 등으로 붙여넣은 후,

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss]
"AppendNtPath"=dword:00000000

참고로 레지파일은 반드시 빈 행이 하나 들어가도록 한 뒤 끝내야 한다.
원하는 파일명.reg 로 저장한 뒤 걍 실행해버리면 된다. 물론 되돌리고 싶으면 값 부분에 dword:00000001 로 바꿔 실행하면 된다.

Github Issue 출처

.bashrc 파일에 원치 않는 변수내용 삭제

윈도우 환경 변수를 포기 못할 경우에 간단한 팁이다.
PATH 환경변수에 특정 내용을 지우는 식으로 처리할 수 있다.
아래 쉘 스크립트를 ~/.bashrc 파일 내용에 추가하면 원치 않는 변수 내용을 삭제할 수 있다.

### remove unnecessary Win PATHs
# This can prevent extension-less commands from bleeding into BASH.
# (eg. "ng" would execute the Win bin if "@angular/cli" wasn't installed on Linux.)
#
function path_remove {
  # Delete path by parts so we can never accidentally remove sub paths
  PATH=${PATH//":$1:"/":"} # delete any instances in the middle
  PATH=${PATH/#"$1:"/} # delete any instance at the beginning
  PATH=${PATH/%":$1"/} # delete any instance in the at the end
}

path_remove '/mnt/c/Users/me/AppData/Roaming/npm'
path_remove '/mnt/c/Users/me/AppData/Local/Yarn/bin'
path_remove '/mnt/c/Program Files (x86)/Yarn/bin'
path_remove '/mnt/c/Program Files/Git'
path_remove '/mnt/c/Program Files/Git/cmd'
path_remove '/mnt/c/Program Files/nodejs'
path_remove '/mnt/c/OpenSSL-Win32/bin'
path_remove '/mnt/c/Program Files (x86)/Python27'

이후 bash를 빠져나가고 다시 bash 실행하면 원치 않는 명령어 실행을 방지하여 조금은 더 깨끗한 환경에서 개발할 수 있을 것이다.
Github Issue 출처

composite / 2017년 8월 24일 / Piss Development / 0 Comments

윈도우 10 우분투 Bash를 탐색기 메뉴로 추가하기

제목 참 거창하지만 사실 별 거 없다.
어자피 오른쪽 마우스 메뉴와 별 다를 거 없기 때문이다.

윈도우 10 레드스톤 2(크리에이터즈 업데이트) 이상에서 우분투 서브시스템 설치 방법은 구글에 널리고 널렸으니 찾아봐라.
거기게 모든 게 다 있으니. 아니면 걍 링크 뿌린다. 여기가 친절한 듯.
(주: 스토어 단독 계정 등록만 해도 우분투 받는데 지장 없다. 특히 회사컴일 수록 로컬계정 관리가 정신건강에 이롭다.)

레지스트리 편집귀 귀찮게 건드릴 거 없다.
출처는 https://github.com/Manouchehri/bash-WSL-context-menu 이다.

bash 레지스트리 추가 (원문 컨텍스트 메뉴)
bash 레지스트리 추가 (한글 컨텍스트 메뉴)

됐다. 탐색기 오른쪽 클릭으로 잘들 써봐. 끗.

composite / 2017년 8월 22일 / Piss Development / 0 Comments

웹 기반의 컴퓨터 원격 통합관리 : ULTERIUS

https://ulterius.io/

  • 컴퓨터 시스템 모니터링 지원
  • 설치가 필요없는 원격 데스크탑 지원
  • 해당 컴퓨터 탐색기를 웹으로, 업로드 다운로드 당연히 지원.
  • 파워쉘 등 강력한 원격 실행환경 지원
  • 플러그인 지원 (완벽하지 않음)

이런 솔루션은 돈을 줘도 할 말 없는 솔루션인데 MPL 2.0 오픈소스인 C# 서버 앱이다.
.NET 4.5 이상을 지원하는 가능한 모든 윈도우에서 지원한다. 그렇다. 당연히 윈도우 전용이다.

composite / 2017년 3월 17일 / Dog's bullshit / 0 Comments

윈도우 10 ISO 다운받기 (물론 합법)

최근들어 윈도우 10 ISO가 필요하게 되어 링크를 들러봤더니…

ISO 다운로드 선택 박스는 안뜨고 그저 도구 다운로드만 뜰 것이다.
그렇다. 윈도우 운영체제는 막힌 거다.

하지만 불가능하지는 않다. OS를 속이고 들어가면 되는데,
그냥 user agent 를 바꿔주는 확장을 깔면 해결된다.
크롬이나 불여우는 암거나 확장 깔고 OS 바꿔치기 하고 접속하면 되며, (맥~)
IE나 Edge는 확장은 없고 대신 F12 개발자 도구를 통해 바꿀 수 있다.

내가 쓰는 속이는 user agent 문자열 예제는 아래와 같다.
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36

그러하다. 그리고 접속하면 ISO 다운받을 운영체제 선택박스 화면이 뜰 것이다.
그 뭐냐… 누군가가 선택박스 핵 걸어서 하위 버전 다운받는 것도 통하는 지는 안해봤다. 난 그저 윈도 10만 있으면 되니까.

불법은 아니고 합법이다. 어자피 제품 키는 없다. 정당한 제품 키 없이 쓰면 불법이고, 쓰면 합법인 거다.

composite / 2017년 3월 16일 / Piss Development / 0 Comments

Microsoft Edge 브라우저가 빡치는 이유

윈도우 10에 내장된 Edge.
옛날 유럽에 IE 끼워팔기 논란에 휩싸였던 IE의 역사를 딛기는 개뿔 일단 OS 종속적 인터넷 브라우저다.
뭐 물론 이후 윈도우에서 선택적으로 프로그램 추가 제거에 포함되는 쾌거(?)도 낳았던 논란이다.
사실 그렇게 따지면 Mac OS의 Safari는 뭐냐 시발?

어쨌든 Edge. 크롬의 초창기를 보는 듯한 브라우저이다. 초기화 속도도 빠릿빠릿하고 페이지 불러오는 속도도 빠릿빠릿하다.
물론 크롬처럼 확장 기능 많아지고 이것저것 덕지덕지 붙이는 날이 온다면 어떻게 될지는 그때 가봐야 알 것 같고.
ACID 점수가 점진적으로 높게 간다는건 좋은 징조 아니던가.

하지만 역시 IE보다도 불편하게 만드는 Edge의 문제점을 짚어보고 사용 시 유념하고 넘길 건 넘어가야겠다.

뒤로가기와 앞으로가기 버튼의 히스토리 부재

이건 진짜 용서할 수 없는 부재다. IE보다도 불편하게 만드는 가장 큰 주범이다.
특히 리디렉트가 더럽게 많은 한국사이트와 소셜로그인으로 인한 다중 리디렉트 이후에는 정말 빡치게 만든다.
원하는 이전 페이지를, 예를 들어 구글 검색하다 레딧 들어가서 구글 로긴 하고 레딧 댓글 달다가 다시 구글 검색결과로 돌아가는 시나리오를 생각해보자.
히스토리 내역도 안보여주고, 오로지 감으로만 몇번 연속 클릭질을 해야 하니 얼마나 짜증 이빠이지 아니한가.
그렇다고 개발자도구 키고 history.go(-2) 이지랄 하리? 하아…

SSL 있어? 신뢰할 수 있는 사이트네. 근데?

HTTPS 를 통해 접속된 사이트라면 주소표시줄 옆에 자물쇠 아이콘이 있어 안전한 사이트임을 보여준다.
근데 그다음엔 어쩌란 말인가. 진짜 이 사이트가 정말 신뢰된 사이튼지 아닌지 검증하고 싶은데?
인증서를 볼 수 없다. IE도 크롬도 불여우도 다 인증서 정보 보여주는데 IE는 그딴거 없다.
다행히도 비주류(?) 브라우저라 망정이지 이건 정말 개선해야 한다.
주류였으면 피싱은? SSL 스니핑 등 다양한 공격을 구분할 수 있는 수단은? 개발자 도구 여는거? 지랄.

HTTP 오류 페이지 그만 좀 보고싶다.

엣지는 HTTP 오류 코드가 나오면 정말 친근한 페이지가 여러분을 반길 것이다. 400이던 404던 500이던…
하지만 개발자에게는 정말 지랄같지 아니할 수 없다. 오류 내용 보려면 개발자 도구 켜고 내용 볼 수 밖에 없다.
아 그래… 맞아.. 하긴… 이건 개발자가 볼 페이지긴 하지… 근데 이건 아니자나…
다행히도 Edge가 오류 페이지를 보여주는 조건이 있다고 한다.
Prevent Edge browser hiding HTTP error pages

In Internet Explorer, as long as the server returned more than 512 bytes of data in the response, it would display the response, but in Edge, that’s not enough.

원래 IE에서는 HTTP 오류 코드를 받을 때 응답 내용 크기가 512바이트를 넘기면 사이트에서 제공하는 오류 페이지를 보여준다고 한다. 하지만 Edge는 이걸로 부족하다고.

https://www.hackcraft.net/error/badrequest/

이 경우 400 HTTP 오류를 보여주는데 페이지 내용이 표시된다. 크기는 2.17KB라고 한다. 보여준다. 이런 식으로 조건을 만족하면 되나보다.

아 손아파. 일단 여기까지.

composite / 2016년 5월 17일 / Piss Development / 0 Comments

MS 공식 원격 데스크탑 클라이언트 for iOS, Mac, Android 출시!

허허.. 드디어 MS가 만든 원격 데스크탑 클라이언트가 iOS, 맥 및 안드로이드 운영체제용으로 출시했다.

3일 전에 말이다. 한국에서는 이틀 전에 접할 수 있었는데 우연히 커뮤니티 보고를 통해 알게 되었다.

조작이 iTap Mobile RDP 와 동일하다는 얘기가 있다. 유료라서 그런지 안써봐서 모르겠지만

참고로 공짜다. 공짜인데 장사꾼 컨텐츠로 전락한 “향상된 보안 접속” 도 지원되어 윈도우 7 이상이라도 거뜬히 접속 가능하다.

iOS (유니버셜) 앱스토어 (한국도 다운 가능)

https://itunes.apple.com/us/app/microsoft-remote-desktop/id714464092

안드로이드 구글 플레이 (한국도 다운 가능)

https://play.google.com/store/apps/details?id=com.microsoft.rdc.android

iTap 홈페이지에 가보니 개발을 더이상 안한다고 한다. 이유는 마소가 iTap 기술을 산 모양이다. 소문 좀 더 알아봐야겠지만.

어쨌든, 다른 기기에서도 윈도우를 원격 제어할 수 있다니 얼마나 편리하지 아니한가.. (이제서야)

나도 깔고 사용해보니 감격이다.. 조금 흠이 있다면 확대기능 부재와 확대기능에 대한 뭔가 아쉬움. 그거 빼면 부드럽게 잘 돌아가는 모습이 좋다잉~

composite / 2013년 10월 21일 / 미분류 / 0 Comments

이런 사람들은 윈도우 8.1 무료 업그레이드 불가.

  • 윈도우 8 엔터프라이즈
  • 윈도우 8 프로 버전을 KMS 인증한 컴퓨터
  • MSDN 에서 받은 윈도우 8 프로/엔터
  • 복돌이

방법 : 윈도우 8.1 ISO 이미지를 구해서 기존 업그레이드를 하거나 싹 밀고 재설치 (UEFI 포함)

복돌이 특히 : 8.1 업글 성공해봤자 인증 풀린다. 굳이 하고싶으면 8.1 전용 복돌 기다리던가 그냥 사!

끗.

여담으로 이번 겨울 되면 윈도우 8때처럼 윈도우 8.1과 서버 2012 R2 통합한 패키지본이 나올 듯ㅋ

(그렇다고 인증까지 해주지는 않으니 큰 기대 마라 복돌아.)

composite / 2013년 10월 18일 / 미분류 / 3 Comments

AppHarbor 로 .NET Application 테스트/서비스하기

아오 썅 AppHarbor 쓰는 한국인들 없나? 닷넷이 이렇게 죽었어? 엉? 구글 검색으로도 안나와 어떻게 된게.

그래서 내가 열받아서 쓴다. 참고로 AppHarbor 는 웹 어플리케이션 및 백그라운드 어플리케이션 (걍 콘솔)을 지원한다.

여기서는 웹 어플리케이션을 만들고, 올리고, 보여주는 식으로 강좌를 올리겠다.

AppHarborHeroku 의 .NET 버전이라고 보면 된다고 한다. (어느 외쿡님이)

AppHarbor 는 PaaS 서비스로, 어플리케이션을 올려서 서비스 한다고 보면 되며, 야는 .NET 만 지원한다.

.NET 버전은 csproj 파일에 있는 버전으로 알아채기 때문에 버전이 어떤 거든 상관은 없는데 최신 기술인 4.5 도 지원된다고 한다.

일단 .NET 클라우드 플랫폼에서 웹 서비스만 할거라면.. 무료다. 표를 통해 확인해봅세.

구분 

Azure 웹 무료

 AppHarbor 무료

 앱 개수

사이트 10개

제한 없음

 사이트 개수

 1

1

 저장소 용량

1GB (사이트 공유 총용량)

딱히 없는듯

 트래픽 제한

 일 165MB

월 100GB (작은 Worker) 

 사용자 지정 도메인

지원 안함

추가 요금 (제한없이 10$/월)

 SSL

지원 안함

기본 SSL 지원, 개별 별도 요금

 DB

MSSQL 전용 20MB 제공

 확장을 통해 무료 MSSQL 공유 20MB

MySQL 및 MongoDB도 있음.

 협업

불가능 (웹 게시 방식)

Git 를 통해 가능

 비고

 90일 무료 체험 가입해야함

그냥 가입하고 쓰면 됨

구분 

Azure 웹 서비스 표준

AppHarbor CATAMARAN

월 가격 (최소 인프라)

75$

49$

사이트 개수

100

1

 인스턴스 개수

 10

2

 사용자 지정 도메인

 지원

지원

 SSL

 별도 추가 요금

지원

 DB

 마찬가지이며 추가시 별도과금

마찬가지이며 추가시 별도과금

 협업

 불가 (웹 게시 방식)

Git 를 통해 가능

 저장소

10GB (사이트 공유 총용량)

 제한 없음

요금제 분석

 작은 여러 사이트 운영시 유리한 요금

큰 단일 사이트 운영시 유리한 요금

딱히 놓고 보면 AppHarbor 가 가격 면에서 비싸보인다. (솔직히 비싼것 같다.) 하지만 무료 환경이 좋다. 그래서 소개하는 것이다.

유료 요금제 분석 내가 가격과 스펙을 봤을 때 아무래도 이렇게 쓸 때 좋겠다는 주관적 입장일 뿐이며, 자세한 사항은 직접 가서 비교하기 바란다.

AppHarbor 는 Worker Scale 에 자세한 스펙을 표시하지 않았다. 그래서 한번 찾아봤더니 다음과 같이 나온다.

One worker is currently limited to roughly 50% of an AWS Elastic
Compute Unit (ECU) which is equivalent to 500-600 MHz. The worker
is allowed to consume up to 512MB of RAM (soft limit) and there’s a
1GB hard RAM limit. You might also want to check out the limits
section of our program policy which
specifies other limits of interest.

Limits

AppHarbor has soft and hard limits for the use of its services. Hard
limits are automatically enforced and soft limits are consumable
resources that you agree not to exceed.

  • Network Bandwidth per Worker Unit: 100GB/month – Soft
  • Shared DB processing: Max 200msec per second CPU time – Soft
  • Request timeout: 30 seconds – Soft; 120 seconds – Hard
  • RAM usage per Worker Unit: 512 MB – Hard (if you only have a single
    worker unit per worker the limit is: 512MB – Soft; 1024MB – Hard).
    Workers are restarted/recycled when exceeding this value).
  • CPU resources per Worker Unit: ~600MHz – Hard
  • Requests Queue limit per Worker Unit: 500 Requests – Hard

Worker 하나당 500MHz, 반기가헤르츠의 처리 속도와 512기가의 RAM을 제공받는다고 보면 된다. (물론 기본 Worker 당 스케일 늘리면 당연히 늘어나겠지만)

그리고 트래픽 100기가, 공유 DB의 경우 처리 속도가 200밀리초 미만, 최대 요청 시간 30포, 500개의 요청 대기를 지원한다.

그리고 RAM 의 경우 허용 크기를 넘어버리면 Worker 가 다시 시작된다. 사이트를 다시 시작한다는 뜻이다. 그렇게 되면 세션같은 메모리에 적재된 데이터는 날라간다. 무분별하게 메모리 내에 객체를 담는 것은 지양해야 할 것이다.

하지만 이정도 사양이면 사이트 테스트및 개인 연습 사이트 운영 등에 지장이 없다. 대국민 서비스는 젭알.

자. 이제 AppHarbor 로 어플리케이션을 어떻게 배포하는지 알려주도록 하겠다.

필자는 Nancy 로 만든 ASP.NET 웹 프로젝트를 만들었다. ASP.NET MVC 써도 되고 걍 ASP.NET 써도 되고

여의치 않는 사용자는 WebMatrix 로 만든 웹 사이트도 가능하다.

비주얼 스튜디오에서 웹개발 하는 사람이라면 알겠지만, 폴더 단위 프로젝트가 웹 사이트며, WebMatrix 는 웹 사이트 프로젝트만 지원하기 때문에 sln 파일이 따로 없다. 없어도 된다. 그래서 AppHarbor 에 올릴 때 솔루션 파일 (sln)이 없으면 웹 사이트 프로젝트로 취급되어 빌드되고 실행된다.

프로젝트 개수에 상관없이 sln 파일이 있고, 그 하위에 프로젝트 있는 구조로 올리면 된다.

어떤 프로젝트는 sln 이 별도 폴더에 있고 실제 프로젝트는 다른 경로에 있는데 그렇게 하면 잘못 판단하여 빌드 안되므로 유의.

즉, 이렇게 하라는 거다. 올바른 앱 폴더 구조는 다음과 같다.

AppHarbor_Test (앱 최상위 폴더)

└ Project1 (클래스 라이브러리 폴더)

└ ASPNETMVC (웹 프로젝트 폴더)

└ MyApp.sln (솔루션 파일)

또는

AppHarbor_Test (앱 최상위 폴더)

└ App_Data (폴더)

└ Index.aspx (페이지 파일)

└ Global.asax (웹 설정)

└ MyClass.cs (임의 클래스)

└ Web.config (웹 설정)

└ MyApp.csproj (프로젝트 파일)

└ MyApp.sln (솔루션 파일)

아래와 같은 앱 폴더 구조는 올바르지 않다. (웹사이트로 인식되어 올바르게 사이트 뜨지 않는다)

AppHarbor_Test (앱 최상위 폴더)

└ Sln (솔루션 폴더)

    └ MyApp.sln (솔루션 파일)

└ Project1 (클래스 라이브러리 폴더)

└ ASPNETMVC (웹 프로젝트 폴더)

<

p>

이렇게 해서 프로젝트를 만들거나, 기존 웹 되는 프로젝트를 먼저 준비한다.

그리고 아래 프로그램이 있어야 한다.

  • Git for Windows (Github for Windows 는 Github 연동일 때만 해당) (필수)
  • TortoiseGit 또는 Git Extensions (마우스 클릭으로 하고 싶으면 설치, 콘솔로 하겠다면 비설치)
  • Git Source Control Provider for VS2012 (있으면 편하고 없어도 무방)

Git 쓰는 방법은 귀찮아서 패스. 구글 검색하면 흔하디 흔하게 나온다.

AppHarbor 가입하는 방법은 간단하다. 메인 페이지에서 GET STARTED NOT 버튼을 클릭하여 이메일, 아이디, 비번 세가지만 쓰면 된다. 그럼 인증메일이 오는데 인증메일 링크를 클릭하고 로긴하면 가입절차가 끝난다.

그러면 Create New Application 나오는데, 원하는 이름을 입력하고, 서버 위치 선택 후 만들면 된다.

서버 위치가 미국, 유럽, 미국베타가 있는데 걍 미국 선택 후 만든다.

그런 다음, 왼쪽 메뉴 하단에 REPOSITORY URL 버튼이 보일 것이다. 클릭하면 URL이 복사된다.

Git 원격 URL을 복사된 URL로 쓰면 된다.

특이한 점은 비밀키 생성된 파일을 요구하지 않고, 비밀번호만 요구할 것이다. 원체 윈도우다 보니 HTTPS 프로토콜만 제공하나보다. 물론 비밀키파일 생성하고 원격에 등록하면 매번 비번 입력하는 귀차니즘 없이 쓸 수는 있는데.. 안타깝소.

그리고 메뉴에 Hostnames 가보면 생성된 URL이 뜨는데 이게 당신이 만든 웹 사이트를 접근할 URL 이다.

안타깝게도 사용자 지정 도메인은 유료이기 때문에 운영할 맘이 없다면 그냥 기본 제공 도메인을 쓰도록 한다.

다음으로, DB를 쓰도록 하자. AppHarbor 사이트 위에 대메뉴에서 Add-ons 가면 되는데, MySQL, PostgreSQL, MSSQL 등의 SQL DB가 지원되고, MongoDB, Redis, CouchDB 등의 No-SQL 디스크 기반 또는 메모리 DB를 사용할 수 있다.

무료 플랜도 찾아보면 나오며, 테스트로 쓸수 있고, 경우에 따라 원격 접속도 가능하여 확인도 가능하다.

MSSQL 쓰려면 맨 아래로 스크롤 이동하면 나오는데, Yocto 가 무료다. 공유된 SQL 환경에서 20MB 무료로 제공한다.

주저없이 테스트 해주자. 당신의 컴터에 매니지먼트 스튜디오 등의 DB 클라이언트 있으면 거기서도 접속 가능하므로 참고.

composite / 2013년 10월 7일 / 미분류 / 2 Comments