본문 바로가기

생존형 개발

(6)
DataGrip Mysqldump Quick Honey Tip - Mac Intell 사용 중 - Home brew 사용 중 > mysql 설치되있으면, skip. brew로 mysql 5.7 다운로드. 5.8부터 덤프지원이 안될 수 도있음. 정신건강을 위해 5.7겟차 brew install mysql@5.7 > Datagrip에서 덤프 대상 스키마를 선택. 오른쪽 클릭 > 기본으로 생성되는 path가 path를 잡았는데 잘못됬다고 워닝을 띄운다.. Path to executable is wrong > 알아서 잡아주지,.. 무슨기준으로 저걸 잡는건지 모르겠지만,.. 아래처럼 설치한 mysql 5.7 을 뒤적뒤적해서 경로를 잡아주면 잘 만들어준다.. 후후.. 도커로 띄운 mysql 접속해서 cli로 덤프를 뜨려다가 dataGrip에 덤프기능이있어서 오오!! 하고 쓰려..
자바 DateTime 역직렬화 실패! 외부 API 연동해서 데이터를 들고오는 과정에서, JSON 응답값을 Dto로 쌈싸서 로직을 타고 데이터가 저장되야 했다. 응답 JSON 필드 중 DateTime필드가 있어서 해당필드에 @JsonFormat(shape = JsonFormat.Shape.STRING)어노테이션, @DateTimeFormat 어노테이션을 사용해 쌈을 싸려고 했다. 하지만.. 호락호락하지 않은 DateTime.. 바로 발생하는 에러 Java 8 date/time type `java.time.LocalDateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling... 문제의 ..
코틀린 + 스부 validation feat. messages.properties setting Spring Boot 는 “src/main/resources/messages.properties” 를 찾았을 때 자동으로 MessageSource를 구성해준다. 프로퍼티를 찾아서 빈으로 등록해주지만, Validation메세지 설정은 해주지 않는다. @Configuration 클래스에서 아래 설정으로 빈등록해줘야함 코틀린에서 생성자에 validation 어노테이션을 사용할 때, @field:~, @get:~ 로 접근해야 한다. → @field:~ 컴파일 후 어노테이션이 붙는 위치는 = 필드 → @get:~ 컴파일 후 어노테이션이 붙는 위치는 = Getter 코틀린은 자동으로 생성해주는 코드들(field, getter/setter, ~Contructor)를 자동으로 만들어주는 동작을 하면서 어디에 어노테이션..
DDD(DataBase Driven Development) 에서 DD(Domain Driven Development) 아무것도 모르는 꽑꽑이의 좌충우돌 우당탕탕 DDD MSA와 DDD는 같이 소개가 많이 된다. 'DDD는 복잡한 마이크로 서비스를 구현할 때만 적용한다. CRUD 서비스처럼 더 간단한 업무는 더 간단한 벙법으로 관리할 수 있다'(https://ducktyping.tistory.com/14) 라고 DDD를 소개하는 글도 있지만, DDD는 MSA뿐만아니라, OOP를 사용하는 프로그램에서도 가치있다고 생각한다. 여기서 잠깐 그렇다면 OOP에서 이제까지 아무 생각없이 뚜둘겼던 그 디자인은 무엇일까? DDD랑 무슨 차이일까? OOP 하면서(제대로 한지도 모르겠지만,..) 내가 그래왔고, 내가 일해왔던 회사들도 그렇고, DDD를 빠삭하게 이해하고 도입하지 않은 대부분의 회사에서 코드들은 Strategic Design..
숫자계산은 BigDecimal로 하라구욧! feat. Kotlin Java와 내용은 일맥 상통합니다! 예제코드는 코틀린 - Gradle - JUnit5를 사용했습니다 BigDecimal을 사용해야 하는 이유 소수점을 저장하는 float과 double은 소수점의 정밀도가 완벽하지 않아 값의 오차가 생길 수 있다. 그 이유는 내부적으로 수를 저장할 때 이진수의 근사치를 저장하기 때문이다. 그렇기 때문에 미세한 숫자의 변동도 허용하지 않는 돈계산과 소수점을 다룬다면 BigDecimal을 사용해야 한다. BigDecimal은 속도는 느리지만 숫자가 어긋날 가능성을 미연에 방지할 수 있다. BigDecimal 사용하기 BigDecimal을 사용핼 땐, 문자열을 인자값으로 넘겨줘여 한다. double을 넘겨주면 double의 이상한 근사치값을 그대로 사용한다. BigDecimal..
Git Basic - Local Life Cycle Git... 잘씁시다.. https://git-scm.com/book/en/v2 Git - Book git-scm.com git 공홈에서 무료로 제공되는 Pro Git 읽기 📖 https://opentutorials.org/module/2676/15242 버전관리의 본질 - 지옥에서 온 Git 저는 기술에는 본질과 혁신이 있다고 생각합니다. 그 기술의 모든 제품이 공통적으로 가지고 있는 특성이 본질이고, 특정 제품이 가지고 온 변화가 혁신이라고 생각합니다. 본 토픽의 하위에서 opentutorials.org 오픈튜토리얼스 강의를 듣기 꽑꽑이의 저세상 정리 시작 Git Life Cycle working space 개념 .git 이있는 폴더를 기준으로 working space로 잡힌다. .git은 커밋, 캐..