2013/10 7

Technical Debt

Technical Debt Technical Debt는 직역하자면 "기술적인 빚"이다. 은유적인 표현으로 개발단계에서 제대로 개발을 해놓지 않게 되면 그게 빚이 되고 나중에 이자가 붙어서 더 많은 일을 해야 한다는 것이다.쉽게 예를 들어서, 개발 단계에서 문서화를 제대로 해놓지 않은 경우, 개발이 끝난 후, 기능 개선이나 기타 수정을 하려고 했을 때 문서가 없기 때문에 코드를 분석하고 구조를 다시 분석하는 작업을 한 후에 다시 개발을 해야 함으로, 더 많은 노력이 든다. 즉 문서화를 해놓지 않은 것이 "빚" 이 되는 것이다.Technical Debt가 생기는 원인은 여러 가지를 들 수 있는데, 주요한 원인은 다음과 같다. ① 비지니스 조직으로 부터의 무리한 압박 : 시장 출시를 맞추기 위해서 무리한 일정..

아키텍쳐 2013.10.30

API 플랫폼에 대한 소개

API Platform조대협 근래에 들어서 모바일 애플리케이션의 발전과 SNS의 발전과 더불어서 Open API 에 대한 관심도가 급격하게 높아졌다. Open API란, API를 내부 사용자뿐만 아니라 외부 개발자에게까지 공개해서, 외부 개발자가 API를 이용해서 새로운 서비스를 만들도록 하는 모델이다. 근래에 들어서는 API만 전문적으로 개발 및 서비스를 해서 이를 통해서 수익을 창줄하는 비지니스 모델까지 생겨나고 있다. 이런 배경으로 API 관리에 대한 중요성이 대두되었는데, API에 대한 쉬운 관리, 모니터링 및 유료화 그리고, API에 대한 편리한 사용법, 샘플 코드 및 메뉴얼 제공하는 시나리오가 필요하게 되었는데, 이를 하나의 플랫폼 형태로 묶어 놓은 것을 API 플랫폼이라고 한다.API 플랫폼..

REST API에 대한 보안

REST API 보안조대협REST API에 대한 보안에 대해서 알아보자. API 에 대한 보안은 인증, 메세지 암호화, 무결성 크게 3가지 관점에서 고민해볼 수 있다. 1) 인증인증은, REST API를 호출한 사람(클라이언트)가 적절한 사용자 인가를 판단해주는 것이다. 아무나 API를 호출하는 것이 아니라 인증을 받은 사람많이 API를 호출해주게 하는 것인데, 쉽게 생각하면 사용자의 id,passwd로 서비스에 로그인을 하는 개념을 생각할 수 있다.API Key 방식API에 대한 인증 방법은 몇가지가 있는데, 그 중에서 가장 기초적인 방법은 API Key를 이용하는 방법이다. API Key란, 특정 사용자만 알 수 있는 일종의 문자열이다. 현재 Amazon이 이 방식을 사용하고 있는데 API를 사용하고..

Vagrant를 이용한 개발환경 관리(간단한 VM관리)

Vagrant시작하기Vagrant는 한마디로 이야기 하면, “간소화된, VM 관리 서비스이다”. 이미 Virtual Machine 환경은 보편화 되서 사용되고 있고, VMWare나 Oracle의 Virtual Box등을 이용하면 PC에서도 손쉽게 VM 환경을 구축할 수 있다. 그러나 문제점은, Virtual Box와 같은 Hypervisor가 있다고 해도, VM을 생성하는 것 자체가 번거로운 작업이라는 것이다. Hypervisor에서 논리적인 가상 하드웨어 머신을 생성하고 가상머신에 OS를 설치하고, 일일이 설정을 해줘야 한다. 이런 반복적인 작업을 조금더 손쉽게 자동화 할 수 없을까? 하는 아이디어에서 시작한 것이 Vagrant이다.먼저 이해를 돕기 위해서 예제를 실행해보자.Vagrant는 VM 관리도..

ALM 2013.10.24

Docker 소개

Docker란 무엇인가?개념 잡기Docker는 Linux 기반의 Container RunTime 오픈소스이다. 처음 개념을 잡기가 조금 어려운데, Virtual Machine과 상당히 유사한 기능을 가지면서, Virtual Machine보다 훨씬 가벼운 형태로 배포가 가능하다. 정확한 이해를 돕기 위해서, VM 과 Docker Container의 차이를 살펴보자.아래는 VM 에 대한 컨셉이다. Host OS가 깔리고, 그 위에 Hypervisor (VMWare,KVM,Xen etc)가 깔린 후에, 그위에, Virtual Machine이 만들어진다. Virtual Machine은 일종의 x86 하드웨어를 가상화 한 것이라고 보면된다. 그래서 VM위에 다양한 종류의 Linux나, Windows등의 OS를 설..

Vagrant를 이용한 개발환경 자동화

참고 : http://ppiazi.tistory.com/m/post/view/id/230 1. vagrant 다운받아서 설치2. virtual box 다운 받아서 설치3. 우분트 precise32 버전을 설치 : vagrant box add "precise32" http://files.vagrantup.com/precise32.box 4. vagrant init precise32다음 vagrant up 으로 vm 실행 (virtual box에서 보면 실행된게 보인다.)5. putty ssh에서 localhost:2222로 접속6. default id/passwd는 vagrant/vagrant 다음에는 chef연동해보기.

원고 작업 종료

드디어 근 1년 반이 걸렸던 제 책의 원고 작업이 끝났습니다. 내가 가지고 있는 경험들을 공유하고 싶다는 생각에 1999년에 자바스터디(http://www.javastudy.co.kr) 이라는 자바 커뮤니티 사이트를 오픈하였습니다. 나름 공부해서 글도 많이 올리고, 질문에 대한 답변도 많이 달고 컨퍼런스에도 부지런히 참여했던 것 같습니다. 사이트가 한창일때는 회원수가 13만명에 다다를 정도로 큰 사이트가 되었었습니다. 그렇게 한 5년을 운영하다가 후배들에게 사이트를 넘기고, 그 다음부터는 블로그 활동을 하였습니다. 처음에 설치형 블로그를 운영하다가 운영의 문제로 지금의 티스토리 블로그 (http://bcho.tistory.com)으로 옮기고 영문 블로그도 오픈해서 안되는 영어를 공부하면서 짬짬이 영어로 ..