블로그 이미지
Peter Note
Web & LLM FullStacker, Application Architecter, KnowHow Dispenser and Bike Rider

Publication

Category

Recent Post

2012. 9. 3. 18:06 Middleware, Cloud/WAS

JBoss의 사용하는 port를 변경하거나, 서비스 추가/삭제 및 환경설정에 대한 관리를 알아보자. 이런 관리를 위해서는 먼저 JBoss의 아키텍쳐를 아는 것이 중요하다. 

  • 4.0.3 이전 JMX를 이용하여 service 추가/삭제
  • 4.0.3 이후 microcontainer 상에서 service를 POJO(Plain Old Java Objects) 로 만들어 추가/삭제 가능
  • 5.x 버전부터 JBoss는 microcontainer-based 아키텍쳐를 사용하고 있다. 

▶ microcontainer란 무엇인가?
  • Spring framework와 유사하게 dependency injection framework 이다 
  • DI에는 다음과 같은 설정을 한다
    • instantiated할 오브젝트 설정
    • 인스턴스 오브젝트의 constructor 파라미터 제공
    • set 프로퍼티에 값 설정
    • 오브젝트끼리 의존관계 설정
  • microcontainer는 이전의 JMX kernel 아키텍쳐보다  훨씬 가볍다, 환경설정이 적다, 서비스들을 standalone올 디플로이 할 수 있다. 
  • microcontainer위에 모든 서비스가 올라간다 (단, v5.0에는 JMX kernel위에 JMX, JNDI등이 올라가지만 이후는 microcontainer위에 전분 올라가도록 변경됨)
  • 환경파일의 이해
    • server/xxx/conf/bootstrap.xml : primary beans configuration 파일이다 

▶ JMX  이해하기 
  • Client는 JMX Server를 통해서 xxxMBean 인터페이스를 상속받은 MBean 클래스의 내역을 서비스 받는다
  • JMX Server가 xxxMBean을 lookup해서 찾고 client는 바로 xxxMBean을 접근할 수 없다. 
  • jboss-service.xml 파일 설정을 기반으로 service deployer가 MBean을 인스턴스화 한다. 또한 *-service.xml 설정도 같이 엮어서 인스터스화 한다.
  • jboss-service.xml 파일이 MBean 설정을 위한 primary descriptor 파일이다. 주 설정내역은 다음과 같다.
    • logging service 
    • thread pool : 다양한 서비스의 thread pool을 제공한다
    • JNDI
    • MBean 관리를 위한 security 
    • MBean과 관련된 JMX 서비스들
    • MBean과 관련된 remoting 서비스

▶ MBean 명칭 이해하기
  • MBean 명칭안는 여러부분이 내포된다.
  • domain : 자바의 패키지 명칭
  • key-value : 콤마로 구분

예) jboss.jca:service=ManagedConnectionPool,name=DefaultDS

  • jboss.jca = domain 이고 콜론앞의 값
  • service=ManagedConnectionPool,name=DefaultDS = key properties들이고 콤마로 구분된다. (순서완 상관없음)

▶ Application Server 환경설정하기
server/xxx/conf/ 디렉토리 밑에 있는 config 파일들을 알아보자 
  • bootstrap.xml : POJO를 초기화 하기위하여 microcontainer가 사용함
  • jax-ws-catalog.xml : JAX-WS를 위한 맵핑에 사용함
  • jbossjta-properties.xml : Java Transaction API (JTA) 서비스에서 사용함
  • jboss-log4j.xml : 로깅 설정
  • jboss-service.xml : JMX kernel에서 사용
  • jndi.properties : JNDI 서비스에서 사용하는 디폴트 설정값
  • login-config.xml : security 서비스에서 사용
  • standardjboss.xml : EJB 서비스에서 사용
  • standardjbosscmp-jdbc.cmp : Container Managed Persistence(CMP) EJB를 위한 다양한 DB 설정에 사용 
  • 다른 환경 파일들 설명



posted by Peter Note
2012. 8. 23. 17:41 Lean Agile Culture/Lean Startup

