이제 앞에서 만들었던 요구사항을 만족하는 테스트 코드를 작성해보자. Inventory 만들기 가로, 세로, 높이 냉장, 냉동, 상온(타입) 총 저장 수량 현재 수량 할일목록 Inventory의 크기를 알 수 있어야 한다. Inventory의 타입을 알 수 있어야 한다. 총 저장 수량을 알 수 있어야 한다. 현재 저장된 수량을 알 수 있어야 한다. 첫 번째 InventoryTests TODO Inventory의 크기를 알 수 있어야 한다. Inventory의 타입을 알 수 있어야 한다. 총 저장 수량을 알 수 있어야 한다. DONE package com.kkoon9.inventoryTDD; import org.junit.jupiter.api.Assertions; import org.junit.jupiter..
스프링에서 제공하는 spring-boot-starter-test 디펜던시에서 JUnit과 같은 Test 라이브러리를 제공한다. plugins { id 'org.springframework.boot' version '2.7.0-M1' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.kkoon9' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() maven { url '' } } dep..
TDD란 프로그램 작성보다 테스트 코드를 먼저 작성하는 개발 방법론이다. TDD의 목표 작동하는 깔끔한 코드 TDD의 원칙 자동화된 테스트가 실패한 경우만 새로운 코드를 작성한다. ⇒ 이미 작성된 코드를 변경하지 말라는 뜻에서 있는 원칙 중복을 제거한다. ⇒ 리팩토링의 개선이 있다는 의미 실패하는 테스트를 작성하기 전엔 코드를 작성하지 않는다. 실패하는 테스트 코드를 한 번에 하나 이상 작성하지 않는다. ⇒ 하나의 코드는 하나의 상황에만 적용된다는 의미 실패하는 테스트를 통과하기에 충분한 정도를 넘어서는 코드를 작성하지 않는다. ⇒ 과하게 (x) ex) 곱하기 테스트 코드에는 곱하기 기능만 수행(제곱, 세제곱 등을 포함하지 말라) TDD 개발 방법론 flow 실패하는 테스트 코드 작성 (실패하는 테스트 ..
이 글에서는 정리한 정규표현식 목차와 메타 문자 및 수량자를 정리할 예정이다. 기본 메타 문자 . : 모든 문자와 일치 | : 왼쪽 문자 혹은 오른쪽 문자와 일치 [ ] : 문자 집합 구성원 중 하나와 일치 [^] : 문자 집합 구성원을 제외하고 일치 : 범위 정의 ex) 0-9 \ : 다음에 오는 문자를 이스케이프 수량자 : 문자가 없는 경우나 하나 이상 연속하는 문자 찾기 *? : lazy * 문자 : 문자 하나 이상 찾기 +? : lazy + 문자 ? : 문자가 없거나 하나인 문자 찾기 {n} : 정확히 요소와 n번 일치 {m,n} : 요소와 m에서 n번 일치 {n, } : 요소와 n번 이상 일치 {n,}? : lazy {n,} 위치 지정 ^ : 문자열의 시작과 일치 (\A) $ : 문자열의 끝과 ..
예제 코드는 모두 Java 언어를 사용한다. 전방탐색 전방탐색(lookahead) 패턴은 일치 영역을 발견해도 그 값을 반환하지 않는 패턴을 말한다. 전방탐색은 실제로는 하위 표현식이며, 하위 표현식과 같은 형식으로 작성한다. 전방탐색 패턴의 구문은 ?=로 시작하고 등호(=) 다음에 일치할 텍스트가 오는 하위 표현식이다. 일부 정규 표현식 문서에서는 일치하는 영역을 반환하는 동작을 표현할 때 consume이라는 용어를 쓴다. 이럴 경우 전방탐색은 not consume이라고 말한다. 프로토콜은 콜론(:)을 기준으로 호스트 이름과 분리되어 있다. 프로토콜을 찾는 정규표현식을 만들어보자. public class code { public static void main(String[] args) { String ..
예제 코드는 모두 Java 언어를 사용한다. 한 문장이 있고, 이 문장 안에 반복해 나오는 문자, 바로 실수로 같은 단어를 두 번 입력한 오자를 모두 찾고 싶다고 가정해보자. 두 단어가 일치하는지 알려면 먼저 나온 단어가 무엇인지 반드시 알고 있어야 한다. 역참조는 정규 표현식 패턴으로, 앞서 일치한 부분을 다시 가리킨다. (먼저 일치한 단어를 만한다.) 다음 예제에는 반복해 나오는 단어가 세 가지 있고, 이 세 단어를 모두 찾아야 한다. public class code { public static void main(String[] args) { String regex = "[ ]+(\\\\w+)[ ]+\\\\1"; Pattern pattern = Pattern.compile(regex); String[..
예제 코드는 모두 Java 언어를 사용한다. 텍스트 영역 내에 특정 위치에서 텍스트를 찾아야 할 때도 있다. 그러려면 위치 찾기가 필요하며, 이번에 배워볼 것이다. 경계 지정하기 위치 찾기는 텍스트 문자열 안에서 반드시 일치해야 하는 위치를 지정할 때 사용한다. 경계를 사용하거나 패턴 앞이나 뒤에 특정한 위치 혹은 경계를 나타내는 메타 문자를 사용하면 된다. 단어 경계 지정하기 가장 흔하게 쓰는 방법 중 하나로, \b로 표시하는 단어 경계이다. 단어 경계라는 이름에서 유추해 볼 수 있듯이, \b는 단어의 시작이나 마지막을 일치시킬 때 사용한다. public class code { public static void main(String[] args) { String regex = "\\\\ba[0-9]{2..
예제 코드는 모두 Java 언어를 사용한다. 앞서 정규 표현식 패턴은 문자 하나만 찾는 패턴만 살펴보았다. 이제 문자를 여러 개 찾는 방법을 살펴볼 예정이다. 하나 이상의 문자 찾기 문자나 집합에 속한 요소를 하나 이상 찾으려면 간단히 문자 뒤에 더하기(+) 문자를 붙이면 된다. 더하기(+)는 문자가 하나 이상일 때 일치한다. public class code { public static void main(String[] args) { String regex = "a[0-9]+"; Pattern pattern = Pattern.compile(regex); String[] strs = { "a", "a1", "a12", "1a" }; for(String str : strs) { Matcher matcher ..
- Total
- Today
- Yesterday
- 프로그래머스
- MSA
- Kotlin
- kkoon9
- 디자인 패턴
- Effective Java
- 객체지향
- 디자인패턴
- kotest
- 이팩티브 자바
- 클린 코드
- Java
- 클린 아키텍처
- Algorithm
- Spring
- 이펙티브 자바
- AWS
- Spring Boot
- C++
- 정규표현식
- BAEKJOON
- 백준
- node.js
- JPA
- BOJ
- 테라폼
- programmers
- 코테
- Olympiad
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |