산골 김저자의 책풀이 속풀이

'자동화'에 해당되는 글 2건

제목 날짜
  • 사람을 위한 자동화, 코드 자동화 관련 이클립스 플러그인 (IBM developerWorks)(10) 2008.04.29
  • 개발자와 프로그래밍의 가치을 높여주는 JUnit(8) 2008.04.03

사람을 위한 자동화, 코드 자동화 관련 이클립스 플러그인 (IBM developerWorks)

2008.04.29 22:47
예전 몇번의 글로 제가 개발자를 편하게 하는 기술, 나를 행복하게 하는 기술, 정확하게 말해 JUnit, Ant, SVN 등의 여러 자동화 툴을 이용하여 개발자는 프로그래밍만 집중하고 나머지 테스트, 배포, 소스관리, 개발자간 의사소통등의 여러 잡다한 노가다성 일은 자동화 하는 기술에 관심이 있다고 쓴적이 있습니다.

최근에 이런 자동화 기술과 관련된 좋은 세미나가 있었습니다. kenu님 등과 함께 자바 진영에 유명하신 박재성님과 KSUG이 주최한 세미니가 있었어요. 그런데 제가 부상당한 부위(엉덩이 근육통 이라는 엉뚱한 부상입니다.) 가 있어서 가지 못했습니다.

무료로 제가 원하는 바를 골고루 습득할 수 있는 절호의 기회였는데 놓쳐서 땅을 치고 아쉬워하며 서점으로 달려갔습니다. 그래서 서점에서 열이아빠님이 소개해주신 '지속적인 통합' 이란 책을 샀어요.

지속적인 통합: 소프트웨어 품질을 높이고 위험을 줄이기 상세보기
폴 M. 듀발 지음 | 위키북스 펴냄
이 책은 개발조직의 성공을 위한 '지속적인 통합'에 대해 이야기한다. 저자는 일일 빌드가 참신한 생각이었던 때를 지나 지속적인 통합을 하는 수준에 이르렀고, 이제는 지속적인 통합을 하느냐의 여부가 제대로 일하는 개발 조직을 가늠하는 잣대가 됐다고 주장한다. 그리고 이 책을 통해 소프트웨어의 품질은 높이고 위험은 줄이는 지속적인 통합의 개념과 실천방법을 자세히 설명한다. 또한 CI 시스템이 수행하는 데이터베이스

책을 읽어보니 제가 궁금해 하던 내용이 많이 나와 있었습니다. 열심히 읽고 실습도 하여 정리된 내용은 블로그에 올리겠습니다. 그리고 박재성님이 곧 책도 내신다고 하니 기대가 많이 되면서 조만간 제가 관심갖는 분야에 많은 진전이 있으리라 생각합니다.


예전에는 Ant, Maven, JUnit, SVN, CruiseControl 등의 오픈소스(=제품) 개별로 존재하던 문서들이 '사람을 위한 자동화'란 큰 주제로 통합되는 시도가 이루어지고 있는데요. 그 시도 중에 IBM developerWorks의 사람을 위한 자동화 기사들이 있습니다.

오늘은 이 기사중에서도,
사람을 위한 자동화: Eclipse 플러그인으로 코드 품질 높이기 (한글)
을 소개하겠습니다.

이클립스 플러그인 중에 코드의 건강함(=깔끔함=간결함=무결성)을 체크할 수 있는 여러 플러그인이 있다고 합니다.

일단 코드의 건강함을 체크하는 5가지 항목이 있다고 합니다.
코딩 표준 : 팀에서 명시한 코딩 표준을 준수했는가
코드 중복 : 코드의 중복은 일거리를 여러 번 만든다.
코드 커버리지 : 코드에 대한 자동화 테스트가 버그 생길 틈 없이 잘 이루어졌는가
의존성 분석 : 객체지향에서는 느슨한 의존을 중요시한다. 객체지향 적인 의존성 검사
복잡성 모니터링 : 메소드의 복잡성 체크

