728x90

안드로이드 운영체제와 iOS 운영체제를 위한 어플리케이션 뿐만 아니라 웹 앱, 데스크탑 어플리케이션까지 단일 코드로 만들 수 있다면 얼마나 편리할까요? 구글이 내놓은 UI 툴킷 플러터 Flutter 가 지향하는 바도 동일합니다. 그래서 다시 한 번 어플리케이션 개발의 로망을 갖고 플러터를 공부해 보기로 했습니다 :-)

플러터 SDK 설치하기

플러터 공식 홈페이지의 설치 가이드 : https://flutter.dev/docs/get-started/install

 

Install

How to set up your code editor.

flutter.dev

https://flutter.dev/docs/get-started/install

 

플러터로 개발을 하기 위해서는 어떤 환경을 대상으로 개발 작업을 할 것이냐에 따라 달라질 수 있습니다. 무모하게도 저는 안드로이드, iOS, 웹 뿐만 아니라 데스크탑 어플리케이션까지 한 번 목표로 해보도록 하겠습니다. 참고로, iOS 어플리케이션으로 배포를 하기 위해서는 맥 기기와 X code 가 필요합니다. 

플러터 SDK 설치는 두가지 방법이 있습니다. 하나는 플러터 공식 웹사이트에서 ZIP 으로 압축하여 배포하는 SDK 를 다운로드 받아 임의의 경로에 풀어서 사용하는 것이고, 다른 하나는 플러터 Git 에 릴리즈된 코드를 Clone 하여 사용하는 것입니다. 저는 후자의 방법을 택하여 로컬 환경을 준비해 보기로 했습니다. 

플러터 Github : https://github.com/flutter/flutter

 

flutter/flutter

Flutter makes it easy and fast to build beautiful apps for mobile and beyond. - flutter/flutter

github.com

https://github.com/flutter/flutter

 

플러터 Github 리포지토리에서 초록색 Code 버튼을 눌러 주소를 복사합니다. 로컬 환경에 Git 이 설치되어 있지 않다면 여기서 <Download ZIP> 을 눌러서 코드를 받는 것도 가능합니다. 복사한 주소를 `git clone https://github.com/flutter/flutter` 명령으로 로컬 환경에 복제합니다. 용량이 꽤 크기 때문에 시간이 좀 걸릴 수 있습니다. 

복제가 완료되면 X code, 안드로이드 스튜디오, VS Code 등 개발, 빌드 도구가 플러터에 쉽게 접근할 수 있도록 PATH 환경 변수에 경로를 추가해 주어야 합니다. ZIP 으로 다운로드 받아 압축을 푼 경우에도 동일하게 환경변수를 추가해 주면 됩니다. 

//
// flutter 의 최신 릴리즈를 Clone
//
$ git clone https://github.com/flutter/flutter
Cloning into 'flutter'...
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 252325 (delta 0), reused 0 (delta 0), pack-reused 252324
Receiving objects: 100% (252325/252325), 107.44 MiB | 2.17 MiB/s, done.
Resolving deltas: 100% (193972/193972), done.
Checking out files: 100% (4917/4917), done.

//
// PATH 환경변수에 Flutter Bin 경로를 추가
// .bash_profile 이나 .bash_rc 에 추가하는 것을 권장
//
$ export PATH="$PATH:/Users/nopd/dev/flutter/bin"

//
// 환경변수가 잘 셋업 되었는지 which 명령으로 확인
//
$ which flutter dart
/Users/nopd/dev/flutter/bin/flutter
/Users/nopd/dev/flutter/bin/dart

 

플러터 개발환경 점검하기

플러터는 Doctor 라는 도구를 제공합니다. 터미널에서 `flutter docter -v` 명령을 입력하면 플러터 툴이 추가로 다운로드되어 설치되고, 설치가 완료된 이후 개발 환경 점검을 진행하게 됩니다. 이 도구를 이용하여 개발, 빌드 환경에 필요한 도구가 설치되었는지 확인할 수 있고, 설치된 도구가 플러터를 이해하기 위해 추가로 필요한 플러그인 등이 준비되었는지 확인해 줍니다. 

