Skip to content

[23기_김동욱] 성능최적화 미션 제출합니다.#69

Open
boogiewooki02 wants to merge 3 commits into
CEOS-Developers:boogiewooki02from
boogiewooki02:boogiewooki02
Open

[23기_김동욱] 성능최적화 미션 제출합니다.#69
boogiewooki02 wants to merge 3 commits into
CEOS-Developers:boogiewooki02from
boogiewooki02:boogiewooki02

Conversation

@boogiewooki02
Copy link
Copy Markdown

No description provided.

Copy link
Copy Markdown

@Seungwon326 Seungwon326 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

과제하시느라 고생많으셨습니다!!

Comment thread README.md
Comment on lines +975 to +983
| 전파 속성 | 설명 | 사용 예시 |
| --- | --- | --- |
| `REQUIRED` | 기존 트랜잭션이 있으면 참여하고, 없으면 새로 생성한다. 기본값이다. | 일반적인 서비스 계층의 저장/수정 로직 |
| `REQUIRES_NEW` | 항상 새로운 트랜잭션을 생성한다. 기존 트랜잭션은 잠시 중단된다. | 감사 로그 저장, 실패 이력 저장처럼 본 작업과 독립적으로 커밋해야 하는 로직 |
| `SUPPORTS` | 기존 트랜잭션이 있으면 참여하고, 없으면 트랜잭션 없이 실행한다. | 트랜잭션이 필수는 아닌 조회 로직 |
| `NOT_SUPPORTED` | 트랜잭션 없이 실행한다. 기존 트랜잭션이 있으면 잠시 중단한다. | 외부 API 호출, 긴 네트워크 I/O |
| `MANDATORY` | 반드시 기존 트랜잭션이 있어야 한다. 없으면 예외가 발생한다. | 상위 서비스 트랜잭션 내부에서만 호출되어야 하는 내부 메서드 |
| `NEVER` | 트랜잭션이 있으면 예외가 발생한다. | 트랜잭션 안에서 실행되면 안 되는 작업 |
| `NESTED` | 기존 트랜잭션 내부에 savepoint를 만들고 중첩 트랜잭션처럼 동작한다. | 일부 작업만 롤백하고 전체 트랜잭션은 유지해야 하는 경우 |
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

표로 깔끔하게 정리해주셔서 한 눈에 비교하기 수월했습니다!

Comment thread README.md
Comment on lines +1019 to +1026
이 구조는 다음 문제가 있습니다.

- 외부 결제 API 응답이 늦어지면 DB 트랜잭션과 커넥션이 오래 점유된다.
- 외부 결제는 성공했지만 DB 커밋이 실패하면 결제 상태와 예약 상태가 불일치할 수 있다.
- 외부 API는 DB 트랜잭션으로 롤백할 수 없기 때문에 트랜잭션 범위에 포함하는 것이 적절하지 않다.

### 개선 방향

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

문제점 인식과 개선까지 완벽하게 해주셨네요👍

Comment thread README.md
Comment on lines +1221 to +1223

`reserved_seat`는 좌석 단위로 데이터가 쌓이기 때문에 예약 ID 기준의 count/delete가 반복되면 전체 스캔 비용이 커질 수 있습니다. `res_id` 인덱스를 추가해 특정 예약에 연결된 좌석만 빠르게 찾도록 개선했습니다.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

최적화를 통해 시간이 얼마나 감소했는지도 최적화 전/후를 비교해서 알려주시면 좋을거같습니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants