본문 바로가기

Queue5

동시성 조회 문제 해결 및 성능에 관한 고민 [Lock, Queue, Redis] 주문 건에 대한 상품 재고 파악 동시성 관련 이슈에 대해 고민한 하루다. 프로젝트 리팩토링을 시작하며 지난 도메인들은 기본 crud API만을 다루었다. 5일동안 JPA 강의들을 수강하며 본격적으로 주문 및 결제 API 리팩토링에 다시 착수했다. 아무래도 프로젝트의 토픽이 쇼핑몰이니 주문 및 결제 파트에서 단순 CRUD가 아닌 핵심 비즈니스를 고려하고 싶어, 외부 결제 API 및 디자인 패턴을 적용한 깔끔한 코드들을 고려하며 작성하는 중이다. 대략적인 틀을 만든 뒤, 본격적으로 주문을 구현하던 중, 동시성 이슈 문제에 직면했다. 기존 동시성 문제 해결 방법 MSA를 고려했기에, 데이터 정합성 문제를 해결하기 위해 Outbox pattern을 이용중이었다. 이 방식을 통해 상품 동시성 문제를 해결했었다. .. 2022. 9. 14.
2022.05.31 「Lv.3 디스크 컨트롤러」 오랜만에 코테 문제를 풀어보았다. 힙 자료구조를 이용한 문제인데, 주로 우선순위 큐를 이용해 문제를 풀면 된다는 것을 배웠다. 프로젝트 때문에 시간이 거의 안 나는데 짬짬히 푸려고 노력을 좀 해야겠다. 풀이 과정을 설명하겠다. 문제 설명 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 제한 사항 jobs의 길이는 1 이상 500 이하입니다. jobs의 각 행은 하나의 작업에 대한 [작업이 요청되는 시점, 작업의 소요시간] 입니다. 각 작업에 대해 작업이 요청되는 시간은 0 이상 1,000 이하입니다. 각 작업에 대해 작업의 소요시간은 1 이상 1,000 이하입니다. 하드디스크.. 2022. 5. 31.
2022.05.18 「Lv.2 Heap 더 맵게」 자료구조 정리해야지 계획만 하고 눈으로만 개념들을 보고 정리하고 있다.. 눈으로 읽고 코드 작성해봐도 어느 정도는 감이 오는 것 같지만 빠른 시일 내에 정리 좀 해야겠다 정말 오늘은 오전에 Heap을 이용한 문제를 풀었다. Lv2이다. 예전에는 Lv1도 어려웠고, 문제 자체도 이해가 안 되었는데 풀다 보니 좀 감이 오는 듯하다..?? 두 달 안에 Lv3까지 마스터 목표를 잡자. 취업하고 싶다!! Heap이란 자료구조는 완전 이진트리와 거의 비슷한데 예전에 잠깐 이진 트리에 대해서 개념을 본 기억이 있었는데 개념을 먼저 보고 문제를 풀었다. 결국 Heap이 우선순위 Queue (PriorityQueue)를 구현하기 위해 Heap을 이용하는 건데 그와 비슷한 문제이므로 이를 이용하여 문제를 풀었다. 문제 설.. 2022. 5. 18.
2022.05.17 「Lv.2 프린터」 문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 됩니다. 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 .. 2022. 5. 17.
2022.04.27의 기록 ▶ 파트 1 (9시반 ~ 11시반) 1. 알고리즘 1문제 풀기 (배열, 스택, 큐를 이용해서 풀음) 2. 시간되면 DB 9.2.3 정리 ▶ 파트 2 (4시 ~ 12시) 1. 프로젝트 패키지 구성 고민 좀 해보자 2. DB 설계 (순차적으로 그리고 회고 작성) 3. mysql CH.9 4. 자기소개서 수정 2022. 4. 26.
반응형