기사를 읽고 잠깐 정리해보니 코드의 건강함을 체크하는 방법이 이렇게 5가지로 정리된다는 것을 알게 되었습니다.

그리고 이 코드 건강함의 5대 체크 항목을 도와주는 이클립스 플러그인이 있다고 합니다.

툴                 목적                 Eclipse 플러그인 URL
CheckStyle    코딩 표준 분석          http://eclipse-cs.sourceforge.net/update/
Coverlipse    코드 커버리지 테스트    http://coverlipse.sf.net/update
CPD           Copy/Paste 탐지         http://pmd.sourceforge.net/eclipse/
JDepend       패키지 의존성 분석      http://andrei.gmxhome.de/eclipse/
Metrics       Complexity monitoring   http://metrics.sourceforge.net/update

정리해보니 중요하게 느껴지는 코드 건강함 체크 5가지 항목을 이클립스 플러그인으로 편하게 체크할 수 있습니다. 자세한 것은 기사를 참고하시면 되겠습니다.

> IBM developerWorks
사람을 위한 자동화: Eclipse 플러그인으로 코드 품질 높이기 (한글)
  • 카카오스토리
  • 트위터
  • 페이스북

'' 카테고리의 다른 글

팀원에게 객제지향 개발을 유도하기 (2/3)  (11) 2008.05.21
팀원에게 객제지향 개발을 유도하기 (1/3)  (15) 2008.05.19
사람을 위한 자동화, 코드 자동화 관련 이클립스 플러그인 (IBM developerWorks)  (10) 2008.04.29
TCP/IP 책 3종 세트를 읽고 (네트워크 프로그래밍)  (27) 2008.04.23
자바 NIO 네트워크 프로그래밍 공부  (11) 2008.04.17
에러 잡는 마음가짐  (8) 2008.04.09
Posted by 산골 김저자
DeveloperWorks, IBM, ibm developerworks, IT, 개발자, 자동화, 자바, 프로그래밍
  • Green
    2008.04.30 09:34 신고

    저도 요새 틈틈히 읽고 있는 책입니다.
    CI의 중요성은 다른 무엇보다도 프로젝트의 가시성을 높여주는데 있고
    가시성을 높이는데 CI서버에서 daily build시에 Maven으로 돌린 리포팅이 한 몫을 합니다.
    위에서 쓰신 이클립스 플러그인들도 Maven플러그인으로 리포팅을 할 수 있을 것 같습니다.

    • BlogIcon 산골 김저자
      2008.04.30 22:59 신고

      그린님 어서오세요~
      메이븐 플러그인으로 리포팅을 할수 있나 보군요. ;
      좀더 공부를 해봐야겠습니다.
      심도있는 피드백 감사드립니다..
      그런데 그린님 인자 블로그 주소좀 남겨주세유..^ ^
      아니면 다음 KSUG 모임때 인사드려야 되나..;

  • BlogIcon 기차니스트
    2008.05.02 15:43 신고

    저희 수업중에 이클립스로 프로그램 돌리는게 있었는데,
    자꾸 오류가 나서 못 한게 있어요 ㅠ_ㅠ
    맨날 수업가면 프로그램 설치만 하다 와요 ㅋㅋㅋ

    • BlogIcon 산골 김저자
      2008.05.04 20:09 신고

      기차니스트님도 프로그래밍쪽 하는걸로 얼핏
      할고는 있는데..이클립스도 다뤄보시는군요..
      제가 보면 언능 해결할수 있을것 같지만..;

      이클립스는 우리 개발자를 위한 행복 도우미입니다.
      기차니스트님도 행복한 개발 하세요. ^ ^


  • 2008.05.02 17:35

    비밀댓글입니다

    • BlogIcon 산골 김저자
      2008.05.04 20:09 신고

      안녕하세요. ^ ^
      그렇지 않아도 전에 가입하려고 했었는데..
      사이트가 열리지 않았었어요..
      인자 다시 가입하겠습니다. ^ ^

  • BlogIcon nabiweb
    2008.05.03 23:16 신고

    모든 프로그래밍하는 분들이 추구하는 가치중 중요한 것에 대해 말씀해주신 것 같습니다.
    제가 알고 있는 훌륭한 프로그래머분들이 가장 지향하는 부분이 바로 노가다를 자동화 하는 것이었죠.
    그 노력으로 인해 사람들이 효율적인 업무를 할 수 있다는 것을 많은 부분 공감하고 있습니다.
    그럼 산골소년님도 훌륭한 개발자이신거죠? ^^

    • BlogIcon 산골 김저자
      2008.05.04 20:11 신고

      트로이스카이님은 프로그래머인줄 알았는데..
      nabiweb님도 프로그래머신줄은 몰랐어요..
      경험에서 우러나는 값진 댓글 감사드립니다..
      저는 훌륭한 개발자가 되고 싶고..블로그가 그길에
      도움되는것 같습니다..
      우리 모두 훌륭한 개발자 되기위해 화이팅 입니다. ^ ^

    • BlogIcon nabiweb
      2008.05.07 10:15 신고

      앗.. 아니여요. 간접경험이여요.
      저와 함께 일하는 분들 중에 프로그래머가 많거든요.
      저는 웹PM이랍니다. ^^;;
      늘 훌륭한 프로그래머분들께 감사하고 있어요.
      오해를 불러일으켜서 죄송해요~

    • BlogIcon 산골 김저자
      2008.05.07 21:08 신고

      엇..나비웹님..그러셨군요~
      트로이스카님하곤 예전회사 동료셨겠죠..
      에고~ 트로이스카이님과 나비웹같은
      스캔들 부러워요~ 근데 우리회사 여직원은 없어요~ ^ ^

