전체 글 1274

엔터프라이즈 프로젝트와 다른 프로젝트들의 차이...

아마 분야마다 차이는 있겠지만 공공,제조,금융,텔레콤,서비스 내가 언급하는 부분은 금융 부분인데.. 거의 모든 분야의 프로젝트를 다 해봤지만 가장 까다로운것이 금융쪽이다. 그도 그럴것이 금융에서 데이타는 모두 돈이고, 금융에서 IT는 매우 중요한 부분이다. 제조에서는 IT가 지원 조직일 뿐이고, 다른 부분에서는 글쎄...? ANYWAY 이런 종류의 엔터프라이즈 프로젝트와 일반 프로젝트(??)의 차이점은?? 일단 일반적인 웹개발과 비교하면 1. 비기능적 요건 엔터프라이즈 프로젝트가 아닌 경우 기능성 요건이 가장 중요하다. 일단 되느냐 안되느냐가 가장 중요하고 비기능적 요건이란 성능,가용성,안정성,확장성등이다. 성능은.... 일반적인 웹시스템의 목표 응답 시간은 3초 내외다. 보통 DB 한두개 갔다왔다가 응..

ALM 2008.07.08

애자일 방법론이 엔터프라이즈 환경에서 적용되기 힘든이유...

요즘 자바월드에서 자바좀 한다는 사람들이 가장 관심 있게 보는 것들이 애자일과 빌드 자동화(ALM,CI) 테스트 자동화 등에 대한 이슈이다. 애자일에 대한 서적과 토론등을 보면 장미 빛 이야기가 많다. 그리고 애자일이 좋으니 애자일 도입을 해야 하는데 관리자들이 말은 안듣는다...?? 등의 이슈들 있는데.. 애자일 방법론들은 Short Release,Issue Tracking,Test,CI 등등 여러가지가 있는데 그중에서 거슬리는 것이 Short Release이다. Short Release의 개념 자체에 대해서는 찬성을 한다. 그럼에도 불구하고 엔터프라이즈 프로젝트에서 Waterfall 모델이 아직도 가장 널리 사용되는 이유는 무엇일까? agile 방법론에서 이야기 하는 것들은 대부분 In House P..

ALM 2008.07.08

이런 오픈소스 라이센스 정책이 있었으면 좋겠다..

어느나라나 개발에서 무리한 야근이 있는것은 자명한 사실인것 같고... 그래서 다음과 같은 오픈소스 정책이 있었으면 좋겠다.. == 이 소프트웨어는 상용이든 무슨 목적으로던지 사용할 수 있으며 단 이 소프트웨어를 개발하는데 사용된 리소스에 대해서 개발 조직이 야근을 할 경우에는 해당 개발자 시간당 수당의 * 1.2를 한 금액을 개발자에게 야근 수당으로 지불해야 하며 주말 근무의 경우에는 *2배의 금액을 지불해야 한다. 만약 이러한 라이센스 규약을 위반이 적발된 경우 개발자 임금을 소급적용하여 지불하고... 본 소프트웨어의 LIST PRICE의 10배 금액을 배상한다.. 등등등 == 이런걸 Apache랑 GPL 라이센스에만 적용해줘도... 개발자들이 살만하지 않을까? ㅎㅎ 금주에 있을 빡쎈 야근 모드를 생각..

ALM (개발,빌드,테스트 자동화 등등)에 대한 세미나 합니다.

개발환경 자동화에 대한 세미나를 합니다. 작년부터 계속 준비하고 여기저기 적용도 해보고 원고도 써놔서 발표한번 해야 겠다 생각하고 있었는데, 첫번째 발표 일정이 잡혔습니다. "제1회 한국 소프트웨어 아키텍트 대회" 에서 7월12일에 1시 부터 삼성 멀티캠퍼스에서 2번 트랙 "Enterprise 환경에서 ALM 구현 사례" 라는 제목으로 발표를 합니다. 30분뿐인 시간이라서 얼마나 많은 내용을 이야기 할 수 있을지 모르겠습니다만 좀더 실용적인 관점으로 접근하려고 합니다. 블로그에 오시는분들중 관심이 있으신 분들은 발표후에 Q&A 시간등에서 많은 의견 나눴으면 합니다. 유감이게도 주최측에서 유료 세미나랍니다. 대회라고 하는데.. 무슨 대회인지도 잘 모르겠습니다... 좋은 세션들이 많은데... 시간 관계상 아..

