3️⃣ 상품 수정
PatchMapping 처음 해봄.
상품의 모든 정보를 받는 게 아니라 Map<String, Object>로 일부분만 받고 수정하는 식임.
근데 @RequestBody 안 붙여놓고 왜 안되지??? 이러고 있었음.
public void modifyProductInfo(String key, Object value, String userRole) {
switch (key) {
case "productName" -> this.productName = (String) value;
case "productQuantity" -> this.productQuantity = (Integer) value;
case "productCompanyId" -> {
if (!"HUB_MANAGER".equalsIgnoreCase(userRole) && !"MASTER".equalsIgnoreCase(userRole)) {
throw new UnauthorizedException("상품의 업체를 변경할 권한이 없습니다.");
}
this.productCompanyId = UUID.fromString((String) value);
}
default -> throw new IllegalStateException("잘못된 필드명 : " + key);
}
}
4️⃣ 상품 삭제
근데 이걸 하는 과정에서 엄청난 Conflict들이 와르르 나옴.
5️⃣ Git Conflict
- 문제
작업한 내용 PR → Resolve Conflicts… → Merge 받고 하려니 완료가 안됨 → Abort 반복 후 Rebase
→ git push했더니 내가 안한 커밋들까지 우루루 올라가버림.
- 해결
- 문제 브랜치 삭제
- 작업 파일 새로 다운로드 : git clone -b develop <깃 주소>
- develop 브랜치 업데이트 : git checkout develop → git pull
- 이슈 번호에 맞는 새로운 브랜치 만들기
예) git checkout -b feat/#41_updateProduct2 - 작업했던 내용 옮기고 커밋
- git push 후 나오는 코드 그대로 복붙해서 커맨드
- PR 재제출
💡 PR 후 새로 작업 시작할 때
- PR 후 작업한 브랜치 삭제
- git checkout develop
- git pull로 develop 최신 상태로 업데이트
- 이슈 생성 - 새로 작업할 브랜치 만들기
- 작업 완료 후 커밋 및 푸시
- git push만 입력하면 나오는 커맨드 명령 그대로 올리기
💡 작업중일 때
- 작업하고 깃 커밋git
- git checkout develop
- git pull
- git checkout <작업하던 브랜치>
- git merge develop
- git push
6️⃣ 401 Error
PR 받고 테스트해보니까 다 401에러 남… → user-service security 때문이었음.
근데 매번 로그인하기엔 번거롭기 때문에 SecurityConfig 설정 (갓용석!!)
→ build.gradle에 security 의존성 추가
@Configuration
public class SpringSecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception{
http.csrf(AbstractHttpConfigurer::disable); // csrf 보호 비활성화
http.httpBasic(AbstractHttpConfigurer::disable); // HttpBasic 비활성화
http.sessionManagement((session) -> session
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)); // 세션 저장 X
return http.build();
}
}
당연히 나중에 삭제할 거지만 지금 매번 로그인하기 빡셈.
728x90
'TIL' 카테고리의 다른 글
TIL28. FeignClient로 AI API 가져오기 + 인증 @PreAuthorize (0) | 2025.03.27 |
---|---|
TIL27. 주문 만들기 + Client 연결 실패 문제 해결! (0) | 2025.03.21 |
TIL25. 상품 만들기 (1) 생성, 조회 (0) | 2025.03.18 |
TIL24. 업체 만들기 (0) | 2025.03.17 |
TIL23. 공통 모듈 만들기 - Exception, BaseEntity (0) | 2025.03.14 |