본문 바로가기

스파르타코딩 내일배움캠프

내일배움캠프 99일차 - 쾌감

이틀동안 붙잡고 있던 페이징 처리를 오늘 밤 중 구현했다. 잔잔하면서도 강렬한 쾌감이 이마, 전두엽, 머릿속에서 느껴졌다. 여느 때처럼 느낀 굵고 짧은 "아싸!"와 같은 쾌감이 아니었다. 

 

수업에서 구현한 페이징 처리를 내 코드에 맞게 옮기는 것에 어려움을 느꼈다. 내가 스프링에 대한 이해가 부족해서 구매한 책을 처음부터 다시 읽고 싶은 충동을 강하게 느꼈다. 페이징에 해당 되는 부분만 봐도 내가 원하는 것만 뽑아오기에는 어디만 가져오면 되는지 구분이 되지 않았다. 게다가 타임리프를 쓰니 어디까지 내 코드에 적용 가능한지 식별이 쉽지 않았다. 

 

그래서 튜터님께 "페이징 처리에 관련해서 여러 자료를 봐도, 스프링에 대한 이해가 부족해서인지 필요한 부분만 가져와서 코드에 적용하기 힘들다. 그래서 자꾸 책을 처음부터 다시 보고 싶은 욕구가 생긴다"고 말씀드렸다. 

 

튜터님께서 "어디가 지금 안 되나요?"라고 물으셨다. 

 

나: "서버에서 null 값이 들어와요."

 

튜터님: "null 값이 어디에 들어오나요?"

 

나: "controller에서요."

 

튜터님: "그럼 controller에서 어디가 null 값이 들어오는지 봐야겠죠."

 

나: "아!"

 

postman에서는 GET 요청이 되었는데, 프론트에서는 GET 요청이 안 되어서 프론트 코드에 문제가 있는 줄 알았다. payload에 필요한 값은 다 들어있어도 library를 써서 구현하는 것이다 보니 어디 내가 모르는 부분을 덜 구현 해서 null 값이 들어가는 줄 알았다. 

 

서버에서 breakpoint로 디버깅을 해봤다. 어디가 에러인지 찾았다. (자세한 글은 아래  글 참고). 

 

https://fusiondeveloper.tistory.com/99

 

내일배움캠프 99일차 - 페이징 처리 디버깅

페이징 처리 프론트에서 GET 요청을 했더니 서버에서 다음과 같은 에러가 났다. java.lang.NullPointerException: null at shop.heartmuscle.heartmuscle.controller.QnaController.getQna(QnaController.java:36)..

fusiondeveloper.tistory.com

 

책을 처음부터 다시 봤으면, 아마 내가 원하는 방식은 아니더라도 코드 구현은 했을 것이다. 이 강의 저 강의 봤어도 구현 했을 것이다. 그러나 어디서 에러가 나는지 정확하게 짚어서 더 많은 자료를 참고 하지 않고 효율적으로 기능을 구현했다. 

 

구매한 몇 권의 책을 처음부터 보고 싶을 때마다 튜터님께서 "현업에서 따로 공부할 시간을 줄까요?" 공부할 시간 따로, 기능 구현할 시간 따로 있지 않다는 식으로 말씀하셨다. 프로젝트를 잠시 내려놓고 공부부터 다시 하고 싶은 유혹을 튜터님 덕분에 견뎌낼 수 있었다. 

 

덕분에 조금 더 정밀하게 에러를 해결하고, 효율적으로 기능을 구현하는 법을 배운 것 같다. 

 

프로젝트가 끝나면 스프링 공부를 다시 해야겠지만, 현재는 필요한 기능을 제한 시간 내에 구현  하는 법을 익히는 시간인 것 같다. 

 

 

기타:

- 오늘 매컴싸 발표 하신 분이 발표 준비를 엄청나게 하셨다. 보통 블로그에 정리해서 발표하는데 이 분은 파워포인트 발표를 해오셨다. 발표의 질과 정성에 놀랐다.