Size: px
Start display at page:

Download ""

Transcription

1

2

3 허드슨을이용한지속적통합 초판 PDF 년 7월 10일지은이장윤기펴낸이한기성펴낸곳인사이트편집송우일등록번호제 호등록일자 2002년 2월 19일주소서울시마포구서교동잔다리로 119 석우빌딩 3층전화 팩스 블로그 blog.insightbook.co.kr 이메일 ISBN 이책의정오표는 co.kr/55151에서확인하실수있습니다. Copyright 2012 장윤기이책내용의일부또는전부를재사용하려면반드시저작권자와인사이트출판사양측의서면에의한동의를얻어야합니다.

4

5 차례 추천의글지은이의글책의구성감사의글 X XV XVI XVIII 01. 지속적통합이해 역할별고민거리 지속적통합이란? 지속적통합도구도입 형상관리 빌드 테스트 코드품질검사 배포 결과피드백 지속적통합도입시주의사항 지속적통합적용베스트프랙티스 요약 지속적통합서버 지속적통합도구선정기준 지속적통합도구 허드슨이란? 허드슨특징 쉬운설치 쉬운환경설정 형상관리감시기능 결과피드백기능 빌드도구통합과원격빌드기능 테스팅도구와통합 플러그인제공 45

6 2.5 허드슨과젠킨스 요약 허드슨설치 설치준비 JDK/JRE 설치 톰캣설치 허드슨다운로드 설치 독립형으로실행 톰캣기반으로실행 그외설치 허드슨홈디렉터리 홈디렉터리의이해 여러개홈디렉터리지정 홈디렉터리백업 다국어지원 업그레이드 요약 환경설정 환경설정개요 글로벌환경설정 글로벌환경변수 JDK 설정 플러그인관리 업데이트 설치가능 설치됨 고급 요약 지속적통합작업정의 작업정의하기 작업스케줄링 작업과작업간연계 96

7 5.3.1 후속작업정의 Build Trigger를이용한연계 작업간연계확인 동시작업제어 작업이력관리 작업정보백업 작업정의세부옵션설명 기본프로젝트설정 추가프로젝트설정 형상관리연계 빌드작업실행 빌드작업정의 빌드후속작업 요약 형상관리연계 허드슨과형상관리연계 글로벌설정 작업별설정 형상관리모니터링 형상관리주기적인모니터링 형상관리에서허드슨작업실행 허드슨작업영역공유 형상관리설계에따른허드슨작업구성 허드슨과깃연계 깃에대한이해 글로벌설정 작업정의설정 요약 앤트를이용한빌드연계 앤트이해하기 앤트스크립트정의 앤트실행을위한옵션 앤트와허드슨연계 앤트글로벌설정 168

8 7.4.2 앤트연계작업정의 앤트에서허드슨환경변수이용 요약 메이븐을이용한빌드연계 메이븐이해하기 메이븐기본구조 생명주기 메이븐과허드슨연계 메이븐글로벌설정 메이븐빌더정의 메이븐에서허드슨환경변수이용 허드슨과넥서스연계 저장소이해 넥서스이해 허드슨작업정의 요약 테스트도구연계 자동화된테스트 코드커버리지 성능테스트 요약 품질검사도구연계 코드품질검사 체크스타일 PMD 파인드버그 요약 결과보고와피드백 RSS 연동 이메일연동 요약 265

9 12. 작업정의추가기능 파라미터기반작업정의 문자열파라미터 선택파라미터 불린파라미터 파일파라미터 실행파라미터 비밀번호파라미터 서브버전파라미터 파라미터트리거 원격작업연계 슬레이브설치 마스터 / 슬레이브설정 작업정의 다중설정작업정의 작업정의상속 요약 배포 배포정책수립 배포시스템설계 허드슨작업정의 요약 보안 보안적용 사용자인증 허드슨자체데이터베이스이용 (Hudson s own user database) 유닉스계정정보이용 (Unix user/group database) 서블릿컨테이너이용 (Delegate to servlet container) LDAP 이용 권한관리 (authorization) 모든사용자에게모든권한부여 로그인사용자에게모든권한부여 매트릭스기반권한부여 332

10 프로젝트매트릭스기반권한정책부여 이전버전방법사용 보안해제 요약 지속적통합도구확장 플러그인생성 소스코드이해 자바소스코드 젤리화면구성 pom.xml 파일 확장가능영역 이클립스연계 요약 부록 1: 개발도구연계 이클립스연계 넷빈즈연계 요약 부록 2: 예제 예제다운로드 데이터베이스연동 이클립스연동 요약 부록 3: 허드슨 주요변경내용 다운로드와실행 요약 383 찾아보기 384

11 추천의글 출근하자마자커피한잔을뽑아컴퓨터앞에앉는다. 새벽네시에지속적통합도구가빌드한일일빌드산출물을확인한다. 어제구현한코드에서중복코드는없는지, 코딩표준에맞지않는코드는없는지, 단위테스트가깨진부분은없는지등을확인하고수정할부분이있다면고친다. 출근하자마자하는일이라 10~20분정도투자하면작업을마칠수있다. 9시 19분일일회의를알리는알림노래가흘러나온다. 9시 20분부터프로젝트관련자들이모여 15분내외로회의를진행한다. 10시부터업무시작이다. 이슈관리시스템에등록된업무중우선순위가가장높은업무를하나할당한후개발을진행한다. 단위테스트코드를만들고프로덕션코드를구현하면서네시간을투자해개발을완료했다. 그런다음버전관리시스템에소스코드를커밋하면지속적통합도구가단위테스트와통합테스트를진행한후성공적으로빌드되었음을알린다. 지속적통합도구는빌드결과물을웹애플리케이션서버에배포해테스트할수있는상태로만든다. 이슈관리시스템업무를기획자에게할당해테스트를요청한다. 이후 QA 단계까지진행해해당기능에대한개발작업을완료한다. 기획자와 QA가테스트를진행하는동안최근에관심이있던기술을학습하는데한시간정도투자한후퇴근한다. 내가꿈꾸는이상적인개발자의하루다. 이같은하루를만들기위한중심에지속적통합도구가있다. 이책은지속적통합도구를활용해단순반복작업을자동화해나가는과정을단계적으로접근하고있다. 이책은, 세계적으로많은곳에서사용하는허드슨이라는지속적통합도구에대해깊이있는내용을다룬다. 지속적통합, 빌드, 배포에관심이있다면이책을보며지속적통합환경을구축해보기바란다. 우리는컴퓨터가해야할많은일을직접하고있다. 지금부터라도컴퓨터가할수있는, 해야할일은컴퓨터에위임하고우리는좀

12 더가치있고, 의미있는일에시간을투자하면좋겠다. 이같은환경을만드는 데이책이조금이나마도움이되리라생각한다. 자바지기박재성 지금은젠킨스라는또다른프로젝트가분가했지만, 최초 java.net에서오픈소스로시작된허드슨은오라클이탐낼만큼완성도가높은프로젝트다. 대개서버에서돌아가는작업들에문제가발생하면터미널로들어가서로그를뒤적거려 CSI처럼분석하지만허드슨 / 젠킨스는이일을웹브라우저에서할수있다. 언제부터문제가시작되었는지, 어떤코드가바뀌어문제인지등을지속적인통합이라는방법으로쉽게알수있게되었다. 아주오래전부터 OKJSP 사이트관리도구로사용 ( 공개페이지다 ) 하고있었는데, 이렇게책으로만나게되어서기쁘다. 더구나이책에는국내큰프로젝트에서사용한경험이녹아들어있어서인터넷에조각조각흩어진정보와는다른통찰력을얻을것이다. 허드슨은플러그인이 300개가넘는좋은플랫폼형오픈소스다. 작은프로젝트라도지속적인통합도구를적용해시작한다면든든한지원군을얻은느낌을받을것이다. 이책은그시작에좋은도우미가될것이다. 자바개발커뮤니티 OKJSP 대표운영자허광남 2005년소프트웨어개발프로젝트의화두로실용주의가급부상하고있었다. 전세계소프트웨어개발프로젝트의 80% 이상이원래계획했던목표를다이루지못한다는통계도한몫거들었던것으로기억한다. 실용주의프로그래머 의데이비드토마스는당시인터뷰에서 개발자를교육하는실용적방법이있는가 란질문에대해, 소프트웨어개발은컴퓨터와프로그래밍언어에대한것이아닌, 어떤그룹의사람들이다른그룹의사람들의문제를해결하도록도와주는것으로, 고귀한것은사람을돕는일 이란답변을했다. 즉, 당시교육환경은이런소양을갖춘사람을배출하는일과거리가멀었다는의미다. 지난해 5월, 지속적통합이란주제로책을쓸계획을세웠다는저자의연락

13 을받았다. 프로그래머를위한자동화가필요한시기고그런일들이조직을위한자동화로연결되며, 궁극적으로사람들을돕는일로연결될수있다는논지였다. 프로젝트경험에서비롯된저자의이야기에빠져드는데는오랜시간이걸리지않았고, 이내용이출판되길바라는마음이생겼다. 행운은때때로열어놓은줄몰랐던문으로몰래들어온다고했던가? 독자들이 다른사람을돕는고귀한일 에대해생각해볼수있는행운을거머쥐는기회가되리라생각한다. 리시드대표조규형 사람이발전하려면매일의노력도중요하지만, 이를한결같이할수있는원동력인 비전 이있어야한다. 단순반복적이고, 소모적인일을조금이라도덜하고, 더생산적이고재미있으며보람있는일을할수있어야오늘보다나은내일을맞이할수있다. 다소거창하지만, 이책은적어도그런생각이드는책이다. 일상에매몰되는것이아니라, 어떻게하면더쉽고빠르고편하게일할수있을지고민하게하는책이다. 허드슨은전세계적으로광범위하게사용되는지속적통합관리도구다. 빌드의악몽에서벗어나고자하는많은개발자의호응을얻고있으나, 국내개발자들에게는널리알려져있지않은편이다. 이책에서지은이는대형프로젝트경험을살려, 실전에서필요로하는사항들을알기쉽고, 명쾌하게알려주고있다. 특히더익숙한용어와한국 IT 실정에맞는내용으로구성되어있다. 도구는도구일뿐이다. 도구는주인을닮는다. 쓰는사람이어떻게현명하고똑똑하게잘쓰느냐에따라 120% 효율을낼수도있고, 50% 도안되거나곧갖다버려야하는쓰레기가될수도있다. 지은이가알려주는도구의쓰임새를어떻게현명하게활용할것인지곰곰이생각하면서읽어내려가면좋을것이다. 나를위한자동화 라는비전을갖고, 이를일상에서적용해볼수있는방법을차근차근알려주는이책이일신우일신하는개발자, 프로그래머로거듭나는데도움이되리라믿는다. 오라클컨설턴트임수경

14 국내 SI, 특히금융권차세대를경험하면서적은예산에단납기로프로그램을개발해야하는 IT 서비스업체는과거의소프트웨어개발방법론을그대로유지하고서는절대로사업을진행할수없는한계에부딪혔다. 이에실용주의개발방법론이대두되었으며현재대형 SI 회사에서도 개발 30% 이상이진행되었을때부터는통합테스트를진행하자 또는 주요프로세스중심으로프로그램을개발하게하고, 이를바탕으로시스템을통합하자 라는방법론이키워드가되는상황이다. 이때가장필요한개념이지속적인통합이지만아직까지는이에대한정확한지침이나방향성이부족한것이현실이다. 이러한시기에지속적통합이라는주제의이책이어쩌면한계에부딪힌소프트웨어개발프로젝트환경에한계를돌파할수있는작은계기가되었으면하는바람이다. LG CNS 모델링팀장송혜린 XP 방법론에는단순 (simplicity), 의사소통 (communication), 피드백 (feedback), 용기 (courage) 등네가지주요가치가있고, XP 실천 (practice) 중에는짝프로그래밍 (pair programming), 리팩터링 (refactoring), 테스트주도개발 (testdriven development), 코딩표준 (coding standard), 메타포 (metaphor) 등이있다. 그리고우리는소프트웨어를개발할때네가지 XP 실천을이미하나씩실천하고있다. 그렇지만아직은많이낯선실천이하나있는데바로지속적통합이다. 지속적통합이란반복적으로이뤄지는통합작업을자동화하고단순화해지속적으로수행함으로써, 소프트웨어품질을개선하고통합에따른위험요인을줄이자는것이다. 항상그렇듯이프로젝트에서개발자들은대부분로컬에서개발을완료한후에통합하고통합테스트를수행하게되는데, 이러한통합및통합테스트과정은참으로지루하고고통스러운과정이다. 개발자로컬환경에서는멀쩡하게잘돌아가던코드들이통합서버에올려실행하면예상치도못한에러가곳곳에서발생하고, 이미협의하여개발한모듈간인터페이스는언제부터변경되었는지연동이제대로되지않는경우도비일비재하다. 또, 시연이얼마남지도않았는데하나고치면다른데서문제가생기는경우도일상다반사다. 이렇게고통스러운통합과정을해결하기위해마틴파울

