본문 바로가기

Dev. ProjectKICE/CI 서버 구축

(8)
PMD 사용 중 클래스를 찾지 못한다고 나올 때(ant 빌드) PMD를 사용하다 보면 자바 클래스를 찾지 못한다고 경고가 찍히는 경우가 있다. 이런 경우는 PMD의 라이브러리와 ANT의 라이브러리가 서로 참조를 못하는 경우에 발생한다. 해결 방법은 PMD lib 폴더의 라이브러리를 ANT lib에 전부 복사하여 준다. 좀 더 자세한 내용은 StackOverFlow를 참조 바람.Pmd ant script gives java.lang.NoClassDefFoundError: org/jaxen/JaxenException
웹 사이트 성능 최적화 분석 자동화: YSlow와 CI 서버 연동 [출처] NAVER D2 웹 사이트 성능 최적화 분석 자동화: YSlow와 CI 서버 연동 2007년 Yahoo!에서 웹 사이트 성능 최적화를 위한 내부 노하우를 14개 법칙(현재는 35개 법칙, http://developer.yahoo.com/performance/rules.html) 으로 정리해 일반 개발자에게 공개했습니다. 그리고 해당 법칙에 따라 성능 최적화를 분석하는 YSlow라는 도구도 함께 공개했습니다. 초기에 YSlow는 Firefox의 확장 프로그램으로 공개됐으나 그 이후 Chrome, Opera, Safari 등 모든 브라우저의 확장 도구로 포팅됐습니다. 최근에는 Node.js나 PhantomJS를 이용해 브라우저 없이 명령어 입력으로 바로 실행할 수 있는 커맨드라인 버전까지 다양하게 ..
How to Spring MVC Unit Test 스프링 MVC 단위 테스트 [출처] http://thswave.github.io/java/2015/03/02/spring-mvc-test.html 스프링 MVC 단위 테스트!계속해서 들려오는 TDD를 해보고 싶었던차에 강제적으로(?) 단위테스트를 만들면서 개발해야되는 상황이 되었습니다.지금까지 TDD 예제나 소개에서는 간단한 알고리즘 문제 풀이를 다루고 있었고 단순한 JUnit Test 케이스를 만들순 있었습니다.하지만 Spring MVC의 Controller, Service, Model 성격이 다른 각 계층에 대한 테스트 케이스를 만드려고 하니 막막해졌습니다. MVC를 구성하는 각 레이어 별 어떻게 테스트를 해야 할지 크게 세가지 정도가 감이 오지 않았습니다.1. Controller MethodController에 request..
기존 프로젝트의 디렉토리 구조를 그대로 두고 maven으로 빌드하기 [출처] 독거중년 개발자님 블로그 기존 프로젝트를 maven으로 마이그레이션할 때 디렉토리 구조를 어떻게 할 것인가 하는 문제때문에 늘 고민하게 된다. 결론부터 말하면, 두가지 방법이 있다. 1. 기존 디렉토리 구조를 그대로 두고, maven을 적절하게 설정한다. 2. 기존 디렉토리 구조를 maven의 표준(권장) 디렉토리 구조로 변경한다. 후자의 경우가 확실하긴 하지만, cvs를 쓰고 있다면 대략 낭패(?!)다. svn을 쓴다면 그나마 다행이지만... 여러 사람이 함께 작업하는 프로젝트라면 조금 귀찮은 문제들이 있다. 내가 기존에 사용하던 프로젝트의 디렉토리 구조는 (대충) 다음과 같다: srcjava : *.javares : *.properties 등의 리소스들...test: *Test.java 와 ..
Ant 빌드파일 작성 [출처] 인섬니아 블로그 Ant 빌드파일 작성 build.xml 파일 생성 : 웹용 ant 파일은 여기 참조 프로젝트 컨텍스트 메뉴에서 New > File 선택 파일명은 build.xml로 생성 Ctrl + Space 로 buildfile template 선택 : 기본 포맷 내용이 만들어짐 프로퍼티 지정 빌드시에 사용할 프로퍼티를 설정한다. 별도의 프로퍼티 파일로 생성해서 사용 가능 path 지정 컴파일에 필요한 라이브러리 패스를 설정한다. 빌드 날짜 생성 빌드 날짜를 스탬프로 찍는다. prepare 빌드하기전에 빌드폴더 생성 및 WebContent?내의 파일을 build 폴더로 복사한다. Clean build와 dist 폴더를 삭제한다. build build 폴더에 자바 컴파일 후 classes 파일을..
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툴을 설정하기 위해서는 기본적으로 소스 관리 시..
개발PC에서는 정상, 서버에서는 컴파일 에러가 나는 경우 - 통합 개발도구의 자동 빌드 기능을 OFF해 놓고 사용하는 경우가 많다. 자동 빌드 기능을 이용하면 개발 도구가 소스 코드를 계속 컴파일하기 때문에 개발 툴의 속도가 느려진다. 그 때문에 자동 빌드를 꺼두면 개발PC에서는 빌드에 계속 성공하고 있다고 착각하게 된다. - 프로젝트 표준으로 만든 빌드 스크립트와 통합 개발 환경의 설정을 자기만의 방식으로 변경해서 사용하는 경우가 많이 있다. 예를 들어 자신만이 사용하는 라이브러리를 추가해 놓고 형상관리에는 라이브러리를 커밋하지 않거나 프로젝트 표준이 아닌 다른 라이브러리를 사용하는 경우이다. - 정상적인 모든 소스 코드를 커밋하지 않는 경우이다. 로컬 개발PC에서 동작하는 모든 소스 코드를 형상 관리에 커밋하지 않고 일부 소스 코드만 커밋하게 되면 서버에서..
Jenkins 권한 설정 실패시 초기화 방법 [출처] 떵자루의 개인 블로그 젠킨스를 설치하고 보안관련 설정을 할 때는 로그인해서 사용할 수 있는 기본 사용자를 추가해야 한다. 만약 사용자를 추가하지 않고 설정을 하고 저장한다면 로그인을 해서 젠킨스에 대한 부분을 전혀 사용할 수 없는 문제가 발생한다. 이때에는 젠킨스가 설치된 곳에 위치한 ‘config.xml’ 파일의 보안과 권한관련 된 부분을 초기화해줘야 한다. 파일 위치 ${JENKINS_HOME}/config.xml 1 ${JENKINS_HOME}/config.xml 수정부분 하위에 기타값들이 설정되어 있다면 해당되는 엘러먼트의 모든 값을 삭제[