사는 이야기 2008.06.23

재미있는 X.25 관련 장비 (Athena X.25 switch)

언제한번 정리해야지 해야지 하면서... 못써놨던 글.... X.25는 아직도 그 폐쇄성으로 인해서 대외거래에서 많이 사용되는 프로토콜이다. 다시 말하면 X.25는 기관과 기관을 1:1로 연결하는 폐쇄망이다. 요즘이야 TCP 전용망으로 많이 구성을 하기는 하지만 아직도 X.25는 많이 사용되는 대외계 프로토콜중에 하나다. 그런데 이 X.25라는 놈이 문제가 별도의 X.25 카드를 필요로 한다. API도 X.25 프로토콜에 맞춰서 프로그래밍해야 하는데 개발자를 구하기도 어려울뿐더러 X.25 카드에 대한 지원도 쉽지 않다. 또한 예를 들어 클러스터 환경으로 5개의 BOX로 업무 시스템을 구성할 경우 부하분산이나 클러스터링에 문제가 생긴다. X.25 카드를 5대에 모두 꼽을 수 없을뿐더러 X.25 회선이 5개가..

아키텍쳐 2008.06.17

About CodeBeamer

일이 바뻐서 요즘 공부나 플랫폼들 보는 것에는 소홀해 있다가. 야근하다가 잠깐 쉬는 겸해서 예전에 인스톨해놓았던 CodeBeamer를 review해봤다. 아키텍쳐 그룹에서 제공해준 패키지 덕분에 쉽게 인스톨하고 문서들도 참고 할 수 있었다. (감사) 인스톨해서 드는 느낌은 완성도가 높고 쉽다는 것 정도? 다시 말하면 이것저것 필요한것은 다 들어 있지만, 타 Agile 툴에 비해서 깊이는 떨어지는 것 같은 느낌은든다. 모라고 비교해야 하나 Mantis와 JIRA를 보는 느낌이라고나 할까? 프로세스나 워크플로우도 정형화 되어 있어서 복잡한 프로세스가 없는 팀이나 기업이라면 크게 문제 없이 사용이 가능할것 같다. 기본적으로 있을것은 있으니까는. 무엇보다 장점은 이슈 트랙킹과 요구사항 추적, 작업 관리, 버그 ..

ALM 2008.06.17

개발 생산성에 대한 재미있는 경험 하나...

약 40일간 EAI 시스템에 대한 시스템 테스트를 수행하였다. 대부분 비기능적인 요건 성능 튜닝, 가용성, 확장성,안정성에 대한 시나리오였다. 3개의 대상 시스템이었고, 19개의 거래 패턴을 검증해야 했으며 시나리오는 몇개 였더라??? 단일거래, 복합거래, 대충 60 여가지였던가? anyway....!! 대략 6주정도 진행한것 같은데. 오전 9시~ 테스트를 진행하였다. 시나리오도 많고 resource(인력과 시간)이 절대적으로 부족한 상황... 처음 2주간의 튜닝 과정은 잘 진행되었다.. 퇴근이 10시~11시... 2주가 지나면서 재미있는 일이 벌어진다. 테스트 시작이 적어도 10시에는 시작되어야 하는데. 첫 테스트 시작이 처음에는 9시에서 테스트가 끝나갈 무렵에는 11시,12시 또는 오후 1시에나 되야..

사는 이야기 2008.06.11

괜찮은 ALM툴

한동안 시스템 테스트 관계로 이쪽을 신경을 못썼는데 간만에 좋은 툴을 소개 받아서 포스팅!! ALM (Application Life cycle management) 도구로 간단하게 JIRA/MANTIS 와 같은 버그 트랙킹, 이슈 트랙킹에서 부터 Polarion같은 툴들이 있는데 대부분 ALM등은 무게가 무겁고 복잡도가 높다. http://www.intland.com/ 에서 나온 Code Beamer라는 툴이 있는데 일단 community free license지원하고 5 user까지 무료. 그리고 ALM에 필요한 1. 이슈 관리 밑 트랙킹 2. Wiki를 통한 지식 공유 3. Source repository 4. source version 관리 tracking 5. Discussion forum 6. ..

