전체 글 1296

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..

Oracle Service Bus (OSB/ALSB)에서 Tuxedo 호출하기

(FML인 경우) 1. Tuxedo에서 도메인 Config 설정을 한다. 2. FML 파일을 java weblogic.wtc.jatmi.mkfldclass fmldata 로 해서 JAVA 클래스를 생성한다. 3. WLS에서 WTC 설정을 하고 Resource 탭에서 위에서 설정한 JAVA 클래스를 적는다. 4. 2에서 작성한 클래스를 JAR로 묶어서 클래스 패스에 추가한다. == 여기까지가 WLS의 WTC설정 5. SB에서 AnyXML로 비지니스 서비스를 만들고 6. JAR를 SB 프로젝트에 추가한후, CLASS에서 해당 JAR를 고른다. 7. 비지니스 서비스를 완성한후 테스트시에 FML이 다음과 같을때 #name number type flags comments ACCOUNT_ID 10 long - - ..

자바 기술 트렌드 분석 - 2. OR Mapping

두번째 기술 트렌드 분석은 DB2JAVA 즉 OR Mapping Framework 입니다. IBatis와 Hibernate를 봤는데, 1. IBatis 2. Hibernate 언뜻 보기에는 사용량이 유사해보입니다만, 국가별 차이를 비교해보면 재미있는 결과가 나옵니다. 1. Ibatis 2. Hibernate IBatis의 경우 한국 편중 현상이 매우 심합니다. 반면 Hibernate의 경우 개발이 많은 인도, 특히 델리에서 많이 검색되고 있고, 실리콘밸리가 근접한 샌프란시스코에서도 검색 빈도가 높습니다. 언어 분포에 있어서도 꽤나 골고루 되어 있는 것을 보면, 세계적으로는 Hibernate가 대세, 한국에서는 IBatis의 압도적인 우세 정도로 평가할 수 있습니다. 실제로 IT 구인 사이트 Dice.co..

자바 기술 트렌드 분석 - 1. MVC

백기선님 블로그에서 재미있는 글을 하나 봤습니다. 구글 검색엔진에, http://www.google.com/trends 을 보면 검색어별로 검색 비중에 대한 트렌드를 보여줍니다. 이 데이터를 분석하면 현재 기술의 흐름을 대략 읽어볼 수 가 있겠지요. 먼저 MVC 모델에 대한 분석을 해봤습니다. 1.Struts. 2. Spring MVC 3. JSF 그래프에서 볼 수 있듯이, Struts는 하향세, Spring MVC가 주요인것 처럼 보이고, JSF는 중간 정도로 보입니다. 사실 좀 데이타가 이상한것 같아서 Dice.com이라는 IT 전문 사이트에 가서 해당 키워드를 검색을 해보니 다음과 같은 결과가 나옵니다. JSP 1589건 Spring MVC 186건 JSF 735건 Struts 884건 이 결과로 ..