Programing (404) 썸네일형 리스트형 Golang "Hello, World" 앞으로 Go 언어를 사용할 예정이라 미리 맛보기로 헬로우 월드를 해본다.Go 프로그래밍 언어고 언어 사이트: https://golang.org/ - HTTP/1.1 301 → https://go.dev/2009년 11월 구글에서 최초 발표2012년 3월에 정식 발표최신버전: 1.24.0 at 2025-02-11소스코드(BSD): https://github.com/golang/go추가적으로 Go언어를 사용하는 사람을 고퍼(Gopher)라고 부른다.Tiobe indexTiobe index를 살펴보니 현재 8위에 랭크되어 있었다. 현재 주력으로 사용하고 있는 Kotlin 언어가 23위인 것을 보았을 때 한국에서는 모르지만 전 세계적으로 수요가 있다는 것을 알았다. IDE기존에 JetBrains의 도구들을 사용.. 메시지 템플릿 방식 및 구현 기술 조사 존 벤틀리의 생각하는 프로그래밍(원서명: Programming Pearls)의 컬럼3에 "폼 레터 프로그래밍"이 있다.일종의 메시지를 구성하는 템플릿에 대한 이야기이다.2022년 메시지 발송 관련 개발을 하면서 메시지 템플릿을 어떻게 할지 조사한 적이 있었다. 결과적으로는 "{{ mustache }}" 형태로 변수를 치환하는 Moustache 문법 방식을 채택했다.비개발자들도 템플릿 문법에 거부감없이 사용할 수 있어야 했던 것이 가장 큰 이유였다.기존의 마케터 분들이 사용하는 Braze의 Webhook Templates과 유사했기에 추가적인 학습 비용을 낮출 수 있었기 때문이다.물론, {% Directives %} 를 사용하기도 한다.구현체로는 Pebble Templates을 사용했다. Java, Kot.. 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.. [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)을 줄 수 있는 인터페이스를 준비해야 했다.인프라적인 지원이 필요했는.. [Spring] @Retryable과 @Transactional 는 순서에 따라 동작을 다르게 한다? 금주에 확인한 [Spring] 중첩된 @Transactional의 readOnly 동작 확인 관련해서 인터넷에서 찾아보다가 순서에 대한 글들을 발견했다.[끄적끄적] @Transactional 안에서 retry 사용을 주의하세요 ✔스프링 @Retryable 과 @Transactional의 주석 순서에 따른 프로세스 차이 ❓1번 글은 트랜잭션 안에서 재처리 처리되는 부분이 문제가 될 수 있겠다는 점에서는 동의를 했다.2번 글의 @Retryable과 @Transactional 는 순서에 따라 동작을 다르게 한다는 글을 보고 정말로 그런지 궁금해졌다. 왜냐하면 만약 '내가 프레임워크 개발자라는 관점'으로 생각해보았을 때, 만약 Annotation의 선언 순서에 따라 동작이 달라지도록 구현을 했다면개발자들이 예측.. 이전 1 2 3 4 ··· 51 다음