플러터 개발에 필요한 도구들은 대략 아래와 같습니다. 

  • Flutter SDK : 지금 막 설치 완료한 Flutter 개발을 위한 툴킷
  • X code : Flutter 로 개발한 Dart 코드를 iOS 환경의 바이너리로 빌드할 때 사용 (Mac Only)
  • Android Studio : Flutter 로 개발한 Dart 코드를 안드로이드 환경의 바이너리로 빌드할 때 사용 (Mac / Windows)
  • VS Code : Flutter 의 Dart 언어로 코드를 개발할 때 사용할 코드 에디터 (단, 다른 도구를 써도 무방)
//
// Flutter Doctor 를 설치
// (Doctor 는 개발 환경에 문제가 있는지를 점검해 주는 도구)
//
$ flutter doctor -v
Downloading Dart SDK from Flutter engine 280bbfc763cf1154e7fef04eda1565122254bcdc...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  258M  100  258M    0     0  1791k      0  0:02:27  0:02:27 --:--:-- 4955k
Building flutter tool...
...
...
// 설치가 끝나면 점검 작업을 시작
...
...

플러터 Doctor 가 환경 점검을 마치면 아래와 같은 결과 리포트를 출력해 줍니다. 운영체제별 빌드 환경은 코드를 실제 배포하기 위한 준비를 하면서 체크해 보기로 하고 일단은 VS Code 에 대하여 요청된 플러터 익스텐션 Flutter Extension 을 설치해 보도록 하겠습니다. 설치 이후에는 Doctor 를 한번 더 이용하여 잘 설치되었는지 확인해 보겠습니다. 

 

VS Code 플러터 확장 설치

VS Code 는 마이크로소프트가 만든 오픈소스 통합 개발 환경입니다. 제 경우에는 파이썬 Python 개발과 Node.js 개발, 그리고 Vue.js 를 이용한 UI 개발에 VS Code 를 활용하고 있습니다. 플러터를 개발할 수 있는 코드 편집기는 개인 취향으로 선택할 수 있습니다만 기왕이면 익숙한 툴을 사용하는 것이 좋다고 생각되어 VS Code 를 써보려는 중입니다.

VS Code 는 특정 언어나 환경에 종속되어 있지 않기 때문에 개발하려는 언어, 환경에 따라 필요한 플러그인 혹은 확장 Extension 을 설치해 주어야 합니다. VS Code 를 먼저 실행하고 왼쪽 툴바의 다섯번째에 위치한 확장 기능을 선택하여 플러터 확장을 검색, 설치해보겠습니다. 검색어에 Flutter 를 입력하면 플러터 개발/디버그 확장이 첫번째 결과로 출력됩니다. 

VS Code 확장 검색
설치가 완료되면 "Uninstall" 로 메세지가 변경됩니다. 

 

검색 결과의 `Install` 버튼을 누르면 확장이 설치됩니다. 잠시 기다리면 설치가 완료되고 버튼이 `Uninstall` 로 바뀐 것을 보실 수 있습니다. 이제 설치가 완료되었으니 Doctor 에게 다시 한 번 진료를 요청해 보도록 하겠습니다. 다행히 이번에는 모든 점검을 통과하여 그린 라이트가 켜진 결과를 받아볼 수 있었네요! 이제 개발할 준비가 되었으니 본격적으로 코드를 만들어 보도록 하겠습니다. 

그린라이트!

...To be continued...

 

728x90
728x90

페이스북(Facebook)에서 최근 오픈소스로 공개하면서 다시 한 번 관심을 받고 있는 프레임워크가 바로 리액트 네이티브(React Native)입니다. 리액트는 웹 개발을 위한 프레임워크로 먼저 탄생되었지만 애플의 iOS 의 네이티브 앱 개발에 활용할 수 있도록 리액트 네이티브로 파생되면서 올해 초 큰 화제를 모았었습니다. Objective C 를 이용한 네이티브 개발이나 Swift 도 좋지만 이왕이면 익숙한 자바스크립트 기반으로 클라이언트와 서버를 모두 커버할 수 있다면 베스트가 아닐까 싶습니다.


