2014/08 10

대용량 웹서비스를 위한 마이크로 서비스 아키텍쳐의 이해

마이크로 서비스 아키텍쳐 (MSA의 이해)조대협(http://bcho.tistory.com) 배경 마이크로 서비스 아키텍쳐(이하 MSA)는 근래의 웹기반의 분산 시스템의 디자인에 많이 반영되고 있는 아키텍쳐 스타일로, 특정 사람이 정의한 아키텍쳐가 아니라, 분산 웹 시스템의 구조가 유사한 구조로 설계 되면서, 개념적으로만 존재하던 개념이다.얼마전 마틴파울러(Martin folwer)가 이에 대한 MSA에 대한 개념을 글로 정리하여, 개념을 정립 시키는데 일조를 하였다.이 글에서는 대규모 분산 웹시스템의 아키텍쳐 스타일로 주목 받고 있는 MSA에 대한 개념에 대해서 알아보도록 한다. 모노리틱 아키텍쳐(Monolithic Architecture) 마이크로 서비스 아키텍쳐를 이해하려면 먼저 모노리틱 아키텍쳐 ..

Ruby 개발환경 설정하기 (윈도우7에서)

Windows 7에서 Ruby 개발환경 설정하기 MongoDB in Action 몽고디비 인 액션저자카일 뱅커 지음출판사제이펍 | 2012-04-20 출간카테고리컴퓨터/IT책소개MongoDB나 NoSQL에 경험 없는 개발자를 위한 쉽고 실전... 이책을 공부하다보니, 예제가 ruby라서, 예상치 않게 Ruby를 살펴보고 있는데, 윈도우즈7에서 Ruby 개발 환경 설정하는 것이 쉽지 않아서 설정 방법을 요약하고자한다. 1. Ruby Install 하기http://rubyinstaller.org/downloads/ 에서 Ruby Install 바이너리를 받아서 설치한다. 2.2.0-p481(x64)여기까지는 보통 문제 없이 잘된다. 향후에 모듈을 설치하려면 보통 컴파일 에러가 나오면서 잘 안되는 경우가 많다..

루비 기본 문법 정리

Ruby 언어 기본 문법 루비언어의 특성을 자바나 다른 언어에 비해서 다른 부분만 요약 정리 Class,Object - 클래스 변수는 @@를 사용해서 정의 @@name = 'hello'클래스 메서드는 클래스로만 호출 가능. object에서는 호출 불가클래스 변수나 메서드에 대해서는 http://dimdim.tistory.com/entry/Ruby-%ED%81%B4%EB%9E%98%EC%8A%A4-%EA%B0%9D%EC%B2%B4-%EB%B3%80%EC%88%98 보고 다시 정리 필요 Object- 생성 : New를 이용해서 class로 부터 생성 Class명.new 로 생성. 예 object=MyClass.new - 객체 변수는 @를 사용해서 정의 예 @hello = hello- Putter와 Sette..

프로젝트 인셉션에 대해서

프로젝트 인셉션에 대해서 원글 : http://www.infoq.com/articles/project-inception-meeting 프로젝트 시작전에, 프로젝트 팀에 대한 alignment를 하기가 어렵다.alignment란 팀이 같은 프로젝트에 대한 배경과 목표를 이해하고, 주요 기능과 일정, 그리고 인원별 역할등 전체적인 프로젝트의 컨텍스를 이해하는 것인데,일반 개발자들은 비지니스쪽 인원을 만나기 힘들 뿐만아니라, 상위 임원들의 방향과 생각을 중간 메니져를 통해서 듣기 때문에, 내용 전달이 부족하거나 오역 되었을때, 팀의 alignment가 제대로 되지 않는 경우가 많다.이런 문제를 해결하기 위해서, 하루 full day로 프로젝트 시작하기 전에 공유하는 회의를 갖는데 이를 프로젝트 inceptio..

ALM/애자일 2014.08.13

OAuth 2.0 노트

OAuth 용어 정리 Resource Owner (사용자) Authorization Server (인증서버 Resource Server (REST API) OAuth 2.0 grant flow Authorization code grant flow 가장 많이 권장되고, 사용자와 앱을 둘다 인증함. 앱 인증을 위해서 call back URL(앱의)를 등록해서 call back을 통해서 앱을 인증함 Implicit grant flow 자바스크립트 애플리케이션에서 많이 사용됨. 스크립트 단에서는 credential 등이 노출 될 수 있으니, 주로 Read only 용도로 많이 사용함. accessToken이 노출될것을 전제로 함. 모바일 애플리케이션도 많이 사용하는걸로 나오네?? Ÿ Used in public ..

IBM Bluemix #1 - 첫번째 node.js 애플리케이션

IBM Blumix #1-첫번째 node.js 애플리케이션 개발bcho.tistory.com조대협 지난번에 bluemix에 대한 간략한 소개를 (http://bcho.tistory.com/940) 하였다. 오늘은 첫번째 node.js 애플리케이션을 만들어보도록 하자먼저 bluemix에 가입을 한후에, 대쉬보드에 들어가서 "Create App" 을 선택한후에, "SDK for Node.js"를 선택한다. 여기에, 애플레케이션 이름을 넣는다. 애플리케이션 이름을 넣으면, node.js 애플케이션의 디폴트 웹 URL명도 똑 같이 애플리케이션명.mybluemix.net으로 지정된다. 위의 그림과 같이 node.js 애플리케이션이 생성된 것을 볼 수 있다. 소스코드를 수정하기 위해서, 코드를 git reposit..

IBM 클라우드 bluemix(블루믹스) 소개

IBM 블루믹스 소개 PaaSIBM 블루믹스는 IBM에서 제공하는 PaaS(Platform As A Service) 클라우드 서비스이다. 아마존과 같은 서비스가 VM을 제공하는 IaaS(Infra as a service)라면, 블루믹스는 node.js, Java와 같은 런타임을 미리 깔아놓고, 거기에 소스코드를 넣어서 돌리는 구조이다. IaaS의 경우 Linux나 Windows Server와 같은 OS를 VM 기반으로 제공하기 때문에 직접 미들웨어를 설치해서 사용해야 하지만, PaaS의 경우 이미 설치된 미들웨어 위에 코드만 돌리면되기 때문에, 아무래도 관리가 편리하다. 그러면 왜 PaaS인가?얼마전까지만 해도, 개발 트렌드의 중심은 기업체에서 개발하는 B2C서비스였다. 페이스북이나 네이버와 같은 서비스..

소프트웨어를 잘하고 싶으시면 개발자를 그만 뽑으세요.

소프트웨어를 잘하고 싶으시면 개발자를 그만 뽑으세요. 간만의 포스팅입니다. 요즘 일도 너무 바쁘고 여유가 안생겨서, 그동안 포스팅을 거의 못했네요. 평소에 생각하던 내용인데, 요즘 들어 소프트웨어니, 서비스니 하면서 여기저기서 사람 뽑는 글들이 많아서 올려봅니다. "소프트웨어를 잘하고 싶은데, 개발자를 뽑지 말라니??" 의아하게 생각하실지도 모르지만, 낚시 타이틀이 아니라 진정으로 드리고 싶은 이야기 입니다.제가 해외 개발자들이나 엔지니어들과 일해봤을때, 한국 개발자가 실력적으로 그렇게 밀린다고 생각하지는 않습니다. 문제는 관리입니다.!!아무리 똑똑한 개발자를 뽑아 놓는다 하더라도, 개발자들이 만들어야 할 소프트웨어의 구조를 잡을 아키텍트가 없고, 프로젝트를 위한 계획과 엔지니어에 대한 배치를 제대로 하..

빠르게 훝어 보는 node.js - #16 - Passport를 이용한 OAuth 2.0 API 인증 (Facebook 2/2)

빠르게 훝어보는 node.js#16 - Passport를 이용한 OAuth 2.0 API 인증 (Facebook 2/2)조대협 (http://bcho.tistory.com) node.js에서 페이스북 로그인하기앞에서(http://bcho.tistory.com/913) 설명한 Facebook 로그인 시나리오를 기반으로 하여 node.js와 passport-facebook 모듈을 이용해서, 간단한 로그인 서비스를 만들어보자.시나리오만들고자 하는 시나리오는 다음과 같다. /login 페이지에서 페이스북 로그인 버튼이 출력된다. 페이스북 로그인 버튼을 누르면 /auth/facebook 페이지로 이동한다./auth/facebook 페이지에서는 페이스북에 로그인을 하기 위한 OAuth 요청을 passport-fac..