트랙백

※ 스팸 트랙백 차단중 ...{ ? }

개발자와 프로그래밍의 가치을 높여주는 JUnit

2008.04.03 00:41
오늘은 정장을 입었습니다. 자유롭게 입다가 정장을 입었더니 불편합니다. 정장이란 옷 자체는 비싼 만큼 기능적으로 불편하진 않을 텐대 마음이 불편한가 봅니다.

그러나 정장을 입었더니 말과 행동이 조심스러워 지면서 나도 모르게 어른스럽게 행동하는 것 같습니다. 그리고 정장을 입으니 인물이 달라보인다(?) 라는 '이것은 칭찬한것도~ 안한것도 아녀~' 식의 덕담도 들었습니다.

정장을 입으면 마음이 불편하여 왠지 입기는 싫지만, 일단 입으면 나를 품위있게 바꿔 나의 가치를 높여주는 효과를 가지고 있습니다.


제가 좋아하는.. 사실은 좋아하려고 노력하는 JUnit가 정장과 같은 효과를 가지고 있습니다. JUnit란 단위 테스트를 도와주는 자바 테스트 프레임워크 입니다. 자세히 설명하면 우리는 보통 프로그램을 개발할 때

> 막 개발 프로그래밍
1. 일단 만들고 보자. 시작…
2. 일단 끝..실행..이것 소스가 베베 꼬이긴 했지만 돌아는 가는구나
3. ‘가가가’, ‘나나나’ 테스트 데이터 몇 개 넣어보고 뭐.. 이정도면 되겠지~!

식의 개발 흐름를 가지고 있습니다. 특히 우리나라의 빨리 빨리~ 문화에 익숙해진 우리 개발자들은 위의 흐름을 따를 것입니다.

JUnit은 개발 흐름(프로세스)이 특별합니다.이미 많은 고수 개발자들이 쓰고 계시기 때문에 잘 아시겠지만 당시 저는 왜 이렇게 짜야 하나~ 하고 한참 어리둥절 했습니다.

> JUnit 프로그래밍
1. 이 클래스에 있어야 할 ‘기능(=메소드=인터페이스)’을 생각한다.
2. '그 기능'에 임의의 테스트 값을 넣었을 때, 내가 의도한 결과값이 나오는가를 JUnit 테스트 클래스에 명시(=구현)한다.
3. 2.번의 테스트가 성공할 수 있도록 '그 기능'의 로직을 마구잡이로~ 구현한다.
4. 마구잡이로~ 구현한 '그 기능'의 로직을 깔끔하게 리팩토링~ 한다.

