주말에 살짝 작업을 추가로 했는데, 먼저 @ApiResponse를 집어넣어서 오류코드의 예시들을 보여주려고 했는데, 넣어야 하는 오류코드도 많은데다가 직접 모든 오류코드를 하나씩 넣으려 하다보니 너무 많은 시간이 지났다.
거기다 404 코드가 떠야 하는 상황에 403 코드가 뜬다던가 하는 일이 겹치자 이걸 넣으면 오히려 발표할때에 방해가 될수도 있겠다는 생각이 들어서 결국 피눈물을 흘리며 원상복구를 해야만 했다. 그래서 그 다음엔 @parameter를 추가했다. 이걸 추가하면
fun updateSong(@PathVariable albumId: Long, @PathVariable songId: Long, @RequestBody songUpdateDTO: SongUpdateDTO): ResponseEntity<out Any> {
val song = songService.getSong(albumId, songId)
return if (song != null) {
songService.updateSong(albumId, songId, songUpdateDTO)
ResponseEntity.ok(songUpdateDTO)
} else {
ResponseEntity.status(HttpStatus.NOT_FOUND).body(mapOf("message" to "존재하지 않는 곡입니다."))
}
}
이렇게 updatesong 안에 있는 코드를 @Parameter(description은 넣고 집어넣을 설명을 넣으면
fun updateSong(
@Parameter(description = "앨범 ID") @PathVariable albumId: Long,
@Parameter(description = "곡 ID") @PathVariable songId: Long,
@Parameter(description = "업데이트할 곡 정보") @RequestBody songUpdateDTO: SongUpdateDTO
): ResponseEntity<out Any> {
이렇게 설명이 나와준다.
그리고 발표하는날, 발표자가 장례식이 있다면서 갑작스래 탈주하는 바람에 바빠졌다!! 발표자료도 처음부터 다시 준비하고 발표자도 정하고... 진짜 어이가 없었다. 그야 준비를 안했으니까!!! 이상하게 403 오류가 계속 떠서 수정도 안되고 시간만 잡아먹고 실수를 연발하고... 노트북이 고장나서 자료 다 날라갔다기에 발표라도 하랬더니 전부 자기가 하겠다고 해놓고 맘놓고 있으니 당일에 사실 장례식이라서요!! 이건 무슨... 욕이라도 하고 싶었지만 그럴 시간도 없었다. 심지어 발표영상도 찍어야하는데??
그래서 발표자료랑 영상을 만드려고 작업하는데 갑자기 오류가 나질 않나, 403 이 계속 뜨면서 고생하다가 튜터님이 영상은 상황을 감안해서 찍지 않아도 된다고 하셔서 다행이 넘어갈수 있었다.
팀원이 도주하는 일이 일어나다니... 그래도 다행이 간신히 발표를 마칠수가 있었다. 그리고 이번 발표를 통해서 오류가 발생했고, 그걸 해결하는 과정을 따로 기록해두어야 한다는걸 알았다. 그걸 트러블 슈팅이라고 한다. 그리고 비밀번호가 화면에 그재로 노출됬는데, 그걸 가리는게 좋다고 하셨다.
그리고 왜 이 데이터베이스를 사용했는지, 왜 이로직을 사용했는지 의사결정과정도 넣으라는 이야길 들었다.
다음번에 과제를 할때 참조해야겠다.
그리고 마지막으로 다음 수업을 들으려 했는데, 이전의 강의자료를 그대로 사용하는게 아닌가? 근데 내가 그걸 다른 과제를 할때 처음에 그걸 개조해서 한 바람에 손상이 많이 가 있어서 복구하는데 시간을써야만 했다. 새프로젝트를 만드는게 아니라 바로 원래 강의를 들을때 사용한 내용물을 지워버리고 과제용으로 만든게 탈이였다. 아까운 내 시간...