리액트 네이티브를 이용해서 어느 선의 어플리케이션까지 개발할 수 있을지는 모르겠지만 일단 리빌드 없이 많은 수정 작업을 할 수 있다는 점이 분명 메리트라 보여집니다. 맥 환경에서 리엑트 네이티브를 이용한 개발환경을 꾸미는 방법은 리엑트 네이티브 공식 웹 사이트에서도 자세히 나와 있지만 이왕이면 동영상을 통해서 보시면 익숙하지 않은 분들께는 도움이 많이 될 것으로 보입니다.


리엑트 네이티브(React Native) 공식 웹사이트 살펴보기 [바로가기]




리엑트 네이티브의 공식 웹사이트에서 "Get started with React Native" 버튼을 누르시면 상세한 스텝 바이 스텝 설치 절차가 나옵니다. 리엑트 네이티브를 이용한 개발을 하려면 우선 Xcode 가 설치되어 있어야 합니다. 개발에 필요한 패키지 설치를 위해 Homebrew 를 이용하는 것을 권장하고 있으며 Homebrew 를 이용해서 node.js 와 watchman 을 설치하고 필요한 경우 JS Validation 프레임워크인 flow 까지 설치를 진행하면 됩니다 (flow 는 옵션) 실제 리엑트 네이티브의 패키지는 npm 을 이용해서 설치하게 되며 설치된 패키지를 이용하여 샘플 프로젝트를 생성할 수 있습니다.




개인적으로 이 과정을 거치는 동안 다소간의 이슈(?)가 있었는데요 대부분 권한에 대한 이슈들이었습니다. 로그인한 사용자 계정과 실제 패키지들이 설치되고 링크되는 폴더의 권한이 달라서 발생한 문제들이었습니다. brew 를 통한 인스톨이 좀 애로사항이 있었지만 권한에 대한 적절한 조절을 하고 나니 필요한 모든 과정이 문제 없이 진행되었습니다. 자세한 과정은 아래 첨부해드린 동영상을 한번 참고하시면 보다 쉽게 진행될 것으로 생각됩니다. 리엑트 네이티브로 시작하는 iOS 어플리케이션 개발의 세계로 빠져볼까요?




패키징 툴간의 충돌 문제 관련 참고 링크 [바로가기]

brew 를 통한 설치 과정에서의 퍼미션 이슈 관련 링크 [바로가기]



728x90
728x90
어떤 서비스를 이용할 때 웹 사이트를 꼼꼼히 살펴보는 습관은 무척 중요합니다. 요즘 같은 시대에 웹 사이트는 단순히 마케팅의 역할을 하는 것을 넘어서 기술지원까지 넘어오기 전 고객들이 문제 해결을 할 수 있는 창구로서의 역할 뿐만 아니라 다양한 정보를 식별하고 분류하며 이해하는 주요 창구로의 역할을 추종하고 있기 때문입니다.