이민화교수님의 스타트업 창업에 대한 연재글을 우연히 etnews를 통하여 보게되었다. 어려운 주제를 쉽고 간결하게 풀어쓴 글을 보며 교수님의 경험과 충고에 끌려 연재글을 다 읽고 간단하게 머릿속에 정리할겸 적어본다. 


  - 기업가 정신 = 세상에 가치를 창출하고 일부를 분배하는 선순환 과정을 만드는 것

    + 차별화 역량을 통한 가치 창출

    + 기업을 공동체로 인식  : 급여의 의미만을 놓고 보자. 공동체에서는 급여가 부가가치를 높이는 것이다.



  - 성공적 스타트업을 하기 위한 질문 2가지 = 과연 시장은 존재할 것인가? + 나는 차별화된 역량을 가지고 있는가?

    + 시장 기회 포착 방법 = 미래 패러다임 변화 인지 -> 창조적으로 해석 -> 본질 파악 -> 자신의 생각을 제시 -> 이를 뒷받침하는 구체적인 증거를 제시하는 것

    + 차별화를 지속 시킬 수 있는 핵심역량 = 기술역량


  - 기업 차별화 = 기술 + 인문학 + 비즈니스의 만남

    + 차별화 요소 = 기술 + 계약(특허, 독점)

    + 차별화 역량 = 특출난 기술이 아닌 적정 기술의 융합 = 인문학을 통하여 인간요구 발견 및 만족 시킬 수 있는 가치를 찾아라 = 인문학이 차별화의 핵심

    + 차별화 전략 = 시장기회의 포작 + 창업팀 구축 + 기술사업화 + 틈새시장 개척


  - 틈새시장 = 용꼬리가 아닌 뱀머리가 되라

    + 스마트 기업에게 1위,2위만 살아남음. 즉, 3위는 적자보고 실패함

    + 스타트업 기업 팀 기술역량에 맞는 틈새시장을 찾아 1위를 해라 

    + 돈많이 들이지 말고 몇천만원에 가능한 기존 플랫폼기반의 스마트 창업!


  - 차별화와 가치창출 = 차별화된 기술력으로 고객에게 가치를 줄 수 있는 사업을 하라

    + 차별화와 가치창출없이 수익 모델에 집착하는 것은 본말이 전도된 것이다.

    + 거칠더라도 독창적인 혁신성이 있어야 한다


성공적인 스타트업 = 시장 기회 포착과 1등으로 가는 차별화된 역량이 핵심이다. 

참조) 이민화교수 연재글

posted by Peter Note
2012. 8. 22. 09:23 Lean Agile Culture

좋은 타이밍이란 없다.

모든 운이 따라주며, 
인생의 신호등이 동시에 파란불이 되는 때란 없다.
모든 것이 완벽하게 맞아 떨어지는 상황은 없다.
‘언젠가’ 타령만 하다가는
당신의 꿈은 당신과 함께 무덤에 묻히고 말 것이다.
만약 그 일이 당신에게 중요하고, ‘결국’ 그 일을 할 것이라면
그냥 하라. 하면서 진로를 수정해가면 된다. 
-티모시 페리스(‘탐스 스토리’에서 재인용)

촌철활인

시운(時運), 즉 적절한 타이밍은 매우 중요합니다.
그러나 모든 것이 갖춰진 완벽한 타이밍은 없습니다.
완벽한 타이밍을 기다리는 것은 
자칫 두려움의 표현이거나,
부족한 결단력을 숨기려는 핑계일 수 있습니다.
일정 요건이 갖춰지면 과감한 실행이 필요한 이유입니다.


아침 7시 30분이면 어김없이 푸쉬되어 날아오는 오늘의 행경

가끔은 지금의 상태를 어찌나 잘 아는지 콕콕찍어서 전달해 준다. 요즘 느끼는 피로감은 허탈함, 허무, 무력감, 무계획 올초 느꼈던 정반대의 감정과 육체적 느낌이 요즘 계속해서 내리는 빗물과 섞여서 나를 멘붕상태로 빠트리고 있다. 

일을 하고 싶지만 정말 하고 싶은일, 잘하는 일, 그리고 결단을 내리고 실행에 옮겨야 하는일이 있음에도 주저하고 있거나, 아니면 그동안 지내온 생활패턴의 수동성에 물들어서 적극적이지 못한건지...