틀릴수도 있겠지만 JUnit 프로그래밍의 큰 흐름이 위와 같습니다. 이제 막 자바 공부하는 분들은 이해하기 어려울수도 있지만 경력 있는 자바 개발자분들은 많이 들어보셨을 것 입니다.

저는 JUnit 방식의 개발 흐름을 따를려고 노력을 했습니다. 최근에는 저만 JUnit 방식의 개발 흐름을 따르는 것이 아니고 같이 일하는 개발자까지 ‘JUnit 함께 해요~’ 하며 설득 및 개발 독려까지 해보았습니다.

이렇게 나름대로 적용해본 결과 제가 느낀 JUnit 프로그래밍~ 의 효과가 있었습니다. 그 효과를 정리하면 다음과 같습니다.

> JUnit 프로그래밍 효과
1. 프로그래밍 관점의 JUnit 사용 효과
 1.1 기능(=메소드=인터페이스)에 집중하는 효과
 1.2 Exception 처리에 집중하는 효과
 1.3 테스트 케이스 문서화의 효과
 1.4 기능은 그대로인 상태에서 내부 소스 개선(=리팩토링)시 '막 개발' 때는 절대 발견 못할 꼭꼭 숨은 버그도 잡아준다.

2. 개발자 관점의 JUnit 사용 효과
 2.1 하나하나 차근차근 구현 목표에 접근하기 때문에 마음이 들뜨지 않고 안정감이 생긴다.
 2.2 역시 위와 같은 이유로 집중하는 습관이 생긴다.
 2.3 그러나 조금만 느슨해지면 여전히 막 개발 하고 싶은 것은 왜 그럴까~

그리고 JUnit 사용하면서 제가 얻은 노하우~는 일단 떠오르는게 하나인데요. 정리하면서 몇 개 추가할 예정입니다.

> JUnit 프로그래밍 요령
1. 테스트 케이스가 DB, UI, 통신방식에 의존되지 않고 독립 실행가능하게 하라

일단 개략적인 내용을 정리해봤는데요. 얼마전에 연재글로 쓰다가 흐지부지한 객체지향 토론이란 글 기억나십니까. 이 글과 함께 JUnit에 대하여 차근차근 정리할 예정입니다. (오래 걸리더라도 말이죠. ^ ^;)

왜냐면 객체지향 글이던 JUnit 글이던 잘 정리할수만 있다면 프로그램 짜는 것 못지 않게 글쓰기로도 기술습득에 많은 도움이 되리라는 생각을 하고 있기 때문입니다.

그리고 JUnit 관련 기술이 오묘하고 심오하다고 할까요. 이런 생각이 드는게 원래는 JUnit 조금 다뤄보고 나 TDD(테스트 주도 개발) 할 줄 안다고 프로필에도 쓰고 그랬는데 관련 칼럼들을 읽어보니 이해안가는 어려운 내용들이 많이 있었습니다.

저는 독학으로 공부 하다 보니 제가 모르는 TDD 기법이 많이 있구나 라는 생각이 들어서 그냥 JUnit 편리하게 쓰고 있어요~ 라고 해야겠구나 싶었는데요. 이런 글 쓰면서 고수 개발자분들의 피드백도 받을 수 있다면 금상첨화~ 라는 생각입니다. 그리고 글쓰기를 통해 구독자와 지식 공유도 되고요~! (이번 글도 틀린글이나 첨가하실 의견 있으시면 피드백 부탁드립니다. ^ ^)


그럼 오늘은 제가 느낀 JUnit의 효과 정리 및 IBM developerWorks의 JUnit 관련 기사 소개로 마무리 하겠습니다.

JUnit 사용 효과중에
1.4 기능은 그대로인 상태에서 내부 소스 개선(=리팩토링)시 막 개발 때는 절대 발견 못할 잡기 어려운 버그도 잡아준다.
가 있다고 했는데요.