해도 너무 하는것 아닌가?

정말 해도 너무 하는 것 아닌가? 2008년 선진국이라고 민주주의라고 외치는 나라가... 정부가 국민을 외면하고 국민에게 몽둥이와 방패를 휘두르다니... 60년대도 아니고 후진국도 아니고... 국민이 잘 먹고 편하게 살게 해달라고 뽑은 대통령과... 범죄와 위험으로 부터 지켜달라고 밤새면서 돈벌어서 경찰들 월급 주는데... 먹기 싫은 미친소 안먹겠다고 하는 사람들에게 몽둥이가 왠 말이냐? 정말... 이런 글은 블로그에 올리기는 싫었는데.. 이건 정말 해도해도 너무한다... 내딸이 태어나서 열심히 자라고 있는 지금... 무엇을 먹여야 하나 고민도해야하고.. 이런땅에서.. 내딸을 키워야 하나.. 내딸이 다 큰후에 부끄럽지 않도록 나도 거리로 나서야 하는것은 아닌가? 국민들은 바보가 아니다.. 생각도 할줄 알..

사는 이야기 2008.06.02

살아간다는 것이..

딸이 태어난지도 이제 거의 한달이 다 됐다. 엊그제인가... 12시에 집에 돌아와서... 딸 재울 준비들 하고.. 침대에 누웠는데. 엔지니어로 산다는게 참 공허하더라. 기술이 좋고 재미있어서 이길을 선택했지만. 아침에 출근전에 딸 얼굴 5분 보고... 퇴근해서는 피곤에 지쳐서 쓰러진 와이프와 자는 딸 모습.. 그래도 시간이 있을때는 와이프랑 이런 저런 이야기도 많이하고 장난도 치고 서로 많이 웃기도 했는데. 요즘 무엇을 하는건지... 내 딸과 와이프와 잘 살기 위해서 돈을 버는 거지.. 일을하기 위해서 돈을 버는게 아닌데 ... 새로운 기술에 대한 공부도.. 건강을 챙기기 위한 운동도 영어 공부도... 친구를 만나는것도.. 취미도 그리고 가족도.. 모두 일이라는 녀석이 먹어버렸다. 과연 이렇게 사는게 맞..

사는 이야기 2008.05.21

Hudson을 이용한 빌드 배포 테스트 자동화

Hudson을 이용한 빌드와 테스트의 자동화 2007-04-04 BEA Systems Korea Sr consultant Byungwook Cho (bcho@bea.com) Continuous Integration(점진적 통합,이하 CI)이란, 개발자가 각각 개발한 소스코드를 모아서 한꺼번에 빌드하는 통합 빌드의 과정을 특정 시점이 아니라 매일이나 매주와 같이 아주 잦은 주기로 수행함으로써 통합에서 발생하는 오류와 시간을 줄이기 위한 기법이다. Extreme Programming Community (XP)에서 애자일 방법론의 일부로 Kent Beck에 의해서 고안된 방법으로 다음과 같은 특징을 가지고 있다. 1. CI의 특징 (1) 소스코드 일관성 유지 CI툴을 설정하기 위해서는 기본적으로 소스 관리 시..

Atlassian JIRA를 이용한 프로젝트 관리 (기초편)

JIRA는 Atlassian사에서 개발한 Issue Tracking System이다. 원래 이 "이슈 관리 시스템"은 버그 추적 시스템에서 시작되어서 현재는 버그뿐만이 아니라 일반적인 이슈에서 부터 프로젝트 관리까지를 지원한다. 본 프로젝트에서는 JIRA를 프로젝트 스케쥴에 대한 관리도구와 개발원간에 작업을 배분하고 커뮤니케이션하는 도구로 사용한다. Issue 지라에서는 각각의 작업을 이슈라는 단위로 관리하고 이슈의 종류를 다음과 같이 정의하였다. User Story 사용자의 요구 사항이나 개발의 대상이 되는 기능이다. User Story를 구현하기 위해서 각각의 User Story는 구체적인 작업인 Task를 하위작업으로 가지고 있다. Task User Story의 하위 작업으로 User Story를 ..