오늘 이야기처럼 좋은 타이밍이란 없다. 단지 적절한 환경과 분위기가 조성되면 빠른 순발력이 요구된다. 지난번 다시 보게된 행복한 인생의 주인공 남자는 아들이 수용소에 갖쳐있는 것이 아니라 게임을 하고 있다고 인식토록 하기위하여 얼마나 순발력있게 행동하는지 알게 되었다. 스피드와는 또다른 말인거 같다. 상황이 포착되면 자신이 원하고 만들고 싶어하는 방향으로 순발력을 발휘할 때가 지금이 아닐까? 1초 2초 잴동안 기회는 날아가 버린다. 비즈니스도 1일 1개월안에 분위기가 무르익으면 기회를 잡고 내가 원하는 방향으로 만들어 갈 수 있는 순발력과 적극성이 필요하겠다. 

오늘도 비가 온다. 우산장수한텐 좋은 날이면서 개발자들도 마음을 가라앉히고 Flow할 때이다. 



posted by Peter Note
2012. 8. 20. 15:53 Lean Agile Culture/Lean Startup

새로운 사업(비즈니스)를 만드는 첫 단추는 가정과 가설로 부터 시작한다. 무턱대고 접근하는 것이 아니라 이성적인 판단하에 정확히 관녁을 파악하고 적절한 속도와 저항을 고려하여 화살을 쏘지아야 하지 않을까. "이성적 판단에는 무엇이 있을까?" 웹서핑하며 찾은 여러 실타래들을 다음과 같은 순서로 역어서 비즈니스 모델을 만들어 가면 어떨가 생각해 보았다.


  - 비즈니스 모델을 어떻게 만들어야 하는가?

    + 불확실성과 가설을 만들기 위한 최소한의 단계엔 무엇이 있는가? 

    + 비즈니스 모델을 구체적 항목 9가지를 작성해 보자

    + 비즈니스 모델이 생각날 때마다 웹상에서 작성할 수 있는 생산성 도구를 사용하자 (혼자 사용하면 Free)

    + 여기서 반드시 재고해야할 15개 비즈니스 아이템이 있다. 이것만은 안돼!


  - 이제 비즈니스 모델도 만들어 졌겠다 시작해 보자

    + 비즈니스 모델 구현 팀 만들기와 고려사항들 꼼꼼히 챙기자

    + 비즈니스 모델 가지고 스타트업할때 자주하는 실수 30+1


위의 링크된 글들을 읽어보고 생산성 도구(1-3)를 가지고 아이디어를 바로 구체화 해보자. 요즘 모사의 "빠름, 빠름, 빠름" CF광고가 생각난다. 이제 비즈니스 모델은 1한장(Page)으로 설명가능해야 한다. Simple is Best!

Steve Blank의 가설 수립과 검증



http://leancanvas.com 의 온라인 SaaS. 개인(private)은 무료이고, 팀웍으로 사용하는 것은 유료임



<참조>

  - Lean Canvas

posted by Peter Note
2012. 8. 17. 15:53 Testing, TDD


위키피디아의 내용을 우선 보자.

http://en.wikipedia.org/wiki/Ongoing_reliability_test

일반적으로 제조쪽의 제품질에 대한 테스트이다. 실제 스펙에 맞게 잘 만들어 졌는지 테스트 하기 위해서 무작위 샘플을 선택한 후 온도/압력/스트레스 테스트를 한후 제품 수명주기를 추정한다. 


제품의 질(Quality)는 테스트에 의하여 평가된다. 오류가 발생하면 수정후 재테스트를 실시한다

요약하자면 제품의 신뢰성을 테스트 하는것이라 본다. 고객에게 인도되었을시 얼마나 안정적으로 수행을 할 것인지  알아보는데 목적이 있다.

예로 하기 삼성전자의 ORT 테스트 방법에 대하여 살펴 보시라. 

http://www.samsung.com/sec/consumer/learningresources/hdd/info/trust.html


금융이나 통신같은 곳에서 차세대급 SI를 수행하게 되면 개발이후 한두달 가량 ORT 를 수행하여 개발된 내역에 대한 "고객 전달 신뢰성 확보 테스트" - 요건 내가 정의내린 것- 를 하는 것이라 본다. 




'Testing, TDD' 카테고리의 다른 글

테스트란 무엇인가?  (0) 2012.10.22
posted by Peter Note
2012. 8. 16. 17:43 Middleware, Cloud/WAS