이게 무슨 말이냐면 각 클래스 해당 기능의 단위 케이스를 충실하게 구현했고 이것을 묶어서 한번에 테스트 가능하게(=Composite) 해놓았다면, 기능은 그대로인 상태에서 내부 소스 개선(=리팩토링)시 막 개발 때는 절대 발견 못할 잡기 어려운 버그도 잡아준다~ 라는 뜻 입니다.

제가 위의 경험을 이번 사내 프로젝트에서 종종 경험 해봤기 때문에 피부로 와 닿는 내용입니다. 그런데 모든 JUnit 단위케이스를 Composite로 묶어서 한방에 테스트 하는 절차를 Ant나 기타 유틸리티들로 자동화하면 더욱 더 편리하고 안전한 개발을 할 수 있을 것 입니다.

제가 소개할 IBM developerWorks의 '사람을 위한 자동화: 연속 테스팅 (한글)' 기사는 바로 방금 설명한 편리함과 안전함을 누릴 수 있는 유익한 기법을 설명하고 있습니다.

저 Ant 및 기타 유틸리티 통한 한방 JUnit 테스트는 저도 아직 안해봤는데요. 곧 해봐야겠습니다.~!

그리고 마지막으로
2.3 그러나 조금만 느슨해지면 여전히 막 개발 하고 싶은 것은 왜 그럴까.
JUnit가 써보니 좋은 것을 많이 느끼는데 왜 2.3의 습관은 여전할까 생각하다가 서두에 쓴 ‘정장’이 생각났습니다.

JUnit는 정장처럼 개발자와 프로그래밍의 품격과 가치를 높여주지만 그래도 귀차니즘을 추구하는 인간의 본성은 어쩔수 없는 것 같습니다.

귀차니즘을 이겨내고 더 공부하고 생각해봐야 겠습니다.

> IBM developerWorks

사람을 위한 자동화: 연속 테스팅 (한글)
  • 카카오스토리
  • 트위터
  • 페이스북

'' 카테고리의 다른 글

에러 잡는 마음가짐  (8) 2008.04.09
IBM developerWorks 리뷰 블로거들과의 만남  (10) 2008.04.05
개발자와 프로그래밍의 가치을 높여주는 JUnit  (8) 2008.04.03
Grails 마스터하기 (IBM developerWorks)  (4) 2008.03.28
Apache MINA(미나)로 프로토콜 로직 만든 후기  (33) 2008.03.26
PHP로 RSS 피드 수집기를 직접 만들어보자. (IBM developerWorks)  (6) 2008.03.21
Posted by 산골 김저자
DeveloperWorks, IBM, ibm developerworks, IT, JUnit, 개발자, 리뷰, 자동화, 자바, 칼럼, 프로그래머, 프로그래밍
  • BlogIcon 에코♡
    2008.04.03 02:30 신고

    양복입은프로그램?
    제겐 너무 어렵군요;;;

    • BlogIcon 산골 김저자
      2008.04.04 23:23 신고

      '앳된' 소녀 에코님 주말에 에코님이 좋아하는
      멋지군 홍텐 포스팅을 하려고 하니 부디..
      다시 찾아주세요~ ^ ^

  • BlogIcon mepay
    2008.04.03 09:08 신고

    저한테도 어렵군요. ㅎㅎ

    http://mepay.co.kr/217 산골님이 이거 평가하시고, 조언좀 해주셔야 겠어요..^^;

    • BlogIcon 산골 김저자
      2008.04.04 23:23 신고

      주말에 다시 읽어보고
      의견을 남기겠습니다.
      mepay님 멋쟁이~! ^ ^

  • BlogIcon 길
    2008.04.03 09:27 신고

    junit을 사용해본지 너무 오래 되었군......
    정장과 junit에 관계는 너무 적절한 것 같은데^^

    • BlogIcon 산골 김저자
      2008.04.04 23:24 신고

      마이플랫폼용 junit도 나왔으면 좋겠네 ^ ^

  • BlogIcon 4four
    2008.04.03 15:52 신고

    테스트 프레임워크를 정장으로 비유하신 게 재미있습니다. 저도 얼마 전부터 이런 방식을 적용해보고 있는데 생각 이상으로 장점이 많더군요. 조금 더 다각적(?)인 시도를 해보고 나서 감상을 한 번 정리해 볼까 합니다.

    • BlogIcon 산골 김저자
      2008.04.04 23:24 신고

      시도하다가 낯설고 어색해서 포기하는 분들
      많으신것 같은데 꼭 원하시는 성과 이루시길
      바랄께요. ^ ^

