프로그래머스 연습 과제 회고

iqpizza6349·2022년 12월 29일
0

Spring

목록 보기
3/6

회고를 하기 앞서...

약 10개월 전에 진행했던 프로그래머스, 주문관리 API 서버 개발 연습 과제를 다시 도전했다. 지난 번보다 SpringBoot와 Java에 대해 더 자세하게 공부하고 경험을 한 상태로 다시 도전을 해보니 엄청 어려웠던 점은 크게 없었던 것 같다.
하지만 시간 안에 제출해야한다는 압박 때문인지 패키지와 코드가 깔끔하지 못하다는 점이 아쉽다.

과제를 해결하며 배운 경험

ORM만 너무 주도적으로 사용했던 경험때문에 오히려 과제를 해결하면서 나에게 독이 되었다.
우선 과제에서 늘 사용하던 ORM 기반의 데이터베이스 기술이 아닌 JdbcTemplate을 사용하였기에 관련 문서를 찾거나 이미 만들어진 샘플을 사용하여 개발하며, ORM 뿐 아닌 JdbcTemplate를 사용하여 데이터 접근하는 경험을 했다.

RowMapper를 사용하여 Jdbc의 ResultSet을 통해 가져온 데이터를 생성자 혹은 setter를 통해
객체로 만드는 작업을 진행한 후, 편하게 작업을 하도록 설정하였는 데,
안타깝게도 ORM에 너무 익숙해져버린 나머지, 그 객체가 dirty-check이 된다고 생각해서
클래스의 상태 변경 메소드들만 만들어놓고 어이없게 테스트 실패 등의 시간 낭비가
많이 발생하였다.

위 문제를 해결하는 데 굉장한 시간이 낭비되었다.
그 중에서 특정 칼럼만 저장해야하는 작업에서 칼럼들을 빼먹고 update query를 전송했던 것을 찾는 데 시간이 많이 허비되었다.

그래서...

ORM보다는 네이티브하게 작성하는 요령을 공부할 계획이다.
과제를 제출하는 데까지 총 12시간 가량이 소모되었다.
(정확히는 21시간이 소요되었지만, 그 중 9시간 가량은 취침으로 인해 소비되었다.)

요약

  • ORM에만 너무 익숙해지지 말자.
  • 네이티브 쿼리를 통한 데이터 접근 경험을 하자.
  • 바쁘더라도 패키지와 코드를 깔끔하게 관리하도록 노력하자.
  • 과제는 언제해도 어렵다.
profile
coffee.drinkUntilEmpty();

0개의 댓글