먹는게 남는거다!

[크롬북으로 개발하기] 원격접속시 텔레그램 메시지 받기 : 4. Cloud IDE로 개발하기 (goorm.io)

C#, ASP.NET

크롬북으로 개발하기로 맘먹고 여러 개발 툴을 찾아봤습니다. CaretZed Code Editor 등 괜찮은 에디터들이 있었지만 Visual Studio의 막강한 기능에 익숙해진 저에게 해당 에디터들은 2% 부족했습니다.

그래서 크롬북을 리눅스로 변경해서 MonoDevelop이나 Visual Studio Code를 사용할까 하다가 순수 크롬북만으로 개발하는 것이 목적이기 때문에 대안을 찾던 중 cloud ide라는 것을 알게 되었습니다.


Cloud ide는 웹브라우저만 있으면 어디서든 코드 편집, 빌드, 디버깅까지 clipse나 Visual Studio 못지않은 통합 개발 환경을 제공하는 웹솔루션입니다.


그중에서 유명한 Cloud9을 둘러봤지만 아쉽게도 C#으로 개발하기 위해서는 별도 템플릿을 설치해야 하는 번거로움이 있어서 다른 cloud ide를 찾던 중 goorm.io이라는 웹사이트를 알게 되었습니다.



국내 회사에서 개발하여 한글 지원도 잘 되고 무엇보다 별도 세팅 없이 C#뿐만 아니라 node.js, PHP, JAVA, Ruby 등 다양한 언어를 지원하며 온라인상에서 컴파일뿐만 아니라 디버깅도 지원합니다.

더구나 512MB 메모리, 5GB 스토리지를 무료로 제공하기 때문에 비용 걱정도 없습니다.


회원 가입 후, 우측 상단의 "새 컨테이너 생성" 버튼을 클릭하면 위와 같이 컨테이너 생성 팝업이 나옵니다.

적당한 이름을 입력하고 언어를 생성하면 아래와 같이 컨테이너가 생성됩니다.


컨테이너를 생성한 후, 좌측 아래 "실행" 버튼을 클릭하면 아래와 같이 우리에게 익숙한 IDE 화면이 나옵니다.

지금이야 무덤덤하지만 처음 아래 화면을 봤을 때 무거운 IDE를 온라인상에서 구현한 모습에 적잖은 충격이었습니다.

이제 본격적인 개발을 시작해 보려고 합니다.

우선 "파일" -> "새로 만들기" -> "SCM" 메뉴를 클릭합니다.

아래와 같이 "새 프로젝트" 팝업이 나오면 저장소 URL에 지난번에 생성한 gitlab.com repository 주소를 입력하고 인증 항목에 유저 아이디, 패스워드를 입력합니다.

