분류 전체보기 (886) 썸네일형 리스트형 메시지 템플릿 방식 및 구현 기술 조사 존 벤틀리의 생각하는 프로그래밍(원서명: Programming Pearls)의 컬럼3에 "폼 레터 프로그래밍"이 있다.일종의 메시지를 구성하는 템플릿에 대한 이야기이다.2022년 메시지 발송 관련 개발을 하면서 메시지 템플릿을 어떻게 할지 조사한 적이 있었다. 결과적으로는 "{{ mustache }}" 형태로 변수를 치환하는 Moustache 문법 방식을 채택했다.비개발자들도 템플릿 문법에 거부감없이 사용할 수 있어야 했던 것이 가장 큰 이유였다.기존의 마케터 분들이 사용하는 Braze의 Webhook Templates과 유사했기에 추가적인 학습 비용을 낮출 수 있었기 때문이다.물론, {% Directives %} 를 사용하기도 한다.구현체로는 Pebble Templates을 사용했다. Java, Kot.. [WIL] AWS RDS Aurora Cluster의 Read/Writer 연결 분리 이력 - 3가지 요약수동: 수동으로 DataSource 분기를 해서 사용하기AbstractRoutingDataSourceLazyConnectionDataSourceProxy자동 (라이브러리에 맡기기)MariaDB Java Client 2.7.12AWS Advanced JDBC Wrapper with readWriteSplitting 플러그인0. MySQL Connector/Jhttps://github.com/mysql/mysql-connector-jMVN Repository: https://mvnrepository.com/artifact/com.mysql/mysql-connector-j1. AWS JDBC Driver for MySQLhttps://github.com/awslabs/aws-mysql-jdbcMVN Rep.. Spring Cloud 2024.0.0 릴리스 Spring Boot 3.4.0이 릴리스할 때 처음 의존하는 Spring Cloud 2024.0.0이 아닌 RC1이었다.[WIL] Spring Boot 3.4.0 - JPA 통합테스트 깨짐 이슈3일전 2024년 12월 2일 2024.0.0이 릴리스되었다.릴리스 노트: https://github.com/spring-cloud/spring-cloud-release/wiki/Spring-Cloud-2024.0-Release-Notes 이제 https://start.spring.io/에서도Spring Cloud 의존이 된 경우 마일스톤용 리포지토리가 불필요하다. 이전:repositories { mavenCentral() maven { url = uri("https://repo.spring.io/mil.. [WIL] Spring Boot 3.4.0 - JPA 통합테스트 깨짐 이슈 스프링 부트를 3.3.5에서 3.4.0으로 올렸다.총 4293개의 테스트 케이스중에 15개의 에러, 1개의 실패가 발생했다. 1개의 실패는 spring-web의 DefaultResponseErrorHandler 코드의 변경으로 이루어졌다.3.3.5 업데이트글과 마찬가지로 getErrorMessage의 메시지 구성이 변경되어 깨지는 것이었다.이슈: https://github.com/spring-projects/spring-framework/pull/28958커밋: https://github.com/spring-projects/spring-framework/commit/f85c4e1ea714281c03287d1448dab9efcf81fc34Spring Cloud의 의존 버전이 2024.0.0가 아닌 202.. [WIL] Laravel 업데이트 현재 서비스 중인 PHP 프레임워크인 라라벨의 버전은 5.6.39이다.6년전인 2018년 2월 릴리스되었고 현재 마지막 버전은 2024년 3월에 릴리스한 11이다. 오래된 프레임워크 버전을 사용하다보니 여러가지 이슈가 나왔다.의존하고 있는 라이브러리들이 더 이상 업데이트가 되지 않고 심지어 개발 환경을 구축하기 위한 php 버전을 불편하게 설치해야 한다.예) homebrew - php@7.4 no longer works after icu4c 72 upgrade 이를 위해 개인이 만든 brew tab 을 이용하여 낮은 버전의 php 를 설치해야 했다.brew tap shivammathur/phpbrew upgrade shivammathur/php/php@7.4 반면 신규 개발 환경인 Kotlin + Spr.. [Spring] Boot update 3.3.4 to 3.3.5, MethodArgumentTypeMismatchException 변경 사항 확인 by 테스트 코드 지난 주 스프링 부트 버전 업데이트를 진행했다.스프링 부트 버전 변화에 따라 스프링 프레임워크 버전도 업데이트가 되었다.spring boot 3.3.4: spring framework 6.1.13spring boot 3.3.5: spring framework 6.1.14프레임워크의 기능을 테스트할 때를 알기Zarar의 블로그에 좋은 소프트웨어 개발 습관들(Good software development habits)이라는 글을 본 적이 있다.GeekNews에 "프레임워크의 기능에 대한 테스트를 하지 않기"로 변역이 되어 있어서 무조건 프레임워크의 기능을 테스트하지 말자로 들릴 수 있다. 하지만 나는 "프레임워크의 기능을 테스트할 때와 하지 말 때를 알자"로 해석했다.Know when you're test.. [Kotlin] 커버리지 측정 도구를 JaCoCo에서 Kover로 변경하다 그동안 Kotlin을 사용하면서 Java의 도구들을 코틀린 도구들로 변경해서 사용했습니다.JUnit → KotestMockito → MockK회사에서는 SonarQube의 클라우드 버전인 SonarCloud를 사용하여 정적 코드 분석을 사용하고 있었습니다.코드 품질 중 코드 커버리지는 JaCoCo의 XML 테스트 리포트를 이용하여 제공을 하고 있었습니다. 가끔 테스트를 할 수 없는 부분이나 이미 테스트가 완료되었음에도 커버가 안된다는 분석이 나와서 의아함을 느끼고 있었습니다. JaCoCo 오탐들Spring Boot의 애플리케이션을 수행하는 부분 코드를 보면 닫는 괄호 부분도 커버가 안된다고 JaCoCo에서는 표시가 됩니다. 또한 Java에는 없고 Kotlin에만 있는 value class도 어떤 경우는.. [JobRunr] 지연된 작업 기능으로 문자 메시지 상태 조회하기 2022년 8월 진행했던 프로젝트 중에 문자 메시지 발송하는 기능이 있었다.백오피스를 이용하는 직원들은 문자로 고객과 커뮤니케이션을 하는 일이 있었다.자주 사용하는 문구 기능과 더불어 시스템을 통한 메시지 발송 기능으로 시간 비용을 줄일 수 있었다.상태 조회문제는 문자 메시지 발송 후 상태 조회를 하는 방식이었다. 문자 메시지는 서드파티를 통해 수행했는데 1) 폴링 방식과 2) 콜백을 받는 방법 의 크게 두 가지 모두 제공하고 있었다.문자 메시지는 발송 즉시 상태는 곧바로 알 수 없었고 수초 이상 걸릴 수 있었다.따라서 언제 상태가 제대로 되는지는 알 수 없기에 후자 방식이 바람직했다. 하지만 콜백을 받기 위해서는 외부에서 훅(hook)을 줄 수 있는 인터페이스를 준비해야 했다.인프라적인 지원이 필요했는.. 이전 1 2 3 4 ··· 111 다음