15 러가강조했던프랙티스가바로작은릴리스 (small release) 와지속적통합이다. 지속적통합은수년전부터이슈가되어왔고, 현재는상당한성숙단계에이르렀다고할수있다. 또, 손쉽게지속적통합을적용하기위한다양한 CI 서버가개발되었고, 알게모르게많은프로젝트에도입되어큰도움을주고있다. 내가일하는회사에서도 SVN을이용한형상관리, 메이븐 (Maven) 을이용한저장소및의존성관리, 허드슨을이용한빌드및배포자동화등을수행하고있다. 또, 허드슨을이용하여지속적통합작업을수행할때, 우리솔루션을허드슨플러그인으로연동하여소스코드의품질, 보안취약성등을관리하고있다. 어떻게보면, 이렇게 SVN, 메이븐, 허드슨을사용하여애플리케이션생산라인을관장하는노하우는몇몇개발자나업체들만사용해온것이다. 이러한상황에서애플리케이션개발전과정을관장할수있는책이나왔다는데놀라움을금할수가없다. 더군다나친구가그런책을써서더욱기쁘고자랑스럽다. 지은이의경험과고뇌가책상속에서사장되는얘기들이아니라, 마치드라마뿌리깊은나무에서세종대왕이훈민정음을전염병처럼백성들에게전파하고자했던그마음처럼, 같은이유로고민하는많은개발자와회사에전염병처럼전파되어아낌없이사용되기를바랄뿐이다. 유니버셜리얼타임대표이사, JCO 초대회장박용우

16 지은이의글 처음프로그래밍에입문했던시절과처음회사에들어가프로젝트에참여했던 일은평생잊을수없는기억입니다. 모든 처음 은가장순수하고호기심넘치 며열정과즐거움이있다는의미이기때문입니다. 하지만많은사람이프로그 래밍의즐거움에빠져일을시작하지만얼마지나지않아후회하기시작하고, 저도후회했던사람중한명입니다. 그리고 후회 라는말을하는데그리긴 시간이필요하지않았습니다. 일은즐겁지만처우와환경이열악하고, 열심히 일하고뛰어난지식을지니고있어도제대로인정받지못하는분위기속에시 간이가면갈수록즐거움보다는괴로움이더해지기때문입니다. 분명히프로그래밍이라는것이업무생산성을높이고, 사람이해야하는반 복작업을줄여주며, 기계의효율성도높여주는좋은작업임에는틀림없는데 그산업현장에뛰어든사람들에게는즐거움을주지못하는이유가무엇인지 고민하였습니다. 여러가지고민을거듭하던시절에제마음을파고든한마디 가있었습니다. 바로 사람을위한자동화 입니다. 관련내용을읽고찾아보고실행, 적용해보면서 사람을위한자동화 가아 니라 프로그래머를위한자동화 가더욱절실히필요함을느꼈습니다. 남을위 한자동화와기계를위한자동화, 조직을위한자동화가아닌바로 나 를위한 자동화가필요한시기입니다. 많은사람이 나 를위한자동화를시도하지만각자지식수준이다르고자동 화하는방법을모르며그일에시간을투자할만한여유가있지도않습니다. 그 러한이유로시도는하지만해결은못하고, 다시 후회 라는표현을해야하는 일이반복되는것같습니다. 나를위한자동화 를고민하고어떠한모습을담아야그것을성취할수있을 지고민하던시기에처음시도한것은빌드자동화였습니다. 화재보험사의차 세대프로젝트를진행하던당시에경력많고몸값비싼소프트웨어아키텍트 들의주된일이밤새서개발계에있는소프트웨어를테스트계와운영계로배

17 포하는작업이었습니다. 이클립스를실행하고소스코드를업데이트하는데만두시간이나걸렸고, 서버로이관해컴파일하는데만네시간이걸리는고단한작업이었습니다. 그리고중간에에러가하나라도나면이작업을다시처음부터시작해야했습니다. 통합개발도구와빌드스크립트를이용하였지만사람도힘들고조직도큰손해였습니다. 그리고그밤샘작업하던아키텍트중에내가포함되어있다는사실이더욱힘든일이었습니다. 이렇게고단한작업속에 나를위한자동화 를꿈꾸었고이때만난것이바로허드슨과앤트 (Ant), 메이븐 (Maven) 을조합한지속적통합활동이었습니다. 현재해당프로젝트는자동화된지속적통합활동을통해빌드와배포가안정화되어운영되고있습니다. 그회사에서근무하는많은개발자를빌드와배포악몽으로부터해방시켜준것입니다. 허드슨과첫만남이제게는큰성공이었고많은사람에게큰기쁨이되었습니다. 바로 나 를위한자동화에서시작된것이 우리를위한자동화 로발전한것입니다. 그렇다고허드슨이만능은아닙니다. 그리고빌드자동화를제공하는앤트와메이븐이삶의행복을주는핵심기술이되어주지도않습니다. 다만우리가 나 를위한자동화를꿈꾸고지속적으로시도하며반복적으로적용해나가는데큰도움이되는도구들이며그중핵심이바로허드슨입니다. 그리고그도움이되는도구들에대해공유하고같이생각해보려고이책을준비하였습니다. 책의구성 이책은크게다음과같이구성되어있습니다. 지속적통합의이해 허드슨을이해하려면지속적통합이추구하는내용을먼저이해할필요가있 습니다. 그러한지식없이허드슨을사용하는것은단순한기능을제공하는도 구를아무의미없이사용하는것뿐입니다. 이미지속적통합에익숙하다면이 내용은넘어가도좋습니다. 관련내용 : 1. 지속적통합이해

18 허드슨에대한이해지속적통합에대해이해한후지속적통합서버의역할과허드슨을설치하고환경설정하는부분을설명합니다. 이부분은본격적으로허드슨을이용해작업을정의하기전에준비해야할것들에대한내용입니다. 관련내용 : 2. 지속적통합서버, 3. 허드슨설치, 4. 환경설정 허드슨작업정의허드슨에서작업정의는지속적통합활동을위한첫단계입니다. 허드슨에는많은작업정의방법이제공되며그기능도매우뛰어납니다. 그러므로자신이원하는환경과목표에맞춰허드슨작업을정의하는방법을이해할필요가있습니다. 모든기능에대한설명이작업정의와관련있지만이중에서특히순수히작업정의에대한내용만을정리했습니다. 관련내용 : 5. 지속적통합작업정의, 12. 작업정의추가기능 도구연계지속적통합활동은여러도구를상호연계해서자동화된진행을추구합니다. 마치오케스트라지휘자역할과비슷합니다. 지휘자가직접악기를연주하지는않지만좋은소리를만들고갖가지상황에대처하기위해끊임없이지시하고관여하듯이허드슨은여러도구와유기적으로연동해절차를진행해나갑니다. 도구연계에대해가장많은부분을할애하였습니다. 관련내용 : 6. 형상관리연계, 7. 앤트를이용한빌드연계, 8. 메이븐을이용한빌드연계, 9. 테스트도구연계, 10. 품질검사도구연계, 11. 결과보고와피드백 기타내용 그외에보안과배포, 허드슨플러그인개발을통한확장기능에대해설명합니 다. 보안은특히중요한항목으로설명의맥락상책후반부에위치해있지만허 드슨을설치한이후가장먼저작업해야할항목이바로보안을적용하는것입 니다. 관련내용 : 13. 배포, 14. 보안, 15. 지속적통합도구확장

19 감사의글 마지막으로이책을쓰는시점에고마운일과즐거운일이많았습니다. IT 서비스환경에대해많이고민하던시절에만난현대해상화재보험차세대프로젝트는제자신이한단계도약한큰계기였습니다. 그리고그프로젝트에서얻은경험이바로이책을쓰는데기반이되었습니다. 그때같이일했던아키텍트들과프레임워크개발자들은평생스승으로기억될소중한분들입니다. 그리고현재진행하는차세대프로젝트도이전프로젝트에서경험한것을다시한번확인하고적용할수있는좋은기반입니다. 그리고같이일하는아키텍트들의또다른경험담이제게는더욱큰지식을쌓을수있는계기가되었습니다. 처음이책을준비하고기획하면서태블릿에서메모수준으로시작된내용을같이리뷰해주고의견준친구들인 29클럽멤버들에게고마움을표현하고싶습니다. 특히품질관리와관련해서조언해준이영석대표, 코드검사와커버리지에대해조언해준박용우대표, 그리고메모수준의기획서를들고출판사에갈수있도록도와준조규형대표에게고마움을표현합니다. 출간을허락해주신인사이트한기성사장님과편집자들께도감사합니다. 아무리좋은원고라도서랍속에서사장되면빛을발할수없는종이에불과할텐데출판을통해사람들과공유하고이야기할수있는계기를마련해주셨습니다. 그리고무엇보다주변에서많은도움을준가족을빼놓을수없습니다. 책을쓴다는것은즐거우면서도극도로민감해지는작업이라가족의도움없이는불가능했습니다. 항상기도로후원해주시는부모님께감사드리고혼자만의좋은집필공간을마련해주신장인, 장모님의후원과내짜증과민감함을다받아주고참아준사랑하는두딸해라, 해윤과사랑하는아내애리에게고마움을표합니다.

20 01 지속적통합이해 지속적통합 (Continuous Integration) 이라는용어를대다수소프트웨어엔지니어들이익숙하게받아들이지못하고있고, 알더라도이것을어떻게적용해성공시킬수있을지의문을제기하는사람이많다. 그만큼지속적통합이생각보다업계에많이알려져있지못하고, 적용하기에는아직은다소고민이되는부분이기때문이다. 그래도최근들어우리가아는것이상으로지속적통합에대한관심과이를프로젝트에도입하려는노력이서서히나타나고있으며알게모르게우리주변에이미도입되어움직이고있는경우가많다. 우리곁에지속적통합이다가온것이다. 지속적통합이소리소문없이다가오고있는이유는일반사용자를위한것이아닌개발자자신을위한자동화방법론이며기계를위한자동화가아닌사람을위한자동화라서개발자스스로깨닫지못하는사이에이미내부적으로적용되어실행되기때문이다. 지속적통합이개발자동화를추구하기때문에주목을받고있기는하지만, 반대로자동화라는말에굉장히부정적인반응을보이는사람이많다보니지속적통합도입을반대하고해당방법론을이해하지못하는경우도많다. 지금부터지속적통합이라는개념이무엇인지살펴보고이를도입함으로써얻을수있는장점과반대로이를도입할때추가로고민하고고려할것이무엇인지알아보겠다.

21 1.1 역할별고민거리 정보통신산업그중에서도소프트웨어산업의발전은기존에사람이수작업으 로처리하던일을자동화함으로써생산성을높였으며예상못할정도로다양 하게삶의질을향상시켰다. 이렇게소프트웨어산업이다른어떤산업보다빠 르게발전할수있었던것은소프트웨어개발자들의숨은노력의결과임이틀 림없는사실이다. 독자들이지금이글을읽고있는시간에도많은개발자가좋 은소프트웨어를만들기위해불철주야노력하고있을것이다. 그런데개발자들의노력이사람들의삶의질을높여놨다면이와는정반대로 시간이갈수록개발자들의만족도는점점떨어지고있다. 특히대한민국소프 트웨어개발자중본인업종을자랑스럽게여기거나자기일을가업으로자식 들에게물려주고싶다고생각하는경우를거의본적이없다. 이러한문제가발 생한이유는바로남을위한자동화와개선을생각했지, 정작자기일에대한 자동화와개선은등한시했기때문이다. 그뿐아니라관리자, 기획자, 품질관리자등의삶의만족도역시개발자들과 마찬가지로높지않다. 소프트웨어산업의발전과대중화로고객의눈높이는 상당히올라가있으며원하는기능과품질을더빠르게만족시켜주지못하면 해당소프트웨어는도태되거나간신히명맥만을유지하는상황이발생해서이 로인한정신적압박감이굉장히크기때문이다. 그렇다면소프트웨어산업에종사하는사람들이어떻게하면좀더행복해지 고삶의질을높일수있을까? 이문제는각조직의구성원과소프트웨어산업 을바라보는사람들의입장에따라차이가있을것이다. 먼저소프트웨어개발프로젝트조직을한번생각해보자. 현대프로젝트의 추세는분업화되고전문화되면서아무리조그만프로젝트라도다양한분야의 전문인력이모여일한다. 대표적인조직분류로보면프로젝트를관리하는프 로젝트관리자 (PM), PM 을도와프로젝트전반을관리하는프로젝트관리조직 (PMO), 구조를잡아가는아키텍트, 소프트웨어설계자, 설계를구현하는개발자와개발리더, 그리고소프트웨어의모양을아름답게하고사람친화적인모 습으로변화시켜주는디자이너등이대표적이다. 이사람들의역할과함께각 자소프트웨어분야에서고민하는것을정리하면표 1.1 과같다.

