이번 4주차 스터디에 내 과제도 피드백 대상에 포함되었었다.
다른 분들에 비해 많이 부족한 과제여서 민망했지만
많은 사람들이 보는 곳에 노출이 되는 만큼 더 열심히 공부해야겠다고 생각했다.
마지막에 꾸준함을 강조하셨는데 나도 계획을 세우고 꾸준히 해야지...
스터디 하면서 알게 된 것
1. Stateful 한 테스트 방법
public class StatefulTest {
private int number;
@Test
void test1() {
System.out.println(number++);
}
@Test
void test2() {
System.out.println(number++);
}
}
출력
0
0
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class StatefulTest {
private int number;
@Test
void test1() {
System.out.println(number++);
}
@Test
void test2() {
System.out.println(number++);
}
}
출력
0
1
@TestInstance 어노테이션을 이용하면 테스트 인스턴스의 라이프 사이클인 PER_METHOD 를 PER_CLASS로 지정 할 수 있다.
[추가 정리] @Order를 지정한 테스트 순서 정의까지 가능하다.
CoC
CoC가 적용이 되어져 있다면 , 적용되어져 있는 구역은 Convention(관례)에 따라 개발 시에는 별도의 설정이 필요 없다. 관례에서 벗어나는 코드’만’ 따로 설정해 주면 된다. 실제로 많은 프레임워크에서 CoC를 채택했다.
CoC가 채택되어져 있지 않다면, 여러 가지 설정들을 개발자가 일일이 만져야하는 수고로움이 수반된다. 이는 곧 생산성과 비용 문제로 직결된다고 볼 수 있다.
단점으로는 공통 관례는 프로젝트 인원 ‘모두’가 알고 있어야 한다는 것. 한 개발자가 관례를 벗어나 코드를 짠다면, CoC에서 자동으로 지원했던 다양한 처리 방식들을 개별적으로 따로 처리할 수 있게 해주어야 하는 문제가 생긴다.(물론 설정해 주지 않으면 관례에 맞춰서 다시 짜야 한다) 이러한 불상사가 생기지 않도록 프로젝트 공통의 ‘관례’를 숙지하고 있어야 한다.
출처:medium.com/@dlaudtjr07/convention-over-configuration-%EB%9E%80-694345d2447f
이 코드를 설명하시면서 CoC란 용어를 말씀하시길래 기억해 뒀었는데, 어떤 느낌인지 알 것 같다.
(자주 쓰이는 값을 Default로 설정하여, 생산성을 높이고 다른 값으로 변환 할 시에만 바꿔 빠르게 코드 구현이 가능하다는 특징이 있어 보인다)
SPOCK
- 자바 테스트 프레임워크
- BDD를 지원한다.
- 테스트 명 작성시 띄어쓰기 가능하다는 특징(장점)이 있음
ex ) def "결과 값으로 3을 반환한다"() {
given:
~~
when:
꼬리재귀
꼬리재귀가 재귀를 최적화?하기 위한 것 정도까지는 알고 있었는데 자바에서의 미지원, 실행결과를 연산에 사용하지 않
고 반환함으로써 함수의이전 상태를 유지할 필요 없도록 재귀 함수를 작성한다는 것은 이번에 스터디를 하면서 수업과
검색을 통해 알게 되었다.
재귀함수의 콜 스택이 깊어질수록 메모리 오버헤드 (스택 오버 플로우 stack overflow)가 발생하는 문제를 해결하기 위한 재귀 호출 방식을 꼬리 재귀라고 한다.
재귀함수의 실행 결과가 연산에 사용되지 않고 바로 반환되게 함으로써 이전 함수의 상태를 유지할 필요가 없도록 재귀 함수를 작성하는 것.
꼬리 재귀가 동작하려면 플랫폼에서 TCO (Tail Call Optimization)를 지원해줘야 한다.
출처:medium.com/@soyoung823/tail-recursion-%EA%BC%AC%EB%A6%AC-%EC%9E%AC%EA%B7%80-a84c2cd9a7e8
'스터디할래(Java 시리즈) > 스터디 후기' 카테고리의 다른 글
스터디 할래 11주차 후기(210130) (0) | 2021.01.30 |
---|---|
스터디 할래 10주차 후기(210123) (0) | 2021.01.23 |
스터디 할래 7주차 후기(210102) (0) | 2021.01.03 |
스터디 할래 6주차 후기(201226) (0) | 2020.12.26 |
스터디 할래 5주차 후기(201219) (0) | 2020.12.19 |