[๐ ์ฌ์ดํด2 - ๋ฏธ์ (์์ฝ ๋ณ๊ฒฝ/์ทจ์์ ์๋ฌ ์ฒ๋ฆฌ)] ๋ณด์ ๋ฏธ์ ์ ์ถํฉ๋๋ค.#445
Conversation
echo724
left a comment
There was a problem hiding this comment.
์๋
ํ์ธ์ ๋ณด์!
์ฌ์ดํด2๋ ๊น๋ํ๊ณ ๊ฐ๋
์ฑ ์๊ฒ ์ ์์ฑํด์ฃผ์
จ๋ค์! ๋๋ถ๋ถ์ ์์ธ/์๋ฌ ์ผ์ด์ค๊ฐ ์ปค๋ฒ๋๊ณ ๋ฉ์ธ์ง์ ํ์
๋ ์ ์ ํ๊ฒ ์ ์ฌ์ฉํ์ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ฒ ๋ณ๊ฒฝ ์์ฒญ์์๋
- ์ปจํธ๋กค๋ฌ, e2e ํ ์คํธ ์ผ์ด์ค๊ฐ ์์ ์๋๋ฐ ์ค์ ๋ก ์์ฒญ ๋ฐ๋๊ฐ ๋น๊ฑฐ๋ ์๋ชป๋ ๊ฐ์ ์์ฒญ์ด ์ ์ ์ฒ๋ฆฌ๋ก ๋๋ ๊ฒฝ์ฐ๋ค์ด ํ ์คํธ ์ผ์ด์ค๋ก ๊ฒ์ฆ์ด ๋์ ๊ฒ ๊ฐ์์. ํ ๋ฒ ๋ฌธ์ ์ํฉ ์ปค๋ฉํธ๋ก ๋จ๊ฒผ์ผ๋ ํ์ธํด๋ณด์๊ณ ํด๋น ์ผ์ด์ค๋ค ๊ฒ์ฆํ ์ ์๋ ํ ์คํธ๋ค ์์ฑํด๋ณด์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค!
- ์์์ ์ธ๊ธํ๋ ๊ฒ์ฒ๋ผ ๋ช๋ช ์์ธ ์ํฉ ์ปค๋ฒ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ์ธํด๋ณด์๊ณ ์ ์ ํ ์์ธ์ฒ๋ฆฌํด์ฃผ์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค!
์๋๋ ์ง๋ฌธ์ ๋ํ ๋ต์ ๋๋ค! (๋ช๋ช์ ์ฝ๋ ์ปค๋ฉํธ๋ก ๋จ๊ฒผ์ต๋๋ค)
- Not Found: ์ ๋ ์ด ๋ถ๋ถ ํฌ๋ฃจ๋ค ๊ณตํต์ ์ผ๋ก ํผ๋๋ฐฑ์ด ๋๋ ธ๋ ๋ถ๋ถ์ด๋ผ ์ ๋ ์ข ๋ ์ค๋ช ์ ๋๋ฆฌ๊ธฐ ์ํด ์์๋ดค์ต๋๋ค. ์ผ๋จ 404์ ๊ฒฝ์ฐ ๋ ๊ฐ์ง ์๋ฏธ๊ฐ ์์ ์ ์๋๋ฐ์, 1. ์ค์ url์ด ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ (์๋ํฌ์ธํธ ๋งตํ/๋ผ์ฐํฐ/์ปจํธ๋กค๋ฌ ๋ฑ์ด ์๋ ์ํฉ, ๋ธ๋ผ์ฐ์ ์์ ํํ ๋ณด๋ 404) 2. ๋น์ง๋์ค์ ์ผ๋ก ์ ์ ๊ฐ ์์ฒญํ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ๊ฐ ์์ ๊ฒ์ ๋๋ค. ์ ์์ ๊ฒฝ์ฐ ์๋ฅผ ๋ค์ด, ์๋ก์ด ์๋ํฌ์ธํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ก์ด ๊ธฐ๋ฅ์ด ๋ง๋ค์์๋, ํ๋ก ํธ์๋๋ ์ฑ์ ๋ฐฐํฌ ํ๋๋ฐ ์๋ฒ๊ฐ ๋ฐฐํฌ๊ฐ ๋์ง ์๋ ์ํฉ์์ ์์ฒญ ์๋ต์ผ๋ก 404 ์ฝ๋๊ฐ ๊ฐ์๊ธฐ ์ฆ๊ฐํ ์ ์์ฃ ? ์ด๋ฐ ๊ฒฝ์ฐ๋ ์ฅ์ ์ํฉ์ด๋ผ ๋ณ๋์ ์กฐ์น๊ฐ ํ์ํด์ง๋๋ค. ๊ทผ๋ฐ ๋น์ง๋์ค ์ผ์ด์ค์ ๊ฒฝ์ฐ์๋ 404๋ฅผ ๋ฐํํ๋ฉด ์ฅ์ ์ํฉ์ด ์๋๋ฐ ์ฅ์ ์ํฉ์ผ๋ก ์ธ์๋ ์ ์๊ฒ ์ฃ ? ์ด๋ฐ ์ํฉ ๋๋ฌธ์ ํนํ ํ์ ์์๋ ๋น์ง๋์ค ์ผ์ด์ค์ ๋ํด 404๋ฅผ ๋ฐํํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ปค๋ฉํธ ํ์ธํด๋ณด์๊ณ ์ดํด ์๋์๊ฑฐ๋ ๋ ๊ถ๊ธํ์ ๋ถ๋ถ ์์ผ๋ฉด ๋ฉ์ธ์ง ๋ณด๋ด์ฃผ์ธ์. ํ์ดํ ์ ๋๋ค~
| if (request.startWhen() != null) { | ||
| reservationDate = reservationDateRepository.findByDate(request.startWhen()) | ||
| .orElseThrow(() -> new NotFoundException(ReservationDateErrors.RESERVATION_DATE_NOT_EXIST)); | ||
| } | ||
| return reservationDate; | ||
| } | ||
|
|
||
| private ReservationTime getReservationTime(UpdateReservationRequest request, ReservationTime reservationTime) { | ||
| if (request.startAt() != null) { |
There was a problem hiding this comment.
ํ์ฌ ๊ตฌ์กฐ์์๋ request.startAt๊ณผ request.startWhen ๋ ๋ค null์ด ๋๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค! ์ค์ ๋ก ๋น ๋ฐ๋๋ก ๋ฆฌํ์คํธ๋ก ๋ณด๋ด๋ฉด 204๊ฐ ๋จ๋๋ฐ ์ด์ ๊ฐ ๋ญ๊น์?
There was a problem hiding this comment.
๋ ๋ค null์ผ ๊ฒฝ์ฐ ์ฒ๋ฆฌํด์ฃผ๋ ๋ก์ง์ด ์๋ค๋ ์๋ฏธ์ธ๊ฐ์?!
๋น ๋ฐ๋๋ก ๋ณด๋ด๋ฉด ๊ธฐ์กด ์์ฝ์ ์๊ฐ๊ณผ ๋ ์ง๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ์ฌ ๋ก์ง์ ์คํํ๊ธฐ ๋๋ฌธ์ 204๋ผ๊ณ ์๊ฐํฉ๋๋ค!
์์ ํ ๊ฒ์ด ์์ผ๋ฉด ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋๊ฒ ์์ฐ์ค๋ฝ๋ค๊ณ ์๊ฐํ๋๋ฐ ์๋ชป๋ ์๊ฐ์ผ๊น์??
There was a problem hiding this comment.
๋ค๋ค ์ ๊ฐ ๋ค์ ๋ด๋ ๋ฌธ์ฅ์ ๋๋ฌด ํท๊ฐ๋ฆฌ๊ฒ ์์ฑํ๋ค์;; ์ฃ์กํฉ๋๋ค.
๋ค๋ค ๋ ๋ค null์ผ ๊ฒฝ์ฐ๋ฅผ ์ฒ๋ฆฌํด์ฃผ๋ ๋ก์ง์ด ์๋ค๋ ์๋ฏธ์์ต๋๋ค! ์ ์ดํดํ๊ณ ๋ต ๋จ๊ฒจ์ฃผ์
จ๋ค์ ใ
ใ
๋ค๋ค ๋ง์ํ์ ๋๋ก, ๋น ๋ฐ๋๋ฉด ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ์์ ํ ๊ฒ์ด ์๋ค๋ ์๋ฏธ์์ 204๋ฅผ ๋ฐํํ๋ ๊ฒ๋ ์๋ฏธ์์ผ๋ก ๊ด์ฐฎ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด ์์ญ์ API ์ฌ์ฉํ๋ ๋น์ฌ์๋ค๋ผ๋ฆฌ ํฉ์ํ๋ฉด ์ข์ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์์.
์ ๊ฐ ์๊ฐํ๋ ๋ด์ฉ์, ์๋ฌด๋๋ ์
๋ฐ์ดํธ ์์ฒญ์ ๋น ๋ฐ๋๋ก ๋ณด๋ด๋ ํ์ ์์ฒด๊ฐ ์ ์ ๊ฐ ์๋ชป ์์ฒญํ ์ํฉ์ด๋ค๋ผ๊ณ ํ๋จํ๋ ๊ฑด๋ฐ ์ด ๋ถ๋ถ์ ํด์ํ๊ธฐ์ ๋ฐ๋ผ ๋ค๋ฅผ๊ฒ ๊ฐ๋ค์! ์ค๋ช
์ ์ด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค~
| } | ||
|
|
||
| @Transactional | ||
| public void deleteUserReservation(Long id) { |
There was a problem hiding this comment.
์๋น์ค ๋ฉ์๋์ด๋ db operation ์ด๋ฆ๋ณด๋จ ๋น์ง๋์ค ์ผ์ด์ค์ธ cancel๋ฅผ ์ด๋ฆ์ ๋ด๋ ๊ฒ์ ์ด๋จ๊น์? ๋์ค์ ๋ด๋ถ์ ์ผ๋ก cancel์ ์ฒ๋ฆฌํ๋ ๋ก์ง์ด ๋ฐ๋๋๋ผ๋ (is_cancelled๋ฅผ ๋์
ํ๋ค๊ฑฐ๋ softdelete๋ฅผ ํ๋ค๊ฑฐ๋) ๋ฉ์๋ ์ด๋ฆ์ด ๋ณ๊ฒฝ๋ ์ผ์ด ์์ ๊ฒ ๊ฐ์ต๋๋ค!
There was a problem hiding this comment.
์ค ๋๋ฌด ์ข์ ๊ฒ ๊ฐ์์! ๋ฐ์ํ์ต๋๋ค!! ์ด๋๋ฏผ์ฉ ์๋น์ค ๋ฉ์๋๋ cancel์ ์ฐ๋๋ก ๋ณ๊ฒฝํ์ด์. ์ถ๊ฐ๋ก Controller์์๋ ๋ฉ์๋ ๋ค์ด๋ฐ์ cancel๋ก ๋ณ๊ฒฝํด์ฃผ์์ต๋๋ค!
| public boolean existsReservation(Long timeId, Long dateId, Long themeId) { | ||
| Integer count = jdbcTemplate.queryForObject( | ||
| COUNT_RESERVATION_BY_TIME_AND_DATE_AND_THEME_SQL, | ||
| Integer.class, | ||
| timeId, | ||
| dateId, | ||
| themeId | ||
| ); | ||
| return count != null && count > 0; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean existsOtherReservation(Long id, Long timeId, Long dateId, Long themeId) { | ||
| Integer count = jdbcTemplate.queryForObject( | ||
| COUNT_OTHER_RESERVATION_BY_TIME_AND_DATE_AND_THEME_SQL, | ||
| Integer.class, | ||
| id, | ||
| timeId, | ||
| dateId, | ||
| themeId | ||
| ); | ||
| return count != null && count > 0; | ||
| } |
There was a problem hiding this comment.
๋ ๋ฉ์๋ ๋ชจ๋ ์กด์ฌ ์ฌ๋ถ๋ง ํ๋จํ๋๋ฐ ์ฟผ๋ฆฌ๋ count๋ฅผ ์ฐ๋ค์? EXISTS ์ฟผ๋ฆฌ๊ฐ ์๋์ ๋ ๋ง์ง ์์๊น์?
There was a problem hiding this comment.
๊ทธ๋ฌ๋ค์..!! exist๋ก ๋ณ๊ฒฝํ๊ณ , ์ฟผ๋ฆฌ๋ฌธ ๋ค์ด๋ฐ๋ ์๋๋ฅผ ๋ ์ ๋ํ๋ด๋๋ก EXIST๋ก ๋ณ๊ฒฝํด์คฌ์ต๋๋ค.
|
|
||
| @RestController | ||
| @RequiredArgsConstructor | ||
| public class ReservationController { |
There was a problem hiding this comment.
์๋น์ค ํ ์คํธ์ ๊ฒฝ์ฐ์๋ ์ ์์ฑํด์ฃผ์ จ๋๋ฐ Controller ํน์ e2e ํ ์คํธ๋ ๋ฐ๋ก ์๋ณด์ด๋ค์? ๋น์ง๋์ค ๋ก์ง์ด ์ด์ฐจํผ ์๋น์ค์์ ํ ์คํธ๊ฐ ๋๋ค๊ณ ์๊ฐํ์ค ์ ๋ ์๋๋ฐ, ๊ฐ๊ฐ์ ๊ด์ฌ์ฌ์ ๋์์ด ์กฐ๊ธ์ ๋ค๋ฅด๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ค ํ ์คํธ ์ผ์ด์ค๋ค์ด ์์ ์ ์์๊น์?
There was a problem hiding this comment.
์๋ ํ์ธ์ ์์ฝ! ๊ผผ๊ผผํ๊ฒ ๋ฆฌ๋ทฐํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์ปจํธ๋กค๋ฌ ํ ์คํธ์ e2e ํ ์คํธ๋ฅผ ์ ๊ฐ ์ ์์ฑํ๋ ํธ์ด ์๋๋ค๋ณด๋ ํ์ต์ ํ๋ฉฐ ์งํํด๋ณด์์ต๋๋ค. ๋ฆฌ๋ทฐ ์์ฒญ์ด ๋ฆ์ด์ ธ์ ์ฃ์กํด์.
์ด๋ฒ์ ๋ฆฌ๋ทฐ ๋ฐ์์ ์งํํ๋ฉด์ ์ปจํธ๋กค๋ฌ ํ
์คํธ, e2e ํ
์คํธ๋ฅผ ์ฒ์์ผ๋ก ์ข ํ์ตํด๋ณธ ๊ฒ ๊ฐ์์.
ํ์ตํ๋ฉฐ ๊ถ๊ธํ ์ ์ด ์๊ฒผ๋๋ฐ์, ๋ค์๊ณผ ๊ฐ์ต๋๋ค!
- ์ปจํธ๋กค๋ฌ ํ
์คํธ์ e2e ํ
์คํธ๋ก ์ด๋๋ฒ์๊น์ง ๊ฒ์ฆํด์ผํ ๊น์?
- ์ปจํธ๋กค๋ฌ ํ ์คํธ์ e2e ํ ์คํธ ์ ๋ถ ํ์ ์์ฒญ ํ๋์ ๋๋ฝ, ํ๋ผ๋ฏธํฐ ๋๋ฝ, ํค๋ ํ ํฐ ๋๋ฝ๊ณผ ๊ฐ์ด ์์ฒญ๊ฐ์ด ์๋ชป๋ ๊ฒฝ์ฐ๋ฅผ ํ ์คํธํ์ต๋๋ค. ๋ค๋ง ํ์ ๊ฒ์ฆ ๋ฑ ๋๋ฉ์ธ ์ ์ฑ ์ด๋ ๋น์ฆ๋์ค ๋ก์ง์ ๊ด๋ จ๋ ๊ฒ์ ์๋น์ค ํ ์คํธ๋ก ๊ฒ์ฆ์ด ๋๋ค๊ณ ์๊ฐํด์ ์ถ๊ฐํ์ง ์์๋๋ฐ,,, ์ด ๊ฒฝ๊ณ๋ฅผ ์ ํ๋ ๊ฒ์ด ์ข ์ ๋งคํ๋ค๊ณ ๋๊ปด์ก์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ปจํธ๋กค๋ฌ ํ ์คํธ์ e2e ํ ์คํธ๊ฐ ๊ฒ์ฆํ๋ ๋ฐฉ๋ฒ์ ์๋ก ๋ค๋ฅด์ง๋ง, ๊ฒ์ฆํ๋ ๋ฒ์๊ฐ ๋ค์ ๊ฒน์น๋ค๊ณ ์๊ฐ์ด ๋ค์ด์, ๋์ ํ ์คํธ ๋ชฉ์ ์ ์ด๋ป๊ฒ ์ ์ํด์ผํ๋์ง์ ๋ํด ์์ฝ์ ์๊ฒฌ์ด ๊ถ๊ธํฉ๋๋ค.
| } | ||
|
|
||
| @Transactional | ||
| public void deleteUserReservation(Long id) { |
There was a problem hiding this comment.
์ค ๋๋ฌด ์ข์ ๊ฒ ๊ฐ์์! ๋ฐ์ํ์ต๋๋ค!! ์ด๋๋ฏผ์ฉ ์๋น์ค ๋ฉ์๋๋ cancel์ ์ฐ๋๋ก ๋ณ๊ฒฝํ์ด์. ์ถ๊ฐ๋ก Controller์์๋ ๋ฉ์๋ ๋ค์ด๋ฐ์ cancel๋ก ๋ณ๊ฒฝํด์ฃผ์์ต๋๋ค!
| if (request.startWhen() != null) { | ||
| reservationDate = reservationDateRepository.findByDate(request.startWhen()) | ||
| .orElseThrow(() -> new NotFoundException(ReservationDateErrors.RESERVATION_DATE_NOT_EXIST)); | ||
| } | ||
| return reservationDate; | ||
| } | ||
|
|
||
| private ReservationTime getReservationTime(UpdateReservationRequest request, ReservationTime reservationTime) { | ||
| if (request.startAt() != null) { |
There was a problem hiding this comment.
๋ ๋ค null์ผ ๊ฒฝ์ฐ ์ฒ๋ฆฌํด์ฃผ๋ ๋ก์ง์ด ์๋ค๋ ์๋ฏธ์ธ๊ฐ์?!
๋น ๋ฐ๋๋ก ๋ณด๋ด๋ฉด ๊ธฐ์กด ์์ฝ์ ์๊ฐ๊ณผ ๋ ์ง๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ์ฌ ๋ก์ง์ ์คํํ๊ธฐ ๋๋ฌธ์ 204๋ผ๊ณ ์๊ฐํฉ๋๋ค!
์์ ํ ๊ฒ์ด ์์ผ๋ฉด ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋๊ฒ ์์ฐ์ค๋ฝ๋ค๊ณ ์๊ฐํ๋๋ฐ ์๋ชป๋ ์๊ฐ์ผ๊น์??
| public boolean existsReservation(Long timeId, Long dateId, Long themeId) { | ||
| Integer count = jdbcTemplate.queryForObject( | ||
| COUNT_RESERVATION_BY_TIME_AND_DATE_AND_THEME_SQL, | ||
| Integer.class, | ||
| timeId, | ||
| dateId, | ||
| themeId | ||
| ); | ||
| return count != null && count > 0; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean existsOtherReservation(Long id, Long timeId, Long dateId, Long themeId) { | ||
| Integer count = jdbcTemplate.queryForObject( | ||
| COUNT_OTHER_RESERVATION_BY_TIME_AND_DATE_AND_THEME_SQL, | ||
| Integer.class, | ||
| id, | ||
| timeId, | ||
| dateId, | ||
| themeId | ||
| ); | ||
| return count != null && count > 0; | ||
| } |
There was a problem hiding this comment.
๊ทธ๋ฌ๋ค์..!! exist๋ก ๋ณ๊ฒฝํ๊ณ , ์ฟผ๋ฆฌ๋ฌธ ๋ค์ด๋ฐ๋ ์๋๋ฅผ ๋ ์ ๋ํ๋ด๋๋ก EXIST๋ก ๋ณ๊ฒฝํด์คฌ์ต๋๋ค.
echo724
left a comment
There was a problem hiding this comment.
์๋
ํ์ธ์ ๋ณด์!
e2e์ controller ํ
์คํธ๋ค ๋ค ์์ฑํด์ฃผ์
จ๋ค์! ์๋ฌด๋๋ ํ์ต๊น์ง ๊ฐ์ด ํ๋ฉด์ ์์ฑํ๋๊ฒ ์ฝ์ง ์์์ํ
๋ฐ, ๊ณ ์ ๋ง์ผ์
จ์ต๋๋ค! ๋๋ถ๋ถ ์ปค๋ฉํธ๋ ์ ๋ฐ์ํด์ฃผ์๊ณ ํน๋ณํ ์์ฒญ ์ฌํญ์ด ์์ด์ ์ด๋ฒ์ ๋จธ์งํ๋๋ก ํ๊ฒ ์ต๋๋ค! ์ด์ ๋ฆฌ๋ทฐ ๋ช๋ช ์ปค๋ฉํธ์ ๋ต ๋จ๊ฒผ์ต๋๋ค. ํ์ธ ๊ฐ์ด ํด๋ณด์๊ณ ๋ค์ ์ ํ ๋ฏธ์
๊ณผ ๋จ์ ๋ ๋ฒจ๋ ํ์ดํ
์
๋๋ค~!
| import roomescape.support.exception.errors.ReservationErrors; | ||
|
|
||
| @WebMvcTest(ReservationController.class) | ||
| class ReservationControllerTest { |
There was a problem hiding this comment.
์ปจํธ๋กค๋ฌ ํ ์คํธ๋ ์ ๋๋ก ์ ์์ฑํ์ จ๋ค์! ์๊ฐ์ e2e ํ ์คํธ controllerํ ์คํธ ๋ ๋ค ์์ฑํ๋๊ฒ ์ค๋ ๊ฑธ๋ ธ์ํ ๋ฐ ํ์ต๋ ํ์๊ณ ํ์ ๊ฑฐ๋ฉด ๊ฝค๋ ์๊ฐ์ ์ฐ์ จ์ ๊ฒ ๊ฐ์ต๋๋ค!
|
|
||
| @Test | ||
| @DisplayName("์์ฝ์ ์ด๋ฆ ์กฐํ ์ ์ด๋ฆ์ด ๋๋ฝ๋๋ฉด ์์ธ๊ฐ ๋ฐ์ํ๋ค.") | ||
| void getUserReservationsWithoutName() throws Exception { |
There was a problem hiding this comment.
controller vs e2e ํ ์คํธ์ ๋ํ ์ง๋ฌธ์ ์ฃผ์ จ๋๋ฐ, ํด๋น ๊ฒฝ์ฐ๊ฐ ์๋ฌด๋๋ controller ํ ์คํธ์ ๋ค์ด๊ฐ๋ฉด ์ข๊ณ e2e์ ๋ค์ด๊ฐ๊ธฐ์๋ ์์ข์ ์ผ์ด์ค ์ผ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌผ๋ก e2e์์ ์์ธ ์ํฉ๊ณผ ์ฃ์ง ์ผ์ด์ค๋ฅผ ์ปค๋ฒํด๋ ๋๊ธด ํ์ง๋ง, ์๋ฌด๋๋ dependency setup๋ถํฐ ๊ด๋ จ๋ ๋ชจ๋ ์์กด ๊ฐ์ฒด๋ฅผ ๋์ฐ๊ธฐ ๋๋ฌธ์ ๋น์ฉ์ด ๋น์ธ๊ณ ๋ฐ๋ผ์ ํ ์คํธ ์คํ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฝ๋๋ค.
์ด๋ฐ ์์ฒญ๊ฐ์ด๋ ํ๋ผ๋ฏธํฐ ๋๋ฝ์ ๊ฒฝ์ฐ, ์ปจํธ๋กค๋ฌ์ ์ฑ ์์ด๊ธฐ๋ ํ๊ณ e2e์ ๋นํด ๋น์ฉ์ด ์ธ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์์ธ์ ์ฃ์ง์ผ์ด์ค๋ฅผ ์ฒ๋ฆฌํด๋ ๋ฌด๋ฆฌ๊ฐ ์๊ฒ ์ฃ ?
์ฒดํฌ ๋ฆฌ์คํธ
test๋ฅผ ์คํํ์ ๋, ๋ชจ๋ ํ ์คํธ๊ฐ ์ ์์ ์ผ๋ก ํต๊ณผํ๋์?๋ฒ ์ด์ค ์ฝ๋ ์ ํ ์ฒดํฌ
์ด๋ค ๋ถ๋ถ์ ์ง์คํ์ฌ ๋ฆฌ๋ทฐํด์ผ ํ ๊น์?
1. ์์ฝ ์์ฑ ์ ์ฑ ๊ฒ์ฆ ์ถ๊ฐ
Clock์ ์ฃผ์ ๋ฐ๋ ๊ตฌ์กฐ๋ก ๋ณ๊ฒฝํ์ต๋๋ค.2. ๊ด๋ฆฌ์์ ์ฌ์ฉ์์ ์์ฝ ์ญ์ ์ ์ฑ ๋ถ๋ฆฌ
๊ด๋ฆฌ์ ์ญ์ ์ ์ฌ์ฉ์ ์ญ์ ์ ์ ์ฑ ์ด ๋ค๋ฅด๋ค๊ณ ํ๋จํ์ฌ ๋ฉ์๋๋ฅผ ๋ถ๋ฆฌํ์ต๋๋ค.
์ด๋ฅผ ์ํด
deleteReservationByAdmin๊ณผdeleteUserReservationํ๋ฆ์ ๋ถ๋ฆฌํ์ต๋๋ค.์ฒ์์๋ ๊ฐ์ ์ญ์ ๋ก์ง์ ์ฌ์ฌ์ฉํ ์ ์์์ง ๊ณ ๋ฏผํ์ง๋ง, ์ญํ ๋ณ ์ ์ฑ ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ช ์์ ์ผ๋ก ๋ถ๋ฆฌํ๋ ํธ์ด ๋๋ฉ์ธ ๊ท์น์ ๋ ์ ๋๋ฌ๋ธ๋ค๊ณ ํ๋จํ์ต๋๋ค.
4. ์์ธ ์๋ต ๊ตฌ์กฐ ์ ๋ฆฌ
์๋ฌ ์๋ต์ ์๋ ํํ๋ก ์ฃผ์ด์ง๋๋ฐ์, ๋ณดํต ์ด๋ค ์์ผ๋ก ๋ด๋ ค์ฃผ๋์ง ๊ถ๊ธํฉ๋๋ค!!
{ "code": "ERROR_CODE", "message": "์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค ๋ฉ์์ง" }5. ์ด์ ๋ฆฌ๋ทฐ ์ฝ๋ฉํธ์ ๋ํด
#347 (comment)
https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.4 ์๊ธฐ๋ฅผ ์ฐธ๊ณ ํ๋ฉด ํ์ฌ ์ํฉ์์ NOT_FOUND๊ฐ ์ด์ํ ์ํฉ์ ์๋๋ผ๊ณ ์๊ฐํ์ด์. ๊ทธ๋์ ์ฐ์ ์ฝ๋๋ฅผ 200์ผ๋ก ์์ ํ์ง๋ ์์ ์ํ์ ๋๋ค..!!
๋ค๋ง ๋ง์ํด์ฃผ์ ์๋น์ค์ ๊ด๋ฆฌ ์ธก๋ฉด์์ ์๊ฐํด๋ณผ ์ ์์ด์ ๋๋ฌด ์ข์์ต๋๋ค! ๊ฐ์ฌํฉ๋๋ค ใ ใ ๋ค์์ ๋ง์ํด์ฃผ์ ์ํฉ์ ๋ง์ฃผํ๋ฉด ์ด๋ฐ ํด๊ฒฐ์ ์ ๋ฐ๋ก ์๊ฐํด๋ผ ์ ์์ ๊ฒ ๊ฐ์์ ๊ฐ์ฌํฉ๋๋ค~!
#347 (comment)
์กด์ฌํ์ง ์๋ ์์์ ๋ํด ์ง์ํด์ ์์ฒญ์ด ๋ค์ด์ฌ๋์๋, ์บ์ฑ์ด ์๋ชป๋์ด์๋ ๊ฒ์ผ ์๋ ์๊ตฌ ์ถ์ ์ด ํ์ํ ์ํฉ์ด ์์ ์๋ ์๋ค๊ณ ์๊ฐํ๋๋ฐ์!
์ ์ํฉ๋ณด๋ค ๋ง์ํด์ฃผ์ ์ํฉ โฌ๏ธ
์ด ๋ ๋น๋ฒํ๊ฒ ๋ฐ์ํ๋ ๊ฒ์ผ๊น์?! ์์ฝ์ ๊ฒฝํ์ด ๊ถ๊ธํฉ๋๋ค
#347 (comment)
๋จ๊ฒจ์ฃผ์
"๊ฐ๋ฅํ ์๊ฐ์ ์ฌ๋ถ๋ฅผ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ธ ์กฐํ์ฉ์ผ๋ก ์ฌ์ฉ๋ ์ ์๋ times ๋ณด๋ค๋ ์๋ฏธ๊ฐ ๋ ๋ดํฌ๋์ด์๋ค๊ณ ์๊ฐํ์ต๋๋ค."
๋ผ๋ ๋ง์ ํฌ๊ฒ ๋์ํฉ๋๋ค~! ์๋ํฌ์ธํธ ์์ ํด๋ณด์์ต๋๋ค.
#347 (comment)
์ฝ๋ฉํธ ๋ฐ์ํ์ฌ ํจํค์ง ๋ถ๋ฆฌํ์ต๋๋ค!