분류 전체보기 110

주절주절 7-8월 회고

벌써 두 달이 지나서 9월이 됐다. 새삼스럽지만 시간 참~빠르다벌써 올해를 3달밖에 남겨두지 않고 있다닝 9월을 맞이하야 어김없이 돌아온 회고 1. 열일6월에 여태 하던 프로젝트가 끝나고 새로운 프로젝트를 딱 7월부터 들어갔다.어떻게 성과 더 낼 거 없나 배울 거 없나 하고 눈에 불을 켜고 찾아다녔음요새 회사의 이런 저런 사정으로 이 마음이 잠깐 헤이해졌는데 회고 글 쓰면서 다시 정신 붙잡아본다.. ㅋㅋㅋㅋㅋ 회사가 잘되야 나도 잘된다는 마인드 2. 오픽7월 초엔 오픽을 봤다사실 개발자 공고를 보면 오픽이나 토익 점수가 있으면 우대해주는 경우를 왕왕 봐서, 곧 다가올 하반기에 유리하지 않을까 하고 본 거였는데 직장 다니다보니 3일 벼락치기로 보게 됨 (내 돈...) 어디 서류낼 때 커트라인에는 만족하지만..

Review 2025.09.03

[programmers lv.1 python] 완주하지 못한 선수 풀이 (with 시간초과 해결)

문제https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr코딩테스트 공부를 다시 시작했당쉬운 문제지만 해결해 나갔던 과정을 기억해두고 싶어서 포스팅한다문제 자체는 쉽다! 참가자 목록이랑 완주자 목록이 주어지는데 완주 못한 단 한 사람을 찾으면 됨 1차 코드 ➡️ 시간초과 실패def solution(participant, completion): for c in completion: if c in participant: participant.remove(c) retur..

[TIL] DB Replication이란? 읽기 부하를 줄이고 고가용성을 확보해보자

팀프로젝트를 하면서 구현했던 Redis master-slave 구조를 회고하다가 DB Replication(데이터베이스 복제) 에 대해서도 이번 기회에 정리해보려고 한다.요즘 시스템 아키텍처를 고민하다보면 빠질 수 없는 주제 중 하나가 ‘데이터베이스의 고가용성과 확장성’인 것 같다. 이 두 가지를 동시에 잡으려고 할 때 꼭 등장하는 기술이 바로 Replication이다. 💡 DB Replication이란?Replication은 한 데이터베이스에서 다른 데이터베이스로 데이터가 동기화되는 것으로, DB를 다중화하는 것을 말한다. 즉, 한 데이터베이스의 데이터를 다른 데이터베이스로 실시간 또는 주기적으로 복제하는 기술이다. 다시 또 쉽게 말하면, Master(DB 원본)에서 Slave(DB 복제본)로 데이터..

Computer Science 2025.06.22

[programmers lv.3] '조건에 맞는 사용자 정보 조회하기' MySQL 2가지 풀이 방법 및 성능 비교

📌문제https://school.programmers.co.kr/learn/courses/30/lessons/164670 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr말 그대로 조건에 맞는 사용자 정보를 조회하는 쿼리를 짜면 된다.그러나 조회 포맷팅 조건이 다소 까다로웠음 중고거래 플랫폼의 사용자 중에서 중고 거래 게시물을 3건 이상 등록한 사용자만 추려, 유저 ID, 닉네임, 전체 주소, 전화번호를 조회하라는 문제이때, 전체 주소는 CITY, STREET_ADDRESS1, STREET_ADDRESS2을 공백으로 이어붙이고, 전화번호는 01012345678 형식을 010-1234-5678로 변환해야 한다. ..

[프로젝트/구현] Redis Replication 마스터-슬레이브 구조를 통한 분산 처리 적용 과정

이전 글2025.05.01 - [Project/대용량 트래픽 프로젝트] - [기술적 의사결정] MSA 환경에서 배송 정보 임시 저장소로 Redis를 사용한 이유 [기술적 의사결정] MSA 환경에서 배송 정보 임시 저장소로 Redis를 사용한 이유💡문제 상황우리 프로젝트에서는 주문을 생성할 때 배송 정보도 함께 입력받는 구조를 채택하고 있다. 현재 주문 처리 흐름은주문 ➡️ 재고 확인 ➡️ 결제 ➡️ 재고 차감 ➡️ 배송 ➡️ 주developer-jinnie.tistory.com 이전 글에서는 배송 데이터 임시 저장소로 Redis를 선택해 사용하게 된 기술적 의사결정 과정을 기술해보았다. 이번 글에서는 해당 구조에서 오는 문제점을 인지하고 해결하는 과정을 공유해보려 한다. 💡문제 상황현재 개발 중인 서..

[기술적 의사결정] MSA 환경에서 배송 정보 임시 저장소로 Redis를 사용한 이유

💡문제 상황우리 프로젝트에서는 주문을 생성할 때 배송 정보도 함께 입력받는 구조를 채택하고 있다. 현재 주문 처리 흐름은주문 ➡️ 재고 확인 ➡️ 결제 ➡️ 재고 차감 ➡️ 배송 ➡️ 주문 완료순으로 진행된다. 여기서 맞닥뜨렸던 고민이 있었다. "배송 정보는 결제가 완료되어야만 유효한데, 주문 생성 시점에서 이 정보를 어떻게 안전하게 처리할 수 있을까?" 예를 들어, 사용자가 주문을 시작하면서 배송지 정보를 함께 입력했다고 해보자. 그런데 결제를 하지 않고 중간에 이탈해버린다면? 결과적으로 결제가 완료되지 않은 주문과 배송지 정보가 DB에 불필요하게 영구 저장될 수 있다. 사용자 수가 많아질수록, 예컨대 100명이 결제 없이 이탈한다면 그만큼 불필요한 주문 데이터와 함께 민감한 개인정보(주소, 연락처 ..