전체 글
-
[nestjs] env파일로 관리하던 환경변수를 yaml파일로 관리하기Node.js/nest.js 2023. 7. 2. 01:31
1. (사전 요구 사항) 패키지 설치 $ yarn add @nestjs/config $ yarn add js-yaml $ yarn add @types/js-yaml --dev $ yarn add cpx # 파일 copy 도구 # cpx가 사용이 꺼려지면 아래처럼 직접 명령어 파이프라인을 작성해도 괜찮다. "scripts": { "dev": "rm -rf dist/config/config.*.yaml && mkdir -p dist/config && cp config/config.local.yaml dist/config && cross-env ENV=local nest start --watch", 파일 복사를 위해 nest build의 assets이라는 설정도 있지만 config 폴더가 src 내부에 위치할..
-
[IntelliJ 디버깅] springboot, message.properties의 값이 읽히지 않는 문제Spring Boot/인텔리제이 2023. 7. 2. 01:17
0. message.properties의 값이 읽히지 않는 문제 해결- 아래와 같이 error 메시지를 선언하고 MessageSource 인터페이스로 메시지를 불러오는 작업을 하던 중- 한글이 ???.???.??? 와 같이 출력되는 버그를 수정한 내용을 정리 Size.writeTodoCommand.title=할 일은 {2}-{1}자 사이로 작성해주세요.Exception.TodoEntityNotFoundException=요청한 할 일을 찾을 수 없어요. (일련번호: {0})Exception.MethodArgumentNotValidException=입력 값이 없거나 올바르지 않아요.- 이는 인코딩 문제로 아래의 설정을 해준다. 1. 인텔리제이 properties file 인코딩 설정Default encodi..
-
2024 자바 서버 개발자를 위한 Kotlin 공부 자료Kotlin 2023. 7. 1. 18:36
운이 좋게 개발자로 첫 직장에서 같은 기능을 Java -> Kotlin으로 변경해 본 경험이 있다.코틀린 학습 자료를 정리한 것을 공유한다. [언어 학습]Learn Kotlin Overview : https://play.kotlinlang.org/byExample/overviewKotlin: An Illustrated Guide (책수준 가이드) : https://typealias.com/start/KOTLIN COMPACT (자바 잘하는 개발자가 정리한 kotlin vs Java)(https://kotlincompact.com/)Jetbarains Academy (코틀린를 개발한 회사에서 제작한 교육 자료)[링크](https://hyperskill.org/tracks?_ga=2.182549669.20..
-
[책너두 4기] 개발 서적 스터디 - 오브젝트 chapter 1 ~ 2장 요약독서/오브젝트 2023. 7. 1. 18:02
함께 자라기 책 저자가 작성한 블로그 글에 "바쁜 직장인을 위한 스터디 비결"이란 글이 있었다. 지금은 이글루스라는 블로그 서비스가 종료하면서 볼 수가 없다. (https://www.codesoom.com/how-to-read-three-color-pen) 블로그 내용을 요약하면 매일 단시간 집중해서 핵심만 뽑아서 효율적으로 스터디 방법에 대한 소개글이다. [스터디 방법] 25분 Timer 설정해서 정해진 분량을 다같이 읽는다. 읽으면서 ‘가장 중요한 핵심’에만 빨간색으로 밑줄, 다음 중요 파란줄, 흥미로운 부분 초록줄 다 못 읽었으면 5분 단위 타이머 추가 다 읽었으면 20분 동안 밑줄 내용 + 밑줄 친 이유 공유 휴식 (10분) 경험했던 개발 서적 스터디 중에 유일하게 탈주자 없이 완독한 방식이다. ..
-
Springboot, 주입한 환경변수 사용하기Spring Boot/환경설정 2023. 6. 30. 23:09
외부 환경변수 주입 방법과 우선 순위 : https://yeoon.tistory.com/115 Spring Boot, 환경 변수 주입 우선순위 스프링에서 환경변수는 외부에서 주입할 수 있다. 주입 받은 환경 변수는 @Value 어노테이션을 사용하여 빈에 주입하거나, @ConfigurationProperties를 사용하여 바인딩 할 수 있다. 환경변수를 주입은 yeoon.tistory.com 1. Environment 인터페이스 사용하기 import org.springframework.core.env.Environment; @Controller public class TodoController { private Environment env; public TodoController(Environment en..
-
[DB] UUID를 고유 값이나 Key로 사용하면 안되는 이유Spring Boot/DB 2023. 6. 30. 12:00
1. UUID를 고유 값으로 쓰면 안되는 이유 RDB 기준 사용시 성능 이슈 + 충돌 가능성이 있기 때문이다. (https://velog.io/@injoon2019/UUID-vs-ULID) 인덱스는 기본적으로 B-tree 인덱스를 사용하는데, 무작위 렌덤의 uuid를 사용하면 sort를 사용할 수 없다. int, bigint를 사용하는 것에 비해 uuid를 pk로 사용하면 상대적으로 성능이 낮다. uuid 단독으로 사용하면 생성시 충돌 가능성이 있다. 128비트의 공간을 지속적으로 차지하는 단점 (uuid를 사용하면 DB 마이그레이션이 편한 이점 있음) 2. 해결책 [결제 고유 번호 uuid + 날짜_회원정보] 이런식으로 저장해야한다. (스노플레이크 접근이라고 한다. https://thalals.tist..
-
[DB] ACID란? Transaction이란?Spring Boot/DB 2023. 6. 28. 11:22
ACID는 DB 트랜잭션의 안정성 보장을 위해 필요한 성질을 정리한 것. 원자성, 고립, 일관성, 영구성으로 트랜잭션을 제어하기 위해서 알아야한다. 0. Transaction은 무엇인가 One unit of work에서의 쿼리 집합이다. 즉 서버로 치면 connection을 기준으로 하나의 트랜잭션으로 구분한다. 쿼리 1개로 비즈니스 로직을 수행하지 못한다. 하여 쿼리 집합이 필요하고 집합을 트랜잭션으로 구분한다. ex) 예금 이체 (SELECT, UPDATE, UPDATE 3개가 필요) 트랜젝션의 Life span Transaction BEGIN Transaction COMMIT Transaction ROLLBACK 트랜젝션의 2가지 성격 변경, 수정을 위한 트랜잭션 readonly 트랜잭션 트랜잭션은..
-
[M1 Mac] Mysql 명령어 정리 (+ docker로 설치)Spring Boot/DB 2023. 6. 27. 14:05
00. Workbench 단축키 cmd + t 탭 생성 cmd + w 탭 삭제 cmd + shift + enter : 전체 쿼리 실행 cmd + / : 주석 01. 도커로 mysql 설치 docker mysql 실행 명령어 docker pull mysql docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mysql mysql docker ps docker exec -it mysql bash # mysql 콘솔 mysql -u root -p SHOW DATABASE; CREATE DATABASE {name}; DROP DATABASE {name}; USE {name}; // 데이터베이스 변경 SELECT database(); // 현재 사용 데이..