22 역할프로젝트관리자 (PM) 프로젝트관리조직 (PMO) 고민사항 하루에도수십번프로젝트상황에대해보고를받는다. 많은정보취득을위해노력해도프로젝트진행상황을한눈에파악하기어렵다. 정확한상황파악이어렵다보니프로젝트조직원들이야근을해야만일이잘되는것으로생각하는경우가많다. 프로젝트를성공시키기위해프로젝트효율성을높이고진행상태를정확히확인하고싶지만실무조직에서정확한상황을 PMO에공유하기를꺼린다. 프로젝트관리자가올바르게판단할수있도록정확한진행상태를보고해야하나쉽지않다. 아키텍트 소프트웨어, 하드웨어, 데이터베이스구조와각각의연관관계에대해설계한아키텍처가올바른지검증하고싶어하지만정확한검증이어렵다. 아키텍처가잘못되었다는것을확인하는데시간이너무오래걸린다. 아키텍처의문제점을발견했더라도이것을바로잡는것이상황상불가능한경우가있으며, 그모든책임을아키텍트가감당해야하는것에대해심리적압박감이있다. 설계자 소프트웨어설계가잘못된부분이있는지확인하고싶다. 개발자로부터설계상문제점에대해빠르게피드백을받고싶다. 개발리더 개발진척사항을정확하게확인하고싶다. 개발자들에게올바른개발방향을제시하고잘못된부분을빠르게찾아해결하고싶다. 개발자 모든개발과정이어렵고복잡하다. 설계자와개발리더, 품질관리자등과함께지속적으로의사소통을하며내용을확인해가고싶으나그러한환경이잘마련되어있지않다. 지적재산권, 보안등의강화로개발절차와환경통제가점점더심해지고, 이를처리하기위해반복적인작업을계속해야만한다. 내가개발하는컴퓨터에서는잘동작하는데다른사람의컴퓨터로배포만하면동작하지않는다. 품질관리자 개발자가개발한소프트웨어를빠르게인수받아서테스트할수있기를바란다. 표 1.1 역할별고민사항 표 1.1에서설명한것외에도각역할별로더많은고민거리가있다. 그리고문제사항이지속적으로발생하여괴롭힌다. 이모든것이결국에는소프트웨어생산성을떨어지게하고떨어진생산성으로인해소프트웨어산업종사자들은더욱힘든상황을맞이하며이는또다시소프트웨어생산성을떨어트리는악순환을일으키고만다.

23 1.2 지속적통합이란? 그림 1.1은소프트웨어개발프로젝트에서대부분사용하는개발생명주기다. 물론요구사항분석과설계등의작업, 마무리, 유지보수가있지만순수하게개발이라는측면에서는그림에나온여섯가지단계와크게다르지는않을것이다. 코드 배포 컴파일 검사 패키징 테스트 그림 1.1 역할별고민사항 여기서중요하게생각할것은이여섯개단계가계속반복된다는것이다. 큰의미에서는처음부터끝까지한번의작업으로모두완료될수있지만, 소프트웨어업그레이드나버그수정을위해단계를다시시작해야하는경우가계속생긴다. 그리고한소프트웨어내에있는각라이브러리나공통 API의경우는소프트웨어개발전체과정중에서반복적인개발주기가있으므로생명주기는반복적으로발생할수밖에없다. 이러한반복작업속에사람들은몇가지고민을하기시작했으며그내용은다음과같다. 6단계가얼마없는것같으나각단계별내부절차나처리해야할작업이생 각보다많고복잡하다. 단계별처리가복잡하고시간이많이소요되는관계로전체절차를자주반 복하기를꺼린다.

24 소프트웨어를개발하는데소요하는시간보다각절차를진행하는행정적절 차를처리하는데시간이더소모되는경우가있다. 그래서이러한문제를해결하고자다음과같이개발환경에대해새로운시 도를하기시작하였다. 소스코딩의생산성을높이려고통합개발환경을도입하였다. 소프트웨어개발생명주기에따른절차를자동화하기위해다양한빌드, 배 포도구등이등장하였고이를적극활용하기시작하였다. 워크플로나 BPM 같은프로세스관리 통합도구를이용해개발프로세스자 동화를시도하였다. 개발라이브러리에대한연관관계를개발자들이직접하지않고도구로자 동화한다. 이처럼개발자를위한자동화를시도하기시작하였고이러한개발자동화방법이소프트웨어생산성을높일뿐아니라소프트웨어결함을줄이는데큰도움이되었다. 그리고이전에는시간과절차상할수없던여러활동을자동화프로세스에포함시킬수있게되었다. 그뿐아니라개발과정을자동화함으로써개발생명주기에대한절차를더많이반복할수있게되었고, 그결과로소프트웨어결함이나문제점을더빠르게찾아낼수있는이점도얻게되었다. 이처럼빈번하게반복적으로개발주기를진행하는것을지속적통합 1 이라한다. 여기서주목할것은바로지속적이라는점이다. 사전적의미의 지속적 은어떠한상태가오랫동안계속유지되는것이지만지속적통합에서 지속적 은어떤행동을수시로반복수행한다는의미가더강하다. 실제로지속적통합활동에서강조하는것역시소프트웨어에대한통합을반복적으로, 그리고수시로수행하고테스트하라는것이다. 1 대략적인설명을통해눈치챘겠지만마틴파울러가지속적통합이라는용어를만들고이에대한내용을세상에알리기전부터이러한개발방법은이미산업에적용되고있었고많은사람이예전부터고민하던내용이다. 마틴파울러의글은 에서볼수있다.

25 그렇다면개발이라는측면에서지속적통합을하지않는소프트웨어프로젝 트에서는어떤문제점들이나타날까? 그내용을정리하면다음과같다. 전체통합시컴파일에러가발생할가능성이높다. 특정분야별테스트시문제가없었으나통합하여테스트시에러가발생한다. 개발자 PC에서는정상작동하였으나서버에배포하고난후에는동작하지 않는다. 특정한환경에서는정상동작하지만다른환경에서는동작하지않는다. 공통라이브러리나상호연동되는소스코드변경으로전체소프트웨어품질 에큰영향을미친다. 잘동작하던소프트웨어가갑자기성능문제가발생한다. 소프트웨어를업그레이드했더니잘되던기능에서문제가발생한다. 물론이모든내용이통합을자주하지않아발생하는문제라고 100% 단정할 수없지만최소한지속적으로통합한다면쉽게확인할수있는내용이라는점 이다. 1.3 지속적통합도구도입 지속적통합은사람이아닌자동화된프로세스를통해이루어질때비로소그 장점이있다. 자동화된도구가아니라사람이수동으로하는지속적통합을정 의한다면처음에는잘할수있으나, 시간이흐를수록작업을실행하지못하는 경우가계속생기고어느순간에는거의돌아가지않는상황이온다. 또아무리 수동으로통합작업을하더라도도구의도움없이모든복잡한절차를하나하 나개발자가스스로진행해나간다는것도여간성가신일이아닐수없다. 결 국지속적통합도구도입은바로개발자스스로작업을자동화하고개발자의 업무프로세스를개선하는데반드시필요한내용이다. 지속적통합도구도입이필요한또다른이유한가지는소프트웨어개발과 기업의글로벌화에있다. 이미많은기업이소프트웨어개발에서글로벌화를 진행하였거나진행하고있다. 예를들어낮에는미국에서개발이이루어지고

26 밤에는 12시간후에출근하는인도에서미국에서개발한내용을바탕으로개발작업을진행하는경우다. 이는한소프트웨어를 24시간개발할수있는환경이다. 개념은약간다르지만글로벌화의또다른예로공통모듈은한국에서개발하고, 공통모듈을응용한애플리케이션은중국에서개발하는경우도있다. 그리고이렇게개발한최종애플리케이션을유럽에서테스트하고최종적으로대만에서패키징해하드웨어에탑재하는경우도있다. 이렇듯한기업내에서도여러지역과국가를넘나들며개발을진행하는형태가늘어날수록수작업에의한통합작업은불가능해지며지속적통합을통한자동화된반복적인통합수요가늘어날수밖에없다. 현재시장에나와있는지속적통합서버대부분이원격지에대한지속적통합기능까지포함하고있다. 앞으로도소프트웨어개발이다양화되면될수록지속적통합서버도입은가속화될것이다. 1.4 형상관리 최근소프트웨어개발프로젝트에서형상관리서버없이개발하는곳은거의없을것이다. 프로젝트규모와관계없이이제형상관리서버도입은선택이아닌필수사항이다. 그뿐아니라개발자가한명밖에없는개인프로젝트에서도형상관리서버를도입하여사용한다. 편리하기때문이다. 지속적통합에서형상관리서버의역할은단순히소스코드버전을관리하고히스토리를확인할수있는기능을넘어서여러개발자가만들어낸각종산출물을한곳에모아놓는통합저장소개념이더강하다. 여기서산출물은단순히프로그래밍언어의소스코드만을의미하지않는다. 소스코드외에소스코드를생성하는개발도구, 각종설계서와 UML 다이어그램, 소프트웨어실행환경도형상관리가필요한대표적항목이다. 어떤것을형상관리에보관할것인가? 프로젝트에서형상관리서버를도입할때우선고려해야할사항은어떠한것 을형상항목으로선정해보관하고관리할것인지다. 대다수프로젝트나기업 에서는생산해낸소스코드에형상항목을국한하는경향이있지만이것은굉

27 장히위험한생각이다. 환경변화에따라소스코드뿐아니라개발환경과설계환경도바뀌기때문이다. 최악의경우는바뀐개발환경에서기존소스코드나라이브러리를인식하지못하거나실행하지못할수도있다. 그러므로소스코드뿐아니라이와관련된각종개발도구와개발환경도형상관리서버에같이보관할필요성이있다. 형상관리에대한인식변화형상관리가보편화되고널리쓰이지만프로젝트내에서사용하는방식을보면잘못활용되는경우가많다. 그렇게잘못쓰이는상황이생기는것은형상관리활동에대해정확한규정을마련하지않았기때문이다. 무엇보다먼저형상관리서버를도입하고활용할때는형상관리에대한사내규정이나프로젝트내표준규정을마련하는게중요하다. 규정을마련할때는다음항목을참고하자. 개인이만들어내는소스코드는결코개인사유자산이아님을알아야한다. 모든소스코드는조직소유이며그러한이유로다른사람과공유하는것을 기본목적으로해야한다. 일단형상관리에소스코드를커밋한다는것은해당소스코드에결함이없 고실행이가능함을의미해야한다. 형상관리에존재하는소스코드는여러 형태로재사용되거나공유될소지가많으므로잘못된소스코드를커밋한다 는것은결국다른소스코드에영향을주고전체적으로소프트웨어가동작 하지않는결과가나온다. 형상관리서버는개인자료백업서버가아니다. 개인자료백업은백업서 버나파일서버를이용해야하며형상관리서버는백업이아닌다른사람과 자료를공유하는것이목적이다. 형상관리서버에있는소스코드는가급적모든구성원이공유할수있도록 하는것이좋다. 보안이나권한, 기업내지적재산권등의이유로공유가제 약되는경우가많다. 그러한제약을최소화하고가능한범위에서모든구성 원이형상관리에존재하는형상항목을공유하는것이생산성향상측면에 서좋다.

28 이네가지주제를가지고형상관리에대한표준규정을마련하는것이중요하다. 이러한규정을마련하지않거나단순히형상관리서버를소스코드를백업하는정도의수단으로사용하는것은올바른형상관리방법이라할수없다. 지속적통합에서형상관리의중요성은계속해서강조해야하는부분이다. 특히형상관리의잘못된사용은컴파일에러나테스트에러를유발할소지가높고이는지속적통합활동의큰걸림돌이된다. 지속적통합활동이이러한문제점을빨리파악하는것이목적이지만사용자의인식이변하지않은상태에서오류가너무자주나오면오히려역효과만불러일으킬수있다. 1.5 빌드 지속적통합에서빌드란소프트웨어를컴파일한다는의미를넘어서개발자가형상관리에커밋한소스코드를가장먼저테스트하는품질검사활동이다. 컴파일에실패했다는것은소스코드에문제가있다는것을의미하며, 또현존하는컴파일러는대부분어떤소스코드의무엇때문에컴파일이실패했다는것을친절하게알려주기때문이다. 그러므로지속적통합서버는형상관리에새로운소스코드가커밋되거나기존소스코드가변경되었을때즉시빌드과정을거쳐서소스코드가정상으로컴파일되는지확인해볼필요가있다. 그리고문제가발생했을때는즉시해당개발자에게컴파일실패를피드백해야한다. 내가금융차세대프로젝트에서운영시스템에대한빌드절차및빌드스크립트를개발할때가장빈번하게접한질문은자기개발 PC에서는컴파일에러가나지않았는데서버에서는컴파일에러가난다는내용이었다. 이러한문제가발생하는이유는다음과같다. 통합개발도구의자동빌드기능을꺼놓고사용하는경우가많다. 자동빌드 기능을이용하면개발도구가소스코드를계속컴파일해서개발도구가느 려진다. 그러한이유로자동빌드를하지않는것을마치개발 PC 에서빌드 에계속성공하고있다고착각하는경우가있다. 프로젝트표준으로만든빌드스크립트와통합개발환경설정을자기방식 으로변경해사용하는경우다. 예를들어자신만이사용하는라이브러리를

