AWS DMS(Database Migration Service)로 DB를 옮기면서 겪은 문제들을 기록해둔다. 마이그레이션이 "완료"로 뜨는데 데이터가 원본과 일치하지 않는 상황이 반복됐다.문제 1. 데이터가 완전히 일치하지 않는다DB 이전 시 deleted_at 같은 몇몇 컬럼들에 이전 시간 값이 박혀 있었다. 스키마에도 원래 없던 default 값이 들어가 있었다.원인: DMS는 스키마를 자동 생성할 때 원본 DDL을 그대로 복제하지 않는다. 타입을 자체 중간 타입으로 변환한 뒤 대상 DB 타입으로 다시 매핑하기 때문에, 이 과정에서 default 값이나 nullable 속성이 달라질 수 있다.해결: 스키마는 dump로 먼저 이전하고, DMS는 데이터만 옮기게 한다.# 1. 스키마만 덤프 (데이터 제외..
NESTJS 만들기 프로젝트 1 TODO 프로젝트 생성 ( 아래 명령으로 nest project 생성) nest new todo todo 리소스 생성 ( resource 명령을 사용하면 entity, controller, module, dto가 생성된다) nest g res todo or nest generate resource todo filter + validate 모듈 설치 npm i --save class-validator class-transformer filter + validate 적용 // main.ts async function bootstrap() { const app = await NestFactory.create(AppModule); app.useGlobalPipes( // todo..
벌써 2분기? 컬리에 2020년 12월에 입사한 것이 엊그제 같은데 벌써 2021년 4월이다.회사도 엄청난 성장 중이지만, 나도 성장하기 위해서 노력하겠다고 다짐만 한 1분기가 아닌가 싶다.사고만 쳐둔 1분기회사에서는 메인 언어를 자바로 전향하겠다고 이야기해놓고, 취미로는 아직도 TypeScript와 Flutter를 하고 있으며, 책은 이것저것 많이 사놓고 보지 않고 있다.깃허브에 잔디 채우기를 위한 성장 없는 복습만 하고 있고, 반성을 많이 하게 되는 1분기다.핑계와 변명한창 개발에 불꽃을 피울 때는 하루에 4시간만 자면서 공부했는데, 나름 열정은 그대로지만(내 생각엔) 둘째가 태어나고 나이가 30대 후반이 되니까 체력이 안 된다.선택과 집중2분기에는 선택과 집중을 해야 하는 시기인 것 같다. 회사와 ..
테스트 코드를 작성하다 보면 기존 convention과 다른 방법으로 코드를 작성하게 될 때가 있다. 그중 메서드명을 한글로 작성하는 것과 snake_case로 작성하는 것이 대표적이다.이렇게 작성했을 경우 JetBrains 툴에서는 잘못된 코드라고 지적질을 하게 된다. 여기서는 적어도 테스트 코드에서는 이러한 convention을 무시하게 하는 방법을 알아본다.왜 테스트 메서드명을 한글로 쓰나먼저 왜 이런 요구가 생기는지 짚고 가자.// 영문 camelCasepublic function testUserCannotWithdrawWhenBalanceIsInsufficient()// 한글public function 잔액이_부족하면_출금할_수_없다()테스트 코드는 실행되는 문서에 가깝다. 나중에 테스트가 실패..
12 Factor APP을 하는 이유 최근 소프트웨어 서비스가 클라우드 서비스로 많이 바뀌게 되면서, 12 Factor는 확장성 좋은 SaaS 앱을 만들기 위한 방법론이다. 설정을 자동화 할수 있다. OS 따라 달라지는 부분이 명확하고, 이식성이 좋다. 클라우드 환경에 적합하다 CI / DI 에 용이하다. 툴, 아키텍쳐, 개발방식을 바꾸지 않아도 Scale up이 용이하다. 12 Factor 1. 코드 베이스 (Code Base) 애플리케이션(이하 앱)은 한 개의 코드 베이스 (Git, SVN)를 통해 관리하며, 동일한 코드로 운영/개발에 배포하여야 한다. - 앱은 1개의 코드 베이스로 1:1 관계다. - 앱은 1개의 코드 베이스로 운영/개발 등등에 배포된다. - 코드베이스 전략은 다른 11가지 전략의 ..
강력 추천 도서인 리팩토링 2판 이야기다.내가 추천하는 3대 책클린 코드리팩토링정규식정규식은 내 개인 성향으로 추천하는 도서이고, 클린 코드와 리팩토링은 아마 대부분의 개발자들이 추천하는 권장 도서일 것이다.리팩토링 1판은 설명 코드를 자바로 표현했지만, 리팩토링 2판은 설명 코드가 자바스크립트로 되어 있다.책의 내용책의 제목만 보면 리팩토링만 담고 있을 거라 생각된다. 하지만 책의 내용은 반은 맞고 반은 틀리다. 리팩토링의 내용을 설명하면서 자연스럽게 하지 말아야 할 코드 작성법, 악취 나는 코드의 특징 등을 배우면서 클린 코드도 자연스럽게 습득하게 된다.요즘같이 SI 프로젝트가 많은 환경에서는 유지보수보다는 단시간에 기능만 구현하다 보면 이런 악취 나는 코드를 생성하게 되며, 개발자 본인에게도 그리고..
