너무 오랜만에 써서 죄책감이 좀 들지만 그동안 휴가도 다녀오고 코로나도 걸리고 일하느라 바쁘고 했답니다요 😭
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class RequestContextHelper {
public static UserDto getLoginUserInfo() {
return (UserDto) RequestContextHolder.getRequestAttributes().getAttribute("loginUserInfo", RequestAttributes.SCOPE_SESSION);
}
public static void setLoginUserInfo(UserDto userDto) {
RequestContextHolder.getRequestAttributes().setAttribute("loginUserInfo", userDto, RequestAttributes.SCOPE_SESSION);
}
}
INVALID_REFRESH_TOKEN("0001", "유효하지 않은 Refresh Token 입니다."),
BAD_CREDENTIALS("0002", "ID 또는 비밀번호를 확인해주세요."),
FAILED_SAVE("0003", "저장시 오류가 발생했습니다."),
INVALID_REQUESTER("0004", "잘못된 요청입니다."),
INVALID_REQUEST("0005", "잘못된 요청입니다."),
이건 예전에 선생님이 가르쳐주신 적 있는데 http 메소드가 종류별로 있구나 ~ 분명 기억했는데 PUT은 기억못하고 POST로 만들어버렸다.. 이제 안까먹을 것임!
PUT은 새로운 데이터로 덮어쓰기 즉 업데이트를 하기 위한 용도로 사용되는 HTTP 메소드! PATCH라는 것도 있는데 이거는 부분적으로 덮어쓸때 사용하고 보편적으로 PUT이 더 흔히 사용됨.
HTTP 메소드로 API의 용도를 구별하면 일일히 매핑 url을 붙여줄 필요 없이 깔끔하게 API를 만들 수 있어서 좋은 것 같음!
@PutMapping("")
public ResponseDto<DiaryDto> modifyDiary(DiaryDto diaryDto) {
UserDto userDto = RequestContextHelper.getLoginUserInfo();
return ResponseDto.ok(diaryService.modifyDiary(userDto, diaryDto));
}
public DiaryDto modifyDiary(UserDto userDto, DiaryDto diaryDto) {
DiaryDto oldDairyDto = diaryMapper.findDiaryByDiaryNo(diaryDto.getDiaryNo());
if (oldDairyDto == null) {
throw new BizException(ResultCode.INVALID_REQUEST);
}
if (!StringUtils.equals(oldDairyDto.getCreateId(), userDto.getUserId())) {
throw new BizException(ResultCode.INVALID_REQUESTER);
}
diaryDto.setUpdateId(userDto.getUserId());
Integer row = diaryMapper.updateDiary(diaryDto);
if (row < 1) {
throw new BizException(ResultCode.FAILED_SAVE);
}
return diaryMapper.findDiaryByDiaryNo(diaryDto.getDiaryNo());
}
}
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
느낀점
점점 일은 더 바빠지고 많아지지만 그래도 회고는 주기적으로 해야겠다는 생각이 든다. 회고를 해야 내가 공부했던 것들이 제대로 습득되는 느낌. ㅎㅎ 그리고 토이프로젝트 덕분에 실무 능력이 많이 향상되었다는게 느껴진다. 아직 갈길이 멀지만 오늘 회사에서 칭찬을 많이 들어서 기분이 좋았다. 좋은 선생님을 만난 덕분이기도 하고 ! ㅎㅎ 토이프로젝트의 장점은 내가 만들고 싶은 걸 만들기 때문에 재밌게 개발할 수 있다는 것. 그리고 실무에 도움되는 공부가 많이 되는 것 같다. 이제 몸 건강 챙기면서 다시 모든걸 열심히 해보쟈 두벼리 아쟈아쟈뵤!!