JBoss는 메모리의 효율적 사용을 위하여 몇가지 종류의 서버 타입을 나누어 놓았다. 한번 들여다 보자 


▶ microcontainer 

  • 메모리를 적게 사용한다
  • 시작이 빠르다
  • microcontainer 위에 필요한 서비스들이 plug-in 된다 
  • server configureation은 같이 올라간다. 3종류 환경 : default, minimal, all

마이크로 컨테이너에 Plug-in 되어 올라가는 서비스들 

    • default : clustering은 없고 대부분의 필요한 서비스가 함께 올라감
    • minimal : deploy, JNDI, microcontainer등 최소한의 요소만 올라감
    • all : clustergin 포함해서 모든 서비스가 다 올라감 (server/all/deploy/cluster/cluster-jboss-beans.xml 환경참조)

▶ server/default 폴더 
  • conf, deploy, deployers, lib 이 기본 디렉토리로 존재
  • 기동된 이후 여러개의 temp 디렉토리가 생성됨 : data, log, tmp, work 등 
    • conf : 서버 기동시에 최초에 한번만 스캔된다. 즉, 재시작해야만 다시 인식됨 (자동 reloading 있음 좋겠다)
      • bootstrap.xml : microcontainer 코어 서비스들 정의
      • jboss-services.xml : 시작시 기동할 코어 JMX 서비스들 정의 
      • standardjboss.xml : EJB container 정의
      • jboss-log4j.xml : 로깅 설정
      • login-config.xml : authentication(자격-권한) 과 authorization(권한 범위-인증) 설정 
    • deploy : JAR, WAR, EAR 파일이 놓이면 시작시 자동으로 인식하여 배포함 
    • deployers : JBoss AS 서비스들을 가진다
    • lib : 어플리케이션 공유 라이브러리 디렉토리 
    • 기동시 생성되는 디렉토리들
      • data : write to file temp data ex) HSQL 이용시
      • log : boot.log, server.log, audit.log 쌓임
      • tmp : stores temp data
      • work : compile jsp files

▶ 자신의 서버환경 만들기 
  • default, minimal, all중 자신이 원하는 것을 하나 선택한다 
  • Copy & Paste하고 디렉토리 명칭을 원하는 것으로 변경한다 


▶ Start / Stop 

다른곳에서 너무 잘 정리해서 그냥 참조 : http://www.allsoft.co.kr/bbs/board.php?bo_table=study97_1&wr_id=4

  • 8080 가 default port로 사용
  • 맨 끝에 Started in 시간 나오면 성공
  • run.bat -c default -b <ip-address>
▶ 애플리케이션 Deploy
server/XXX/deploy/ 폴더 안에 파일 copy하면 deploy되고 delete하면 undeploy 된다 
예로 web01.war 파일을 deploy 폴더에 copy하면 jboss 콘솔창에 하기와 같은 메세지가 출력된다. 
17:06:07,823 INFO  [TomcatDeployment] deploy, ctxPath=/web01
역으로 delete하면 하기와 같은 메세지가 출력된다.
17:07:11,849 INFO  [TomcatDeployment] undeploy, ctxPath=/web01




posted by Peter Note
2012. 8. 16. 16:51 Middleware, Cloud/WAS

Mining 출판사에서 나온 내용을 읽으며 중요한 사항 및 참고할 만한 글을 올려 본다

  • JBoss의 의미가 처음에는 Enterprise Java Beans Open Source Software 라는 뜻으로 EJBoss 였다가 E 자가 맘에 안들어서 JBoss가 되었단다
  • JBoss 5 버전을 다운로드 받는 곳 :  http://www.jboss.org/jbossas/downloads
    • 적당한 위치에 푼다 (5.1버전은 JDK6 사전설치)
    • top level 디렉토리는 : bin, client, docs, lib, server 
      • bin : run, shutdown, probe(discovering JBoss AS clusters)
      • client : 클라이언트 어플리케이션과 통신을 위한 라이브러리들 존재
      • docs : 메뉴얼, 샘플
      • lib : core AS 라이브러리들 
      • server : 특성에 맞는 운영을 위한 디렉토리로 구분  (conf / lib / deploy 는 공통으로 존재)


posted by Peter Note