Repository navigation
Conversation
[CHORE] PR/ISSUE 템플릿 세팅
- "optional:file:.env[.properties]"로 .env 자동 로드 설정 - 환경변수 처리 IssueNum #3
IssueNum #3
Chore/#3 properties to yml
- spring-boot-starter-data-jpa (PostgreSQL + JPA) - postgresql 드라이버 - spring-boot-starter-data-redis (Valkey) - spring-boot-starter-actuator (헬스체크) IssueNum #5
- PostgreSQL datasource (HikariCP 포함) - JPA/Hibernate 설정 (ddl-auto: none, 엔티티 생성 후 update로 변경 예정 <- 주석으로 표기) - Redis 연결 설정 - 모든 값은 환경변수로 주입, 기본값X IssueNum #5
IssueNum #5
- show-details: always 설정으로 개발시 상세 정보 전체 노출 IssueNum #5
- show-details: when_authorized 설정으로 인증된 요청만 상세노출 IssueNum #5
- Hibernate 6.x부터는 DB 버전을 자동 감지하므로 해당 설정 제거 IssueNum #5
[CHORE] DB 연결 설정
- BIGSERIAL 대신 GENERATED ALWAYS AS IDENTITY 사용하여 외부에서 ID 임의 삽입 방지 - TIMESTAMP 대신 TIMESTAMPTZ 사용하여 타임존을 포함해서 서버 로케일에 무관하게 정확한 시각을 보장 - FK에 ON DELETE CASCADE 과 ON DELETE SET NULL 명시하여 회원 탈퇴 시 연관 데이터 정리 정책을 DB 레벨에서 보장 - category_id는 카테고리 삭제 시 링크는 유지하되 미분류로 바뀌도록 SET NULL 처리 - last_checked_at에 인덱스 추가하여 스케줄러가 재검사 대상을 조회할 때 사용 IssueNum #8
- BOOLEAN -> TIMESTAMPTZ로 수정 - not null 제약 조건 삭제 IssueNum #8
IssueNum #8
IssueNum #8
IssueNum #8
IssueNum #8
IssueNum #8
IssueNum #8
IssueNum #8
IssueNum #8
IssueNum #8
[FEATURE] 초기 엔티티 설정
[FEATURE] Flyway 마이그레이션 설정
# Conflicts: # src/main/java/com/linclean/global/exception/GlobalExceptionHandler.java
[FEATURE] 회원 탈퇴 api 개발
…() 수정 - HandlerMethodValidationException API가 Spring 6.2에서 변경됨 IssueNum #38
…alidationException-change [REFACTOR] HandlerMethodValidationException 변경
- GET /api/v1/analyses/statistics 엔드포인트 추가 (인증 불필요) - AnalysisRepository에 verdict별 집계 쿼리 추가 - SecurityConfig에 통계 엔드포인트 permitAll 설정 IssueNum #30
- VerdictStatisticsService: Cache-Aside + 50분 주기 pre-warming 스케줄러 - 기동 시 ApplicationReadyEvent로 즉시 캐시 초기화 - Redis 장애 시 DB fallback 처리 - HSET+EXPIRE pipeline으로 TTL 누락 방지 - VerdictStatisticsResponse: Redis/DB 두 소스 변환 팩토리 IssueNum #30
- queryAndCache()의 executePipelined() 예외를 별도 try-catch로 처리 - 읽기 성공 후 쓰기가 실패하는 플랩 상황에서 500 에러 방지 IssueNum #30
- VerdictStatisticsServiceTest: 캐시 히트/미스, Redis 읽기/쓰기 장애 fallback, 스케줄러 동작 - VerdictStatisticsResponseTest: Redis 해시 및 DB 결과 변환, 비정상 값 방어 처리 - VerdictStatisticsControllerTest: GET /api/v1/analyses/statistics 응답 검증 IssueNum #30
- onApplicationReady: executePipelined 검증 추가 (이름과 불일치 해소) - scheduledRefresh_dbFailure: assertDoesNotThrow로 의도 명시 - emptyString_returnsZero: SAFE/DANGER 필드 검증 추가 IssueNum #30
[FEATURE] 등급 현황 api 개발
- SavedLinkServiceTest: checkUrl 존재/미존재 케이스 검증 - SavedLinkControllerTest: GET /saved-links/check 응답 검증 IssueNum #42
- GET /api/v1/saved-links/check?url={url}
- Analysis.originalUrl 기준 exact match로 멤버별 중복 여부 확인
IssueNum #42
- MissingServletRequestParameterException → 400 처리 (GlobalExceptionHandler) - 빈 문자열 url 파라미터 → 400 처리 (컨트롤러 직접 검증) IssueNum #42
- 400, 401 응답 코드 추가 IssueNum #42
- 멀티스테이지 빌드 및 의존성 캐시 레이어 분리 - non-root 유저 실행 및 exec를 통한 graceful shutdown 지원 - .dockerignore로 불필요한 파일 빌드 컨텍스트 제외 IssueNum #40
- server.shutdown: graceful 및 shutdown timeout 30s 설정 - show-sql: false로 prod 환경 SQL 로깅 비활성화 IssueNum #40
- ContentAnalysisStage에 statusCode, error, reason 필드 추가 - AnalysisResponse forSucceeded()에서 fetched=false 시 contentAnalysisError 노출 IssueNum #46
- CI: PR/push 시 Testcontainers 기반 gradle 테스트 실행 - CD: CI 성공(main) 후 workflow_run 체이닝으로 이미지 빌드·푸시 - 배포는 OIDC + SSM SendCommand로 EC2 docker compose 갱신 IssueNum #40
- application-test.yml에 server.port·clerk·analysis-engine·internal 값 추가 (.env에 의존하던 기본값 없는 placeholder를 test 프로파일에서 자급자족) - @WebMvcTest 컨트롤러 테스트 3종에 @activeprofiles("test") 추가 (dev 프로파일로 로드되어 ${API_PORT} 미해소되던 문제 해결) IssueNum #40
- 수동 트리거로 빌드·푸시/배포를 단계별 테스트 및 재배포·롤백 가능 - 두 이벤트(workflow_run/dispatch) 모두 지원하도록 if 가드 및 checkout ref 보정 IssueNum #40
- 폴링 루프가 timeout(끝까지 Pending)으로 끝나도 워크플로가 성공 처리되던 문제 수정: 최종 상태가 Success가 아니면 exit 1 - docker compose up에 --wait 추가로 컨테이너 healthcheck가 healthy 될 때까지 대기, 실패 시 배포 실패로 전파 IssueNum #40
[BUILD] 배포 자동화 세팅
IssueNum #48
[Build] 컨테이명 수정
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.
No description provided.