유형: Git
저장소 URL: gitlab.com에서 생성한 repository 주소 (https://gitlab.com/xxx/xxxx.git)
리버전: HEAD
인증: 인증된 사용자
유저: gitlab.com 회원 아이디
패스워드: gitlab.com 비밀번호


위와 같이 프로젝트 상세 정보를 입력하면 gitlab.com repository에서 소스 파일들을 가져오게 됩니다.






이제 C# 콘솔 프로그램 설정을 해야 합니다.

위의 이미지와 같이 프로젝트 속성창을 연 후, .NET 패널에 아래와 같이 설정값을 입력합니다.

메인 이름: main
소스 경로: src/
빌드 경로: bin/

이렇게 설정하면 콘솔 프로그램 실행시 /src/main.cs 파일이 진입점이 됩니다.

따라서 마지막으로 아래 이미지와 같이 /src, /bin 폴더와 /src/main.cs 파일을 생성해야 합니다.




이제 /src/main.cs 파일에 열심히 작업하면 됩니다.


- 끝 - 





[크롬북으로 개발하기] 원격접속시 텔레그램 메시지 받기 : 3. 소스 관리하기 (gitlab.com)

C#, ASP.NET

몇 줄 안되는 소스지만 그래도 관리가 필요할 것 같아 대세인 github에 repository를 생성하려 했습니다.

그런데 아쉽게도 github는 비공개시 유료라 대체재를 찾던중 gitlab.com 을 알게 되었습니다.

사실 검색중에 알게된 Bitbucket이 더 기능도 많고 좋아 보였지만 귀찮아서 이번에는 gitlab.com을 이용해 볼려고 합니다.
(다음에 기회에 되면 Bitbucket에 대해 포스팅 해보겠습니다.)




gitlab.com은 Community Edition과 Enterprise Edition, 무료 호스팅 버전을 제공하는 매우 고마운 사이트입니다.


gitlab.com Compare 웹페이지에서 두 Edition의 차이를 비교해 보면 알 수 있듯이 Community Edition도 사용하는데 충분한 기능을 제공하고 있습니다.

하지만 ...

Community Edition은 설치를 해야 하고 그에 따라 관리도 해야 하기 때문에 무료 호스팅을 이용하기로 결정했습니다.


1. 계정 생성




gitlab.com은 Google Plus, Twitter 등의 소셜 로그인과 일반 회원 가입을 통한 로그인을 모두 지원합니다.

우선 이름, 회원 아이디 등을 입력하고 "Sign up" 버튼을 클릭하여 회원 계정을 생성합니다.

그 다음 "Almost there..."라는 웹페이지에서 "Request new confirmationemail" 버튼을 클릭하면 회원 가입시 입력한 이메일로 계정 확인 이메일이 도착합니다.

해당 이메일의 "Confirm your account" 버튼을 클릭하면 비로소 회원 가입이 완료 됩니다.



2. 프로젝트 생성


회원 가입 후 처음 로그인을 하면 생성된 프로젝트가 없기 때문에 위와 같이 심심한 웹페이지를 만나게 됩니다.

이제 "New project"를 클릭하여 새로운 프로젝트를 생성합니다.




당황스러울 정도로 프로젝트 생성이 간단합니다.

프로젝트 설명, 프로젝트 가져오기 등의 옵션이 있지만 특별한 설정 없이 프로젝트 이름만 입력해도 됩니다.

물론 부끄러운 소스를 감추기 위해 Visibility Level은 Private로 설정하였습니다.




- 끝 -



[크롬북으로 개발하기] 원격접속시 텔레그램 메시지 받기 : 2. 텔레그램봇 생성하기

C#, ASP.NET

텔레그램으로 메시지를 받기 위해서는 BotFather라는 봇에게 텔레그램봇 생성을 요청해야 합니다.

@botfather라는 봇을 검색 후 "시작" 또는 "재시작" 버튼을 클릭하여 BotFather와 대화를 시작합니다.



우선 "/newbot"을 입력하여 봇을 생성하고 싶다고 말합니다.

그 후에 생성할 봇의 이름을 입력하고 마지막으로 봇이 사용할 username을 입력하면 끝입니다.
(username은 bot 이라는 단어로 끝나야 합니다.)

그럼 BotFather는 새로운 봇을 생성하고 위와 같이 token을 알려줍니다.
("Use this token to access the HTTP API:" 밑에 있는 문자열이 token입니다.)

이 토큰을 별도로 적어 놓습니다. 

주의할 점은 이 토큰은 일종의 비밀번호이기 때문에 유출되면 안됩니다.



이제 생성된 봇에게 나의 존재를 알리는 작업이 필요합니다.

우선 위 이미지의 생성된 봇 링크(예: telegram.me/AlertMe2Bot)를 클릭하여 대화를 시작합니다.


그리고 생성한 텔레그램봇이 내 chat id를 인식할 수 있도록 어떤 메시지든 입력합니다.




이제 마지막 작업입니다.

생성된 봇이 인지한 내 chat id를 찾는 일만 남았습니다.

웹브라우져를 연 후 https://api.telegram.org/bot[아까 발급 받은 token]/getUpdates 를 입력합니다.

그럼 위와 같이 생성된 봇에게 입력했던 메시지 정보가 나옵니다.


{"ok":true,"result":[{"update_id":413816513, "message":{"message_id":2,"from":{"id":434650172,"first_name":"\uc2b9\uc900","last_name":"\uc774","username":"test"},"chat":{"id":45810672,"first_name":"\uc2b9\uc800","last_name":"\uc674","username":"test2","type":"private"},"date":1467868645,"text":"\uc2dc\uc791"}}]}


이 중에 빨간 id 부분이 내 chat id 입니다.

이 chat id를 이용하면 텔레그램봇이 나에게 메시지를 보낼 수 있습니다.

그러므로 이것도 별도로 적어 놓습니다.



이제 진짜 마지막 작업입니다. ^^;

Fiddler를 통해 실제로 봇에게 메시지를 보내 봅니다.


METHOD: POST

URL: https://api.telegram.org/bot[아까 발급 받은 token]/sendMessage
Content-Type: application/json
Request Body: {"chat_id": "[내 chat id]", "text": "진짜 끝!"}


위와 같이 텔레그램 봇에 메시지를 전송하면 아래와 같이 내 텔레그램으로 메시지가 옵니다. 


이젠 정말 완전 끝!

수고하셨습니다.