분류 전체보기

·백엔드/Spring
Spring Batch에서 PostgreSQL Upsert 처리하기기존 프로젝트에서는 Spring Batch의 Chunk 방식을 사용하여 데이터를 처리해왔으나, 새로운 요구사항에 따라 데이터가 이미 존재할 때는 업데이트하고, 존재하지 않을 때는 삽입하는 Upsert 작업이 필요해졌습니다. Chunk 방식은 주로 대용량 데이터를 처리하고 데이터 변환이 필요한 경우에 적합하지만, 특정 로직(Upsert)에 맞춰 단일 작업을 수행하는 데는 Tasklet 방식이 더 유리하기 때문에 Tasklet 방식으로 전환하여 Upsert를 구현하게 되었습니다. Upsert 란?데이터베이스에 존재하지 않는 경우 삽입하고, 존재하는 경우 업데이트하는 방식입니다. 기존 Chunk 방식 @JobScope @Bean ..
·환경개선/JPA
소개개발 과정에서 유지보수성과 확장성을 고려하는 것은 매우 중요합니다. 특히, 시스템이 커지고 복잡해질수록 코드의 일관성과 가독성은 유지보수의 핵심 요소가 됩니다. 이번 글에서는 알림 코드 관리 문제를 Enum Converter를 활용해 해결한 사례를 소개합니다. 이 방법을 통해 알림 코드의 관리 효율성을 높이고, 유지보수의 편의성을 극대화할 수 있었습니다.  문제프로젝트에서 알림 코드가 문자열(String) 타입으로 관리되고 있었습니다. 문제는 이 코드들이 구체적으로 어떤 알림을 발생시키는지 한눈에 파악하기 어렵다는 것이었습니다.데이터베이스나 문서를 보지 않고서는 코드가 무엇을 의미하는지 알기 힘들었으며, 문서조차 최신 상태로 유지되지 않아 정확성을 보장할 수 없었습니다.이러한 상황에서 알림 코드를 수..
·백엔드/Java
Maven Central 포털의 Gradle 플러그인을 사용한 방식으로 라이브러리를 배포하는 방법을 정리한 글입니다.2024년 3월 12일부터 issues.sonatype.org는 폐쇄되어 모든 등록은 중앙 포털을 통해 이루어지도록 변경되었습니다. 기존 Nexus repository(OSSRH)로 올리는 방식을 사용하던 사용자는 기존 방식을 그대로 사용할 수 있지만, 신규 사용자라면 Maven Central을 통해서 라이브러리를 배포해야 합니다.1. Maven Central 계정 설정따로 도메인이 존재하는 경우 지침서에 따라 Namespace를 등록 하시면 됩니다. 참고로 github는 io.github.사용자이름 형식입니다.아래의 공식 홈페이지에 github 소셜 로그인을 하면 번거로운 작업 없이 Na..
·백엔드/Test
TDD란 Test Driven Development의 약자로 테스트 주도 개발이라고 합니다. 반복 테스트를 이용한 소프트웨어 방법론으로 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현합니다. TDD에 대해 알아보기 전에 전통적인 개발 방식은 코드를 어떤 순서로 작성하는지 TDD와 비교해 무엇이 다른지 알아봅시다. 전통적인 개발 방식(Traditional Development) 전통적인 개발 방식은 위와 같이 1. 애플리케이션 구상 → 2. 코드 작성 → 3. 테스트 코드 작성 순서로 애플리케이션을 개발합니다. 이미 코드를 먼저 작성하였기 때문에 여러 가지 많은 이유로 테스트 코드 작성을 하지 않거나 아예 작성하지 않는 경우도 많이 볼 수 있습니다. 이러한 흐름을 ..
·백엔드/Test
단위 테스트는 일반적으로 실행 순서에 의존해서는 안 되지만 특정 상황에서 실행 순서를 적용해야 하는 경우가 있습니다. 예를 들어 테스트 순서가 중요한 통합 테스트나 기능 테스트를 작성해야 할 경우입니다. 먼저 간단한 테스트 코드를 작성하고 실행해 보겠습니다. 순서를 학습하기 위한 예제라 테스트 메서드 내용은 생략하겠습니다. public class OrderTest { @Test void 가_테스트() { } @Test void 나_테스트() { } @Test void 다_테스트() { } @Test void 라_테스트() { } @Test void 마_테스트() { } } 테스트 클래스에 작성된 순서로 나오지 않는다는 것과 가나다 순서도 아닌 것을 확인할 수 있습니다. 실제 Junit 공식 문서를 확인해..
·백엔드/Test
테스트 코드를 작성하다 보면 각각 중복되는 작업이 많이 생깁니다. 예를 들면 각 테스트 전에 테스트 수행에 필요한 객체를 만들거나 테스트 데이터를 초기화하는 작업 등이 있습니다. JUnit은 이러한 중복 작업에 대해 편리하게 작업이 가능하도록 라이프 사이클 메서드 어노테이션을 제공합니다. @BeforeEach 테스트 메서드 전에 실행됩니다. 테스트 전에 필요한 객체를 생성하거나 테스트 데이터 설정에 자주 사용합니다. @AfterEach 테스트 메서드 후에 실행됩니다. 테스트 후에 테스트 데이터를 다시 초기화 하는 작업에 많이 사용됩니다. 실행 순서 다이어그램을 먼저 보여드리고 코드로 어노테이션 예시를 보여드리겠습니다. @BeforeEach를 어떤 상황에 적용 가능한지 코드를 통해 보여드리면 // @Bef..
dami97
'분류 전체보기' 카테고리의 글 목록 (9 Page)