트랙백

※ 스팸 트랙백 차단중 ...{ ? }
이전페이지 다음페이지
블로그 이미지

by 산골 김저자

공지사항

  • 산골 김저자 블로그 소개

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 객체지향 생각의 도구6-한두깨 객체.. (2)
  • 객체지향 생각의 도구5-한두깨 객체..
  • 객체지향 생각의 도구4-한두깨 객체..
  • 객체지향 생각의 도구3-한두깨 객체..
  • 객체지향 생각의 도구2-한두깨 객체..
  • 더 보기
  • 예 안녕하세요~ 지금 인쇄소에 넘어..
    김저자 ㆍ 02.13
  • 아직 책이 안나오나요? 나오면 전체..
    카이 ㆍ 02.12
  • 감사합니다. 거의 첫 독자가 되시..
    산골 ㆍ 01.10
  • 네~ 꼭 구매해서 후기 달겠습니다
    카이 ㆍ 01.09
  • 네 정확합니다.~! 포인트를 정확히..
    산골 ㆍ 01.08

태그

  • 프로그래머
  • 수필 객체지향
  • IT
  • 아이폰
  • ibm developerworks
  • 수영
  • IT개발자
  • DeveloperWorks
  • 비보잉
  • 블로그
  • IBM
  • 힙합
  • 자바
  • 우토로
  • 정치
  • 일상
  • 개발자
  • 비보이
  • 글쓰기
  • 칼럼
  • 음악
  • 책쓰기
  • 객체지향
  • 책
  • 리뷰
  • 독서
  • 디자인패턴
  • 프로그래밍
  • 수필
  • 여행

글 보관함


  • 2019/02
    (2)

  • 2019/01
    (8)

  • 2018/12
    (1)

  • 2018/09
    (1)

  • 2018/08
    (2)

  • 2018/07
    (2)
«   2019/02   »
일 월 화 수 목 금 토
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28    

링크

카테고리

전체 보기 (521)
길게 쓰기 (17)
객체지향의 탄생 (공식) (17)
짧게 쓰기 (259)
리뷰 (53)
칼럼 (37)
연습장 (169)
기타 (144)
칸쿤 여행 (2017) (1)
중국 여행 (2015) (6)
객체지향의 탄생(2013) (55)
객체지향 토막글 (24)
캐나다 여행 (2010) (10)
수영 (12)
우토로 운동(07) (21)
비보이 글(02~08) (15)
비공개 글 (0)

카운터

Total
1,876,676
Today
39
Yesterday
58
방명록 : 관리자 : 글쓰기
산골 김저자's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

산골 김저자의 책풀이 속풀이

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 전체 보기 (521)
    • 길게 쓰기 (17)
      • 객체지향의 탄생 (공식) (17)
    • 짧게 쓰기 (259)
      • 리뷰 (53)
      • 칼럼 (37)
      • 연습장 (169)
    • 기타 (144)
      • 칸쿤 여행 (2017) (1)
      • 중국 여행 (2015) (6)
      • 객체지향의 탄생(2013) (55)
      • 객체지향 토막글 (24)
      • 캐나다 여행 (2010) (10)
      • 수영 (12)
      • 우토로 운동(07) (21)
      • 비보이 글(02~08) (15)
      • 비공개 글 (0)

카테고리

PC화면 보기 티스토리 Daum
  • 페이스북 공유하기
  • 카카오톡 공유하기
  • 카카오스토리 공유하기
  • 트위터 공유하기