본문 바로가기

전체 글52

Batch Test Code 작성 및 이슈 해결 1. Batch Test Code 작성 1.1 Batch 통합 테스트 QA를 위해서 가장 최적의 방법은 Test Code 작성입니다. 개발자가 입력과 출력을 하나씩 확인하는 방법이 있지만 Test Code 작성이 가장 안정적이고 편리합니다. Spring Batch에서 Unit Test를 통해 Reader Processor Writer 또한 테스트할 수 있지만, 이 글에서는 Spring Batch Step 들의 통합 테스트에 대해서만 다루도록 하겠습니다. 1.2 SpringBatch Test Lib 1.2.1 JobLauncherTestUtils Spring Batch Job을 테스트 환경에서 실행하게 만드는 Utils 클래스입니다 @SpringBatchTest 을 붙이게 되면 자동으로 JobLaunche.. 2022. 11. 11.
Hexagonal Architecture 1. Hex 아키텍처 1.1 정의 1.1.1 정의 인터페이스나 기반 요소(infrastructure/presenation)의 변경에 영향을 받지 않는 핵심 코드를 만들고, 이를 견고하게 관리하는 것이 목표로 하는 아키텍처를 의미 합니다. 견고해야하는 핵심 로직이 들어있는 영역을 도메인 영역(Domain)이라고 합니다 interface 기반의 요소는 세부 사항이라고 합니다 데이터 flow는 presentation(세부사항) -> domain(use case/domain) -> infra(세부사항) 이지만, 의존성은 세부사항 -> domain(use case/domain) 로 구성 됩니다 1.1.2 용어 Hex 아키텍처는 Application과 Domain 영역을 분리해서 보여줍니다 domain엔 주로 업무.. 2022. 10. 26.
Kotlin DSL Kotin DSL 1. DSL과 Kotlin DSL 정의 정의 1. DSL 영역 특화 언어로서 특정 영역에 대해서만 필요한 기능을 가지고 있는 언어 입니다 모든 문제를 범용적으로 풀어낼 수 있는 범용프로그래밍 언어와 특정 과업 또는 영역에 초점을 맞추고, 그 영역에 필요하지 않은 기능을 없앤 영역 특화 언어로 구분되었습니다 범용 프로그래밍 언어 : C언어. Java ...etc 영역 특화 언어: SQL, HTML ...etc 필요성 API는 사물간의 접전 간의 상호작용하게 해주는 어떤 것을 모두 표현한 말입니다. 그리고 이 interface는 유지 보수가 코드의 품질을 결정 짓습니다 코드의 가독성과 유지 보수성을 증대 시키는 방법은, 불필요한 구문이 없이 간결하고, 이름과 개념이 명확한 interface.. 2022. 10. 7.
kotest 로 Kotlin Test Code 작성하기 Kotest Junit의 단점 한눈에 given when then 구분 어려움 중복 코드 많음 -> 이부분은 하위에 중복 코드 제거 부분에서 언급하겠습니다. 테스트 스타일이 한정적 -> 단위 테스트 특화 Junit AssertJ, Mockito를 사용하면 Mocking이나 Assertions 과정에서 kotlin DSL 활용 불가 kotest 장점 nested test code의 가독성을 가져올 수 있음 DSL(Given( When( Then() ) )) 과같은 구성으로 좀더 명확하게 구분을 지을 수 있음 -> 가독성 증가 Kotlin는 멀티 플랫폼이므로 다양한 플랫폼의 스타일이 가능 당양한 test layout 제공 ex) 스칼라, 루비 ...etc kotest 단점 러닝 커브가 존재 의존성 추가 방법.. 2022. 9. 30.