테스트 코드 개념 익히기테스트 코드개발자가 작성한 코드가 의도대로 동작하는지예상치 못한 문제가 없는지 확인하기 위해 작성하는 코드장점유지보수성 증대코드 수정시에 기존 기능이 제대로 작동하는지 걱정 X테스트 코드?프로젝트의 test 디렉터리에 작성일반적으로 given-when-then 패턴을 사용한다.given-when-then 패턴given테스트 실행을 준비하는 단계필요한 데이터를 설정하거나 객체 초기화when테스트를 진행하는 단계실제 코드의 메서드를 호출한다.then테스트 결과를 검증하는 단계반환된 결과나 객체의 상태를 확인한다.@DisplayName("새로운 메뉴를 저장한다.") @Test public void saveMenuTest() { // given : 메뉴를 저장하기 위한 준비 과정 fina..
AssertJ로 검증문 가독성 높이기기본적인 JUnit 검증문의 한계JUnit 을 사용한 검증문은 기댓값과 비교값이 구분이 명확치 않음.코드의 가독성이 떨어지고, 대규모 프로젝트에서 실수가 발생한 여지가 있음.Assertions.assertEquals(a + b, sum);위에서 기댓값과 비교값이 구분이 되십니까??가독성 향상assertThat(a + b).isEqualTo(sum);a + b 의 결과가 sum 과 같아야 한다는 것을 알 수 있음.주요 메서드와 사용법📌 isEqualTo(A)설명: A 값과 같은지 검증합니다.📌 isNotEqualTo(A)설명: A 값과 다른지 검증합니다.📌 contains(A)설명: A 값을 포함하는지 검증합니다.📌 doesNotContain(A)설명: A 값을 포함하지..
package com.example.springboot3.test; import com.example.springboot3.MemberRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springfram..
회사의 웹 사이트가 사용자에게 많은 이미지를 보여줌.그로 인하여 페이지의 로딩 시간이 길어져서 UX 가 저하됨.프록시 패턴으로 이미지 로딩을 최적화 가능구현공통 인터페이스public interface Image { void display(); }실제 이미지 클래스public class RealImage implements Image { private String fileName; public RealImage(String fileName) { this.fileName = fileName; this.loadFromDisk(); } private void loadFromDisk() { System.out.println("Loalding " + fileName); } @Override public void d..
package org.example.알고리즘.요격시스템; import java.util.Arrays; import java.util.Comparator; import java.util.Objects; /** * packageName : org.example.알고리즘.요격시스템 * fileName : Solution * author : ipeac * date : 2023-09-25 * description : * =========================================================== * DATE AUTHOR NOTE * ----------------------------------------------------------- * 2023-09-25 ipeac 최초 생성 ..
package org.example.알고리즘.두스티커; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.text.MessageFormat; import java.util.Objects; import java.util.StringTokenizer; /** * packageName : org.example.알고리즘.두스티커 * fileName : Main * author : ipeac * date : 2023-09-24 * description : * =============================..