Spring-Java59 단위 테스트(@Mock) 세 줄 요약- 현재 개발 중인 코드가 의존하는 코드는 모킹을 통해 처리할 수 있다.- 목 객체는 그 내용이 없더라도 테스트할 수 있다.- when과 thenResult를 통해 목 객체의 행동을 정의한다. 단위 테스트와 모킹 통합 테스트는 '현재 개발 중인 코드' 외에도 '현재 개발 중인 코드가 의존하고 있는 코드'까지 대상으로 실행되는 반면,단위 테스트는 '현재 개발 중인 코드' 만을 타겟으로 테스트할 수 있습니다. 통합테스트 관련 게시글 보러가기 모킹모킹은 위에서 언급한 것과 같이, 테스트 상황에서 현재 개발 중인 코드가 의존하고 있는 코드를 처리하는 기술입니다.자바에서는 모킹 라이브러리로 'Mockito'를 많이 사용합니다. @ExtendWith(MockitoExtension.class)단위 테스.. 2024. 5. 30. 통합 테스트(@SpringBootTest) 세 줄 요약- 리팩토링 과정에서 결과의 변경 유무를 테스트 코드를 통해 확인해야 한다.- @SpringBootTest는 통합 테스트에 사용되는 어노테이션으로, 두 개 이상의 클래스가 협력할 때 사용한다.- Assertion 클래스의 메소드를 통해 로그 확인없이 테스트의 통과 여부를 확인할 수 있다. 리팩토링과 테스트 코드 리팩토링리팩토링은 '동일한 입력에 대해 결과의 변경 없이 코드 구조가 개선되는 것'을 의미합니다.코드의 구조가 개선되었지만 결과 또한 변경되었다면 리팩토링이라고 볼 수 없습니다.따라서 테스트 코드를 통해 리팩토링 과정에서 결과가 변경된 건 아닌지 확인해야 합니다. 테스트 코드테스트의 종류에는 통합 테스트와 단위 테스트가 있습니다. 통합 테스트2개 이상의 클래스가 협력하여 특정 기능.. 2024. 5. 24. 인터페이스에 의존하는 Repository 세 줄 요약- domain 계층의 인터페이스를 의존하게끔 하면 실행 환경에 따른 빈을 주입받을 수 있다.- 어플리케이션 실행 시점에 주입받을 빈을 결정하기 위해 @Profile 어노테이션을 사용한다.- @Profile 어노테이션과 application.properties 파일을 매핑시켜 각 실행 환경에 따른 설정을 진행한다. 어플리케이션 실행 환경 테스트 vs 서비스테스트 환경 : 로컬 개발 환경과 마찬가지로 DB를 사용하지 않는 Repository서비스 환경 : 각종 서버 간 데이터 공유를 위해 DB를 사용하는 Repository → 인터페이스에 의존하면 이처럼 실행 환경에 따른 의존성을 주입받을 수 있습니다. 인터페이스 의존하기인터페이스에 의존하지 않으면 application 계층(Service.. 2024. 5. 9. DB를 사용하는 Repository 구성 2 세 줄 요약- DB에서 조회할 데이터가 있는 경우 BeanPropertyRowMapper를 통해 받아온다.- query() 메소드는 List 타입을 리턴하고, queryForObject() 메소드는 객체를 리턴한다.- MapSqlParameterSource를 통해 쿼리 파라미터를 Key-Value 형식으로 매핑할 수 있다. 기능 구현 (상품 조회) 해당 게시글에서 이어집니다. GetMapping조회(Read)시에 HTTP 요청은 GET 메소드를 통해 진행됩니다. query( ) / queryForObject( )CRUD 중에서 Read를 위한 메소드입니다.query( )는 List 형태로 리턴하고, queryForObject( )는 객체를 리턴합니다.update() 메소드와 마찬가지로 모두 DataA.. 2024. 5. 8. DB를 사용하는 Repository 구성 1 세 줄 요약- DB를 사용하기 위해선 스키마 및 테이블을 생성해야 한다.- ApplicationRunner를 빈으로 등록해 어플리케이션 시작과 함께 커넥션 풀을 초기화한다.- JdbcTemplate를 통해 쿼리문의 매개변수와 인스턴스 필드들을 매핑시킨다. 스키마 및 테이블 구성 상품관리 어플리케이션에 사용되는 ProductDatabaseRepository에 관한 예제입니다. DB 컨테이너는 지난 게시글에서 생성한 'some-mysql' 컨테이너를 사용합니다. 스키마(SCHEMA) 생성도커 데스크탑 실행 후 bash 쉘에 접속해 아래와 같이 입력해 스키마를 생성합니다. bash 쉘은 명령 프롬프트에서 접속해도 되지만, 간편하게 도커 데스크탑에서 바로 접속할 수 있습니다. CREATE SCHEMA pro.. 2024. 5. 3. 도커(Docker)로 MySQL 컨테이너 띄우기 세 줄 요약- 도커 데스크탑을 통해 손쉽게 도커 컨테이너를 관리할 수 있다.- WSL2에 도커 엔진을 설치하면 도커 CLI 클라이언트를 통해 도커 데스크탑 없이도 컨테이너를 생성할 수 있다.- 도커 컨테이너는 리눅스 환경에서 동작되기 때문에 bash 쉘을 통해 명령어를 입력한다. 도커 데스크탑과 도커 엔진 도커 데스크탑(Docker Desktop)도커 데스크탑은 각 OS 환경에서 컨테이너화된(containerized) 어플리케이션을 구축하고 공유할 수 있도록 해줍니다.GUI를 함께 제공해 한 번의 클릭으로 보다 쉽게 컨테이너, 어플리케이션, 이미지 등을 설치하고 관리할 수 있습니다. 포함 요소도커 데스크탑에는 아래와 같은 요소들이 포함되어 있습니다.Docker EngineDocker CLI clie.. 2024. 5. 1. 이전 1 2 3 4 ··· 10 다음