mysql 3

[MySQL]DECIMAL vs DOUBLE(FLOAT): 뭘 선택해야 할까?(Feat. 고정 소수점 vs 부동 소수점)

TL;DR: 핀테크라면 닥치고 DECIMAL이다 명심해라 Introduction 지난 달까지 넥스트스텝에서 진행하는 ATDD(Acceptance Test Driven Development) 강의를 들었다. 지난 TDD 강의와 마찬가지로 이번 강의 역시 아주 훌륭했다. 특히 실무에 적용한다는 관점에서 볼 때 TDD는 단위 테스트 위주라 서비스 레이어에 비즈니스 로직이 올라가있는 레거시 환경에서는 실천하기가 꽤나 어려웠다. 반면 ATDD는 도메인 레이어부터 짜는 방식이 아니었다. 인수 조건을 설정하고 가장 바깥에서부터 Integration test를 작성했다가 다시 가장 안쪽으로 돌아와 도메인 테스트를 작성하는 등, 작성자가 입맛에 맞게 그때그때 편한 방향을 추구하면서 자유롭게 테스트를 짤 수 있어 실무에 ..

[Java/Spring]선착순 티켓 예매의 동시성 문제: 잠금 없이 처리하기(Feat. 우테코 아티클)

Introduction 예제는 깃허브에 업로드해뒀습니다. 얼마 전, 우테코 블로그에 올라온 한 아티클이 화제였다. 바로 라는 제목의 글이었다. 사내 슬랙 채널에 리드님께서 해당 글을 공유해주셨더라. 그러면서 스레드에 아래와 같은 화두를 던지셨다. 아예 데이터(Ticket 엔티티)에 락을 안 걸고 만들 수 있는 방법은 어떤 게 있을까요? 여기서 전제는 "기존 환경 그대로에서"였다. 즉, 위에 다른 분께서 언급하신 것처럼 메시지큐를 사용한다거나 싱글 스레드 모델을 적용하는 등 아키텍쳐를 변경하지 않고도 바꿀 수 있는 지였다. 이에 많은 팀원들이 여러 가지 방법을 제안해주셨다. 흥미로운 이야기들이 많이 오고갔는데(사실상 거의 모든 동시성 해결 기술이 언급된듯), 결과적으로 리드님께서 원하는 방향은 테이블 구조..

Java 2023.10.10

프로그래머스 SQL 고득점 kit 준비 방법 -1(feat. SQL 강의: 초보자라면 꼭 알아야 할 10가지 문법 강의 노트)

하..집 내려오니까 안그래도 안되던 공부가 훨씬 더 안된다..는 핑계를 벗삼아 되던 공부도 안되게 만드는 중(?)이다. 쉴 거면 아예 쉬고 할 거면 아예 해야 되는데 현재 신분이 신분인지라 이러지도 저러지도 못한 채 애매하게 공부하고 있다. 정신도 좀 차릴 겸 다시 개발일지를 써본다. 어제도 코테를 하나 봤고, 이번 주에는 3개나 봐야하는지라 부랴부랴 문제를 풀어보고 있다. 하지만 정작 문제는 이번 주에 봐야할 코테 중 하나에서 SQL 1문제가 출제된다는 것..! 이 문제를 그냥 버리기엔 가고 싶은 회사인데다 심지어 코테가 워낙 빡센 회사이니... SQL이라도 공부해서 뭐든 간에 한 문제라도 맞히자는 심정으로 주말 내내 SQL 삼매경에 빠졌다. 프로그래머스 SQL 고득점 kit를 어제 오늘 조금씩 풀고 ..