마이크로소프트가 클라우드 운영체제(Cloud OS)를 표방하며 강하게 드라이브하고 있는 클라우드 서비스 플랫폼 애져(Azure) 역시 마찬가지입니다. 애져는 굉장히 넓은 개념을 포괄하고 있는 서비스이기 때문에 처음 접하는 사람들은 자칫 어디서부터 시작해야 할지 당황하기 쉽습니다. 애져 공식 웹사이트(http://www.windowsazure.com/)가 게시하고 있는 컨텐츠를 잘 활용하면 어디서 어떤 정보를 먼저 찾기 시작해야 하는지 힌트를 얻을 수 있습니다. 

 
애져 웹사이트에 접속하면 그리 넓지 않은 폭을 차지하고 있는 단아한 화면과 함께 7개의 주요 메뉴가 노출됩니다. 상품 가입을 하고나서 콘솔을 이용하는 방법은 당연히 중요하겠지만 메뉴에서부터 애져가 제공하는 수많은 솔루션들 중 어떤 것이 내게 필요한 솔루션인지를 찾아나가는 방법을 먼저 알아보는 것이 순서일 것 같습니다.

애져 서비스가 제공하는 상품들에 대한 정보와 각 상품들을 어떤 영역에서 어떻게 활용하면 좋을지를 알려주는 메뉴가 첫번째에 위치한 SOLUTIONS 메뉴입니다. 이 메뉴는 하위에 몇 가지 서브 메뉴를 가지고 있는데요, 각 메뉴가 이야기하고자 하는 것이 무엇인지를 알아보도록 하겠습니다. 처음에는 이 메뉴가 왜 이렇게 구성되어 있는지 의아함을 갖고 있다가도 금새 그 방법에 공감하게 되실지도 모르겠습니다

 
상단의 Solutions 메뉴를 선택하면 하위에 4개의 서브 메뉴가 노출됩니다. 글로벌 메뉴와 동일한 이름을 가지고 있는 첫번째 서브 메뉴는 Solutions 입니다. 우측에 전개된 세부 항목을 보면 인프라스트럭쳐, 웹, 모바일 등에서부터 빅데이터, 데이터 매니지먼트 등 다양한 기술 영역에 대한 이름들이 나열되어 있습니다. 이 메뉴의 각 항목들은 해당 항목을 목적으로 하는 경우 마이크로소프트 애져의 어떤 서비스들을 이용할 수 있는지를 그룹 지어놓은 것들입니다.

 


가령 모바일 서비스 혹은 모바일 앱 개발을 하기위해서 도움이 될만한 애져 서비스를 알아보고자 Mobile 을 눌렀을 경우 Mobile Apps 라는 컨텐츠 페이지로 이동을 하게 됩니다. 이곳에서 우리는 애져가 모바일 서비스 개발을 위해 줄 수 있는 특장점과 활용 시나리오, 그리고 그 시나리오를 뒷받침 해주는 애져의 서비스들 목록을 확인해 볼 수 있습니다. 화면에 출력된 컨텐츠를 읽으며 가장 하단까지 내려가면 모바일 앱을 만들기 위해 활용할 수 있는 애져의 다양한 서비스를 확인할 수 있습니다. 

여기에 나열된 애져의 여러 서비스들이 모든 모바일 앱 개발자에게 필요한 것은 절대 아닙니다. 그렇지만 현존하는 많은 모바일 앱들은 이런 서비스를 조합하여 구현이 가능한 것들이며 애져 클라우드 서비스가 이를 제공해 주고 있다는 것을 알려줍니다. 가령 서비스 버스나 노티피케이션 허브는 앱에 기능요소로 내부 컴포넌트간 큐관리나 노티피케이션 발송 기능이 필요한 경우 활용할 수 있을 것입니다.


다시 상단 메뉴로 돌아가서 두번째 서브메뉴인 Discover 를 살펴보겠습니다. 개발자들이 많은 관심을 갖는 경우는 아니겠지만 의사결정권자나 비즈니스, 운영 업무를 하는 사람들이라면 Discover 의 내용들을 유심히 살펴볼 필요가 있습니다. Enterprise IT 와 Application Hosting 은 애져를 이용하여 해당 카테고리의 업무를 클라우드로 전환한 고객들의 이야기와 그들이 얻어낸 메리트를 쉽게 살펴볼 수 있습니다. 고객 사례의 경우 Case Studies 에서도 확인이 가능하지만 애져가 강하게 드라이브 하고 있는 Private Cloud 와 Public Cloud 간의 조화 (Hybrid Cloud) 라던가 비즈니스 어플리케이션을 어떻게 애져를 통해 서비스 하는지 사례를 통해 기업 고객들에게 보다 많은 관심을 이끌어 내고자 함이 느껴집니다.

애져 클라우드 서비스를 선택할 때 가장 많은 질문을 받게되는 부분이 아마존 AWS 와의 성능 차이, 메리트 등일 것입니다. 명실공히 클라우드 플랫폼으로 우뚝 서있는 아마존이기에 그런 비교는 당연한 것이고 애져를 씀에 있어서 명확하게 어떤 점이 강하고 약한지를 알아둘 필요가 있습니다. Discover 에서 그런 주요한 포인트를 찾아내고 애져를 어떻게 쓸 것인지 생각해볼 수 있습니다.


상단 메뉴로 돌아가 서브메뉴의 세번째인 Services 를 눌러보면 아마 대부분의 사람들이 "내가 찾던게 바로 이거야!" 할 거라는 생각이 듭니다. 소위 서버 자원과 관계된 COMPUTE 카테고리, 데이터베이스와 관계된 DATA SERVICES 카테고리, 어플리케이션 혹은 웹 사이트 개발에 도움이 될 수 있는 다양한 서비스들, 마지막으로 로드밸런싱이나 대규모 인프라 운영, 트레픽 관리를 위해 필요한 NETWORK SERVICES 등은 익숙한 개념들이고 용어들일 것입니다.

 
마지막 서브메뉴는 애져를 이용하여 서비스를 구축하고 운영하고 있는 사례들을 모아둔 Case Study 입니다. 이곳은 애져를 만족스럽게 쓰는 고객들이 마이크로소프트 애져를 통해 어떻게 시스템을 구축하고 어떤 서비스를 운영하고 있는지를 쉽게 확인하고 애져 사용에 대한 쐐기를 최종 결정을 할 수 있는 곳이기도 합니다.

기업들의 세계를 가만히 들여다보면 재미있는 습성을 가지고 있습니다. 자신과 동일한 카테고리의 산업군에 속한 주요 기업이 쓰고 있는 서비스나 솔루션이 동일 산업군의 다른 기업에서도 채택할 가능성이 높다는 것이 바로 그것입니다. 애져 웹 사이트 뿐만 아니라 많은 솔루션, 서비스 웹 사이트들이 Case Study 에 가능한 좋은 기업들로부터 컨텐츠를 받아 게시하고 싶은 이유가 여기에 있습니다. 사례를 통해 선택의 당위성을 검증하고 어떤 식으로 다른 기업들이 활용하고 있는지를 가볍게 들어보는 시간을 가져보시기 바랍니다.

마치며...
 
마이크로소프트 애져는 시장에서 괜찮은 반응을 얻고 있습니다. 마이크로소프트 답지않은(?) 기민한 움직임과 다양한 서비스들이 주는 풍요로움, 막강한 개발자 에코시스템을 기반으로 비주얼 스튜디오 등 전통적인 툴과의 매끄러운 연결성도 애져가 점점 사랑받는 이유중 하나입니다. 하지만 제대로 된 이용을 위해서 영어 웹 사이트를 써야만 하고 초기 진입시 아마존 대비 한글화된 컨텐츠를 얻기 쉽지 않다는 것이 진입 장벽이기도 합니다.

애져를 쓰기로 결정했다면 이런 어려움은 일단 감안하고 시작을 해야할 것입니다. 그럼에도 불구하고 애져는 꽤나 매력적인 서비스이고 새로운 무언가를 만들기에 좋은 플랫폼입니다. 저와 같이 하나씩 살펴보면서 애져의 세계로 푹 빠져보시는 건 어떨까요? 저도 그동안 제대로 써보지 않던 애져를 제대로 A to Z 살펴보고 파일럿 프로젝트까지 올려보고자 이 연재를 시작하고자 합니다.

 
728x90
728x90
1인 앱개발 하시는 분들이 늘어나면서 다들 하시는 고민이 있습니다. 이미지나 아이콘을 무료로 하지만 퀄리티 있는 것으로 사용할 수 있는 방법이 없을까 하는 것이지요. 가끔 올라오긴 하지만 수준급 포토샵 Texture, 그것도 무료로 제공되는 소스가 있어서 공유합니다.






그외 더 많은 소스는 잘 정리된 블로그 링크 공유해 드립니다! 정리해 주신 분께 감사의 인사를! (http://auxo.co.kr/118648111) 수준급의 배경화면 하나만 깔아 두더라도 앱의 느낌은 확 달라집니다. 디자이너를 따로 쓰지 못하는 상황에 계시다면 이런 링크 잘 챙겨두셨다가 사용하시는 것도 좋을 것 같네요!

- NoPD -
728x90

+ Recent posts