전체 글 100

[프로젝트/기술적 의사결정] Kafka vs RabbitMQ, 대규모 트래픽 상황에 맞는 메세징 시스템 선택

요구 사항사용자들이 주문 api 요청을 할 때, 사용자 트래픽이 몰리는 상황에서도 안정적인 주문 처리가 필요했다. 주문이 완료되면 재고를 차감하는 기능이 필요했고, 이때 효율적으로 주문을 처리하고 트래픽을 관리하기 위해 메시징 시스템을 도입하기로 결정했다. 기술 선택지RabbitMQKafka 선택한 기술 및 근거두 가지 기술 선택지 중, 어떤 시스템이 더 적절한지 검토할 때 아래와 같은 상황을 고려했다.▪️트래픽 처리 능력 : 높은 동시 요청 상황에서의 안정성이 필요하다. ▪️메세지 전달 보장 : 주문이 실패 없이 처리되어야 하며, 중복 주문이나 데이터 손실을 방지해야 한다. ▪️재고 관리 : 주문이 완료되었을 때 재고를 정확히 차감해야 한다. 이제 각 기술 선택지를 비교해보면서 결론을 내려보자.  1...

[프로젝트] MSA 기반 대용량 트래픽 프로젝트 설계 및 S.A 문서

MSA 기반 대규모 트래픽 처리 팀 프로젝트에 들어가면서, 초반 요구사항을 정리하고 ERD를 설계하는 동안 들었던 고민들과 그 결과를 정리해두려 한다.이번 프로젝트는 요구사항이 미리 정해진 게 아닌, 팀원들과 함께 상의해서 요구사항을 정하는 프로젝트였으므로 요구사항과 도메인 구성 등등을 정하기 위한 회의를 진행했다. 🔹요구 사항요구사항의 경우, 팀원들 모두가 개발 시 공통적으로 지켜야 할 요구 사항과 도메인 별 요구 사항으로 나누어 토론하고 결정했다. 🔗전체 요구사항 보러가기 요구 사항 정리 | Notion필수 구현 사항teamsparta.notion.site 🔹테이블 명세서 및 ERD🔗테이블 명세서 보러가기 테이블 명세서 | Notion유저(p_users)teamsparta.notion.site..

[programmers lv1.python] 달리기 경주 풀이 (시간초과 해결)

https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제문제는 간단하다 ! 해설진이 이름을 부르는 선수는 달리기 경주 중 현재 자리에서 추월한 선수이므로, 선수들 리스트에서 한 칸 땡겨오면 되는 것! 1차 풀이 (시간 초과 실패)def solution(players, callings): for call in callings: # 호출된 이름(call)의 현재 인덱스 찾기 idx = players.index(call) # 첫 번째 원소가 아니라면 ..

[내배캠 Spring 심화 트랙 1기 후기] 배움에 목마른 개발자라면!

필자는 일주일 전 내일배움캠프 Spring 심화 트랙 1기를 막 수료한 따끈따끈한 수료생이다.점점 높아지고 있는 신입의 기준 문턱 아래에서, 나와 같이 실력적 성장을 위해 너무나 노력하지만 독학의 한계에 부딪히고 있는 개발 취준생에게 조금이나마 도움이 됐으면 해서 이 후기(겸 회고)를 적는다.✏️ 심화 트랙 이전의 삶필자는 개발 공부를 시작한지 1년 정도가 지난 취준생이었다. 작년에 KDT 국비 부트캠프를 수료하고, 실력적으로 부족함을 느껴 개인 프로젝트를 했다. 이후 마음 맞는 분들과 MSA 팀 프로젝트를 한 개 더 하며 한 계단씩 성장하면서 기본기를 충실히 쌓아왔다고 생각했다. 하지만 마지막 프로젝트를 하며 느꼈던 아쉬움이 내배캠을 선택한 계기가 되었다. ✏️내배캠 심화 트랙을 선택한 계기심화 트랙을..

Review 2024.11.01

[AWS] 프리티어를 쓰고 있었는데 나도 모르는 요금이 청구됐다면?!

Gmail을 확인하다가 평소와는 다른 .. 매우 급해보이는 (?) 메일이 AWS에서부터 온 걸 확인했다.내용인 즉슨, 비용이 연체되고 있으니 계정 정지되고 싶지 않으면 돈 내라는 소리였다.머선 소리지 이게..? 난 분명 프리티어 버전을 쓰고 있었는데 말이야 ..  비용 분석 탭을 보니 Amazon Virtual Private Cloud (VPC) 관련 비용이 발생하고 있는 것 같았다.  원인자세히 알아보니 달 마다 약 5000원 씩 결제가 됐어야 했다. (중간에 해당 카드를 잃어버려 재발급을 받았었는데 그거 때문에 비용이 청구되고 있었던 걸 몰랐던 것 같다 😢) 원인 파악을 위해 검색 중 아래의 소식을 발견했다. 공지 – AWS Public IPv4 주소 요금 변경 및 Public IP Insights..

Cloud/AWS 2024.10.10

[programmers lv.1 python] '로또의 최저 순위와 최고 순위' 풀이

https://school.programmers.co.kr/learn/courses/30/lessons/77484 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 흥미로운 문제였다. 처음엔 for문으로 lottos를 순회하면서 win_nums와 겹치는 숫자를 구분하려고 했는데, lottos의 원소 중 0이 나오면 처리를 어떻게 해야할지 막혀서 고민을 오래 했다.고민을 오래 한 이유 중에는 0이 모두 당첨 번호일때와 모두 틀릴 때, 몇개는 당첨 번호이고 몇 개는 틀린 경우일 때도 생각해줘야 한다고 생각해서도 있었다. 하지만 문제의 제목이 '최저 순위와 최고 ..

[boj 1092.python] '배' 풀이 (feat. 언어만 바꿔도 통과, Python3와 PyPy3의 차이)

https://www.acmicpc.net/problem/1092  1차 시도 👉 시간 초과 실패N = int(input()) # 크레인 갯수cranes = list(map(int, input().split())) # 각 크레인의 무게 제한M = int(input()) # 박스의 갯수boxes = list(map(int, input().split())) # 각 박스의 무게cranes.sort(reverse = True)boxes.sort(reverse = True)# 예외 처리if boxes[0] > cranes[0]: print(-1)# 시간이 얼마나 걸리는지 계산time = 0while boxes: time += 1 for crane in cranes: # 각 크레인이 ..

Algorithm/BaekJoon 2024.09.23