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
Javascript에서 객체를 생성하는 방법 DarkKaiser, 2017년 9월 11일2023년 9월 4일 1. 내장 Object() 생성자 함수 이용 var foo = new Object(); foo.name = 'foo'; foo.age = 30; foo.gender = 'male' console.logg(typeof foo); console.log(foo); 2. 객체 리터럴 방식 이용 var foo = { name : 'foo', age : 30, gender : 'male' }; console.logg(typeof foo); console.log(foo); 3. 생성자 함수 이용 Continue Reading
[boost] weak_ptr DarkKaiser, 2015년 3월 20일2023년 9월 6일 출처 : http://sweeper.egloos.com/3059940 1. shared_ptr shared_ptr의 내용은 다음 링크를 참고하기 바라며, 특히 3-9 Circular reference 챕터를 자세히 읽어보기 바란다.(위 링크엔 shared_ptr의 circular reference에 대한 예제가 포함되어 있다) 2. weak_ptr shared_ptr은 자신이 참조하고 있는 객체(메모리 주소)에 대해 reference counting을 함으로써, 객체의 수명에 직접적으로 관여한다. shared_ptr 객체 Continue Reading
[boost] shared_ptr DarkKaiser, 2015년 3월 20일2023년 9월 6일 1. auto_ptr TR1이 발표되기 전까지 std::auto_ptr이 C++ Standara library의 유일한 스마트 포인터였다. 스마트 포인터의 기본적인 특성인 자신이 소멸될 때 가리키고 있는 대상에 대해 자동으로 delete 해줘 메모리 누수 걱정은 없게 작성이 되어 있다. 하지만, auto_ptr은 유일 소유권 개념이 있어서, 객체가 복사되는 순간(복사생성 또는 대입연산) 원래의 auto_ptr은 바로 NULL 처리가 되어 버린다. 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