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

인터넷과 네트워크의 속도는 점점 빨라지고 있습니다. 유선망은 물론이고 무선망 역시 엄청난 비율로 대역폭과 전송속도가 빨라지고 있습니다. 하지만 이에 발맞추어 웹 기반의 컨텐츠들은 점점 더 사이즈가 커지고 있을뿐만 아니라 동영상, 이미지, 동적인 구성으로 리치(Rich)해지고 있으며 여러 서비스들이 서로 Open API 등으로 얽히면서 성능을 최적화 하는 것이 점점 어려워지고 있습니다. 필요해 의해 기능구성이 끝난 웹 사이트가 보다 최적의 속도를 낼 수 있도록 하려면 만들어진 산출물을 잘 분석하는 것이 중요합니다.


야후(Yahoo)를 비롯한 유수의 IT 기업들은 웹 사이트를 최적화 하기 위한 여러가지 방법들을 제시하고 있습니다. 각 브라우저가 제공 가능한 최대 동시 접속 도메인의 수를 활용하는 도메인 샤딩(Domain Sharding)을 제안하고 자바스크립트나 CSS 를 가능한 범위에서 인라인(Inline)처리하고 미니피케이션(Minification)을 적용하는 것이 대표적입니다. 하지만 이런 최적화 작업이 서드 파티(3rd Party) 플러그 인이라던가 라이브러리에 적용되어야 하는 경우를 먼저 발라내는 것이 중요합니다.





리퀘스트 맵 제너레이터(Request Map Generator)는 현재 웹 사이트가 어떤 컨텐츠들을 어떠한 도메인과 서비스에서 연동하고 있는지를 분석해주는 도구입니다. 단순히 텍스트를 중심으로 분석해주는 것이 아니라 분석된 결과를 미려하고 인터렉티브한 결과 페이지로 제공하기 때문에 분석의 재미까지 더해주는 도구입니다. 대표적인 웹 사이트 성능측정 도구인 웹페이지테스트(Webpagetest.org)를 근간으로 만들어진 서비스이기 때문에 분석 결과는 무척 신뢰할만합니다.


단순히 웹 사이트를 워터폴 차트(Water-fall) 만으로 분석하고 최적화 할 포인트를 찾아내는 것이 지루했다면 리퀘스트 맵 제너레이터를 이용해서 재미있는 분석을 해보시는 건 어떨까요? 분석 결과를 적절히 캡쳐해서 분석 보고서에 활용한다면 주변 분들이나 보스에게도 사랑받는 개발자, 운영자가 될 수 있을 것만 같습니다. 웹 사이트 성능 분석~ 어렵지 않아요!





naver.com 분석결과



리퀘스트 맵 제너레이터로 웹 사이트 분석해보기 [바로가기]



728x90
728x90

개발자로 일을 하다보면 개인적으로 사용할 수 있는 테스트 서버가 필요할 때가 많습니다. 회사에서 제공되는 개발 머신이 있는 경우가 많겠지만 왠지 좀 비밀스러운 일도 하고 재미있는 구성들을 해보기 위해서 별도로 서버를 준비하고 싶을때가 많지요. DDNS(Dynamic DNS) 서비스를 이용해서 집에 PC 나 소규모 서버를 구성하는 것도 방법이겠습니다만 전기세나 DDNS 의 잘못된 동작, 행여나 있을지 모르는 대역폭(Bandwidth) 이슈가 걱정되는게 사실입니다.


하지만 아마존 EC2 와 같은 클라우드는 좋긴 하지만 가격이 생각외로 좀 쎈편이라 (게다가 콘솔이 온통 영어고 해외 사용료 결재 등이 왠지 또 찜찜한 분들도 계실거구요) 저렴한 웹 호스팅을 쓰는 경우가 생기곤 합니다. 하지만 호스팅은 서버 전체를 제어할 필요가 있는 경우, 혹은 특정한 모듈, 설정을 하고자 할때 그닥 좋지가 않죠. 하지만 물리 장비를 이용한 서버 호스팅은 가격이 만만치 않은게 현실입니다.




이런 생각을 똑같이 하시고 계시던 분이 있다면 가비아(gabia)가 12월 한달동안 진행하는 클라우드 서버 기본상품(g클라우드 베이직?) 70% 할인행사를 이용해 보시면 어떨까 싶습니다. 1vCore 에 메모리도 고작 1GB, 스토리지도 100GB 밖에 안된다고 생각할 수 있지만 공인IP 를 확보할 수 있고 트레픽도 가상머신당 1TB 까지 별도 과금이 없으니 간단하게 서버를 구성하고 돌리는데 무리가 없어 보입니다.


행사 내용을 살펴보면 12월 한달간 가입하는 신규 고객에 한정되고 1인당 2개의 가상머신까지만 혜택을 받을 수 있다고 합니다. 그리고 70% 할인된 금액으로 과금되는 것은 2개월 적용되고 이후에는 다시 원래의 가격 25,000원/월 로 전환되는 것으로 보이네요. 제약조건이 있긴 하지만 클라우드 서비스들에 비해 단기 사용을 생각하면 무척 좋은 가격입니다. 부가가치세 별도라는 조항이 있지만 두달동안 16,500원으로 가상머신을 쓸 수 있는 기회이니 필요하신 분들은 이용하시면 좋을 것 같네요!




가비아(gabia)의 클라우드 호스팅 70% 할인행사 자세히 살펴보기 [바로가기]


728x90
728x90

node.js 를 이용하여 서버 프로그램을 만드는 경우, 디버깅이 짜증날때가 간혹 있습니다. 소스코드를 수정하면 다시 프로세스를 죽였다가 살리는 과정을 반복하는 경험들을 많이 하실텐데요, 이런 불편함을 없애주기 위한 여러가지 패키지들이 많이 준비되어 있습니다. 다 간단하긴 하지만 그 중에서도 nodemon 을 무척 잘 쓰고 있어서 소개해 봅니다.



nodemon GitHub 페이지 [바로가기]


당연하겠지만 Node Packager Manager 를 이용해서도 손쉽게 설치하실 수 있습니다. npm 명령을 이용해서 패키지를 설치하려면 아래와 같이 명령을 입력하시면 됩니다. 관리자 권한이 필요할 수 있다는 점 기억해 두시면 되겠네요.


npm install -g nodemon


nodemon 을 설치한 이후에 이용하는 방법은 node 를 통해 스크립트를 실행하지 마시고 nodemon 을 이용해서 스크립트를 실행하기만 하면 됩니다. 말로 적으면 복잡하나 커맨드로 보자면...


(기존) node server.js

(변경) nodemon server.js


번거로움을 한번에 없애주는 nodemon 으로 프로세스 중단, 재시작하는 불편함을 없애보시기 바랍니다!


728x90

+ Recent posts