전체 글 1274

REST 연재-2회 Advanced REST

2회 - Advanced REST (DRAFT) 자바스터디 조대협 (http://bcho.tistory.com) 전의 글에서는 기본적인 REST의 개념에 대해서 설명하였다. 그러나 REST 는 HTTP의 장점을 이용하여 좀더 발전된 형태의 구현이 가능하다. 하나의 예로 이 글은 http://www.infoq.com/articles/subbu-allamaraju-rest 를 이용하여 편역하여 설명한다. 예를 들기위해서 은행의 계좌이체를 하는 시나리오를 가정해서 생각해보자. 1. 인터넷 뱅킹 계좌 이체 시나리오의 구현 STEP 1. 인터넷 뱅킹 시스템에 로그인을 한다. STEP 2. 사용자 ID로, 해당 사용자가 가지고 있는 계좌 목록을 조회한다. http://bank.org/accounts?findby=7..

현재 자주 사용하고 있는 WEB 2.0 Tools

Google Apps - Office 류 및 협업에 사용 Google Groups - 메일링 리스트. http://twtpoll.com - Survey http://twitter.com - 마이크로 블로깅 http://facebook.com - 커뮤니티 사이트/ 친구 관리 http://linkein.com - 기술 인맥 관리 http://bit.ly - 북마킹 http://slideshare.com - PPT 파일 쉐어 http://expertjava.blogspot.com/ - 구글 블로그. 영문인데 시작했다가 한글 블로그로.. 한국 사이트 http://bcho.tistory.com http://www.me2day.net 마이크로 블로깅 http://www.hanrss.com RSS Reader

마이크로 블로깅 (트위터와 미투) 다시 시작합니다.

요즘 E2.0 에 대해서 이것저것 살펴보는 중입니다. 써보지 않으면 이해가 안되겠다 싶어서.. 트위터를 얼마전 부터 시작중이고 미투는 오늘 다시 가입했습니다. 예전에 사생활이 너무 공개되는것 같아서 닫았는데, 사생할이 공개되야 재미있어지는게 마이크로 블로그의 특징인가 봅니다. 미투 : http://me2day.net/javastudy 트위터 : @TerryCho 입니다. 친구 많이 맺어주세요... :)

사는 이야기 2009.06.23

Enterprise 2.0과 1.0의 차이점

엔터프라이즈 2.0은 WEB 2.0의 참여,개방의 정신을 기업에 적용시켜서 생산성과 효율성을 극대화하게고자하는 모델이다. 엔터프라이즈 2.0은 WEB 2.0의 개념에 비교해서 보면 엔터프라이즈 1.0과 큰 차이를 가지고 있는데, 몇가지를 정리해보면 다음과 같다. 관리에서 자발적 참여 : 기존의 IT 시스템들이 업무를 위해서, 무언가를 하도록 프로세스를 만들고 관리를 해서 따라오게 했다면 엔터프라이즈 2.0은 사용자들이 자발적으로 무언가를 하도록 만드는 것이다. 위키를 통해서 정보를 공유하고 포럼을 통해서 서로 지식을 주고 받으며, 블로그를 통해서 자신의 경험을 공유하며, 인맥관리를 통해서 필요한 사람을 빠르게 찾는다. 메뉴 중심에서 검색 중심 : 기존에는 몇몇의 정해진 IT 시스템을 메뉴에 따라서 정해진..

Enterprise 2.0 의 정의

Andrew McAfee 의 블로그에서 발쵀... 대충 감은 오는데, 아직 확실하게 이거다라는 느낌은 오지 않는다. Social Application기반의 Web 2.0 개념을 Enterprise에 적용 시켜서 협업과, 협동, 소통을 가속화시켜서 기업의 효율성을 극대화 시키자는 것인데.. ROI를 어떻게 보여줄 수 있을지가 관건이 아닐까? = I’m not satisfied with my earlier definition of Enterprise 2.0, so let’s propose a refinement (I’m sorry if this feels a bit pedantic, but clear constructs are important to academics): Enterprise 2.0 is th..

아마존 킨들

간만에 사고 싶은것이 생겼는데, 아마존에서 판매하는 킨들이라는 전자책입니다. 전원을꺼도 텍스트가 남아 있어서 배터리에 대한 제약도 적고,아마존에서 판매하는 대부분의 최신서들을 구입해서 넣고 다닐 수 있습니다. 기술서적을 사는데 비용도 많이 들거니와 보관할장소, 그리고 필요할때 찾아볼 수 있어야 하는데, 이런면에서는 정말 필요한 도구이기는 하지만... 무려 50만원이 넘는 비싼 가격때문에 바라만 보고 있습니다.

사는 이야기 2009.06.19

SOA Design Patterns by Thomas Erl

우연한 기회가 되서 신생출판사인 비제이퍼블릭의 지원으로 Thomas Erl의 SOA Design Pattern 책을 온라인으로나마 볼 수 있는 기회가 생겼습니다. SOA를 하는 사람이면 누구나 한번쯤은 들어봤을 이름이 Thomas Erl인데, 두권의 SOA 관련 서적은 판매량과 명성에 비해서 내용은 정말 실망 스러웠지요. 그래서 개인적으로 Thomas Erl이 입만 살은 사람이 아닌가 하는 혹평을 내리고도 싶었지만, 이번에 SOA Design Patterns라는 책이 출간되고, Grady Booch가 감수를 했다는 말에 많이 궁금해오고 있었습니다. 한마디로 Thomas Erl이 공부해나가고 발전해나가고 있는 모습을 보여주는 책이라고나 할까요? 제 책꽂이에 꼽아놓고 싶은 책중의 하나입니다. 기존의 SOA ..

JEE7 ??

J2EE 시절까지는 자바 개발의 주류가 JEE Spec에 기술된 기술 위주였다. JDBC,JTS,JTA,JMS,EJB,Servlet/JSP etc 그런데, 오픈소스의 활성화와 Spring의 판도 변화로 이것이 완전히 바뀌어 버렸다. 어제 자바스터디 현재 운영자가 번역했다고 보내준 Spring 2.5 책을 쭈욱 읽어봤는데, 이러한 확신은 더 드는 듯 하다. JEE5.0에서 들고 나온 JSF,EJB3.0,JDO 등은 국내에서는 거의 사용되지 않고 JSF/Spring MVC/Struts,Sping DI & AOP , IBatis,Hibernate와 같은 오픈 소스 조합의 개발이 가장 널리 쓰이는 조합이다. 이런상태에서 JEE6,7등의 스펙이 나오는 것이 더 이상 의미가 있을까? 벤더드링 Spring등을 흡수해..

ETL vs EAI

ETL과 EAI 차이점 정리 http://www.ebizq.net/topics/eai/features/6595.html?&pp=1 ETL은 Dataware house나 BI와 같이 좀 덜 Mission Critical한 데이타에 사용되고, Batch등의 대량 전송에 사용함. 주로 DB 위주의 접근, 송수신 인터페이스에 대한 방향성이 있음 EAI는 애플리케이션간의 Integration이고, 단건이나 수건의 데이타에 대한 실시간 조회용 분산 트렌젝션(XA)가 중요한 요건으로 작용함. 양방향성을 띰 ETL and EAI Characteristics ETL EAI Focus Data Integration (Data Warehousing) Application Integration (Operational Apps..

아키텍쳐 /EAI 2009.06.16

Groovy & Grails quick review.

진행하고 있는 프로젝트의 DB 테스팅 모듈 때문에, 생산성이 높다는 Groovy와 Grails를 검토해봤다. 결론은 1. 놀랄만큼 간단한 코딩에 배우기도 쉽다는 것 2. 아직 엔터프라이즈 환경에서는 무리라는것. XML 모듈 같은 경우는 정말 몇줄의 코딩을 가지고 XML을 모두 핸들링할 수 있는데, 실제적으로 내부 최적화가 얼마나 될련지? 아무리 최적화가 된다고 해도, 직접 개발자가 코딩하는 것에 비해서는 많은 성능 차이가 있을 것이며, Grail에서 Hibernate를 통해 DB를 Access 하는것 역시 최적화가 관건이 될것이다. 물론 많은 노하우를 가지고 최적화된 코드를 만들면 성능은 어느정도 나오겠지만 그만한 노하우를 쌓은 사람만 엔터프라이즈 프로젝트를 진행해야 할텐데 그럴리 만무하겠고, 아무래도 ..

이번주 우리딸 간식 레시피

메추리알 감자 고로케 1. 메추리알 삶기 2. 감자를 삶아서 뜨거울때 의깬다. 감자는 잘게 썰어서 삶는것이 시간이 절약됨. 지난번에는 통감자로 삶아서 하세월이 걸렸던 기억이... 3. 당근,양파는 따로 볶아서 의깬 감자에 섞는다. 4. 잣,호두는 미리 빠아서 의깬 감자에 섞는다. 의깬감자에 소금간 약간. 5. 메추리알을 밀가루를 묻힌후 안에 넣고 (안그러면 따로논단다..) , 의깬감자로 감싼다. 6. 꼭꼭 눌러서 잘 쌓아놓고, 밀가루 -> 계란 노른자 -> 빵가루 순으로 묻힌다. (반복하면 모양이 더 이쁘게 된다던데..) 7. 오븐에 유산지 깔고15~20분간 구워준다. (예열 필수, 온도는 190도..) (지난번에는 기름에 튀겼다가 다 타버린 기억이.... ) 혹시 팁 있는 분 있으면 의견 환영합니다. ..

카테고리 없음 2009.06.15

JEE enterprise Application Grid Architecture

JEE Application Grid Architecture 한국 오라클 컨설팅 Principal Consultant 조병욱(byungwook.cho골뱅이oracle.com) 사상 (Architecture Principals) 애플리케이션 그리드 아키텍쳐 사상은 다음과 같다. 비즈니스 로직을 가진 업무 컴포넌트가 무제한적으로 그리드에 추가될 수 있으며, 호출하는 클라이언트 입장에서는 각각의 업무나 업무 컴포넌트를 분리된 형태가 아닌 하나의 진입점을 통해서 호출하도록 하고, 각 업무의 부하에 따라서 업무 시스템에 하드웨어 자원(CPU,MEMORY)를 탄력적으로 배분함으로써 최적화된 성능을 유지하고, 업무 또는 업무 컴포넌트에 장애가 발생하였을때에도 해당 장애가 다른 업무에 영향을 주지 않도록 하는 아키텍쳐..

아키텍쳐 /SOA 2009.06.12

Enterprise Service Bus를 이용한 차세대 JEE 아키텍쳐 확장

Enterprise Service Bus(ESB)를 이용한 차세대 JEE 아키텍쳐의 확장 한국 오라클 컨설팅 Principal Consultant 조병욱(byungwook.cho골뱅이oracle.com) 서론 근래의 JEE애플리케이션 아키텍쳐를 보면 전통적인 JSP/Servlet과 같은 HTML방식의 UI에서 AJAX/FLASH같은 X-Internet 솔루션을 사용하는 경우가 많다. 그래서 애플리케이션 아키텍쳐 역시 비즈니스 모듈이 XML+HTTP 형태로 기능을 제공하고, 이 XML 데이터를 X-Internet 솔루션에서 처리하는 경우가 통상적이다. (국내의 가우스 플랫폼등) 기존의 아키텍쳐에서는 UI에서 BIZ LOGIC으로의 호출이 Java Language에 의존적인 형태의 호출로 이루어져 왔다. 단..

Coherence를 이용한 차세대 JEE 아키텍쳐 (확장성과 유연성이 높은 애플리케이션 그리드)

오라클 Coherence 가 그려내는 차세대 Java Enterprise Architecture 한국 오라클 컨설팅 Principal Consultant 조 병욱 (byungwook.cho골뱅이oracle.com) 서문 2008년과 2009년의 SI 프로젝트 상황을 보면 의외로 사실상 실패하는 프로젝트의 비중이 늘어나고 프로젝트상에서 기술적인 문제가 발생하는 빈도가 늘어나고 있다. 특히 I사가 주 사업자로 참여한 프로젝트의 경우 오픈시에 항상 기술적인 문제점이 발생하고 있다. 이미 KOO 와 동XXX 와 프로젝트를 진행한 OO사 등이 그 사례라고 볼 수 있다. 진행사의 SI 능력에서 문제의 원인을 찾을 수 도 있지만, 근래에 진행되는 많은 프로젝트들이 유사한 문제점을 가지고 있는 것을 봤을때는 단순하게 ..

Oracle BPEL PM에서 Service 호출 Client 소스 (JSP)

@ page import="java.util.*" %> @ page import="javax.naming.*" %> @ page import="com.oracle.bpel.client.Locator" %> @ page import="com.oracle.bpel.client.NormalizedMessage" %> @ page import="com.oracle.bpel.client.dispatch.IDeliveryService" %> try{ String title="CALLING FROM JSP"; String xml = "" + ""+title+"" +""; Hashtable jndi = new Hashtable(); // assign RMI port which can be found in OAS con..

무료 ETL 솔루션

Enterprise Architecture 에서 중요한것중의 하나가 ETL (Extract Transformation Loading)이다. 쉽게 이야기 하면, 비동기적으로 파일이나 DB간에 데이타를 동기화 해주는 솔루션인데 기업 아키텍쳐에서 흔히 Near Real Time이라는 형태의 Async로 구현되거나 또는 Batch성 작업으로 분류되는데. 사실 이 ETL 솔루션이 만만한것이 그리 많지 않다. 대부분 EAI에서 ETL 기능을 구현해서 사용하는데, 데이타 양이 많다 보니 성능이나 구현의 생산성에서 애로점이 있는 것이 사실이다. 그래서 EAI 솔루션 위에서 Custom Module로 개발을 하거나 Spring Batch와 같은 오픈소스 프레임웍을 이용해서 구현하는 경우가 많은데 오늘 아주 어이없는 툴을..

아키텍쳐 2009.06.09

정치인 하나 죽었는데.. 무슨 이리 호들갑이야?

퇴근하고.. 저 먹고 살기도 바쁩니다... 오랜만에 술한잔했습니다. 표현이 솔직하더라도 양해바랍니다. 저기 도움도 안되는 정치 한다는 사람중 하나 죽었다는데.. 무슨 호들갑이냐고 하고 싶습니다.. 우리나라 정치인은 정말 국민이 아니라 살아남기 위해서 몬가를 하는 사람이 아닙니까? 정치는 국민을 위해서 하는것이 아닙니까? 그냥 국회위원 하나 죽거나 장관 하나 죽었으면 '정치인 하나 죽었나 봐다 하고 싶습니다.' 그래서 몬가라고 썼습니다. 노.무.현. 노짱!! 아저씨!!! 집값 올려놓고. 막말하고 재임 시절에.. 미워도 했고 철없다고도 생각했습니다. 그런데.. 돌아보니.. 틀린 말이 없지 않습니까? 왜? 정치를 하지 않으셨습니까? 사람도 키우고 돈도 쓰고.... 왜 그리 안 했습니까? 자살은 죄악입니다.....

사는 이야기 2009.05.30

REST 아키텍쳐에 대한 연재를 시작합니다.

그간 Technical한 내용에 대한 Post가 뜨음 했습니다. 작년과 금년에 걸쳐서 REST 기반의 시스템을 설계와 구현을 하였습니다. 그때 참 REST에 대한 이해가 잘못되어 가고 있구나, 그리고 REST에도 생각할것이 참 많구나 하는 생각을 하고 꼭 정리해야지 정리해야지 했는데... 몇달이 지난 지금에야 시작합니다. 총 4회의 연재로 구성됩니다. 1회-REST 아키텍쳐에 대한 소개 REST가 무엇인지에 대해 간단한 소개와 REST 기술에 대한 경향을 알아봅니다. 2회-고도화된 REST 아키텍쳐 Roy Fielding이 소개한 진짜 고도화된 REST에 대한 아키텍쳐를 좀더 깊게 알아봅니다. 3회-REST 구현 REST 구현 스펙인 JAX-RS (JSR-311) 기반의 Jersey 프레임웍을 통한 RE..

REST 연재-1회 REST 아키텍쳐의 기본

1회 – REST 아키텍쳐에 대한 기본(DRAFT) 자바스터디 조대협 http://bcho.tistory.com REST 아키텍쳐 REST는 웹의 창시자(HTTP) 중의 한 사람인 Roy Fielding의 2000년 논문에 의해서 소개되었다. 현재의 아키텍쳐가 웹의 본래 설계의 우수성을 많이 사용하지 못하고 있다고 판단했기 때문에, 웹의 장점을 최대한 활용할 수 있는 네트워크 기반의 아키텍쳐를 소개했는데 그것이 바로 Representational safe transfer (REST)이다. Basic of REST 한마디로 REST를 정리하면 HTTP URI + HTTP Method 이다. URI로 대상 자원을 명시하고 Method로 해당 자원에 대한 행위를 정의한다. Resource REST의 가장 큰..

그냥 정치인 하나 죽었을 뿐인데...

원래 이렇게 생각되야 한다. 적어도 한국에서는 적어도 대부분의 대통령이 죽었다면 그냥 정치인 하나 죽었을 뿐이다. 그런데, 이번에는 정치인 하나가 죽은게 아니라, 정말 가서는 안될분이 가셨다. '모 저런 사람이 대통령이 됬나?' 도 생각했고 '대통령이 하루도 바람 잘 날이 없구만...' 그런데 곰곰히 생각해보면 그건 당신의 곧은 성품때문이 아니었나 싶다. 강금실 전 법무장관을 내세워 과감하게 검찰이라는 곳에 개혁의 손을 댄것도... 불의와 타협하지 않고 항상 큰 목소리를 낸것도... 대한민국의 국가원수로써 타국의 원수에게 고개를 숙이지 않았지만 동네 시장 할머니들께는 언제나 고개를 숙이시던 분인데.. 사실 정치인들은 다 거짓말쟁이에 말종들이라고 생각했는데.. 퇴임하고 나서 점점더 좋아지는 동네 이장 같은..

사는 이야기 2009.05.26

성공적인 프로젝트를 위한 Prototyping

지금까지 delivery한 프로젝트를 생각해보니, 문제가 없이 잘 되었던 프로젝트는 어떤 이유에건간에 (자의든 타의든) 1~2개월정도의 프로토타입핑 시간을 가졌던 것으로 기억된다. 물론 지금 하고 있는 프로젝트 역시 Prototyping을 진행하고 있다. 이 과정에서는 1.고객의 요건을 분석한후 2.요건을 패턴화 하여 분리한후 3.패턴별로 프로토 타입을 구현한다. 4.그리고 기능/비기능 테스트를 통해서 프로토 타입을 검증한다. 이 과정이 끝나면 아키텍쳐나 시스템에 대한 디자인은 어느정도 이상의 완성도를 가지게 되고, 그 다음부터는 패턴에 따라서 찍어내기만 하고, Task 에 대한 스케쥴 관리만 원할하게 하면 된다. 결국 프로젝트의 성공 여부는 얼마나 검증되고 안정된 아키텍쳐를 초기에 잘 뽑아내는가인거 같..

Trac을 이용한 이슈기반의 팀 관리의 문제점

현재 진행하고 있는 프로젝트에서 Trac을 도입해서 사용하고 있습니다. Trac 뿐만 아니라 사실상 거의 모든 이슈 트랙킹 시스템을 이용하여 팀 일정 관리를 할때 공통적으로 생기는 문제 같은데, 팀관리에서 가장 중요한것은 어떤 TASK를 누가, 언제 하느냐 입니다. 이슈 트랙킹 시스템은, 어떤과 누가를 잘 추적할 수 있게 해줄뿐만 아니라 Comment등을 통한 History 기능으로 어떻게 하느냐까지 잘 관리할 수 있습니다. 그런데 문제는 "언제" 즉 시간에 대한 부분입니다. 이슈 트랙킹 시스템들은 대부분 Time Frame,Mile stone, Due date 식으로 대략 Task 단위의 시간을 제공합니다만, 프로젝트 관리에 있어서 간트 챠트만한것이 없습니다. 문제는 이 이슈 트랙킹 시스템들이 간트 챠..

ALM/Task Management 2009.05.19

아침부터 삽질 (Query String에서 특수 문자 처리)

아침부터 한시간은 이걸로 삽질은 한듯. HTTP/GET QueryString에서 특수문자를 넘길때, 예를 들어 ?param=% 를 넘기고 싶은데, %는 URL 인코딩 캐릭터로 인식하기 때문에 안넘어간다. 이럴 경우에는 URL 인코딩을 해서 보내여 하는데. 간단하게 package sample.bcho; import java.net.URLEncoder; public class Encoding { public static void main(String args[]){ System.out.println(URLEncoder.encode("%")); } } 로 테스트하면 URL Encoding된값을 알 수 있다. %는 %25로 나오네. 즉 ?param=%25 로하면 % 캐릭터를 넘길 수 있다.

프로그래밍/MVC 2009.05.15

ALM의 괴리.

요즘 매일 대전으로 출퇴근을 하고 있습니다. 계약 관계가 복잡하게 얽혀서 근 3달정도 지연이 되어 버린 프로젝트입니다. 원래는 Project Manager와 Cheif Architect 역할로 계약이 되었지만, 구현일정 관계로 한 모듈의 설계와 구현을 모두 맏고 있습니다. 그러다 보니, 처음에는 ALM을 도입하여 SVN을 이용한 형상관리, WAS Configuration Management, Trac을 이용한 이슈 관리와 Wiki를 이용한 문서화를 진행하려고 계획을 했었습니다. 이번달이 아니라 3월경에 SOW(Scope Of Work )작업으로 일주일정도 진행한 적이 있었는데, 그때는 코딩할당량이 없어서 그나마 프로젝트 관리를 할 수 있었습니다만, 지금은 구현에 치여서 ALM적용을 하지 못하고 있습니다...

ALM 2009.05.14

Windows XP에 Tuxedo 컴파일 환경 설정하기.

1. 턱시도를 oracle 사이트에서 다운 받는다. 2. 턱시도 라이센스를 다운 받는다. http://licensecodes.oracle.com/bea.html 3. 턱시도를 설치한다. 4. MS 사이트에서 Visual Studio 9.0 Express 버전을 다운 받는다. 5. c:\Program files\Microsoft Visual Studio 9\VC\vcvarsall.cmd 를 실행한다. (CL 컴파일러용 환경 변수 설정) 6. 턱시도 환경 변수를 설정한다. 예) SET APPDIR=d:\tux\lab4 SET TUXDIR=d:\dev\bea\tux10 SET PATH=%TUXDIR%\bin;%PATH% SET TUXCONFIG=%APPDIR%\tuxconfig SET BDMCONFIG=%AP..