분류 전체보기 1274

초경량 Python 웹서버 bottle을 이용한 MVC 예제 + Cookie

초경량 Python 웹서버 bottleMVC 예제 Controller 파일 구현 /controller.py import bottle mythings = ['apple','orange','banana','peach'] @bottle.route('/') def home_page(): fruit = bottle.request.get_cookie("fruit") return bottle.template("hello_world",username="Andrew",things=mythings,like=fruit) @bottle.post('/favorite_fruits') def favorite_fruits(): fruit = bottle.request.forms.get('fruit') if(fruit == None ..

MongoDB의 Physical 데이타 저장 구조

MongoDB를 구성할때 보면, 가장 많이 권장 받는 부분 중의 하나가, 메모리량과 디스크 성능이다.메모리 크기가 아주 sensitive한 요인이 되는데, 어떤 부분이 문제가 되는지 내부 저장 구조를 살펴 봄으로써 이해를 돕고자 한다. 저장 구조mongodb는 기본적으로 memory mapped file (OS에서 제공되는 mmap을 사용) 을 사용한다. mongodb는 데이타를 write할때, 논리적으로 memory 공간에 write하고, 일정 주기에 따라서, 이 메모리 block들을 주기적으로 disk로 write하는데, 이 디스크 writing 작업은 OS에 의해서 이루어 진다. OS에 의해서 제공되는 Virtual Memory를 사용하게 되는데, Pysical Memory 양이 작더라도 Virtu..

Python 경량 웹서버 Bottle 를 Win7에 설치에서 실행까지

Bottle은 Python 기반의 초경량 웹서버이다.Python 쪽에서는 Django등을 많이 사용하고 있지만, 설치도 쉽고, 가볍고 해서, 특정 목적이나 가벼운 테스트 웹 애플리케이션 개발등에는 충분히 활용이 가능하다.(자바의 Jetty 와 같은 느낌?) 1. easy_installer에 설치먼저 bottle을 설치하려면, installer부터 설치하는 것이 수월하다. python은 linux의 yum이나 rpm , 또는 Java의 maven과 유사하게 Pypi(Python Package Index - https://pypi.python.org/pypi ) 라는 툴을 제공한다. 먼저 https://pypi.python.org/pypi/setuptools#windows 에서 ez_setup.py를 다운로..

MongoDB 30분만에 이해하기.. (설치,테스트 및 자바 샘플)

초간단 Mongo DB Quick Start Guide 조대협 (http://bcho.tistory.com) Mongo DB는 NoSQL 중에서 가장 널리 사용되는 인기있는 제품이다. 사용과 운영이 다른 시스템에 비해서 매우 쉽고, JSON 기반의 Document를 제공하기 때문에, 데이타 구조에 대한 이해 및 사용이 쉽다. 또한 index나 search와 같은 feature를 제공하고 있고, 근래에는 Text Search와 GridFS를 이용한 파일 저장 그리고, 위치 정보 저장 및 쿼리등 다양한 기능을 제공하고 있다. Mongo DB는 10gen이라는 회사에서 개발되어서, 현재 오픈소스로와 상용 버전으로 공급되고 있다. 이 글에서는 Mongo DB에 대한 이해를 돕기 위해서 간단한 설치에서 부터, 자..

maven으로 환경별도 다르게 패키징 하기 & RPM 패키징 #2/2

Plug in 을 통한 maven 빌드 확장 앞글에서 http://bcho.tistory.com/739 maven을 이용한 가장 기본적인 빌드 시나리오에 대해서 살펴보았다. maven은 plug in이라는 기능을 통해서, 여러 기능 들을 추가로 빌드 프로세스내에 추가할 수 있는데, 여기서는 빌드에서 확장하여, 배포 환경 별로 패키징 하는 시나리오를 추가해보기로 한다. 다음과 같은 시나리오를 생각해보자, 빌드에 의해서 생성된 웹 애플리케이션은 내 local PC에서도 돌아가야 하며, 다른 개발자와 협업하는 서버의 개발환경에서도 돌아야 하고, 개발 주기마다 주기적으로 QA환경에서 테스트를 받은 후, staging 환경을 거쳐서 최종적으로 production 환경에 배포 되어야 한다고 가정하자. Java Ve..

maven으로 REST 개발 환경 만들기(Jersey+Spring+MyBatis) #1/2

Maven을 이용한 Jersey + Spring + MyBatis 기반의 REST 애플리케이션 개발 조대협(http://bcho.tistory.com) 빌드 스크립트 설정 개발 환경에서 가장 중요한 빌드에서 부터 알아보자, 우리가 정의하는 빌드는 다음과 같다. "빌드란, 실행 환경에 맞춰서 소스 코드를 실행 가능한 형태의 바이너리로 변경 및 패키징 하는 일련의 과정을 정의한다." 단순하게 소스코드를 바이너리로 바꾸는 컴파일이 될 수 도 있고, 실행에 필요한 각종 리소스 (이미지, 각종 설정 파일등)을 실행 환경(서버 주소등)에 맞춰서 같이 패키징 하는 과정을 이야기 한다. 이 빌드 여러개의 연속된 작업을 포함하기 때문에, 보통 스크립트를 기반으로 수행이 되는데, C/C++의 경우에는 make 기반의 빌드..

Maven pom properties

POM 파일에 등장하는 설정build : 프로젝트 빌드와 관련한 기본적인 소스 디렉토리 구조, 빌드 산출물 디렉토리 구조, 빌드시 사용할 플러그인 등을 관리sourceDirectory : 실제 서비스를 담당하는 자바 소스 코드를 관리하는 디렉토리. 기본 값은 src/main/javatestSourceDirectory : 테스트 소스를 관리하기 위한 디렉토리. 배포시 이 디렉토리는 배포 되지 않는다. 기본값은 src/test/javaoutputDirectory : soruceDiectory의 소스를 컴파일한 결과물이 위치하는 디렉토리. 기본값은 target/classestestOutputDirectory : testSourceDirectory의 소스를 컴파일한 결과물이 위치하는 디렉토리. 기본값은 targ..

Jersey를 이용한 REST의 구현 및 SOAP UI를 이용한 테스트

Jersey로 구현하는 자바 REST 서비스 이번 회에서는 REST의 개념을 바탕으로 JAVA 언어로 REST를 구축하는 방법에 대해서 알아보도록 한다. JAVA 기반의 REST구현 방법에는 여러 가지가 있으나 근래에 웹서비스처럼 REST도 구현을 쉽게 도와줄 수 있는 프레임웍을 제공한다. 웹서비스의 구현 개발 표준이 JAX-WS였다면 REST에 대한 구현 표준은 JAX-RS이며 그 레퍼런스 구현으로는 Apache CXF와 Sun(지금은 오라클)의 Jersey가 있다. 본 문서는 Sun의 Jersey를 기준으로 작성되었다. 기본 REST 서비스 구현 먼저 이클립스를 인스톨하고 New > Project > Dynamic Web Project로 새로운 프로젝트를 생성한다. 프로젝트가 생성되었으면 Jersey..