어느날 우연히 이메일로 AWS Industry Week 2023이 개최된다는 소식을 접해들었고강연 목록을 보니 토스, 마켓컬리, 티빙 등등 이름을 들으면 모두가 알만한 기업들의 실제 클라우드 적용 사례를 들어볼 수 있을거 같았고무엇보다 단순히 신청만 하면 무료로 참가할 수 있어서 방문을 결심했다. AWS Industry Week 방문행사 장소인 코엑스 그랜드볼룸에 방문을 했습니다.코엑스 그랜드볼룸 위치가 생각보다 안쪽에 있어서 찾아가는데 약간 애를 먹었네요;; 행사장에 들어서면 세션을 듣는곳 말고도 각 산업별로 부스가 따로 마련이 되어 있었습니다.이번 행사의 경우 리테일, 통신 및 미디어, 금융 및 핀테크, 제조, 하이테크 총 5개의 분야에 대한 부스가 존재하였는데요부스에 방문하면 기업의 AWS 사용 사..
스프링 배치를 개발하다보면 메타데이터 테이블을 다루게 되고 그중에 한 예로 BATCH_JOB_EXECUTION 테이블은 아래와 같이 구성되어 있습니다. 필드 중에 STATUS, EXIT_CODE 두개의 필드가 존재하는데요. (BATCH_STEP_EXECUTION 테이블에도 동일하게 두개의 필드가 존재합니다) STATUS와 EXIT_CODE가 배치 실행시 사용되는 값에 어떤 차이가 있는지에 대해 궁금증이 생겼습니다. 그래서 이번에는 STATUS, EXIT_CODE 두개의 필드에 대해 공부해보겠습니다. STATUS 란? STATUS는 배치의 실행 상태를 나타내는 값입니다. 주로 배치가 실행 중인지, 완료되었는지를 나타냅니다. 스프링 배치에서는 BatchStatus라는 열거형 클래스를 통해 값을 다루고 있는데..
스프링 배치에서는 메타 데이터 테이블을 필수로 지정해 두었습니다. 그래서 스프링 배치를 실행할려면 메타 데이터 테이블을 생성해줘야 하는데요. 어떤 데이터들을 저장하길래 스프링 배치에서 필수로 지정하였을까요?? 스프링 배치의 메타 데이터에서는 아래와 같은 다양한 배치 어플리케이션의 정보를 얻을 수 있습니다. 이전에 실행한 Job이 무엇인지 최근 실패한 Job의 Batch Parameter가 무엇이었는지 실패한 Job을 다시 실행한다면 어디서 부터 시작하면 될지 만약 메타 데이터를 저장하고 있지 않다면 최근에 실행한 배치 Job이 어느지점에서 실패하였는지 알기가 어렵고 이러한 배치 정보를 얻기 위해 로깅 시스템을 개발자가 직접 구현해야 합니다. 배치의 주요 비즈니스 로직구현보다 부가적인 로깅작업구현에 더 많..
최근에 읽은 책은 “만들면서 배우는 클린 아키텍처” 라는 책입니다. https://www.yes24.com/Product/Goods/105138479 만들면서 배우는 클린 아키텍처 - 예스24 우리 모두는 낮은 개발 비용으로 유연하고 적응이 쉬운 소프트웨어 아키텍처를 구축하고자 한다. 그러나 불합리한 기한과 쉬워보이는 지름길은 이러한 아키텍처를 구축하는 것을 매우 어렵게 www.yes24.com 다른 유명한 “클린 아키텍처”의 경우 책이 두꺼워서 선뜻 읽기가 겁이 나는데 해당 책은 대략 150페이지 정도의 분량으로 “클린 아키텍처”를 읽기 전 거쳐가는 단계로 가볍게 읽어보기 좋다고 생각하여 읽어 보았습니다. 서평은 개인적인 생각으로 작성하였으니 책을 구매하는데에 참고만 하시면 좋을것 같습니다. 책 서평 ..
Test 코드 공부시리즈 마지막 글입니다. 이번에 공부해볼 것은 postman 을 이용해 시나리오테스트를 해보는 것입니다. 테스트 코드 공부 시리즈 1. AssertJ를 이용한 테스트 코드 작성 2. JUnit의 Parameterized 어노테이션 사용하기 3. Spring AutoConfigure Annotation Test 4. Mockito 톺아보기 5. kotlin에 특화된 mockito-kotlin 사용하기 6. postman을 이용한 시나리오 테스트 하기 내가 로그인 서비스를 하나 운영하고 있다고 가정해보겠습니다. 로그인 서비스에서 수정사항이 있거나 신규로 추가되는 기능이 있다면 작업을 진행하고 신규 버전을 새로 배포를 진행하게 됩니다. 배포를 진행하기 전에 테스트 코드도 작성하고 여러가지 검..
문제 상황 문제상황을 재현하기 위해 먼저 Person 클래스를 하나 생성하겠습니다. class Person { fun isDeveloper(name: String, age: Int): Boolean { return true // 무조건 true를 반환 } } 만약 isDeveloper()의 파라미터를 Stub할때 동적인 값을 허용할려면 아래과 같이 사용할 것입니다. val mock = mock(Person::class.java) `when`(mock.isDeveloper(anyString(), anyInt())).thenReturn(true) 여기서 추가로 name은 "charlie"이지만 age값은 동적으로 받고 싶은 경우에 문제가 발생합니다. // NullPointerException 발생 `when..
mockito-kotlin https://github.com/mockito/mockito-kotlin GitHub - mockito/mockito-kotlin: Using Mockito with Kotlin Using Mockito with Kotlin. Contribute to mockito/mockito-kotlin development by creating an account on GitHub. github.com mockito-kotlin란 kotlin언어로 mockito를 사용하기 쉽게 헬퍼 함수(helper function)을 제공해주는 라이브러리 입니다. 기존 mockito가 Java언어를 타겟으로 만들어졌기 때문에 kotlin언어의 특성을 십분 활용할 수 없는데 mockito-kotlin ..
문제 상황 mockito-kotlin을 이용해 findByIdOrNull() 메서드를 모킹해서 테스트 코드를 작성중이었다. @Test fun `쿠폰 한건 조회`() { whenever(mockCouponRepository.findByIdOrNull(1L)).thenReturn( Coupon(id = 1L, type = CouponType.PERCENT, amount = 10, startAt = LocalDate.of(2023, 4, 12), endAt = LocalDate.of(2023, 4, 12)) ) val result = couponService.getOne(1L) assertThat(result.type).isEqualTo(CouponType.PERCENT) assertThat(result.am..
- Total
- Today
- Yesterday
- ExitStatus
- asSequence
- IntelliJ
- meta-data
- Spring
- scenario test
- WrongTypeOfReturnValue
- JUnit5
- Collection
- GSLB
- Spring Batch
- prinicipal
- Stream
- 시나리오 테스트
- A레코드
- AWS INDUSTRY WEEK
- autoconfigure
- 클린 아키텍처
- mockito-kotlin
- Parameterized
- Mockito
- java
- BatchStatus
- test
- datasource
- mockK
- assertj
- spring data jpa
- kotlin
- trailing comma
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |