ARCHIVE
-
Shopify는 왜 수년간 쓰던 Redis를 버리고 MySQL SKIP LOCKED로 돌아섰을까?ARCHIVE/DATABASE 2026. 9. 20. 07:56
참고: 본 글은 Shopify Engineering 팀의 아키텍처 전환 사례("We replaced Redis with MySQL for inventory reservations—and it scaled", 2026)를 기반으로 핵심 엔지니어링 통찰을 정리한 글입니다.📌 한 줄 요약체크아웃 오버셀(과판매) 방지를 위한 재고 예약을 수년간 Redis로 운영하다가, 예약과 재고 원장 간의 이중 시스템·비원자적 Claim 문제를 근본적으로 해결하기 위해 MySQL 8 SKIP LOCKED + 단위당 1행 + 가용 풀 상한 구조로 재설계했습니다. 그리고 이 과정에서 밝혀진 진짜 병목은 쿼리 성능이 아닌 커넥션 점유 시간이었습니다.1. 배경: 분리된 이중 시스템의 한계이커머스 결제 흐름에서 재고 처리는 통상 2..
-
Chat-GPT 장난 아니구나ARCHIVE/MACHINE LEARNING 2023. 2. 4. 20:03
다이어트에 대해 글을 써 달라고 하니, 아래와 같은 글을 써 줬다. 별다른 고민 없이 주제만 하나 던졌는데, 저렇게 써주다니 대단하다. 왜 요즘들어 여기저기서 난리가 났는지 알거 같다. 건강한 라이프스타일 만들기: 다이어트, 운동 및 진행 상황 추적 가이드 소개 다이어트의 정의 다이어트는 체중 조절, 건강 개선 또는 특정 영양 목표 달성을 위해 음식이나 음료 섭취를 의도적으로 제한하는 것을 말합니다. 여기에는 칼로리 섭취를 줄이고 체중 감량을 촉진하는 데 도움이 되는 균형 잡히고 지속 가능한 식사 계획을 만드는 것이 포함됩니다. "다이어트"라는 용어는 종종 빠른 체중 감량을 목표로 하는 단기적이고 제한적인 식사 계획과 관련이 있지만 잘 계획되고 균형 잡힌 식단은 건강한 체중을 유지하고 전반적인 건강을 개..
-
Java — 모범 사례 및 권장 사항: 디자인 패턴ARCHIVE/JAVA 2022. 1. 8. 11:12
출처: https://blog.singular.uk/java-good-practices-and-recommendations-design-patterns-eade30be7965 설계 패턴은 소프트웨어 개발 중에 자주 발생하는 문제에 대한 일반적인 해결책이다. 이러한 솔루션은 우아하고 대부분의 경우 객체 생성, 리소스 할당, 코드 단순화 등과 관련된 다양한 문제를 해결하는 가장 효과적인 방법을 제공한다. 비즈니스 논리에 따라 솔루션 자체를 커스터마이징할 필요가 있는 반면, 그것들이 주어지는 맥락을 유지할 필요가 있다. 설계 패턴은 세 가지 범주로 구분된다. 창조, 객체 생성 중에 발생하는 다양한 문제를 해결하기 위한 솔루션 제공 구조, 더 큰 구조에서 클래스를 구성할 수 있는 방법을 찾아냄으로써 인스턴스화 ..
-
Spock Framework 의 Stub, Mock, Spy 를 간단하게 알아 보자.ARCHIVE/JAVA 2020. 10. 15. 09:00
Java 는 현재 Class 와 Interface 를 Mocking 하기 위한 다양한 Library 와 Framework 를 가지고 있습니다. Spock 역시 그러한 Framework 중 하나 입니다. 이 문서에서는 Spock 의 다양한 기능 중 Stub, Mock, Spy 에 대해 얇게 알아 보겠습니다. Spock is a testing and specification framework for Java and Groovy applications. What makes it stand out from the crowd is its beautiful and highly expressive specification language. Thanks to its JUnit runner, Spock is compat..
-
Format number using regex in javascriptARCHIVE/JAVA 2020. 5. 22. 14:23
일하다 보면, 각종 숫자의 포맷을 맞춰야 하는 경우가 있어서 항상 RegExp 를 만들었는데... 동료가 이런걸 알려 줬다. 역시 사람은 머리를 써야 한다. function format(mask, number) { var s = '' + number, r = ''; for (var im = 0, is = 0; im < mask.length && is < s.length; im++) { r += mask.charAt(im) == 'X' ? s.charAt(is++) : mask.charAt(im); } return r; } console.log(format('XX.XX.XX', 12345678)); // logs "12.34.56" console.log(format('XXX-XXXX', 12345678))..
-
대용량 데이터의 저장 : 빅데이터 및 필요한 저장 장치의 유형 정의ARCHIVE/MACHINE LEARNING 2019. 7. 22. 07:14
이 글은 ComputerWeekly 에 올라온 글을 번역한 것입니다. 저자에게 번역에 대한 허가를 받지 않았기에, 언제든 삭제 될 수 있습니다. 오역이 있을 수 있으니, 가능하면 원글을 읽는 것이 좋습니다. 대용량 데이터의 저장 : 대용량 데이터 분석을 사용하는 컴퓨팅 / 스토리지 시스템 구성 요소의 종류는 무엇입니까? 지난 1~2 년 동안 비즈니스 IT에서 빅데이터가 핵심 단어로 떠올랐습니다. 서플라이어가 마케팅 자료로 빅데이터를 다양하게 활용하려고 하기 때문에 쉽게 시니컬해질수 있습니다. 빅데이터 란 무엇입니까? 빅데이터 현상에 대한 가장 단순한 설명은 한편으로는 다량의 데이터에 관한 것이고 다른 한편으로는 대용량 데이터 세트에 대한 분석 입니다. 표면적으로는 데이터의 양이나 분석 요소 중 어느 것도..
-
MapReduceARCHIVE/MACHINE LEARNING 2019. 6. 11. 07:38
이 글은 WorDS 에 올라온 글을 번역한 것입니다. 저자에게 번역에 대한 허가를 받지 않았기에, 언제든 삭제 될 수 있습니다. 오역이 있을 수 있으니, 가능하면 원글을 읽는 것이 좋습니다. Map-Reduce는 분산된 데이터 처리를 단순화하는 확장 가능한 프로그래밍 모델입니다. Map-Reduce는 Mapping, Shuffling 및 Reducing의 세 가지 주요 단계로 구성됩니다. Map-Reduce 작업을 쉽게 할 수 있는 방법은 대규모 작업을 여러 사람에게 '위임'한 다음 각 작업 결과를 결합하여 최종 결과를 산출하는 것입니다. 포인트를 가져 오는 예를 들어 봅시다. 방금 이 위대한 소식을 사무실에서 들었고 모든 동료를 위해 파티를 열었습니다! 저녁 식사를 위해 파스타 요리를 하기로 결정했습니..
-
데이터 과학의 5가지 PARCHIVE/MACHINE LEARNING 2019. 5. 31. 07:05
이 글은 WorDS 에 올라온 글을 번역한 것입니다. 저자에게 번역에 대한 허가를 받지 않았기에, 언제든 삭제 될 수 있습니다. 오역이 있을 수 있으니, 가능하면 원글을 읽는 것이 좋습니다. 데이터 과학은 데이터에서 지식을 추출하는 것에 관한 것입니다. WorDS 센터에서는 데이터 과학을 사람, 프로세스, 계산 및 빅 데이터 플랫폼, 특정 목적 및 프로그래밍 가능성을 결합한 다방면의 기술로 정의합니다. 이러한 간행물로 이어지는 데이터 제품의 간행물 및 출처는 데이터 과학에서도 중요합니다. 사람(People) : 데이터 과학자는 과학 또는 비즈니스 영역 지식을 비롯하여 다양한 주제에 대한 기술을 보유한 사람들로 종종 간주됩니다. 통계, 기계 학습 및 수학 지식을 사용한 분석; 데이터 관리, 프로그래밍 및 ..