ALM/JIRA 2008.04.04

Scrum 기반 개발 방법론

본 개발 프로세스는 애자일 방법론중에서 Scrum 개발 방법론을 기반으로 한 방법론이며, 방법론의 개념과 함께, Atlassian社의 JIRA 이슈 추적 시스템을 이용하여 실제로 팀 프로젝트를 관리하는 방안을 설명한 구체적인 실용주의 방법론이다. 전체 시나리오 고객 또는 분석가는 시스템에 구현되어야 하는 기능을 최종 사용자 입장에서 "기능"으로 서술한다. 이를 Product BackLog라고 하고, 각각의 기능에 대한 사용자 스토리등이 구체적으로 기입되어야 한다. 이 과정에서 Product BackLog는 기능별로 하나의 카드에 작성될 수 도 있고 또는 UseCase Diagram에서 Use Case로 작성될 수 있다. 이렇게 작성된 각각의 Product BackLog에 대해서 오픈 일정에 따라서 우선적..

ALM/Task Management 2008.04.04

플러그인 개발 순서

http://confluence.atlassian.com/display/DEVNET/How+to+Build+an+Atlassian+Plugin 1. 이클립스에서 플러그인 업데이트 http://mevenide.codehaus.org/mevenide-ui-eclipse/update/index.html 2. 아파치 사이트에서 메이븐 받아서 설치 3. 메이븐 컨피그 지정 http://confluence.atlassian.com/display/DEVNET/Example+settings.xml 4. 템플릿 생성(프로젝트 생성) http://confluence.atlassian.com/display/DEVNET/Atlassian+Plugin+Archetypes mvn org.apache.maven.plugins:ma..

간만에..

오랜만에 블로그 업데이트 회사일이다. 자바스터디 업데이트다.. 다소 바쁜 시간을 보냈는데.. BEA 에이스 C차장님, 한 오픈소스 하시는 S차장님의 합류와 현 운영자 홍회, 최초 자바스터디 운영진인 정훈이와 환이의 합류로 빵빵한 운영진이 구성되었다. 그외에도 많은 분들이 네이버 카페를 통해서 운영진에 참여 의사를 밝혀주셨는데. JIRA를 통해서 작업을 배분하는데 솔루션 기반이라서 그런지 능동적으로 참여해주는 사람이 없어서..약간 걱정이 되기도 하는데. 여하튼 많은 사람과 함께 하나의 사이트를 다시 빌딩해야 하기 때문에 중간에 조율 해야할일도 많고.. 시간이 많이 부족한 편이다.. 곧 우리딸도 태어날텐데.. 얼렁 마무리 하고 가족에 당분간 집중할 수 있었으면...

사는 이야기 2008.03.28

ALM 솔루션

ALM이란 Application Lifecycle management로 소프트웨어 개발의 전반적인 관리에 해당하는 내용이다. 즉 요구사항을 수집하고, 일정을 잡고, 작업을 배분하고 릴리즈,테스트,버그관리까지의 전과정을 핸들링 하는것인데.. 개발환경 자동화를 하면서 이슈 트랙킹 시스템이 이슈 자체를 관리하는 것은 가능하지만 요구사항에서부터의 추적이나 스케쥴 관리에 있어서 문제가 있었다. 그래서 ALM쪽을 살펴보는데 역시 요즘은 Agile이 강세다. 그런데 웃긴것중에 하나... 국내 사이트에서 애자일을 검색해보면 애자일이 어쩌고 저쩌고 하는 사람들은 많은데.. 정작 프로세스를 정립하는 것은 툴하나 없이 액셀 시트가 어쩌고 저쩌고 포스트잇이 어쩌고? 어이가 없어서... 엔터프라이즈 시스템 그렇게 만들고 감리를..

