AssertJ 소개testCompile ‘org.assertj:assertj-core:3.6.2’ DarkKaiser, 2017년 9월 14일2023년 9월 5일 멋진 테스트 코드를 작성하도록 돕는 AssertJ 라이브러리에 대해서 알아봅시다. AssertJ의 장점 메소드 체이닝을 지원하기 때문에 좀 더 깔끔하고 읽기 쉬운 테스트 코드를 작성할 수 있습니다. 개발자가 테스트를 하면서 필요하다고 상상할 수 있는 거의 모든 메소드를 제공합니다. 라이브러리 의존성 설정 Java8 이상 기반 프로젝트는 3.x 버전을, Java7 이하 기반 프로젝트는 2.x Continue Reading
자주 사용되는 Lombok 어노테이션 DarkKaiser, 2017년 9월 14일2023년 9월 5일 출처 : http://www.daleseo.com/lombok-popular-annotations/ Lombok 라이브러리에서 제공하는 어노테이션 중에서 자주 사용되는 어노테이션 위주로 살펴보도록 하겠습니다. 접근자/설정자 자동 생성 제일 먼저 살펴볼 어노테이션은 @Getter와 @Setter 입니다.아마 Lombok에서 가장 많이 사용되는 어노테이션일 텐데요.예를 들어, xxx라는 필드에 선언하면 자동으로 getXxx()(boolean 타입인 경우, isXxx())와 setXxx() 메소드를 생성해줍니다. @Getter @Setter private Continue Reading
자바 예외처리 DarkKaiser, 2015년 1월 7일2023년 9월 6일 출처 : http://hiddenviewer.tistory.com/103 예외처리는 객체지향 프로그래밍을 지원하는 언어에서 에러를 처리하기 위한 메커니즘이다. 전통적인 절차지향 언어에서는 함수의 반환값을 통해 에러 유무를 판단하였다. 매번 반환값을 검사하는 작업은 상당히 번거롭고, 그 반환값의 의미 또한 프로그래머가 인지하기 어려운 형태여서 에러처리가 불편하였다. 반면 예외처리 방식은 예외가 발생하면 그에 대한 정보를 얻을 수 있고, 제어 흐름 Continue Reading
Java 예외(Exception) 처리에 대한 작은 생각 DarkKaiser, 2015년 1월 7일2023년 9월 6일 출처 : http://www.nextree.co.kr/p3239/ 일상생활에서도 기본적인 것은 고민하지 않고 습관처럼 사용하는 경우가 있다. 초급 개발자인 나에게 ‘예외(Exception)’이 바로 그런 것이었다. 처음 JAVA수업 때 강사님께 “왜 로직을 try문으로 감싸고, 또 catch(e)는 무엇인가요?”라는 질문을 한 적이 있다. 돌아온 대답은 “이렇게 안하면 에러가 나니까.”였다. 나는 이것을 안 하면 어떤 일이 벌어지는지 언제 어떻게 사용해야 Continue Reading
어노테이션 사용하기 DarkKaiser, 2015년 1월 7일2023년 9월 6일 출처 : http://hiddenviewer.tistory.com/96 Annotation을 실제로 사용하는 예제를 알아보자. 첫번째 예제는 UseCase라는 어노테이션을 정의한다. 이 어노테이션은 id와 description이라는 값을 멤버로 갖으며 각각 기능번호와 기능에 대한설명을 나타낸다. Password 검사와 관련된 클래스에스는 각 메소드에 UseCase 어노테이션을 사용하여 메서드들이 어떤 유스케이스를 구현하고 있는지를 표시한다.나중에 모든 유스케이스를 구현하는 모든 메소드들이 잘 구현되었는지 확인하기 위해 UseCaseTracker Continue Reading
어노테이션(Annotation) DarkKaiser, 2015년 1월 7일2023년 9월 5일 출처 : http://hiddenviewer.tistory.com/88 프로그래밍을 하면서 @Override 와 @Test와 같은 어노테이션들을 많이 사용했지만, 그 중요성이나 의미를 깊이 있게 생각해보지는 못했었다. 단순히 컴파일러에게 알려주기 위한 표식정도로 생각했었다. 그런데 Spring Roo 와 Spring3.0 과 같은 최신 프레임웍들의 변화 경향을 보면, 어노테이션을 적극활용하는 쪽으로 변화되고 있다. 어노테이션을 사용하여 코드의 작성량도 한결 줄어들었다고 한다. 어노테이션들의 Continue Reading
가비지컬렉터 모니터링, VisualGC 사용하기 DarkKaiser, 2012년 1월 13일2023년 9월 5일 visualgc는 sun에서 제공하는 jvm 모니터링 툴이다. 다운로드 : http://java.sun.com/performance/jvmstat/ 사용방법은 간단하다. 1. JVMSTAT_HOME,JVMSTAT_JAVA_HOME 환경변수를 추가 bat/visualgb.bat 파일에 추가해줘도 되고 시스템 환경변수에 추가해줘도 된다. 2. %JAVA_HOME%/bin 디렉토리에 jps 명령으로 프로그램 ID를 확인 3. visualgc.cmd 프로그램ID – jstat와 visualgc는 리소스 부화가 발생하므로 실 운영서버에 사용하기에는 적합하지 않다고 한다. 운영 전 테스트단계에 Continue Reading
Java Garbage Collection DarkKaiser, 2012년 1월 12일2023년 9월 5일 출처 :http://helloworld.naver.com/helloworld/1329 지극히 개인적이고 주관적인 판단 기준을 먼저 밝힌다면, 가비지 컬렉션(Garbage Collection, 이하 GC)에 대해 잘 알고 있을수록 실력이 좋은 Java 개발자라고 생각합니다. GC 과정에 관심을 가질 정도라면 규모가 일정 이상인 애플리케이션을 제작해 본 경험이 있을 것입니다. 또, 어떤 GC 알고리즘을 선택할 것인지 고민할 정도면 스스로 제작한 애플리케이션의 특징을 Continue Reading
오라클(oracle)과 자바(java)와 연동 DarkKaiser, 2011년 7월 25일2023년 9월 5일 참고 : http://dont.pe.kr/tt/49 우선 오라클과 자바와 연동하기 위해서는 오라클용 JDBC가 있어야합니다. 이것은 오라클을 설치하게 되면 오라클 폴더에 jdbc라는 폴더가 있습니다. 버전마다 틀린데 9.0기준에는c:\oracle\ora90\jdbc\lib 폴더에 있습니다. 여기에 있는 jar파일들을 자바와 연결된 lib폴더에 복사를 합니다. 뭐 예를 들어 JAVA_HOME에 jre\lib\ext 폴더라든지 이런 곳에 복사를 해둡니다. OracleConnect.java import java.sql.*; public class oracleconnect Continue Reading
SAX를 이용한 Java XML 샘플 코드 DarkKaiser, 2010년 5월 12일2023년 9월 6일 import java.io.*; import org.xml.sax.*; import org.xml.sax.helpers.*; import javax.xml.parsers.*; public class SaxSample { public static void main(String[] args) { // SAX를 준비한다. SAXParser saxParser = null; try { SAXParserFactory saxFactory = SAXParserFactory.newInstance(); saxParser = saxFactory.newSAXParser(); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } // 핸들러를 작성한다. Continue Reading