[그릿 모먼츠] 백엔드 개발자 이력서 특강 후기
·
카테고리 없음
그릿모먼츠에서 주니어 백엔드 개발자를 위한 이력서 특강이 있었다. 후기를 작성해보려고하고, 그 안에서 어떤식으로 느꼈는지 인상 깊었던 내용에 대해서 적어보려고한다. 그전에, "왜 내 이력서는 떨어질까?", 프로젝트를 해보고 재료가 충분히 있다고 생각해도 결과는 쉽지 않았다. 내 이력서와 붙는 이력서는 뭐가 다를까, 이력서는 왜 써야할까? 그리고 거기에 어떤 내용을 넣어야할까? 명시적 재료의 게임수많은 예시 이력서들을 보면, 다 비슷하다. REST API 개발, 캐싱을 사용하여 성능 개선, 00ms -> 00ms, .. 명시적 재료의 게임은 센캐들과의 경쟁이다. 주니어일수록, 연차가 낮을수록, 신입일수록 명시적 재료의 게임에서는 질 수밖에 없는 것이다. 100명 중에 1명을 뽑는다면, 명시적 재료들로 내가..
Redis-MySQL 정합성 보장: 고민, 측정, 그리고 선택
·
SPRING
들어가며: 축제 현장의 실시간 대기열, 한 명도 놓칠 수 없다Festin은 대학 축제 부스의 대기열을 실시간으로 관리하는 시스템입니다. 사용자들은 모바일로 대기 등록을 하고, 부스 운영자는 "다음 사람 호출" 버튼으로 순서대로 손님을 받습니다.성능과 이력 관리를 위해 다음과 같은 아키텍처를 선택했습니다.왜 이렇게 설계했을까?대기 등록 시점: Redis만 사용1. 부스 정보 조회 (Redis) 2. Lua Script로 원자적 등록 처리: 중복 체크 + enqueue + 활성 부스 추가를 단일 원자 연산으로 3. 결과 반환 4. MySQL 저장 없음이유:성능: 1,000 TPS 목표 - MySQL 트랜잭션은 병목실시간성: Redis는 메모리 기반, 응답 속도 원자성 보장: Lua ..
초당 5,000건 트래픽, 한 번 고민해보기
·
SERVER
해당 포스팅은 빅테크 기업의 시니어 엔지니어 입장에서 현실적인 기술 문제를 해결해보기 위해 임의로 페르소나와 상황을 정하여 고민해보았습니다. 구체적인 코드를 제공하지 않고, 해결과정의 흐름과 과정을 담아습니다. 문제상황[가상 시나리오] 배달의민족 10주년 쿠폰 이벤트우리 팀은 "배민 10주년 기념 2만원 쿠폰" 이벤트를 준비 중입니다. 선착순 1만 명에게 지급되며, 오픈 예상 트래픽은 첫 10초간 3~5만 건 요청 (초당 3,000 ~ 5,000건)입니다. 지난 이벤트에서는 오픈 15초 만에 14,700장이 발급되어 9,400만 원의 손실이 발생했고, 일부 사용자가 동일 쿠폰을 2~3회 중복 사용한 사례가 230건 발견되었습니다. 이는, 쿠폰 발급 시 "잔여수량 확인 → 발급 → 차감" 과정에서 동시 요..
[JAVA] 이진 탐색/이분 탐색
·
공부
이진 탐색(Binary Search)정렬된 배열에서 특정 값을 찾는 알고리즘탐색 범위를 절반씩 줄여 나가기 때문에 선형탐색에 비해 빠른 속도 보장시간 복잡도 O(logn) 상대적으로 매우 빠름이때 선형 탐색이란?- 배열(Array)이나 리스트(List)와 같은 데이터 구조에서 처음부터 끝까지 하나씩 값을 비교하면서 찾는 값을 찾을 때까지 탐색- 즉, 정렬되지 않은 상태에서 찾는 것으로 이진탐색과 다른점시간 복잡도 O(n)배열의 ‘중간 값’ 을 선택하여 찾고자 하는 값과 비교만약 중간 값이 찾고자 하는 값보다 크면 ‘배열 왼쪽 부분’에서 탐색을 진행중간 값이 찾고자 하는 값보다 작으면 ‘배열 오른쪽 부분’에서 탐색을 진행이 과정에서 찾고자 하는 값이 나올 때까지 반복이진탐색 과정정렬된 배열 array에서 ..
[Spring] Transaction Propagation
·
공부
Transaction시작과 종료가 존재종료커밋(commit): 모든 작업을 확정지음롤백(rollback): 모든 작업을 무효화함스프링에서는 내부적으로 커넥션 갖고있음→ transactionManager 이용하나의 트랜잭션 시작시, commit () 또는 rollback() 호출될 때 까지가 하나의 트랜잭션으로 묶임스프링에서는 선언적 트랜잭션(트랜잭션 어노테이션, @Transactional)여러 트랜잭션을 묶어서 하나의 트랜잭션 경계를 만들 수도 있음물리 트랜잭션 vs 논리 트랜잭션기존의 트랜잭션 진행 중일 때 추가적인 트랜잭션 진행해야하는 경우엔?만약, 트랜잭션 전파 없이 1개의 트랜잭션만 사용되면 물리 트랜잭션만 존재트랜잭션 전파 사용될 때 논리 트랜잭션 개념 사용물리 트랜잭션실제 데이터베이스에 적용되..