Spring/DB Migrator5 [DB Migrator] 테스트주도개발 시작하기 2022.09.21 - [Spring/DB Migrator] - [DB Migrator] SpringBoot 동적으로 MongoRepository 생성 및 등록하기 [DB Migrator] SpringBoot 동적으로 MongoRepository 생성 및 등록하기 2022.09.20 - [Spring/DB Migrator] - [DB Migrator] SpringBoot 동적으로 JpaRepository 생성 및 등록하기 [DB Migrator] SpringBoot 동적으로 JpaRepository 생성 및 등록하기 설명은 싸다(?) 코드를 보여줘라 h.. taler.tistory.com 이전 글의 말미에서 앞으로의 프로젝트 로드맵을 언급했다. 다시 가져와보자면 아래와 같다. 작업 분산 로직 구성하기 테.. 2022. 10. 3. [DB Migrator] SpringBoot 동적으로 MongoRepository 생성 및 등록하기 2022.09.20 - [Spring/DB Migrator] - [DB Migrator] SpringBoot 동적으로 JpaRepository 생성 및 등록하기 [DB Migrator] SpringBoot 동적으로 JpaRepository 생성 및 등록하기 DB Migrator는 사용자의 편의를 최대한 봐주면서 Data Migration이 진행되는 것을 목표로 한다. 처음 인턴 했던 스타트업의 기술 블로그에도 작성했듯 목표로 했던 기능 중 첫 번째 편의성 기능은 Reposit taler.tistory.com 이번에도 이전 글과 거의 같은 Spring 프로젝트 빌드 이후에 동적으로 Repository Interface를 등록하고, 이를 사용할 수 있도록 하는 것이 목표이다. 하지만, MongoReposit.. 2022. 9. 21. [DB Migrator] SpringBoot 동적으로 JpaRepository 생성 및 등록하기 DB Migrator는 사용자의 편의를 최대한 봐주면서 Data Migration이 진행되는 것을 목표로 한다. 처음 인턴 했던 스타트업의 기술 블로그에도 작성했듯 목표로 했던 기능 중 첫 번째 편의성 기능은 Repository를 자동으로 생성하는 것이다. 그 이유는 생각보다 간단한데, 사용하는 Repository method가 기본적으로 findAll과 save 뿐이었다. 그래서 모든 Repository 코드가 아래와 같았다. 원래 업무로 맡았던 DB의 Entity만 해도 60개가량 됐는데, 해당 코드들에 대해서 모두 이런 텅 빈 Repository 코드를 일일이 써주는 것은 정말 비효율적이라고 생각했다. 심지어 만약 내가 findAll이나 save가 아닌 다른 method를 통해서 데이터 읽기 및 저.. 2022. 9. 20. [DB Migrator] Spring Boot에 2개 이상의 DataSource 붙이기 2022.08.30 - [Spring] - [DB Migrator] Spring Boot와 함께하는 DB Migrator 프로젝트 - 1 [DB Migrator] Spring Boot와 함께하는 DB Migrator 프로젝트 - 1 이전에 인턴십을 진행했던 회사에서는 Spring에서 NestJS로의 리팩토링을 담당했었다. 해당 팀에 스프링 개발자가 없어 유지보수에 어려움을 겪던 것이 그 이유. 인턴십 기간 동안 생소한 Typescript taler.tistory.com 이전 글을 보면 알 수 있듯, MongoDB의 데이터를 Postgres로 옮기는 작업을 수행하고자 했고, 이를 Spring-data-mongo, Spring-data-jpa의 도움을 받아 진행하고자 했다. 즉, Spring에 2개 이상의 .. 2022. 9. 6. [DB Migrator] Spring Boot와 함께하는 DB Migrator 프로젝트 이전에 인턴십을 진행했던 회사에서는 Spring에서 NestJS로의 리팩토링을 담당했었다. 해당 팀에 스프링 개발자가 없어 유지보수에 어려움을 겪던 것이 그 이유. 인턴십 기간 동안 생소한 Typescript를 배우며 결과적으로 총 4개의 API에 대한 리팩토링을 완료했다. 포팅을 할 때 테스트코드는 따로 작성하지 않았는데, 때문인지 약간은 빠른 속도로 포팅이 끝나 인턴십 기간이 총 5일정도 남았다. (주말 포함 7일) 새로운 API를 포팅하기엔 너무 부족한 시간이라 DB migration을 한 번 담당해보기로 했다. 본격적으로 프로젝트에 대한 설명을 시작해보자. 1. 요구사항 당시 Legacy 코드는 NoSQL인 MongoDB를 사용하고 있었다. MongoDB는 검색 등을 빠르게 하기 위해 사용하면 효.. 2022. 8. 30. 이전 1 다음