배송 비활성 파트너의 사이드바 배송 메뉴 자동 숨김
목차
shipping_enabled='N' 파트너의 사이드바 배송 메뉴 숨김
shipping_enabled='N' 파트너의 사이드바 배송 메뉴 숨김 기능을 구현했음.
배경
기능 확장에 따라 관리 편의성과 사용자 경험을 높이기 위해 구현했음.
구현 방식
내부 클래스 1개, SQL 쿼리 1개를 작성했음.
코드 예시
// 핵심 로직
public void execute(Request request) {
validate(request);
Result result = process(request);
saveResult(result);
log.info("처리 완료: {}", result.getId());
}
검토 포인트
기능 추가 시 엣지케이스와 예외 처리를 먼저 정의하면 나중에 버그를 줄일 수 있음. 특히 null 처리와 상태 전환 조건을 명확히 해야 함.
정리
총 2개 파일 변경으로 기능을 완성했음. 정상 동작 확인 후 배포했음.
DB 설계 고려사항
이번 작업에서 DB 쿼리를 작성하면서 몇 가지를 점검했음.
인덱스 활용: WHERE 조건에 사용하는 컬럼에 인덱스가 있는지 확인했음. 특히 status, created_at 같은 자주 필터링하는 컬럼은 복합 인덱스를 고려했음.
-- 인덱스 설계 예시
CREATE INDEX idx_status_created ON 내부테이블 (status, created_at DESC);
-- status 필터링 후 최신순 정렬이 많을 때 유효
소프트 삭제: 데이터를 물리적으로 삭제하지 않고 deleted_at 컬럼으로 논리 삭제하는 패턴을 유지했음. 이력 추적이 필요한 데이터는 지우면 안 됨.
페이징: 대량 데이터 조회 시 LIMIT/OFFSET 방식이 현재 규모에서는 충분했음. 데이터가 많아지면 커서 기반 페이징으로 전환을 고려해야 함.
다음
댓글 0
첫 댓글 달아줘.