본문 바로가기

전체 글669

REAL MySQL 8.0 - 1권 Real MySQL 8.0 (1권) 《Real MySQL 8.0》은 《Real MySQL》을 정제해서 꼭 필요한 내용으로 압축하고, MySQL 8.0의 GTID와 InnoDB 클러스터 기능들과 소프트웨어 업계 트렌드를 반영한 GIS 및 전문 검색 등의 확장 기능들을 추가로 수록했다. 또한 《Real MySQL 8.0》은 단순 SQL 문법이나 쿼리 작성보다는 MySQL 서버를 활용하는 프로젝트에서 꼭 필요한 경험과 지식을 전달하는 데 집중했다. 이 책을 처음부터 끝까지 정독할 수 있다면 더없이 좋겠지만 필요하거나 관심 있는 내용 위주로 살펴봐도 지금까지 경험했던 수많은 문제들을 해결할 수 있을 것이다. ★ 이 책에서 다루는 내용 ★ ◎ MySQL 설치와 서버 아키텍처 ◎ 트랜잭션과 잠금 ◎ 인덱스 종류의 .. 2024. 4. 1.
자바에서 동시성 문제를 다루는 n가지 방법들(feat. 주식 매수) 이 글에 대해서자바에서 동시성 문제를 다루는 n가지 방법을 소개합니다. 동시성 이슈가 많이 발생하면서도 중요하기도 한 주식 거래 시스템을 예로 들어, 매수와 매도 상황에서 발생할 수 있는 동시성 문제를 정의하고, 이를 해결하는 다양한 해법들 및 테스트 결과를 소개합니다. 예제로 사용한 소스코드는 다음 링크에서 보실 수 있습니다. https://github.com/renechoi/study/tree/main/java-concurrency-problem/src 전제기술적 범위먼저, 본 글에서 다루는 기술적 범위의 한계는 다음과 같다.서버 인스턴스는 한 대로 가정한다. 분산 환경의 동시성 문제는 더 포괄적인 주제로 분리된 지면을 통해 소개하고자 한다.해결 아이디어에서 데이터베이스를 이용한 해결 방법은 제외한.. 2024. 3. 28.
넥스트스텝 ATDD, 클린 코드 with Spring 8기 수료 회고 소개 소프트웨어 생태계에 선한 영향력을 이라는 모토를 가진 넥스트스텝에서 약 5주간 수행한 교육 과정 회고 글입니다. 자바, 스프링을 사용해 백엔드 어플리케이션을 구현하되, 테스트주도개발(TDD) 방법론을 훈련하는 과정이었습니다. 새로운 지식을 습득하며 익힌 코딩과 리뷰 사이클, 고민하고 풀어냈던 경험을 공유합니다. 어쩌다? 어떻게 알게되었는지 모르겠는데 회사를 다니게 되면 넥스트스텝에서 하는 교육을 들어야지, 하고 막연히 생각하고 있었던 것 같다. 어떻게 알게 되었는지...는 정말 모르겠다 (이것이 무의식 마케팅의 힘인가). 아마 우아한테크코스와의 접점 때문이 아닐까 싶다. 자바 개발을 시작하면서 우아한테크코스 프리코스에 참여했었고 그때 임팩트가 컸던 것 같다. 개발자로서는 처음 걸음마를 시작하는 시점.. 2024. 3. 15.
티켓 서비스 백엔드 시스템에서 중복 요청 이슈를 멱등하게 처리하기 이 글에 대해서 회사에서 담당하는 티켓 한 티켓 서비스의 QA(품질 보증) 과정에서 중복 등록 이슈가 보고되었습니다. 사용자가 등록 버튼을 연속으로 빠르게 클릭할 경우 티켓이 중복으로 등록되는 현상입니다. 본 글은 이 문제를 접하며 문제를 정의하고 해결하는 과정을 기록하고 사내에 공유한 글을 재편집한 글입니다. 여러 가지 고민과 결론, 그리고 서버 개발을 하며 만나는 멱등성과 동시성에 있어서 추가로 생각해볼 거리들을 다뤘습니다. 업무의 특성상 구체적인 용어나 코드는 컨셉으로 대체하였습니다. 요약 티켓 서비스의 QA 과정 중 발견된 중복 등록 이슈에 대해 다룹니다. 사용자가 등록 버튼을 연속으로 빠르게 클릭할 때 발생하는 중복 등록 현상에 대한 해결 방안 모색 과정을 기술합니다. 어플리케이션 수준의 검증과.. 2024. 3. 1.
[독서기록] 클린 아키텍처 서문 현재의 소프트웨어는 과거와 동일한 것들로 구성된다. 여전히 if문, 할당문, while 루프로 구성된다. 지금 우리는 자바, C#, 루비라는 훨씬 진보한 언어를 쓰고, 객체 지향 설계라는 우월한 패러다임을 사용한다고 말이다. 맞는 말이다. 그렇다 하더라도 1960년대나 1950년대와 마찬가지로 코드는 여전히 순차, 분기, 반복의 집합체일 뿐이다. 컴퓨터 프로그래밍을 하는 관행을 정말 유심히 관찰해 보면 지난 50년 동안 변한 게 거의 없다는 사실을 깨달을 것이다. 언어는 조금 발전했다. 도구는 환상적으로 좋아졌다. 하지만 컴퓨터 프로그래밍을 이루는 기본 구성요소는 조금도 바뀌지 않았다. 이것이 열쇠다. 이처럼 코드가 변하지 않았다는 사실이 시스템의 종류와 관계없이 소프트웨어 아키텍처의 규칙이 일관된.. 2024. 2. 26.