29 추가해놓고형상관리에는라이브러리를커밋하지않거나프로젝트표준이 아닌다른라이브러리를사용하는경우다. 정상소스코드를전부커밋하지않는경우다. 로컬개발 PC에서동작하는 소스코드를전부형상관리에커밋하지않고일부소스코드만커밋하면서 버에서는당연히컴파일에러가날수밖에없다. 한소스코드에여러명이동시에개발한다면오류에대한책임을서로미루 게되며이는결국영원히해결되지않는컴파일에러상황에도달할수있다. 아주상식적인내용인데앞의네가지경우때문에프로젝트에서는빌드에러가자주발생한다. 로컬개발 PC에서컴파일에러가나는것은개인문제일수있지만서버에서컴파일에러가나면해당프로젝트와연관된모든사람이작업을진행하지못하게되는큰원인이된다. 그러므로지속적통합서버에서이루어지는빌드과정에서컴파일오류발생을최소화하는것은매우중요한활동이다. 지속적통합서버는대부분자체적인빌드기능이없다. 대신에빌드도구와연계해해당빌드도구를실행하고그결과를확인하는기능이있다. 그러므로좋은지속적통합서버는현존하는대부분의빌드도구와연동을제공해야한다. 특정한플랫폼과언어를위한빌드도구와연동만을제공한다면해당지속적통합서버도입은다시한번생각해봐야한다. 일반적으로현재많이사용하는빌드도구는자바진영에서는앤트와메이븐을들수있으며닷넷을위한낸트 (Nant), msbuild 등이있다. 그리고과거 C와 C++ 언어를위한 make도대표적인빌드도구다. 이책에서는이모든빌드도구를설명하지는않을것이다. 이중에서앤트와메이븐을빌드도구로연동하는방법을자세히알아보겠다. 1.6 테스트 국내프로젝트환경에서테스트는굉장히큰모순이있다. 프로젝트시작단계 에서는테스트를강조하고테스트를완료해야만프로젝트를오픈할수있다고 한다. 그리고그것을반영하듯프로젝트일정에설계와개발기간과마찬가지 로테스트기간역시길게잘잡혀있다. 그런데여기서부터모순이생기기시

30 작한다. 테스트일정은대부분프로젝트후반부에집중하도록잡혀있다. 개발 이완료되는시점에단위테스트를수행하고단위테스트를완료한이후에통 합테스트를수행하고프로젝트를오픈하는형태다. 일정만으로보면테스트 는가장뒤로밀린다. 개발기간에수시로소프트웨어를테스트해야하는데도테스트가뒤로밀려 있고중요성을높이인식하지않는것은문제가있다. 이러한프로젝트일정때 문에개발자들은대부분개발기간에테스트보다는소스코드작성에전념한 다. 그리고관리자도개발자가소스코드를얼마나작성했는지만관리하지, 해 당소스코드가제대로테스트됐는지관리하지않는다. 결국본격적인단위테 스트가시작되면서기존에작성된많은코드가재작성되며심지어완전히새 로작성되는경우도있다. 또단위테스트와통합테스트를거치면서심각한소 스변경사항이발생하게된다. 또하나모순점은테스트기간을마치나중에개발기간을더확보할수있는 여유일정이라고생각하는경향이있다는것이다. 예를들어개발기간이 6 개 월이고테스트기간이 4 개월잡혀있다면, 많은사람이테스트기간중실제테 스트는두달이면되고나머지두달은개발기간의연장이라고생각한다. 그래 서프로젝트개발일정이지연되면많은관리자와개발자가테스트기간을넉 넉히잡았으니그기간에테스트를잠시하지않고개발을하면충분히진행할 수있다고생각한다. 앞의두가지경우를살펴보면서테스트의중요도가프로젝트에서뒤로얼마 나밀리는지알았을것이다. 이예가과거개발프로젝트에서나나타나는현상 은아니다. 오늘날진행되는많은프로젝트에서도이와같은인식은변함이없 다. 테스트를뒤로미루고테스트기간은개발기간의완충역할을하는것이라 는사고가결국소프트웨어품질을떨어트리고결함을양산하는원인중하나 로지목된다. 지속적통합에서주장하는테스트에대한방향은일단개발생명주기를더 짧고반복적으로가져가자는것이다. 그리고개발주기내에다양한테스트기 법을적용해테스트를자동화하고반복적으로테스트를수행하자는내용을담 고있다. 그뿐아니라소스코드를개발하기전에테스트용코드를먼저개발하 는방법도제시한다. 하지만모든새로운개발방법론이그렇듯이방법도찬성

31 측과반대측으로나뉜다. 찬성측주장은잦은테스트는결국소프트웨어품질 을높인다는것이다. 그에반해반대측은주로다음과같은주장을펼친다. 비즈니스를개발하기에도시간이벅찬데거기에다테스팅을위한코드를작 성한다는것은일정상무리가있다. 테스트를하려면테스트용데이터가필요한데해당데이터를관리하고, 테스 트도구와연계하기가불가능하다. 테스트를사람의손과눈이아닌코드를이용해수행한다는것을신뢰하지 못하겠다. 테스트는품질관리조직이나테스터가하는것이지, 개발자가테스트까지 관여해야할이유가없다. 그런데이러한반대논리가실제프로젝트에서는많이인정을받고있으며, 프로젝트에테스트주도개발을도입하자고주장하는사람을프로젝트경험이 없고현실을잘모르며이론만아는사람으로매도하기도한다. 그래서대다수 프로젝트에서테스트방법론을도입할때가장큰걸림돌은어떻게하면테스 트절차와항목들을도출하고어떻게잘관리해나갈지고민하는것이아니라 기존 IT 관리자와경험자들을어떻게설득할지에대한것이다. 테스트주도개발은장점이많다. 그리고이책의주제인지속적통합도결 국테스트주도개발을중요한통합항목으로삼고있다. 프로젝트에서개발자 들이테스트케이스를좀더쉽게작성할수있는방법을고민하면서여러가지 시도를한적이있다. 그리고실제로 JUnit 을직접쓰는것보다좀더쉽게테스 트케이스를만들고데이터를수집하는방법을적용한적이있다. 그리고이를 통해개발팀에테스트케이스작성을강조하고테스트케이스작성을중요한 개발항목으로만들었다. 하지만여기서문제가생겼다. 개발자들은대부분소스코드작성에여전히 압박을받고있었고, 관리자는테스트케이스작성을중요한개발활동으로여 기지않았다. 그래서많은개발자가테스트케이스를엉터리로작성하였으며 자동화도구로실행하면모든테스트케이스가성공으로나오고실패한케이 스가거의나오지않았다. 왜그런완벽한테스트가이루어졌는지소스코드를

32 확인해보니많은테스트케이스가 try catch 문장으로예외나에러를잡아서실패로처리하는것이아니라무조건성공했다고결과를리턴하도록만든것이었다. 이렇게테스트케이스의필요성을느끼지못하는조직에서는테스트케이스자체에대한테스트가필요할정도다. 또하나문제는테스트케이스가많아지면많아질수록자동화된테스트를수행할때소요되는시간이점점더늘어간다는점이다. 시간이소요된다는것은달리말하면개발자입장에서는소스코드를작성할시간이줄어든다는것을의미한다. 결국개발자스스로테스트케이스를통해테스트를반복적으로하는과정을생략하기시작한다. 그리고이렇게생략하면서결국새로생기거나변경되는코드에대한테스트케이스를작성하지않거나관리하지않는상황이생기고테스트케이스작성활동이무의미해져버린다. 마지막으로관리자입장에서는개발자들이시간을들여테스트를수행하고테스트케이스를잘관리하고있으므로테스터나품질관리자인건비절감으로이어지기를기대하는점이다. 테스트주도개발의기본사상은테스트를중요시하자는것이지, 인건비를절감하자는것이아니다. 물론테스트주도개발을통해소프트웨어결함을줄이고약속된시간에완성된소프트웨어나서비스를제공한다면궁극적으로는인력과비용절감이라는결과를맞이할수있지만인건비를절약하려고테스트주도개발을도입한다는것은잘못된생각이다. 모든결함의시작은무엇이잘될것이라는가정과그가정이항상올바르게적용될것이라는맹목적인확신에서비롯된다. 테스트주도개발이만능은절대될수없다. 다만테스트주도개발을적용함으로얻을수있는이점은프로젝트구성원이테스트의중요성을느낄수있는계기가된다는것과실제로잘관리되는테스트케이스덕에문제사항을쉽고빠르게발견할가능성이높아진다는점이다. 1.7 코드품질검사 앞서테스트를이야기했는데또검사라는내용이나와서그두개의차이점에 대해의문이생길수도있다. 두가지는거의같은의미로사용하기도하며분 명한역할을나눠구분하기도한다. 일단테스트와검사의가장큰차이점은테

33 스트는주로소프트웨어동작과관련된부분을살펴보지만검사는소프트웨 어구조가올바르게작성되었는지살펴본다. 예를들어우리가시험을치를때 OMR 카드에답을적는다고하자. 이때검사를한다는의미는다음과같다. OMR 카드수험번호항목에작성하였나? 성명란에이름을작성하였나? 컴퓨터사인펜으로기입하였나? 혹시 OMR 리더기가인식할수없는필기도 구로작성하지는않았나? OMR 카드에이물질이묻지는않았나? 이에비해테스트를한다는의미는다음과같다. 작성한수험번호가올바른값인가? 본인의수험번호가맞는가? 작성한성명이자기이름이맞는가? 작성한답이본인이풀어낸답을그대로옮겨놓은것인가? 두예를통해확실히알수있는것은테스트는주로그행동이나결과가올 바른것인지판단하는반면, 검사는구조적인면을판단한다는점이다. 그래서 테스트와검사는구분되는개발절차다. 대표적인예로아무리소스코드가구 조적으로문제가있고엉망이라도테스트케이스는입력된값에대해원하는 값이출력된다면항상통과될것이다. 그렇다면데이터가올바르면됐지, 구조까지확인해야하는이유는무엇일 까? 그이유는소프트웨어는구조가유연하고사람의생각과논리를담고있어 서결함이발생할수있는가능성을많이내포하고있고, 그결함이구조적인 문제로인한경우가상당히많기때문이다. 사람의생각자체가결함이있을수 있고어떤동일한일에대해서로다른논리를펼치는것과마찬가지로소프트 웨어를개발하는것은사람의다양성이반영되기때문이다. 또하드웨어적제 조과정에비해구현해야할논리적판단이많고, 그논리적판단을구현하는 구조적인방법이너무나다양해구조차이로인한결함이발생할가능성이더 욱높아진다.

34 이렇듯결함발생가능성이높은소프트웨어의품질을높이는문제는의외 로자동차나반도체같은하드웨어를생산하는공정과비슷한방식으로해결 할수있다. 하드웨어생산공정은작업효율성과자동화를위해매우세분화되 어있으며, 각세분화단계에따라결함을검사하고결함이발견되었을때결함 이발생한이유를분석한후해당문제점을제거하는일련의과정을반복적으 로진행한다. 그리고이러한결함에대한검사와조치에대해서는어느정도일 정한패턴이존재하므로해당패턴에따라지속적으로자동화된검사를각과 정마다진행하게된다. 바로이러한하드웨어의결함조치기법을소프트웨어 에적용하는것이지속적통합에서얘기하는결함검사기법이다. 하지만이러한세분화된공정을마련하고각공정별결함을찾아내는방식에 많은개발자와관리자가거부감을느끼는게일반적이다. 이런사람들의공통 적인생각또는의견은이렇게잦은검사와결과에대한조치는소프트웨어생 산성을저해하며, 개발자가소스코드작성외의부수적인일에매달림으로써 집중력이떨어진다는것이다. 그리고소스코드에대한구조를너무제약하면 개발자의자유로운창의력을해치게되고, 결국창의적이고생산적인소프트 웨어를개발하는데방해가된다는것이다. 그래서구조에대한것은아키텍트 가알아서하고개발은그냥개발자편한대로하는것이좋은접근방식이라고 주장한다. 불행히도소프트웨어의규약과구조를무시하고개발하면단위테스트때는 괜찮지만통합테스트나성능테스트시에문제가발생한다. 혼자서는잘동작 하지만다른사람이작성한부분과상호연동해동작할때는구조적인규칙을 따르지않아서문제가생기고이는통합테스트실패로나타난다. 또개인이한 두번테스트할때는성능문제가발생하지않지만, 부하발생기로대량의성능 테스트를수행하면구조를따르지않았을경우성능문제가발생한다. 대표적 인예가스레드사용규칙을무시하였거나객체생성과종료, 데이터베이스연 결과해제등에대한규칙을위반해생기는성능문제다. 물론가장좋고이상적인방법은결함자체가소프트웨어에침투할수있는 경로를차단하는것이지만, 인간이하는작업에서결함을없앨수없는것이현 실이므로유입된결함을미리발견해빨리제거하는프로세스를마련하는것 이현재로서는최선의선택이다.

