최근에 가장 생각을 많이 하는 고민이다. 성공 경험을 해본 사람과 안 해본 사람의 차이는 당면한 어려운 문제에 대해서 대처하는 방법이 다르다고 생각한다. 지금 이 문제를 해결 할 수 있는 문제인가? 아니면 해결 할 수 없는 문제인가? 작은 성공 경험들 그리고 큰 성공 경험을 가지고 있다면, 어려운 문제가 눈 앞에 닥쳐도 "하면 돼지"라는 마인드로 그 문제를 해결해 나갈 수 있다고 생각한다.대학 사물놀이 동호회에서 대회 연습을 하고 있었다. 상모를 돌리면서 각 악기를 쳐야하는 고난도 미션이 주어졌었다. 연습을 하다가 대회를 준비하는 선배가 나에게 벚꾸수(상모 수)를 해보는게 어떻냐고 제안을 했다. 그 때 나의 실력은 상모를 이제 막 돌릴 수 있는 단계였는데, 훨씬 더 어려운 제안이 왔었다. 그 제안 이 후..
재민님, 향로님, 토비님이 스프링 테스트에 대한 @Transactional 사용에 대한 의견들을 남겨주셨다. 모두 너무 정성들여 적으글들이라 한번에 모아서 읽어 보시면 Spring Test 시 @Transactional 사용에 대한 다양한 의견을 통해 DB 를 이용한 통합테스트에 대한 시각이 넓힐수 있을 것이다. 저도 몰랐던 사실을 많이 알게 되어 블로그와 영상으로 공유해주신 분들에게 감사한 말씀을 드립니다. :) 재민님의 '테스트에서 @Tansactional을 사용해야할까' https://youtu.be/PDhN6aiF7QQ?si=4Go7aqNAAL9wGrY8 향로님 '테스트 데이터 초기화에 @Transactional 사용하는 것에 대한 생각' https://jojoldu.tistory.com/761 ..
자바나 다른 새로운 프로그래밍 언어를 배우면서 사용자 정의 타입을 만들고 사용하는 기법을 배우게 됩니다. 자바에서 가장 쉽게 사용할 수 있는 것은 클래스(class)입니다. 자바는 모든 것이 클래스로 구성되어 있습니다. 그렇다면, 사용자 정의 타입(이하 클래스)을 어떻게 활용할 수 있을까요? 자바의 클래스를 사용하여 어떻게 신뢰성 있는 프로그램 코드를 작성할 수 있을까요? 이제 이러한 개념을 실제 코드 예제를 통해 더 자세히 살펴보겠습니다. 계좌번호, 전화번호, 카드번호 등은 실무에서 반드시 암호화하여 데이터베이스에 저장해야 하는 정보입니다. 따라서 개발 시 많은 개발자들이 평문으로 된 계좌번호 등을 암호화하여 사용하게 됩니다. 아래 코드에서는 cardNumber가 암호화된 상태인지, 복호화된 상태인지 ..
혹시 String createdAt 로 선언하지 사용하지 않으신가요? DateTimeParseException 으로 고통받고 있지 않으신가요? 하지만 String 타입으로 데이터를 처리하고 있다면 버그나 Exception 이 발생하는 코드를 작성할 확률이 높아진다. 강타입 언어를 사용하는 장점을 전혀 활용하고 있지 못하기 때문에 적절한 타입을 사용하는 게 중요하다. 왜 도움이 되는지는 찬찬히 설명해 보려고 한다. java 표준 API 사용되는 타입을 사용한다면 데이터에 대한 유효성 검증을 library level (정확히는 Type 이 생성되는 시점) 에서 검증이 된다. Exception Handling이나 validation check를 코드를 작성하는 개발자가 직접 하지 않아도 된다는 뜻이다. 그렇다..
Prisma의 주요 단점 중 하나는 JOIN 절이 지원되지 않았던 것이었다. 이 문제는 최근 5.7 버젼에서 FeaturePreview로 추가되었고, 이 소식을 듣고 반가운 마음에 즉시 적용을 시작했다. 이렇게 고민 없이 적용할 수 있는 이유는 바로 테스트에 있다. 일반적으로 대부분은 주요 라이브러리의 버전 업데이트를 하지 않거나, 할 경우에도 매우 보수적으로 진행하는 경향이 있다. 그럼 어떻게 진행했는지 진행과정을 공유해 보겠다. 1. 패키지 업데이트 & 전체 테스트 수행 패키지 매니져를 통해서 업데이트를 하고 모든 테스트를 수행했지만, 실패하는 테스트 케이스는 없었다. 일단은 안심이다. 아직 추가된 Feature를 사용하지 않아서 쉽게 성공했을 수도 있다. 2. 기능 리팩토링 이제 가장 중요한 Rep..