전체 글 132

[Monorepo] Turborepo 통한 모노레포 생성하기

풀스택으로 개발하는 프로젝트라 백엔드와 프론트엔드를 한번에 관리할 수 있도록 하는 모노레포(Monorepo)를 사용하고자 했다. * 모노레포에 대한 개념은 네이버D2 블로그에서 자세히 설명하고 있으니 아래 링크를 참고하면 좋겠다.1. 모노레포 개념 https://d2.naver.com/helloworld/09238842. 모노레포 도구 https://d2.naver.com/helloworld/7553804   Turborepo로 모노레포 생성하는 방법은 아래와 같이 간단하다. 1. turbo 전역설치npm install turbo --global2. 새 모노레포 생성npx create-turbo@latest 아래 사진과 같이 자동으로 구성된 것을 확인할 수 있다.=> turborepo 깃허브 레포지터리를..

[MySQL] 기본값은 decimal(10,0), 최대값은 decimal(65,38)

decimal(p,s) p는 전체 숫자의 자릿수, s는 소수점 이하 자릿수 가능한 값의 범위는 -(10^p - 1)/(10^s)에서 (10^p - 1)/(10^s)까지 decimal(3,1)인 경우 가능한 값의 범위는 -9.9에서 9.9까지 MySQL 기본값은 decimal(10,0), 최대값은 decimal(65,38) [출처] https://dev.mysql.com/doc/refman/8.3/en/fixed-point-types.html#:~:text=In%20standard%20SQL%2C%20the%20syntax,value%20of%20M%20is%2010. MySQL :: MySQL 8.3 Reference Manual :: 13.1.3 Fixed-Point Types (Exact Value)..

카테고리 없음 2024.04.02

[MySQL] 소수점이 있는 금액의 타입은 float? float, double 절대 금지! decimal 또는 string로 지정하자!

글로벌 서비스에서 환전한 금액이 아닌 해당 통화의 금액으로 데이터를 저장해야 하는 상황이 생겨 소수점이 있는 금액 데이터에 대해 고려하며 알게 된 사실이다. 소수점이면 float나 double이겠지라고 생각하고 DB 칼럼의 타입을 지정했다가는 근사치 값으로 연산이 이뤄지는 불상사가 일어날 수 있다. 아래 사진에서와 같이 MySQL 문서에서도 아예 제목 옆에 'Approximate Value(근사값)'라고 적고 있다. [출처] https://dev.mysql.com/doc/refman/8.3/en/floating-point-types.html 보다 직관적으로 말하지면 부동소수점(float, double)의 경우 아래와 같이 저장되고 출력된다. 1. FLOAT에 16777217을 입력하면 16777216이 ..

언어/MySQL 2024.04.02

[개발독서] 내 코드가 그렇게 이상한가요 (3~4장 클래스 설계 & 불변 활용하기)

성능이 중요한 경우 불변변수가 아닌 가변변수를 사용하라고 하는데, 불변변수가 가변변수보다 성능에 더 좋은 경우는 무엇이 있을지? 메모리 관리불변변수는 한 번 생성되면 변경할 수 없으므로 메모리 관리가 간단합니다. 하지만 가변변수는 값이 변경될 때마다 메모리를 할당하고 해제하는 오버헤드가 발생할 수 있습니다.캐시 일관성불변변수는 값이 변하지 않기 때문에 여러 스레드 간에 안전하게 공유될 수 있습니다. 이는 캐시 일관성을 유지하는 데 도움이 됩니다. 반면 가변변수는 값이 변경될 수 있기 때문에 캐시 일관성을 유지하는 데 추가적인 오버헤드가 발생할 수 있습니다.병렬화불변변수는 여러 스레드 간에 안전하게 공유될 수 있으므로 병렬화를 쉽게 할 수 있습니다. 가변변수의 경우 값이 변경될 때 동기화 메커니즘이 필요할..

[개발독서] 내 코드가 그렇게 이상한가요 (1~2장 잘못된 구조의 문제 깨닫기 & 설계 첫걸음)

1장 잘못된 구조의 문제 깨닫기 1.1 의미를 알 수 없는 이름 1.2 이해하기 어렵게 만드는 조건 분기 중첩 1.3 수많은 악마를 만들어 내는 데이터 클래스 1.4 악마 퇴치의 기본2장 설계 첫걸음 2.1 의도를 분명히 전달할 수 있는 이름 설계하기 2.2 목적별로 변수를 따로 만들어 사용하기 2.3 단순 나열이 아니라, 의미 있는 것을 모아 메서드로 만들기 2.4 관련된 데이터와 로직을 클래스로 모으기 1장 잘못된 구조의 문제 깨닫기가독성과 유지보수성!2명 이상 개발 시 필요한 것?프로그램 설계2명 이상 개발 시 코드 작성 방법?가독성: 이해하기 쉬운 코드유지보수정: 코드 추가/수정이 쉬운 코드가독성과 유지보수성이 떨어지는 코드?의미를 알 수 없는 이름중첩이 많은 코드public 변수가 많은 클래스함..

카테고리 없음 2024.03.19