35 그렇다면이러한결함검사를개발자들, 그리고심지어관리자조차왜귀찮고불필요한작업이라고생각할까? 바로실제로검사를하는방법이자동화되어있지않고대부분사람이검사하기때문에발생한다. 예를들어아키텍트가소스코드코딩규칙을정했는데그규칙대로제대로소스코드가작성되었는지확인하려고모든개발자와관리자가소스코드를하나하나다검토해야한다면효율성이떨어질수밖에없다. 그뿐아니라진척에대한압박을받는개발자들의경우형식적으로확인한후문제가있어도그냥문제가없다고보고하고넘어가는것이대부분이다. 이러한문제점을해결하기위해결함검사에대한자동화를추구하는것이중요하다. 소스코드가형상관리서버로커밋되면해당소스코드들에대한구조적검사를지속적통합도구를통해수행하고, 문제점을해당개발자에게피드백한다면모든개발자와관리자는사람이검사하는불편함을해결할수있게된다. 그러므로생산성을유지한상태에서결함검사를수행할수있게된다. 일반적으로국내결함검사에서자주사용되는내용은다음과같다. 명명규칙준수검사 아키텍처가이드준수검사 SQL 작성규칙준수검사 보안규칙준수검사 프로젝트규모에따라네가지를모두검사할수도, 한가지도검사하지않을수도있다. 검사를하려면각각에해당하는규칙과가이드가프로젝트표준으로정의되어있어야하지만, 매우작은규모의프로젝트에는그러한일련의과정을거치는것이무척큰부담이될수도있으며그러한규칙을정할만한아키텍트가없을수도있기때문이다. 1.8 배포 배포라는용어의기술적범위는광범위하다. 과거에는서비스가이루어지는서 버나클라이언트로소프트웨어를전달하는것을의미하였으나현재는컴파일과

36 패키징을하고자동화된테스트와검사를수행하며이모든것을통과하면최종사용자에게전달하는포괄적인내용이다. 내용이포괄적이고사용하는기술이다양하며전달해야하는대상이광범위하고, 배포해야하는요건이날이갈수록엄격해지고있다. 결국이러한모든환경과요건을만족시키기란매우어려운일이다. 이책에서는웹기반애플리케이션개발배포에대해알아보겠다. 웹서버 : 정적자원웹서버는클라이언트에서들어오는요청을애플리케이션서버에전달하는역할을수행하며이와함께정적자원, 즉 HTML, 이미지, CSS, 자바스크립트등사용자요청에따라변경되지않고고정되어있는데이터를서비스한다. 그러므로애플리케이션을배포할때정적인자원은웹서버에배포한다. 애플리케이션서버 : 동적자원애플리케이션서버는사용자요청에대해동적으로데이터를생성해처리하는역할을수행한다. 주로 JSP, 자바애플리케이션, PHP, ASP 등이여기에속하며동적자원은자원을실행할수있는엔진이나컨테이너에배포한다. 그리고컨테이너와채용기술에따라배포하는방법은매우다양하고복잡하다. 예를들어 J2EE 환경에서많이사용하는웹로직 (WebLogic) 의배포경우수를조합하면 64종이넘는다. 동적자원배포문제는굉장히어렵고다양한경우를많이겪게되며배포의핵심에속한다. 배치서버 : 대량처리자원 배치 (batch) 서버는소규모프로젝트보다는주로중대형프로젝트에서많이보 게된다. 예를들어월말에통계데이터를생성하거나대량의데이터를야간에 일괄처리하는데많이사용한다. 주로대량처리를위한데이터파일들과이러 한파일을처리할수있는애플리케이션으로구성되어있다. 배치서버에자원 을배포하는것은애플리케이션서버에배포하는것에비해비교적요건이복 잡하지는않지만, 배치는특성상한번실행되면장기간동작하는관계로기존 에동작하는애플리케이션에영향을주지않고배포를잘해야하는숙제가생 긴다. 그뿐아니라온라인애플리케이션과는다르게일단실행하고나면에러

37 가발생하더라도이를중지하고다시실행하는데굉장히큰부담이생길수밖 에없다. 그러므로조그만실수도매우큰영향을미칠수있다. 데이터베이스서버 : 데이터자원데이터베이스를배포항목으로여기는곳은많지않다. 많은프로젝트에서애플리케이션에대해서는로컬환경, 개발환경, 검증환경, 운영환경등을구분해사용하지만데이터베이스는상당히많은영역에서공유하고있으며개발자에의해자유롭게접근하고사용할수있는영역이아니기때문이다. 하지만데이터베이스에대한불일치로인해애플리케이션장애가생기는경우가상당히많다. 특히데이터베이스테이블스키마와데이터구조가자주바뀌는프로젝트초창기에는잘돌던프로그램이데이터베이스변경으로에러가나거나예측하지못한이상동작을하기쉽기때문이다. 그러므로애플리케이션배포시에는데이터베이스자원의적용상태를고려해작업해야한다. 특히신규로데이터가생성되는것이아니라기존에운영되는데이터를마이그레이션해사용하는경우는더욱심한변경과마이그레이션절차에따른불일치를겪을가능성이높다. 앞서설명한네가지모든자원에대해완벽한배포알고리즘을작성하는것은매우어려운작업이다. 또무수히많은경우수가생기며예측못한돌발상황이많이발생한다. 결국이러한배포의어려움때문에자동화를포기하고수 정적자원 동적자원대량처리자원데이터자원 WAS 서버 #1 웹서버 #1 WAS 서버 #2 DB 서버 #1 배치서버 #1 웹서버 #2 WAS 서버 #3 DB 서버 #2 WAS 서버 #4 그림 1.2 시스템및자원구성

38 작업으로배포절차를마련하는경우가많다. 아니면이클립스나넷빈즈같은통합개발환경의편리함에빠져자동배포가아닌개발도구를이용한수동배포를선호하는경우도생긴다. 하지만수동배포방법은지속적통합에서가장경계해야하는방식이다. 자동화되지않은배포방식은반복적으로수행되지않음을의미하며, 이는결국잊혀지고무시되며실수할수있는경우를스스로만들어내는것이다. 편리한수동배포방식을적용해서자동화한것과비슷한효과를얻고완벽한테스트와품질검사, 보안검사를완료했더라도실제서비스가이루어지는서버로배포작업을진행하는중에에러가많은부분에서발생할수있다. 예를들어애플리케이션서버를모두네대운영중이라면네대모두에프로그램을배포해야하는데그중한대에배포하지않는실수를범하기쉽고, 웹애플리케이션서버를재시작하다가그중한대에서발생한오류를인지하지못해일정한요청사이로에러가발생하는굉장히찾아내기어려운에러가발생할소지가있다. 설마라고생각하지만실제로많은프로젝트에서자주발생하는것들이다. 그림 1.3은배포에대한일반적인처리절차를대략적으로정리해도식화한것이다. 정적자원동적자원대량처리자원데이터자원 개발자 커밋 형상관리 개발계배포 웹서버 #1 WAS 서버 #1 WAS 서버 #2 배치서버 #1 DB 서버 #1 개발서버 통합테스트계이관 정적자원 동적자원대량처리자원데이터자원 정적자원동적자원대량처리자원데이터자원 WAS 서버 #1 웹서버 #1 WAS 서버 #1 WAS 서버 #5 DB 서버 #1 웹서버 #1 WAS 서버 #2 DB 서버 #1 웹서버 #2 WAS 서버 #2 WAS 서버 #6 배치서버 #1 WAS 서버 #3 배치서버 #1 운영관이관 웹서버 #3 WAS 서버 #3 WAS 서버 #7 DB 서버 #2 웹서버 #2 DB 서버 #2 배치서버 #2 WAS 서버 #4 웹서버 #4 WAS 서버 #4 WAS 서버 #8 DB 서버 #3 통합테스트서버 운영서버 그림 1.3 계층별배포절차

39 서비스의안정화를위해배포하면바로적용되는것이아니라여러절차와단계를거쳐야만최종서비스단계로돌입할수있으며단계를더할수록더욱복잡한시스템환경을경험해야한다. 이렇게복잡하고다양한환경에대해수작업으로모든것을하기는불가능하며, 지속적으로엄격하게상태를검토하고이모든것이통과되었을경우다음단계로진행할수있도록자동화된작업을정의하는방법만이유일한해결책임을알아야한다. 1.9 결과피드백 아무리모든절차와과정을자동화했더라도자동화된작업상태를알수없고문제사항을빨리알아챌수없다면쓸데없이자원만낭비하는것이다. 그러므로지속적통합에서추구하는최종목적은자동화된빌드와배포를넘어서이모든내용에대해프로젝트의구성원이모두같이공유하고문제상황에대해빠르게해결해나갈수있는훌륭한결과피드백시스템을마련하는것이다. 피드백을받는방법은여러가지가있다. 최대한다양한형태로피드백할수록해당결과를확인할가능성이높고, 그렇게함으로써결함을최대한빨리확인할수있게된다. 성공적인결과피드백을하기위한전제조건은다음과같다. 전통적인메시지전달방법외에다양한매체나프로토콜로결과를피드백해 야한다. 정확한상태메시지를해당담당자에게정확히전송해야한다. 이중에서도 특히중요한것은모든사람에게메시지를전달하는것이아니라실제로그 메시지가의미있는사람에게전달돼야한다는것이다. 너무많은결과피드백으로중요한피드백내용이무시되지않도록해야한다. 이세가지경우를만족할수있다면성공적인피드백시스템을구축했다고할수있다. 하지만말로표현하기는쉬워도시스템적으로세가지조건을만족하도록만드는것은매우어려운일이며다년간의경험과시행착오를거쳐야만이룰수있는목표다.

40 다양한방법을통한메시지전달 IT가발전할수록통신수단이많아지며통신수단과전산시스템의연동역시대부분가능한세상에서살고있다. 앞으로시간이흐르면흐를수록더많은통신수단이나타날것이다. 그러므로많은문제상황에대해여러통신수단으로전달할수있다면해당피드백을더욱빠르게확인할수있다. 지속적통합을구축할때고려할수있는대표적인피드백방법은다음과같다. 이메일 단문메시지 (SMS) 메신저 PC 화면에알림 시스템감시용모니터 이다섯가지외에도여러방법이있고문제가발생했을때알림을줄수있는프로토콜이다양하지만앞의다섯가지경우는규모가작은프로젝트나기업에서도충분히구현할수있는좋은방법이다. 먼저이메일은 SMTP나 IMAP 같은표준프로토콜로전송할수있다. 특히구글, 네이버, 다음, 네이트같은서비스에서는자사사이트에접속하지않아도 SMTP나 IMAP 등으로메일을보낼수있는기능을제공한다. 또무료로사용할수있는리눅스배포판을설치하면메일전송서버를손쉽게만들수도있다. 물론사내에그룹웨어가마련되어있는곳이라면메일을더욱쉽게보낼수있다. 단문메시지의경우는개인이시스템적으로보낼수있는방법은없지만비교적값싼구축비용과월비용으로기업용단문메시지서비스를받을수있다. 시스템적으로단문메시지를보내는서비스를제공하는회사는많으니해당업체의서비스를이용해보는것도좋은방법이다. 그외에도사내메신저를이용하거나 PC의작업표시줄에팝업메시지를띄우는방법등을생각해볼수있으며, 잘구축된 ITSM이나통합운영환경이제공되는기업이라면해당모니터링화면에문제발생시내용을표시하는것도좋은방법이된다.

Introduction to CTIP

Introduction to CTIP Introduction to CTIP 김의섭 2019-03-08 목차 CI & CTIP CTIP 장단점 CTIP 구성도 Tools Team Projects 2 CI - Continuous Integration Continuous Integration 소프트웨어개발에서 Build(Test-CTIP) 의프로세스를지속적으로수행하는것. 지속적으로개발된 Unit 코드에대한

More information

<B3EDB9AEC0DBBCBAB9FD2E687770>

<B3EDB9AEC0DBBCBAB9FD2E687770> (1) 주제 의식의 원칙 논문은 주제 의식이 잘 드러나야 한다. 주제 의식은 논문을 쓰는 사람의 의도나 글의 목적 과 밀접한 관련이 있다. (2) 협력의 원칙 독자는 필자를 이해하려고 마음먹은 사람이다. 따라서 필자는 독자가 이해할 수 있는 말이 나 표현을 사용하여 독자의 노력에 협력해야 한다는 것이다. (3) 논리적 엄격성의 원칙 감정이나 독단적인 선언이

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Software Verification Junit, Eclipse 및빌드환경 Team : T3 목차 Eclipse JUnit 빌드환경 1 Eclipse e 소개 JAVA 를개발하기위한통합개발환경 주요기능 Overall 빌드환경 Code edit / Compile / Build Unit Test, Debug 특징 JAVA Code를작성하고이에대한 debugging

More information

Microsoft PowerPoint - MonthlyInsighT-2018_9월%20v1[1]

Microsoft PowerPoint - MonthlyInsighT-2018_9월%20v1[1] * 넋두리 * 저는주식을잘한다고생각합니다. 정확하게는주식감각이있다는것이맞겠죠? 예전에애널리스트가개인주식을할수있었을때수익률은엄청났었습니다 @^^@. IT 먼쓸리가 4주년이되었습니다. 2014년 9월부터시작하였으니지난달로만 4년이되었습니다. 4년간누적수익률이최선호주는 +116.0%, 차선호주는 -29.9% 입니다. 롱-숏으로계산하면 +145.9% 이니나쁘지않은숫자입니다.

