일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- 위상정렬
- 유니온 파인드
- 완전탐색
- 플로이드-와샬
- 수학
- 문자열
- 구현
- Kotlin
- java
- 후니의 쉽게 쓴 시스코 네트워킹
- 그리디
- 동적계획법
- 투 포인터
- dfs
- 에라토스테네스의 체
- 프로그래머스
- Network
- JUnit 5
- 세그먼트 트리
- swea
- 백준
- BFS
- 이분탐색
- Effective Java
- mst
- 알고리즘
- 백트래킹
- CS
- 시뮬레이션
- 스택
목록전체 글 (291)
반갑습니다!
싱글턴(singleton)이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말함 ex) 함수와 같은 무상태 객체, 설계상 유일해야 하는 시스템 컴포넌트 클래스를 싱글턴으로 만들면 이를 사용하는 클라이언트를 테스트하기 어려움 타입을 인터페이스로 정의해서 만든 싱글턴이 아니면 싱글턴 인스턴스를 가짜(mock) 구현으로 대체할 수 없음 생성 방법 1 public static 멤버를 final 필드로 두는 방법 public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() { ... } public void leaveTheBuilding() { ... } } private 생성자는 Elvis.INSTANCE 를 초기..
정적 팩터리와 생성자는 선택적 매개변수가 많을 때 적절히 대응하기 어렵다는 단점이 있다 대안 1: 점층적 생성자 패턴(telescoping constructor pattern) 점층적 생성자 패턴(telescoping constructor pattern)을 사용해서 해결할 수 있지만, 매개변수 개수가 더 늘어나면 클라이언트 코드를 작성하거나 가독성이 떨어진다는 한계가 있음 ex) 원하는 매개변수를 모두 포함한 생성자 중에서 가장 짧은 것을 선택해야함 Nutritionfacts cocaCola = new NutritionFacts(240, 8, 100, 0, 35, 27); public class NutritionFacts { private final int servingSize; // (ml, 1회 제공..
클래스는 생성자와 별도로 정적 팩터리 메서드 (static factory method)를 제공할 수 있다. public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 장점 이름을 가질 수 있다 생성자는 반환될 객체의 특성을 제대로 설명하지 못함 정적 팩터리는 이름만 잘 지으면 반환될 객체의 특성을 쉽게 묘사할 수 있음 ex) BigInteger(int, int Random) vs BigInteger.probablePrime() 후자가 값이 소수인 BigInteger 를 반환한다는 의미를 더 잘 설명함 한 클래스에 시그니처가 같은 생성자가 여러 개 필요하다면 정적 팩터리 메서드를 사용하자 시그니처: 메서드명, 파..
테스트 이름 표기하기 테스트를 실행시키면 메소드 이름으로 테스트가 진행되는 것을 볼 수 있다. 때문에 메소드 이름이 길어질수록 가독성이 떨어진다는 단점이 있다. 이를 보완하기 위해서 JUnit 5에서는 테스트의 이름을 표시할 수 있는 기능을 제공한다. Java에서는 메소드 이름을 Camel 표기법으로 작성한다. 하지만 이는 가독성 측면에서 봤을 때 Snake 표기법보다 떨어진다. 이 때문에 테스트 코드를 작성할 때는 Snake 표기법으로 작성한다. @DisplayNameGeneration 이 Annotaion은 DisplayNameGenerator 클래스에 구현된 몇 가지 옵션을 통해 테스트의 가독성을 올려준다. Standard : 기본 JUnit 5의 이름 생성과 동일 ReplaceUnderscores..
테스트를 작성하는 자바 개발자 90% 이상이 사용하는 JUnit에 대해서 알아보도록 하자. 해당 포스트에서는 가장 최신 버전인 JUnit 5를 기준으로 한다. 구조 우선 JUnit 5가 어떻게 구현되어있는지 간단하게 알아보자. JUnit 5는 이전 버전의 JUnit들과 다르게 여러 개의 모듈로 구성되어있다. 공식 가이드에서는 JUnit 5를 다음과 설명한다. JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage 즉, JUnit 5는 JUnit Platform과 JUnit Jupiter, JUnit Vintage라는 3개의 모듈로 구성되어 있다. JUnit Platform JUnit Platform은 JVM 환경에서 테스트 프레임워크를 시작할 수 있는 기초 ..