ALM 2008.03.13

개발환경 자동화 환경에 대한 추천 조합

몇가지 개발환경 자동화에 대한 테스트 조합을 해본결과에 대해서 추천을 드리겠습니다. 1. 이슈 관리 시스템 Mantis,Trac,Bugzilla,JIRA를 운용해봤습니다 결과는 JIRA가 가장 좋다는 것이 결론이고 구입 비용은 대충 120만원이면 일반 기업에서 무리 없이 사용이 가능합니다. 나머지는 오픈 소스 인데, Trac의 경우 기능은 막강하지만 인스톨과 운용이 어렵기 때문에 작은 단위나 기술력이 부족한경우에는 그다지 추천하고 싶지 않습니다. Bugzilla의 경우 제 경우 매우 편리하게 사용을 했습니다만, 인스톨이 제법 까다롭습니다. Matins의 경우 Instant Mantis라는 것으로 매우 쉽게 설치 및 운용이 가능합니다. 한글 지원도 잘되구요. 그러나.. 프로세스에 대한 흐름이나 UI가 좀 ..

ALM 2008.03.13

개발 환경 자동화에 관심이 많은 분들께 알립니다.

안녕하세요? 근래 제 블로그 포스트에 개발환경 자동화에 대해서 관심들이 많으신것 같습니다. 이 내용은 작년 NHN에서 빌드 배포 자동화 솔루션 프로젝트를 진행하면서 관심이 있어서 그때부터 스터디하고 현재 K사와 H사에 적용하면서 Maturing 시켜가고 있는 프로세스 입니다. 원래 금년 JCO 컨퍼런스에서 발표할 예정이었습니다만, 여러 사정으로 발표를 못했습니다. 시간이 되는데로 설정 방법과 프로세스에 대한 문서와 강의를 진행할 예정입니다만 아직 프로세스를 완성 시켜 나가는 단계이고 시간이 없다는 핑계로 진행을 못하고 있습니다. ^^; 혹시 개발환경 자동화 프로세스에 대해서 필요하신 내용이나 의견이 있으시면 강좌 문서에 반영해보도록 해보겠으며, 그전에라도 도움이 필요하신 분들은 개별 메일이나 또는 요즘 ..

ALM 2008.03.13

JVM 튜닝

진짜 오래전 문서인데.. JVM 튜닝 문서 링크 == JVM GC와 메모리 튜닝 자바스터디 네트워크 [www.javastudy.co.kr] 조대협 [bcho_N_O_SPAM@j2eestudy.co.kr] 모든 Java Application은 JVM(Java Virtual Machine)위에서 동작한다. 이 JVM이 동작하는데 있어서, 메모리의 구조와 특히 GC는 Application의 응답시간과 성능에 밀접한 관계를 미친다. 이번 강좌에서는 JVM 의 메모리 구조와 GC 알고리즘 (JDK 1.4.X에 포함된 새로운 알고리즘 포함) 그리고, JVM의 메모리 튜닝을 통한 Application의 성능향상방법에 대해서 알아보도록 하자. 1.GC란 무엇인가? GC는 Garbage Collection의 약자로 Ja..

단위테스트 3회 - 커버러지 분석과 단위 성능 테스트

테스트 코드 커버러지와 단위 부하 테스트 (Test Code Coverage & Unit performance test) 자바스터디 조대협 (http://bcho.tistory.com) 현재 BEA Systems Korea에서 Senior 컨설턴트로 엔터프라이즈 애플리케이션 개발과 미들웨어 SOA에 대해 컨설팅을 진행하고 있다. 온라인 자바 사이트 http://www.javastudy.co.kr 의 초기 시샵이며, 한국 자바 개발자 협의회 JCO의 초대 부회장을 맏았다. 이번 글에서는 테스트가 애플리케이션을 어느정도 테스트했는지를 측정하는 코드 커버러지와, Japex 테스트 프레임웍을 이용한 부하 테스트 방법에 대해서 알아보도록 한다. 1.코드 커버러지 (Code Coverage) * 테스트 커버러지란?..

ALM/Test Automation 2008.03.12