(2022.02.21)
오늘은 페어 프로그래밍을 했다. 페어 프로그래밍은 아무래도 딴짓을 하기가 어렵다 보니 집중을 확 하게 된다. 하다가 에러가 나거나 막히는 부분들이 있을 때에도 최대한 빨리 이 문제를 해결하고 넘어가야 한다는 생각이 들어서 효율이 높아진다. 혼자서 했다면 이만큼 할 수 있었을까 생각하면서 혼자 있을 때 집중력을 끌어올리기 위해 뭘 해야 할지 고민했던 날.
오늘의 삽질들은 JUnit을 써서, 사실은 정말 간단한 테스트를 돌리는 데에서 발생했다.
Gradle? Maven? 빌드 툴이란
'withType' in 'org.gradle.api.DomainObjectCollection<T>' cannot be applied to '(java.lang.Class<org.gradle.api.tasks.compile.JavaCompile>, groovy.lang.Closure<java.lang.String>)'라는 오류가 있었다.
이거 자체는 이 링크에 나온 대로 설정에서 Editor -> Inspections -> Groovy -> Assignment Issues -> Incompatible type assigments를 해제하니까 사라졌는데, incompatible type에 대한 보고를 끄는 방식이니까 뭔가 근본적인 문제를 덮어두는 것 같다는 생각이 들었다. 기본적으로 gradle과 groovy가 어떤 역할을 하는 아이들인지 알아 둬야 다음에 쓸 때 조금이라도 이해하고 쓸 수 있을 것 같다. 아래는 그래서 찾아본 내용들.
gradle 같은 빌드 툴은 말 그대로 build, 즉 소스 코드를 프로그램으로 만드는 데 필요한 여러 작업들을 자동화해주는 툴이다. 라이브러리 등의 의존성 관리, 컴파일 링킹 등을 용이하게 하기 위해 사용된다. Ant -> Maven으로 발전하다가 요새는 gradle을 많이 사용하는 추세. Maven이 XML로 설정되는 것과 비교해 Gradle은 스크립트 언어인 Groovy를 사용해 설정을 관리하기 때문에 보다 유연하고, Maven보다 속도도 훨씬 빠르다는 장점이 있다. 아직 작은 장난감만 만들어 봐서 이런 빌드 툴이 필요한 이유가 잘은 와닿지 않는데, 프로젝트를 진행하면서 더 자세히 알아보겠다!
JUnit에서 테스트 클래스명이 Test면 문제가 생긴다!
JUnit에서 테스트를 진행하려고 했는데, 다른 건 다 해결했는데 정작 @Test 어노테이션이 동작을 안 해서 테스트 자체를 진행할 수가 없었다. JUnit 버전 문제인가? Import가 제대로 안 됐나? 하고 한참 삽질을 했는데... 어이없게도 문제는 테스트 클래스의 클래스명이 Test였던 점이었다. (출처) 그러고 나서 예제들을 보니까 다 CalculatorTest처럼 클래스 이름을 디테일하게 지었다는 걸 알게 되었다. 허무하지만 해결해서 다행!
더 공부하기
- JUnit 패키지 구조: JUnit을 써본 적이 거의 없어서, 엄청 복잡한 구조의 패키지들을 별 생각없이 import하고 하고 있다는 생각도 든다. 조금 더 제대로 알아보기!
참고자료
- 빌드 도구란?
'TIL' 카테고리의 다른 글
삽질기록 #6 Spring Boot Devtools 설정 (0) | 2022.03.02 |
---|---|
삽질기록 #5 git detached HEAD (0) | 2022.02.26 |
삽질기록 #4 자바 Scanner next()와 nextLine()의 차이 (2) | 2022.02.23 |
삽질기록 #3 일급 컬렉션, 자바 Enum (2) | 2022.02.22 |
삽질기록 #1 Git, 접근 제어자 (2) | 2022.02.18 |
댓글