세상에는 두 종류의 사람 얘기하면서 Hello World를 아는 개발자와 모르는 일반인으로 구분하고는 했습니다. 유사한 경우가 소스라고 했을 때 소스 코드가 먼저 떠오르면 개발자고 토마토 소스처럼 요리용 소스가 생각나면 일반인으로 구분할 수도 있을 것 같습니다.


오픈 소스에 관한 글이 하나 떠서 소개합니다.
http://www.ibm.com/developerworks/kr/opensource/newto/index.html

오픈소스를 가져다가 활용하기 때문에 요즘 프로그래밍 기술에 가속도가 붙어있습니다. 예전처럼 코드를 꽁꽁 숨기려는 노력보다는 바벨탑을 쌓아가듯이 코드를 공유하는 문화가 개발자들 사이에서 유행처럼 번지고 있습니다.

좋은 의도에서 소스를 오픈했는데, 아무리 비용이 들지 않는다 하여도 가져다 쓰는 예의와 법이 있습니다. 그것에 대해서 잘 얘기해주고 있는 글입니다.

좀 좋게 미친듯하다. 좋은 소리 듣기는 힘들겠지만, 그래도 시도는 한 것이 나쁘지만은 않다. 다음에 올라온 이데일리 뉴스를 보고 16일 오픈한다는데, 도메인(http://www.anyframejava.org/ )이 있기에 들어가 보니 "와~" 소리 나오게 잘 만들어 놓았다.

Struts와 Spring 프레임워크를 국내 SI에 맞게 만들어 놓은 듯한 인상을 지울 수는 없지만 사이트 체계는 잘 만들어 놓았다.
소스와 바이너리 버전, JIRA를 이용한 이슈 관리, Subversion로 버전관리, 그리고 포럼을 통한 의견교환, 그리고 제법 갖춰진 매뉴얼과 문서들.

LAF/J 보다 나은 점은 사내망을 벗어나서 외부와 소통하겠다는 의지인데, 관건은 얼마나 오래 유지될 것이냐는 것이다.

유령의 집 같은 폐가로 만들지 않으면 좋겠다.

http://www.anyframejava.org/
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
폐인이 다 되서 강연을 했습니다.
들어주신 분들께 감사드립니다.
강의 파일은 일전에 블로그에 올렸습니다.
http://okjsp.tistory.com/1165643104

오픈 소스, 하시기 바랍니다.
참여의 기쁨이 있습니다.

사용자 삽입 이미지

많은 것을 보았습니다.
행복합니다. 희망이 보이니까요.
다음 건승하세요. ^^

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

오픈소스 뭐가 좋을까요.
공짜? 아닙니다. 아무도 공짜로 기술을 익힐 수는 없습니다. 시간과 노력이 많이 들어갑니다. 매뉴얼도 부실합니다. 기술지원? 인터넷을 통해서 찾아봐야하고 영어와 싸워야됩니다.

오픈소스는 소통의 방법입니다.
http://code.google.com/p/daysago 라는 프로젝트를 만들어서 공개를 했습니다. 적용사이트는 http://www.okjsp.pe.kr 이죠. 날짜 표기를 몇일전(days ago)처럼 표시합니다.
어느날 버그리포트를 받았습니다. 한달 전을 지나면 날짜 표기가 이상해진다는 내용이었죠.

추가된 테스트 코드

추가된 테스트 코드

버그 내용을 확인하고 테스트 메소드를 추가했습니다. 오류가 나는 날짜 데이터를 시료로 하고, 결과값을 기대한다고 했죠.

실패한 테스트 코드

실패한 테스트 코드

테스트 코드를 실행해보면 "어제"라는 값이 나와서 기대값인 "한달전"과 다릅니다. 소스를 열어봐야죠.

브레이크 포인트 걸기

브레이크 포인트 걸기

의심이 가는 곳에 브레이크 포인트를 겁니다. 그리고 디버깅을 시작해야겠죠.

start Debug

start Debug

JUnit 뷰에서 실패한 메소드에서 오른버튼을 클릭해서 Debug를 실행합니다.

변수 정보

변수 정보

디버그 퍼스펙티브에서 우측상단의 Variables 뷰를 보면 변수값을 확인할 수 있습니다.

코드 변경

코드 변경

day변수값이 먼저 조건에 걸리기 때문에 hour값에 의존해서 처리를 해야할 것 같습니다. 즉 hour를 날짜로 환산한 값이 30보다 작을 경우 day == 1 과 day == 2 가 어제, 그저께로 나와야 되는 것이죠. if 안으로 집어넣으면 될 것 같습니다.

테스트 재실행

테스트 재실행

테스트를 다시 돌립니다. JUnit 뷰의 툴바 중에서 5번째 있는 노란 화살표가 있는 플레이 아이콘을 클릭하면 됩니다. 녹색 바가 나오는 것을 보니 기대한 값이 나왔네요. 제대로 디버깅 되었습니다.

Regression Tests

Regression Tests

Regression Tests(회귀 테스트)를 수행합니다. 무슨 뜻이냐 하면 고친 코드로 인해서 다른 기능들에 Side Effect(부작용)가 생겼는지 확인을 하는 테스트를 회귀 테스트라고 합니다. De Bug가 En Bug로 돌변할 수도 있으니까요.

프로젝트 패키지

프로젝트 패키지


테스트가 완료되었으니 배포판을 만들겠습니다. 이클립스 프로젝트를 통째로 압축을 해서 공개를 하는 프로젝트입니다. 프로젝트 컨텍스트 메뉴에서 Export...를 선택합니다.
export type 선택

export type 선택

압축형태이기 때문에 zip이라고 필터 텍스트를 입력하지 마시고, ar을 입력하면 Archive File로 나옵니다. 프레스로 꽉꽉 누르는 아이콘 보이시죠.

배포판 등록

배포판 등록

배포판을 등록합니다. http://code.google.com/ 에서 프로젝트 관리자나 회원이면 파일을 등록할 수 있습니다.

등록된 배포파일

등록된 배포파일

daysago-0_22.zip 파일이 등록된 것을 볼 수 있습니다.

간단하게 시작할 수 있는 오픈소스 방법입니다. 복잡한 게시판 같은 것은 시간이 많이 걸립니다.  작은 소스부터 공유하면서 오픈소스에 대한 감각을 키워나가는 것이 필요하다는 생각이 듭니다.
아, 영어가 벅차면 그냥 한글로 하셔도 됩니다. 세계로 나아가는 프로그래머가 되고 싶다는 생각에 어설픈 영어를 썼습니다만 한글로 시작하셔도 됩니다.

오픈소스 프로젝트를 시작할 수 있는 곳은 구글코드 외에도 http://sf.net , http://kldp.net 등이 있습니다.

+ Recent posts