More information

슬라이드 1

슬라이드 1 SW 개발도구연계 Jenkins - Redmine - Mylyn 목차 Intro Mylyn - Redmine 연계 Mylyn - Jenkins 연계및빌드실행 Mylyn에서 Redmine 일감처리 Intro 연계도구 웹기반의프로젝트관리도구 한글화가잘되어있어사용저변이넓음 플러그인을통해다양한도구와연계가능 Eclipse 용 ALM(Application Lifecycle

More information

wtu05_ÃÖÁ¾

wtu05_ÃÖÁ¾ 한 눈에 보는 이달의 주요 글로벌 IT 트렌드 IDG World Tech Update May C o n t e n t s Cover Story 아이패드, 태블릿 컴퓨팅 시대를 열다 Monthly News Brief 이달의 주요 글로벌 IT 뉴스 IDG Insight 개발자 관점에서 본 윈도우 폰 7 vs. 아이폰 클라우드 컴퓨팅, 불만 검증 단계 돌입 기업의

More information

5월전체 :7 PM 페이지14 NO.3 Acrobat PDFWriter 제 40회 발명의날 기념식 격려사 존경하는 발명인 여러분! 연구개발의 효율성을 높이고 중복투자도 방지할 것입니다. 우리는 지금 거센 도전에 직면해 있습니다. 뿐만 아니라 전국 26

5월전체 :7 PM 페이지14 NO.3 Acrobat PDFWriter 제 40회 발명의날 기념식 격려사 존경하는 발명인 여러분! 연구개발의 효율성을 높이고 중복투자도 방지할 것입니다. 우리는 지금 거센 도전에 직면해 있습니다. 뿐만 아니라 전국 26 5월전체 2005.6.9 5:7 PM 페이지14 NO.3 Acrobat PDFWriter 제 40회 발명의날 기념식 격려사 존경하는 발명인 여러분! 연구개발의 효율성을 높이고 중복투자도 방지할 것입니다. 우리는 지금 거센 도전에 직면해 있습니다. 뿐만 아니라 전국 26개 지역지식재산센터 를 통해 발명가와 중소기업들에게 기술개발에서 선진국은 첨단기술을 바탕으로

More information

슬라이드 1

슬라이드 1 Gradle 1. 도구개요 2. 설치및실행 3. 주요기능 4. 활용예제 1. 도구개요 1.1 도구정보요약 도구명 소개 특징 Gradle (http://www.gradle.org) 소프트웨어빌드자동화도구 라이선스 Apache License v2.0 Gradle 을통해소프트웨어패키지나프로젝트의빌드, 테스팅, 퍼블리슁, 배포등을자동화할수있다. Ant 의유연성과기능을

More information

PowerPoint Presentation

PowerPoint Presentation Software Verification T4 고수창전소영이세라하지윤 Index 1 CI 2 IntelliJ IDEA 3 JUnit 4 Build Environment 5 Git 1 Continuous Integration What is CI? 소프트웨어개발에서 Build/Test 의프로세스를지속적으로수행하는것 개발자생산성향상 버그의빠른발견및해결 더빠른업데이트제공

More information

<C3E6B3B2B1B3C0B0313832C8A32DC5BEC0E7BFEB28C0DBB0D4292D332E706466>

<C3E6B3B2B1B3C0B0313832C8A32DC5BEC0E7BFEB28C0DBB0D4292D332E706466> 11-8140242-000001-08 2013-927 2013 182 2013 182 Contents 02 16 08 10 12 18 53 25 32 63 Summer 2 0 1 3 68 40 51 57 65 72 81 90 97 103 109 94 116 123 130 140 144 148 118 154 158 163 1 2 3 4 5 8 SUMMER

More information

consulting

consulting CONSULTING 전략 컨설팅 클라우드 마이그레이션 애플리케이션 마이그레이션 데이터 마이그레이션 HELPING YOU ADOPT CLOUD. 클라우드로 가기로 결정했다면 누구와 함께 갈지를 선택해야 합니다. 처음부터 끝까지 믿을만한 파트너를 찾는다면 베스핀글로벌이 정답입니다. 전략 컨설팅 다양한 클라우드 공급자가 존재하고, 클라우드 공급자마다 다른 장단점을

More information

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

SIGIL 완벽입문

SIGIL 완벽입문 누구나 만드는 전자책 SIGIL 을 이용해 전자책을 만들기 EPUB 전자책이 가지는 단점 EPUB이라는 포맷과 제일 많이 비교되는 포맷은 PDF라는 포맷 입니다. EPUB이 나오기 전까지 전 세계에서 가장 많이 사용되던 전자책 포맷이고, 아직도 많이 사 용되기 때문이기도 한며, 또한 PDF는 종이책 출력을 위해서도 사용되기 때문에 종이책 VS

More information

..1,2,3,4-........

..1,2,3,4-........ 2011 Spring Vol.09 Contents 2011 Spring Vol.09 Issue 04 06 09 12 15 16 Story Cafe 18 Special Theme Theme 01 Theme 02 Theme 03 24 26 28 32 36 38 40 41 42 44 48 49 50 Issue 04 05 2011 SPRING NEWS Issue

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

....pdf..

....pdf.. Korea Shipping Association 조합 뉴비전 선포 다음은 뉴비전 세부추진계획에 대한 설명이다. 우리 조합은 올해로 창립 46주년을 맞았습니다. 조합은 2004년 이전까 지는 조합운영지침을 마련하여 목표 를 세우고 전략적으로 추진해왔습니 다만 지난 2005년부터 조합원을 행복하게 하는 가치창출로 해운의 미래를 열어 가자 라는 미션아래 BEST

More information

Microsoft PowerPoint - aj-lecture1.ppt [호환 모드]

Microsoft PowerPoint - aj-lecture1.ppt [호환 모드] 인터넷과웹서비스 개발환경구성, JSP 기본구조 인터넷과 WWW(World Wide Web) 인터넷은 TCP/IP 기반의네트워크가전세계적으로확대되어하나로연결된 네트워크의네트워크 WWW(World Wide Web) 는인터넷기반의서비스중하나 이름프로토콜포트기능 WWW http 80 웹서비스 524730-1 2019 년봄학기 3/11/2019 박경신 Email SMTP/POP3/IMAP

More information

Windows 10 General Announcement v1.0-KO

Windows 10 General Announcement v1.0-KO Windows 10 Fuji Xerox 장비와의호환성 v1.0 7 July, 2015 머리말 Microsoft 는 Windows 10 이 Windows 자동업데이트기능을통해예약되어질수있다고 6 월 1 일발표했다. 고객들은 윈도우 10 공지알림을받기 를표시하는새로운아이콘을알아차릴수있습니다. Fuji Xerox 는 Microsoft 에서가장최신운영시스템인 Windows

More information

행정학박사학위논문 목표모호성과조직행태 - 조직몰입, 직무만족, 공직봉사동기에미치는 영향을중심으로 - 년 월 서울대학교대학원 행정학과행정학전공 송성화

행정학박사학위논문 목표모호성과조직행태 - 조직몰입, 직무만족, 공직봉사동기에미치는 영향을중심으로 - 년 월 서울대학교대학원 행정학과행정학전공 송성화 저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할수없습니다. 변경금지. 귀하는이저작물을개작, 변형또는가공할수없습니다. 귀하는, 이저작물의재이용이나배포의경우,

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1 IP 심화 º 각 P 의게이트웨이는해당네트워크의마지막주소를사용한다. - P1 (210.220.10.1/26) 의게이트웨이 (5의 Fa0/0) : 210.220.10.63 /26 = 255.255.255.192 호스트비트수 : 32-26 = 6 비트 => = 64 그러므로 P1의 IP 210.220.10.1 중서브넷마스크에의거 26비트는변함이없고, 나머지 6비트가호스트비트로변하므로

More information

.....hwp

.....hwp 모델명 Indigo 14 1958년부터 사자표 라는 상표로 국내외의 많은 분께 사랑 받고 있는 라이온미싱은 가정용 재봉기 전문 회사입니다. 구입하신 제품은 직선/지그재그 바느질과 다양한 바느질을 편리하게 사용할 수 있으며, 정성이 가득한 나만의 작품을 만드는데 조그마한 보탬을 드릴 것입니다. 감사합니다. 본 설명서는 제품개선을 위하여 부분사양이 예고 없이 변경될

More information

소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기

소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기 소규모 비즈니스를 위한 YouTube 플레이북 YouTube에서 호소력 있는 동영상으로 고객과 소통하기 소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

표준 소개 자료

표준 소개 자료 Using Hudson / Jenkins Continuous Integration 2013.11.18 장윤기 (yoonki.chang@gmail.com) 목차 1. 지속적통합이해하기 2. 스스로적용하기 3. 다른사람들의활용방식 4. 질의응답 2 Copyright 2013. Created by Yoonki Chang (yoonki.chang@gmail.com)

More information

소프트웨어 검증 및 설계

소프트웨어 검증 및 설계 1 : 2018-03-21 Junit & IntelliJ 및빌드환경 Software Verification T1 [2018SV][T1] 201311263 김민환 201311308 전세진 201411278 서희진 201411317 조민규 1 INDEX 1. 2. 3. IDE IntelliJ Unit Test JUnit Build Configuration & CI

More information

View Licenses and Services (customer)

View Licenses and Services (customer) 빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차

More information

로거 자료실

로거 자료실 redirection 매뉴얼 ( 개발자용 ) V1.5 Copyright 2002-2014 BizSpring Inc. All Rights Reserved. 본문서에대한저작권은 비즈스프링 에있습니다. - 1 - 목차 01 HTTP 표준 redirect 사용... 3 1.1 HTTP 표준 redirect 예시... 3 1.2 redirect 현상이여러번일어날경우예시...

More information

0.筌≪럩??袁ⓓ?紐껋젾001-011-3筌

0.筌≪럩??袁ⓓ?紐껋젾001-011-3筌 3 4 5 6 7 8 9 10 11 Chapter 1 13 14 1 2 15 1 2 1 2 3 16 1 2 3 17 1 2 3 4 18 2 3 1 19 20 1 2 21 크리에이터 인터뷰 놀이 투어 놀이 투어 민혜영(1기, 직장인) 내가 살고 있는 사회에 가치가 있는 일을 해 보고 싶 어 다니던 직장을 나왔다. 사회적인 문제를 좀 더 깊숙이 고민하고, 해결책도

More information

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할 저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할수없습니다. 변경금지. 귀하는이저작물을개작, 변형또는가공할수없습니다. 귀하는, 이저작물의재이용이나배포의경우,

More information

PowerPoint Presentation

PowerPoint Presentation 오에스아이소프트코리아세미나세미나 2012 Copyright Copyright 2012 OSIsoft, 2012 OSIsoft, LLC. LLC. PI Coresight and Mobility Presented by Daniel Kim REGIONAL 세미나 SEMINAR 세미나 2012 2012 2 Copyright Copyright 2012 OSIsoft,

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

W7_Business_ 제품설계

W7_Business_ 제품설계 6가지 테마와 24단계 창업 프로그램 벤처창업 (START-UP) Week 7: 스타트업 바이블 Step 20, 21, 22, 23 ; 어떤 과정을 거쳐 제품을 기획하고 설계할까? Hansoo Kim, Ph.D YUST MIS / E-Biz Research Center / BNC ?????,!????,? (Linchpin,, )?? ),, SASA : :,,

More information

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1 표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1 Index 1. 표준프레임워크 EGOVCI 팩키지설치... 3 1.1 개요... 3 1.2 EGOVCI 압축풀기... 3 1.3 EGOVCI 시스템구성... 3 1.4 CI 시스템구동 (START/STOP)... 4 2. NEXUS 설정정보... 6 2.1 NEXUS 서버구동

More information

Microsoft PowerPoint - jfeature장범석서재원박동현.pptm

Microsoft PowerPoint - jfeature장범석서재원박동현.pptm 소프트웨어검증 J F JFeature REQUIREMENT COVERAGE TOOL 장범석서재원박동현 순서 1. JFeature 소개 2. JFeature 사용 3. JFeature VS OSRMT 4. 프로젝트적용방안 1. JFeature 소개 1. JFeature 소개 JFeature Feature/requirement coverage tool 개발하는코드에해당하는요구사항에초점

More information

152*220

152*220 152*220 2011.2.16 5:53 PM ` 3 여는 글 교육주체들을 위한 교육 교양지 신경림 잠시 휴간했던 우리교육 을 비록 계간으로이지만 다시 내게 되었다는 소식을 들으니 우 선 반갑다. 하지만 월간으로 계속할 수 없다는 현실이 못내 아쉽다. 솔직히 나는 우리교 육 의 부지런한 독자는 못 되었다. 하지만 비록 어깨너머로 읽으면서도 이런 잡지는 우 리

More information

JDK이클립스

JDK이클립스 JDK 와이클립스설치 A. JDK 다운로드, 설치및환경설정 지금부터 JDK를다운로드받아설치하고 JDK를윈도우에서활용할수있도록환경을설정하는전과정을소개한다. 다운로드 www.oracle.com 사이트에접속하여 Downloads 메뉴를선택한후 [ 그림 1] 과같이 "Java for Developers" 를클릭한다. [ 그림 1] www.oracle.com 사이트

More information

Microsoft Word - 4장_처짐각법.doc

Microsoft Word - 4장_처짐각법.doc 동아대학교토목공학과구조역학 4. 처짐각법 변위법 (Slope Deflection ethod Displacement ethod) Objective of this chapter: 처짐각법의기본개념. What will be presented: 처짐각법을이용한다차부정정보해석 처짐각법을이용한다차부정정골조해석 Theoretical background 미국미네소타대학의

More information

<B3EDB4DC28B1E8BCAEC7F6292E687770>

<B3EDB4DC28B1E8BCAEC7F6292E687770> 1) 초고를읽고소중한조언을주신여러분들게감사드린다. 소중한조언들에도불구하고이글이포함하는오류는전적으로저자개인의것임을밝혀둔다. 2) 대표적인학자가 Asia's Next Giant: South Korea and Late Industrialization, 1990 을저술한 MIT 의 A. Amsden 교수이다. - 1 - - 2 - 3) 계량방법론은회귀분석 (regression)

More information

슬라이드 1

슬라이드 1 Continuous Integration Part 2 Continuous Integration Servers 조영호카페PJT팀 2008.09.01 youngho.cho@nhncorp.com 목차 1. Continuous Integration Servers 2. CruiseControl 3. Bamboo 1. Continuous Integration Severs

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

[Brochure] KOR_TunA

[Brochure] KOR_TunA LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /

More information

È޴ϵåA4±â¼Û

È޴ϵåA4±â¼Û July 2006 Vol. 01 CONTENTS 02 Special Theme 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Beautiful Huneed People 03 04 Special Destiny Interesting Story 05 06 Huneed News Huneed

More information

01¸é¼öÁ¤

01¸é¼öÁ¤ 16면 2012.7.25 6:14 PM 페이지1 2012년 8월 1일 수요일 16 종합 고려대장경 석판본 판각작업장 세계 최초 석판본 고려대장경 성보관 건립 박차 관계기관 허가 신청 1차공사 전격시동 성보관 2동 대웅전 요사채 일주문 건립 3백여 예산 투입 국내 최대 대작불사 그 동안 재단은 석판본 조성과 성보관 건립에 대해서 4년여 동안 여러 측면에 서 다각적으로

More information

SANsymphony-V

SANsymphony-V 국내대표적인구축사례 (KR) XXXX공사(공공) 2013년 12월 도입 센터 이전에 따른 스토리지가상화 통합 및 이기종통합 이기종 스토리지 (무중단이중하) 무중단 서비스 확보 24시간 운영 체계의 고가용 확보 스토리지 인프라의 유연한 구성 및 통합 환경 구축 업무서버 Unix 20대 업무서버 V 58대 CIe SSD(Fusion IO 3.2TB) ㅇㅇㅇㅇㅇㅇ

More information

untitled

untitled Oracle DBMS 로그인의접근제어우회 취약점분석 2006. 2. 9 인터넷침해사고대응지원센터 (KISC) 본보고서의전부나일부를인용시반드시 [ 자료 : 한국정보보호진흥원 (KISA)] 룰명시하여주시기바랍니다. 개요 o 2005년이후 Oracle Critical Patch Update(CPU) 는 Oracle사제품대상으로다수의보안패치및보안패치와관련된일반패치를발표하는주요수단임

More information

»êÇÐ-150È£

»êÇÐ-150È£ Korea Sanhak Foundation News VOL. 150 * 2011. 12. 30 논단 이슈별 CSR 활동이 기업 충성도에 미치는 영향 : 국가별 및 산업별 비교분석 최 지 호 전남대 경영학부 교수 Ⅰ. 서론 Ⅰ. 서론 Ⅱ. 문헌 고찰 및 가설 개발 2. 1. 호혜성의 원리에 기초한 기업의 사회적 투자에 대한 소

More information

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할 저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할수없습니다. 변경금지. 귀하는이저작물을개작, 변형또는가공할수없습니다. 귀하는, 이저작물의재이용이나배포의경우,

More information

JUNIT 실습및발표

JUNIT 실습및발표 JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected

More information

노트북 IT / 모바일 데스크탑 34 올인원PC 35 PC 소프트웨어 포터블SSD / SSD / 메모리카드 36 태블릿 37 휴대폰 39 PC 솔루션 IT / 모바일 IT / 모바일 노트북 29 삼성전자는 Windows 를 권장합니다. 삼성전자만의 편리하고 다양한 소프트웨어를 통해 초보자도 보다 쉽고 빠르게 이용 가능합니다. Easy Settings 삼성 패스트

More information

[서비스] 1. 오프닝 네트워킹 파티 (전체 공통) (1/13(월) 밤 9시) FAST TRACK ASIA와 CAMP에 대해 소개하고, 3개 코스의 전체 참가자들의 소개 및 네트워킹을 진행합니다. 2. 패스트트랙아시아 파트너 CEO들과의 네트워킹 파티 (전체 공통) (

[서비스] 1. 오프닝 네트워킹 파티 (전체 공통) (1/13(월) 밤 9시) FAST TRACK ASIA와 CAMP에 대해 소개하고, 3개 코스의 전체 참가자들의 소개 및 네트워킹을 진행합니다. 2. 패스트트랙아시아 파트너 CEO들과의 네트워킹 파티 (전체 공통) ( 대학생 대상 CAMP 일정표 (6주, 12개 강의 + 6개 서비스) [강의] 1. 사업계획서 작성의 모든 것 (1/14(화) 오전 10시) 사업계획서 작성에 필요한 실무 지식과 유의해야 할 점들을 설명하고, 샘플 사업계획서들을 살펴봅니다. 2. 운명을 함께 할 공동창업자 및 초기 핵심멤버를 구하는데 고려해야 할 점들 (1/16(목) 오전 10시) 공동창업자와

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information

가해하는 것은 좋지 않은 행동이라 생각하기 때문이다 불쌍해서이다 가해하고 나면 오히려 스트레스를 더 받을 것 같아서이다 보복이 두려워서이다 어떻게 그렇게 할 수 있는지 화가 나고 나쁜 아이라고 본다 그럴 수도 있다고 생각한다 아무런 생각이나 느낌이 없다 따돌리는 친구들을 경계해야겠다 남 여 중학생 고등학생 남 여 중학생 고등학생 남 여 중학생 고등학생 남 여

More information

º´¹«Ã»Ã¥-»ç³ªÀÌ·Î

º´¹«Ã»Ã¥-»ç³ªÀÌ·Î 솔직히 입대하기 전까지만 해도 왜 그렇게까지 군대를 가려고하냐, 미친 것 아니냐는 소리도 많이 들었다. 하지만 나는 지금 그 때의 선택을 후회하지 않는다. 내가 선택한 길이기에 후회는 없다. 그런 말을 하던 사람들조차 지금의 내 모습을 보고 엄지 손가락을 치켜세운다. 군대는 하루하루를 소종하게 생각 할 수 있게 만들어 주었고, 점점 변해가는 내 모습을 보며

More information

¿©¼ººÎÃÖÁ¾¼öÁ¤(0108).hwp

¿©¼ººÎÃÖÁ¾¼öÁ¤(0108).hwp 어렵다. 1997년우리나라 50대그룹 (586개기업 ) 에근무하는 110,096 명의과장급이상관리 - 1 - - 2 - - 3 - 행정및경영관리자 (02) 중에서경영관리자에해당되는부문이라고할수있다. 경영관리자는더세부적으로는기업고위임원 (021), 생산부서관리자 (022), 기타부서관리자 (023) 등으로세분류할수있다 (< 참고-1> 참조 ). 임원-부장-과장

More information

041~084 ¹®È�Çö»óÀбâ

041~084 ¹®È�Çö»óÀбâ 1998 60 1 1 200 2 6 4 7 29 1975 30 2 78 35 1 4 2001 2009 79 2 9 2 200 3 1 6 1 600 13 6 2 8 21 6 7 1 9 1 7 4 1 2 2 80 4 300 2 200 8 22 200 2140 2 195 3 1 2 1 2 52 3 7 400 60 81 80 80 12 34 4 4 7 12 80 50

More information

Level 학습 성과 내용 1수준 (이해) 1. 기본적인 Unix 이용법(명령어 또는 tool 활용)을 습득한다. 2. Unix 운영체계 설치을 익힌다. 모듈 학습성과 2수준 (응용) 1. Unix 가상화 및 이중화 개념을 이해한다. 2. 하드디스크의 논리적 구성 능력

Level 학습 성과 내용 1수준 (이해) 1. 기본적인 Unix 이용법(명령어 또는 tool 활용)을 습득한다. 2. Unix 운영체계 설치을 익힌다. 모듈 학습성과 2수준 (응용) 1. Unix 가상화 및 이중화 개념을 이해한다. 2. 하드디스크의 논리적 구성 능력 CLD 모듈 계획서 Unix Systems 운영관리기법 교과목 코드 모듈명 Unix Systems Administration 코디네이터 김두연 개설 시기 2015. 5 th term 학점/시수 3 수강 대상 1~3학년 분반 POL Type TOL Type SOS Type 유형 소프트웨어 개발 컴퓨팅 플랫폼 관리 개발 역량 분석/설계 프로그래밍

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

슬라이드 1

슬라이드 1 Software Verification #3 정적분석도구, 단위 / 시스템테스트도구 Software Verification Team 4 강 정 모 송 상 연 신 승 화 1 Software Verification #3 정적분석도구, 단위 / 시스템테스트도구 CONTENTS 01 Overall Structure 02 Static analyzer SonarQube

More information

Social Media and Social Computing

Social Media and Social Computing Maven 2015 Web Service Computing Maven 이란? Apache 프로젝트 소스코드로부터배포가능한산출물 (artifact) 을빌드 (build) 하는 ' 빌드툴 (build tool)' 조금더편리한 ' 프로젝트관리툴 Maven 이없다면? 라이브러리를직접다운로드해서등록하고 path 를지정해줘야한다. Build 소스코드를컴파일한다. 테스트코드를컴파일한다.

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

178È£pdf

178È£pdf 스승님이 스승님이 스승님이 말씀하시기를 말씀하시기를 말씀하시기를 알라는 위대하다! 위대하다! 알라는 알라는 위대하다! 특집 특집 기사 특집 기사 세계 세계 평화와 행복한 새해 경축 세계 평화와 평화와 행복한 행복한 새해 새해 경축 경축 특별 보도 특별 특별 보도 스승님과의 선이-축복의 선이-축복의 도가니! 도가니! 스승님과의 스승님과의 선이-축복의 도가니!

More information

Office 365, FastTrack 4 FastTrack. Tony Striefel FastTrack FastTrack

Office 365, FastTrack 4 FastTrack. Tony Striefel FastTrack FastTrack FastTrack 1 Office 365, FastTrack 4 FastTrack. Tony Striefel FastTrack FastTrack 5 11 2 FASTTRACK 소개 디지털 혁신은 여기서 시작합니다. Microsoft FastTrack은 Microsoft 클라우드를 사용하여 고객이 신속하게 비즈니스 가치를 실현하도록 돕는 고객 성공 서비스입니다.

More information

문서의 제목 나눔고딕B, 54pt

문서의 제목 나눔고딕B, 54pt Software Verification Introduction to Software Testing & Static Analysis 2조이상혁왕홍강김태영 2016-03-18 1.1 Overview 2 / 87 Overview 1.1 Overview 3 / 87 Overview 1.2 Install JDK 4 / 87 Install JDK JDK 8 다운로드페이지

More information

병원이왜내지최종본1

병원이왜내지최종본1 아토피 건선 습진 무좀 탈모 등 피부병은 물론 비만 당뇨 변비 고혈압 생리통 관절염 류머티즘 설사 등 속병도 스스로 간단히 치료하는 비법 100평 아파트도 건강을 잃으면 월세방만 못하다. 자녀를 사랑하면 이책을 반드시 읽게 하라 지은사람 99세까지 88하게 살기운동본부 펴낸곳 청 인 저자 회춘 모습 병원검진 생체나이 40대 초반 Contents 4 5 6

More information

이 드리는 혜택 완벽 을 위한 발환경 : Team Foundation Server 200 & CAL 제공 최저의 비용으로 구현을 위해 Visual Studio Team Foundation Server 200 서버 라이센스와 CAL이 에 포함되어 있습니다 을 모든 팀원이

이 드리는 혜택 완벽 을 위한 발환경 : Team Foundation Server 200 & CAL 제공 최저의 비용으로 구현을 위해 Visual Studio Team Foundation Server 200 서버 라이센스와 CAL이 에 포함되어 있습니다 을 모든 팀원이 이 드리는 혜택 완벽 을 위한 발환경 : Team Foundation Server 200 & CAL 제공 최저의 비용으로 구현을 위해 Visual Studio Team Foundation Server 200 서버 라이센스와 CAL이 에 포함되어 있습니다 을 모든 팀원이 보유한 발팀 추가 비용없이 Team Foundation Server를 활용하여 형상관리 소스

More information

열거형 교차형 전개형 상승형 외주형 회전형 도해패턴 계층형 구분형 확산형 합류형 대비형 상관형 (C) 2010, BENESO All Rights Reserved 2

열거형 교차형 전개형 상승형 외주형 회전형 도해패턴 계층형 구분형 확산형 합류형 대비형 상관형 (C) 2010, BENESO All Rights Reserved 2 c 2010, BENESO All rights reserved 1 열거형 교차형 전개형 상승형 외주형 회전형 도해패턴 계층형 구분형 확산형 합류형 대비형 상관형 (C) 2010, BENESO All Rights Reserved 2 u 열거형 : 대소, 위치등의관계에대해설명 u 교차형 : 중복, 합동, 복합, 공동등의관계에대해설명 설명도, 대소관계도, 제휴관계도,

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

*2008년1월호진짜

*2008년1월호진짜 3. USB 이동식저장장치를이용하여전파되는악성코드분석 1. 개 요 최근 USB 이동식 저장장치를 통하여 전파되는 악성코드에 대한 감염피해가 증가하고 있어 주의가 필요하다. 이번에 확인된 ntion.exe 악성코드는 감염 시, 특정 사이트에 접속하여 추가 악성코드를 다운로드하는 Dropper 기능을 수행한다. 또한, 웹 서버가 감염될 경우는 웹 서버내의 웹 페이지가

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 인터넷프로토콜 03 장 도메인네임시스템과주소 패밀리 (IPv4-IPv6 서비스 ) 1 목차 제 3 장도메인네임시스템과주소패밀리 3.1 도메인네임주소를숫자주소로매핑하기 3.2 IP 버전에무관한주소-범용코드의작성 3.3 숫자주소에서도메인네임주소획득하기 2 getaddrinfo() 를활용한주소 범용 (Generic) 코드 주소범용 (Generic) 코드란? 주소버전

More information

System Recovery 사용자 매뉴얼

System Recovery 사용자 매뉴얼 Samsung OS Recovery Solution 을이용하여간편하게 MagicInfo 의네트워크를설정하고시스템을백업및복원할수있습니다. 시스템시작시리모컨의 - 버튼이나키보드의 F3 키를연속해서누르면복구모드로진입한후 Samsung OS Recovery Solution 이실행됩니다. Samsung OS Recovery Solution 은키보드와리모컨을사용하여조작할수있습니다.

More information

에스디엘팜플렛-최종.cdr

에스디엘팜플렛-최종.cdr SELF-DIRECTED LEARNING 대불대학교 목포상공회의소 디자인센터 전북케이블TV 공영통신 송웰빙병원 서울 대영/동부교통 광주광역시 남구 송하동 354-1번지 3층 TEL 062 374 0650 FAX 062 383 4118 CRASH COURSE 우편원격교육의 효과를 높이기 위한 오리엔테이션 및 특강 구분 우편원격교육의 효과를 높이기 위한 특강

More information

Microsoft Word - release note-VRRP_Korean.doc

Microsoft Word - release note-VRRP_Korean.doc VRRP (Virtual Router Redundancy Protocol) 기능추가 Category S/W Release Version Date General 7.01 22 Dec. 2003 Function Description VRRP 는여러대의라우터를그룹으로묶어하나의가상 IP 어드레스를부여해마스터로지정된라우터장애시 VRRP 그룹내의백업라우터가마스터로자동전환되는프로토콜입니다.

More information

내지-교회에관한교리

내지-교회에관한교리 내지-교회에관한교리 2011.10.27 7:34 PM 페이지429 100 2400DPI 175LPI C M Y K 제 31 거룩한 여인 32 다시 태어났습니까? 33 교회에 관한 교리 목 저자 면수 가격 James W. Knox 60 1000 H.E.M. 32 1000 James W. Knox 432 15000 가격이 1000원인 도서는 사육판 사이즈이며 무료로

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

소식지수정본-1

소식지수정본-1 2010. 7 통권2호 2 CONTENTS Korea Oceanographic & Hydrographic Association 2010. 7 2010년 한마음 워크숍 개최 원장님께서 손수 명찰을 달아주시면서 직원들과 더욱 친숙하게~~ 워크숍 시작! 친근하고 정감있는 말씀으로 직원들과 소통하며 격려하여 주시는 원장님... 제12차 SNPWG 회의에 참석 _ 전자항해서지

More information

연구노트

연구노트 #2. 종이 질 - 일단은 OK. 하지만 만년필은 조금 비침. 종이질은 일단 합격점. 앞으로 종이질은 선택옵션으로 둘 수 있으리라 믿는다. 종이가 너무 두꺼우면, 뒤에 비치지 는 않지만, 무겁고 유연성이 떨어진다. 하지만 두꺼우면 고의적 망실의 위험도 적고 적당한 심리적 부담도 줄 것이 다. 이점은 호불호가 있을 것으로 생각되지만, 일단은 괜찮아 보인다. 필자의

More information

**09콘텐츠산업백서_1 2

**09콘텐츠산업백서_1 2 2009 2 0 0 9 M I N I S T R Y O F C U L T U R E, S P O R T S A N D T O U R I S M 2009 M I N I S T R Y O F C U L T U R E, S P O R T S A N D T O U R I S M 2009 발간사 현재 우리 콘텐츠산업은 첨단 매체의 등장과 신기술의 개발, 미디어 환경의

More information

본 강의에 들어가기 전

본 강의에 들어가기 전 웹서버프로그래밍 2 JSP 개요 01. JSP 개요 (1) 서블릿 (Servlet) 과 JSP(Java Server Page) 서블릿은자바를이용한서버프로그래밍기술 초기웹프로그래밍기술인 CGI(Common Gateway Interface) 를대체하기위해개발되었으나, 느린처리속도, 많은메모리요구, 불편한화면제어등의한계로 PHP, ASP 등서버스크립트언어등장 JSP

More information

Microsoft PowerPoint - 2번째발표(최종).pptx

Microsoft PowerPoint - 2번째발표(최종).pptx Eclipse Subclipse (Team Presentation #2) 3조 Software Verification ( 소프트웨어검증 ) Team members : 200714170 모진종 200714173 심상문 200714179 황규원 Contents Subversion 과 Subclipse 정의 Subversion 동작과실행 Subversion 장점

More information

750 1,500 35

750 1,500 35 data@opensurvey.co.kr 750 1,500 35 Contents Part 1. Part 2. 1. 2. 3. , 1.,, 2. skip 1 ( ) : 2 ( ) : 10~40 (, PC, ) 1 : 70 2 : 560 1 : 2015. 8. 25~26 2 : 2015. 9. 1 4 10~40 (, PC, ) 500 50.0 50.0 14.3 28.6

More information

마켓온_제품소개서_20131111.key

마켓온_제품소개서_20131111.key 제품소개서 Your Expert Business Partner. CMS. Mobile. Enterprise System. 패스트스퀘어 시스템 마켓온 SNS 2013. 11. 11 Contents 1. 솔루션 개요 2. 솔루션 특징 3. 솔루션 주요기능 4. 솔루션 구성 마켓온 - 솔루션 개요 솔루션 개요 기업을 위한 유연하고 편리한 커뮤니케이션 솔루션 마켓온은

More information

슬라이드 1

슬라이드 1 Jenkins 1. 도구개요 2. 설치및실행 3. 주요기능 1. 도구개요 1.1 도구정보요약 도구명 Jenkins (http://jenkins-ci.org/) 라이선스 MIT License 소개 CI ( 연속적통합 ) 도구 빌드, 배포등반복되는작업을모니터링하는도구. 특징 쉬운설치및웹기반으로된쉬운 UI 제공 여러 project 동시 Build 제공 다양한언어

More information

Studuino소프트웨어 설치

Studuino소프트웨어 설치 Studuino 프로그래밍환경 Studuino 소프트웨어설치 본자료는 Studuino 프로그래밍환경설치안내서입니다. Studuino 프로그래밍 환경의갱신에따라추가 / 수정될수있습니다. 목차 1. 소개... 1 2. Windows... 2 2.1. 프로그래밍환경설치... 2 2.1.1. 웹설치버전설치방법... 2 2.2. Studuino 프로그래밍환경실행...

More information

게시판 스팸 실시간 차단 시스템

게시판 스팸 실시간 차단 시스템 오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 B Type 가이드 가지고있는도메인사용 + 인증서구매대행절차 1. 신청하기. 네임서버변경 / 확인 - 네임서버변경 - 네임서버변경확인 3. 인증심사메일에회신하기 - 메일주소확인 - 메일주소변경 - 인증심사메일서명 4. Ver. 015.10.14 가지고있는도메인사용 + 인증서구매대행절차 도메인은가지고있으나인증서가없는경우소유한도메인주소로 를오픈하고인증서는 Qoo10

More information

Cloud Friendly System Architecture

Cloud Friendly System Architecture -Service Clients Administrator 1. -Service 구성도 : ( 좌측참고 ) LB(LoadBlancer) 2. -Service 개요 ucloud Virtual Router F/W Monitoring 개념 특징 적용가능분야 Server, WAS, DB 로구성되어 web service 를클라우드환경에서제공하기위한 service architecture

More information

Chapter ...

Chapter ... Chapter 4 프로세서 (4.9절, 4.12절, 4.13절) Contents 4.1 소개 4.2 논리 설계 기초 4.3 데이터패스 설계 4.4 단순한 구현 방법 4.5 파이프라이닝 개요*** 4.6 파이프라이닝 데이터패스 및 제어*** 4.7 데이터 해저드: 포워딩 vs. 스톨링*** 4.8 제어 해저드*** 4.9 예외 처리*** 4.10 명령어 수준

More information

win8_1±³

win8_1±³ 1 2 3 4 5 6 IDG Tech Library 7 8 9 ITWorld H ow To 마트글래스 기능은 사용자가 시청하거나 플레이한 하우스터프웍스(HowStuffWorks) 내용을 추적해 주고, 성취표나 추가 비디오 콘텐츠 하우스터프웍스 윈도우 8 앱은 기본적으로 하우 등 보조 정보를 제공한다. 또한 PC를 Xbox 360의 스터프웍스 웹 사이트의 모든

More information

TTA Journal No.157_서체변경.indd

TTA Journal No.157_서체변경.indd 표준 시험인증 기술 동향 FIDO(Fast IDentity Online) 생체 인증 기술 표준화 동향 이동기 TTA 모바일응용서비스 프로젝트그룹(PG910) 의장 SK텔레콤 NIC 담당 매니저 76 l 2015 01/02 PASSWORDLESS EXPERIENCE (UAF standards) ONLINE AUTH REQUEST LOCAL DEVICE AUTH

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

PowerPoint Template

PowerPoint Template 설치및실행방법 Jaewoo Shim Jun. 4. 2018 Contents SQL 인젝션이란 WebGoat 설치방법 실습 과제 2 SQL 인젝션이란 데이터베이스와연동된웹서버에입력값을전달시악의적동작을수행하는쿼리문을삽입하여공격을수행 SELECT * FROM users WHERE id= $_POST[ id ] AND pw= $_POST[ pw ] Internet

More information

목차 I. CI 정의 II. CI 필요성 III. CI 기능및특징 IV. CI 제품 V. Hudson VI. 적용방안 VII. 결론 - 1 -

목차 I. CI 정의 II. CI 필요성 III. CI 기능및특징 IV. CI 제품 V. Hudson VI. 적용방안 VII. 결론 - 1 - 프로젝트빌드와테스트의자동화를위한 CI 소개 이진복 (Jinbock Lee) 2009 년 11 월 06 일 목차 I. CI 정의 II. CI 필요성 III. CI 기능및특징 IV. CI 제품 V. Hudson VI. 적용방안 VII. 결론 - 1 - I. CI 정의 q CI (Continuous Integration) 시스템을구축하고배포하는과정의통합비용 ( 시간

More information

정부3.0 국민디자인단 운영을 통해 국민과의 소통과 참여로 정책을 함께 만들 수 있었고 그 결과 국민 눈높이에 맞는 다양한 정책 개선안을 도출하며 정책의 완성도를 제고할 수 있었습니다. 또한 서비스디자인 방법론을 각 기관별 정부3.0 과제에 적용하여 국민 관점의 서비스 설계, 정책고객 확대 등 공직사회에 큰 반향을 유도하여 공무원의 일하는 방식을 변화시키고

More information

CD 2117(121130)

CD 2117(121130) 제품보증서 품질 보증기간은 구입일로부터 1년간이며, 애프터서비스용 부품의 보증기간은 5년간 입니다. 애프터서비스용 부품이란 외장을 제외한 회로, 기능 부품을 말합니다. (당사 규정에 따른 것임) 제 품 명 모 년 구 입 일 구 입 자 판 매 자 월 일 주소 성명 주소 대리점명 델 명 SERIAL NO. TEL. TEL. 제품보증조건 무상 서비스: 보증기간내의

More information