분석 ➡ 설계 (UML, E-R 다이어그램) ➡ 개발 ➡ 테스트 (QA) ➡ 배포 ➡ 운영 순서로 요구사항이 처리됩니다.
Junit 이란 ?
단위 테스트를 작성하고, 실행하기 위한 테스트 프레임 워크입니다.
자바에서는 Assertions.assertj 와 Assertions.junit 을 지원합니다.
🙋♂️
Assertions.assertj의 라이브러리의 일종인Assertions.assertThat()은assertThat()을 사용하면 가독성과, 유연성 및 테스트 코드를 작성하는데 편리하여 많이 사용합니다.
@Test 어노테이션을 사용함, .isEqualsTo() 등 다양한 메소드 제공 @Test
void 실행_메시지() {
String compareMessage = "숫자를 입력해주세요 : ";
String requestNumberMessage = view.requestNumberMessage();
assertThat(compareMessage).isEqualTo(requestNumberMessage);
}
재귀 호출이란 ?
메서드가 자기 자신을 호출하는 것을 말합니다. 즉, 메서드 내부에서 자신을 호출하여 작업을 수행합니다.
코드를 통해 설명 하겠습니다.
public class Factorial {
public int calculate(int n) {
// 종료 조건: n이 0이면 1을 반환
if (n == 0) {
return 1;
}
// 재귀 호출: n과 n-1을 곱한 값을 반환
// 종료 조건으로 수렴하는것을 볼수 있음
return n * calculate(n - 1);
}
public static void main(String[] args) {
Factorial c = new Factorial();
int result = c.Factorial(5);
System.out.println(result); // 출력 : 120
}
}
재귀 호출의 중요 체크 사항
- 재귀 호출이 멈추는 조건을 정의합니다.
- 이는 무한 반복을 방지합니다.
- 메소드 호출 단계에서 수행되어야 할 코드를 작성합니다.
자기 자신의 메소드를 호출하여 작업을 반복합니다.
❗❗ 이때 입력이 점차 작아져야 하며, 종료 조건으로 수렴해야됩니다.
✔ 메소드를 만들어 기능을 구현합니다.
public String print() {
return "Hello World!";
}
✔ 메소드를 만들어 사용하지않고,
괄호 () 와 화살표 -> 를 이용해 메소드를 선언합니다.
(매개변수, 매개변수, ... ) -> { 실행문 ... }
📢 예시
() -> {System.out.println("안녕하세요"}
Runnable runnable = () -> {
System.out.println("Hello World!");
};
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(2, 3, 4, 5, 6, 7, 8, 9, 10);
for (Integer number : numbers) {
if (number % 2 == 0) {
System.out.println(number);
}
}
}
}
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(2, 3, 4, 5, 6, 7, 8, 9, 10);
numbers.stream() // 스트림으로 변환
.filter(number -> number % 2 == 0) // 짝수를 필터링 하는 조건
.forEach(System.out::println); // forEach를 통해 원소 출력
}
}
.stream(): 스트림으로 변환
.filter(조건): 필터링 하는 조건을 작성
.forEach(출력): 반복할 로직
- 불필요한 반복문과 조건문이 줄어 코드가 간결해지고 가독성이 향상됩니다
- 코드 재사용과 유지 보수성을 높일수 있습니다.
📍 ( 단점으로는 작성 방법을 알아야 한다는 점이다. )
📍 ( 디버깅이 어려워 남발하지는 않는것이 좋습니다. )