Repository navigation
Conversation
10곳이 새 항목의 display_order를 "현재 행 수"로 정했는데, 삭제가 순서를 다시 매기지 않아 삭제 뒤 새 항목이 기존 항목과 같은 순서를 받았다(예: [0, 2]에 추가하면 2가 겹친다). 같은 순서끼리는 정렬이 정해지지 않아 공개 페이지 순서가 흔들릴 수 있었다. - DisplayOrders.next(형제 목록, 순서 getter): 비어 있으면 0, 아니면 마지막 순서 + 1. - 활동 분류, 커리큘럼·주차·토픽, 게임, 게임·트랙 페이지 부원, 멘토 슬롯, Q&A, 트랙 페이지에 적용한다.
하루 한도 검사가 그날 회원의 기존 예약 행만 잠가, 기존 예약이 없는 날에는 같은 회원의 동시 요청(겹치지 않는 2시간 + 2시간)이 둘 다 통과해 4시간이 예약됐다. - 예약 생성 시 회원 행을 잠가 한 회원의 예약 생성을 직렬화한다. - 반복 예약 저장 중 다른 회원과의 동시 충돌(배타 제약 위반)을 단건과 같이 409로 바꾼다 (이전: 일반 400, 전체 롤백은 동일).
…o chore/merge-train
…nto chore/merge-train
… chore/merge-train
…o chore/merge-train
…to chore/merge-train
…chore/merge-train
…to chore/merge-train
…into chore/merge-train # Conflicts: # src/main/java/com/bcsdlab/bcsdinternalapiv2/curriculum/service/AdminCurriculumService.java
…o chore/merge-train
- TrackMaster·TrackMasterRepository를 member.model·member.repository로 옮긴다. 부원 소속을 나타내는 엔티티라 member가 소유하고, track은 이를 참조만 한다. - 회원 등록·명부 수정의 트랙 없음 예외를 MemberExceptionType.TRACK_NOT_FOUND로 바꾼다. 상태 코드(404)와 메시지는 기존 TrackExceptionType과 같아 응답은 그대로다. - ArchUnit으로 도메인 패키지 사이의 새 순환을 막는다. auth↔member, track↔curriculum은 한 방향만 무시하는 허용 예외로, global.config는 조립 지점이라 검사에서 뺀다.
auth·member·ledger·reservation 등 18개 *Api 인터페이스가 컨트롤러와 같은 매핑을 한 번 더 적고 있었다. 나머지 22개처럼 인터페이스에는 OpenAPI 문서 애노테이션만 두고, 매핑은 컨트롤러에만 둔다. 구현 메서드에 매핑이 있으면 Spring은 인터페이스 쪽 매핑을 쓰지 않으므로 라우팅은 그대로다. AdminLedgerImportApi.preview만 인터페이스에 consumes=multipart가 더 있었는데, 지금도 적용되지 않던 값이라 컨트롤러 쪽(consumes 없음)을 그대로 둔다.
auth·member 관례(ADR-022)대로 본문을 직접 반환하던 52개 메서드를 ResponseEntity.ok(...)로 감싼다. @ResponseStatus를 쓰는 곳이 없어 이 메서드들은 원래 200이었고, 상태 코드와 본문은 그대로다.
외부 호출이 없고 모든 public 메서드가 이미 @transactional을 선언하던 서비스 7개를 클래스 @transactional(readOnly = true) + 쓰기 메서드 @transactional로 바꾼다. 메서드별 실효 속성(읽기 전용/쓰기)은 그대로다. Slack·메일·HTTP 호출이 있거나 트랜잭션 밖에서 도는 메서드가 있는 서비스(AuthService, PasswordResetService, AdminMemberService, SlackProfileSyncService, MemberSlackIdWriter, Dues 알림 등)와 쓰기 전용 트랜잭션 경계 빈(*Writer, *Issuer 등)은 그대로 둔다.
zip → 첫 시트 경로 → sharedStrings → 행 목록까지(OOXML 읽기)를 XlsxSheetReader로 옮기고, ShinhanXlsxParser에는 헤더 찾기·거래 변환·금액 규칙(신한 형식 해석)만 남긴다. 오류 메시지, 검사 순서, 한도 값은 그대로다.
- Reservation.overlaps(start, end), hasStartedAt(now): 서비스에 있던 구간 겹침·시작 여부 계산을 엔티티로 옮긴다.
- EntryType.signed(amount): ImportSequencer·DuesCalculator에 따로 있던 입금 +, 출금 - 계산을 하나로 모은다.
- 회비 알림 발송 건·회원별 상태 문자열("IN_PROGRESS"/"DONE", "PENDING"/"SENT"/"FAILED")을
NotificationBatchStatus·NotificationRecipientStatus enum으로 바꾼다. 값은 V26 체크 제약과 같아 저장 형식은 그대로다.
… refactor/controller-response-entity # Conflicts: # src/main/java/com/bcsdlab/bcsdinternalapiv2/game/controller/GameApi.java # src/main/java/com/bcsdlab/bcsdinternalapiv2/home/controller/HomeApi.java # src/main/java/com/bcsdlab/bcsdinternalapiv2/track/controller/TrackApi.java
도메인 구성, 메모리·마이그레이션·배포·공개 레포 제약, 코드 규약(경로, Api/Controller 분리, ResponseEntity, 트랜잭션 선언 위치, 도메인 순환 금지), 테스트 관례를 정리한다.
# Conflicts: # src/main/java/com/bcsdlab/bcsdinternalapiv2/curriculum/service/AdminCurriculumService.java
…o chore/merge-train-2
…e' into chore/merge-train-2
… chore/merge-train-2
…ity' into chore/merge-train-2
…' into chore/merge-train-2
…nto chore/merge-train-2
…into chore/merge-train-2
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Contributor
Author
|
통합 CI 통과. 검증용 PR을 닫고 개별 PR을 순서대로 머지합니다. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
남은 PR을 머지 순서대로 합친 상태를 CI로 한 번에 검증하는 draft입니다. 검증 후 닫습니다.
순서: #151 → #157 → #159 → #160 → #161 → #162 → #163 → #164 → #165