171205-TIL

Reading time ~2 minutes

오늘 한일

- MVC 프레임워크, JDBC 라이브러리 : JDBC 라이브러리 실습

  • UserDao 구현 및 테스트 코드 통과

  • UserDao 리팩토링: 포비의 힌트에 나온 메소드들을 구현하여 일부 중복 분리

  • InsertJdbcTemplate, UpdateJdbcTemplate 클래스 구현

- 저녁 타임 톰캣 최종분석 차근 차근 보는중


오늘 느낀점

  • InsertJdbcTemplate의 insert(User, UserDao) 메소드를 구현하는 단계에서 UserDao를 인자로 넣어주는 부분 구현이 아무리 생각해도 깔끔하게 구현할 방법이 떠오르지 않았다. 계속 떠오르는 방법은 너무 아닌거 같아서 어떤 방법으로 해야하는 걸까 고민을 하다가 2시간쯤 화면만 쳐다봤다. 그러다 일단 구현하고 보니까 애초에 의도가 내가 안좋다고 생각한 방식대로 하는게 맞았던거 같다. 그 상태를 보고 다음 리팩토링을 진행 시키는게 목표였던거 같다. 역시 구현하고 봐야 하는거 같다.

  • 가능하면 힌트를 안보고 하려고 리팩토링 요구사항 시작 부분에서 많은 고민을 했는데 결국 아예 안보고 하는건 실패 했다. 아쉽긴하지만 볼링의 경험으로..적당히 끊은거 같다. 이번에 느끼는건 메소드를 분리한다던지 바로 눈에 보이는 곳에서의 리팩토링은 어느정도 익숙해진거 같은데 이번 과제의 주제 중 하나인 API를 사용할 다른 개발자를 배려하면서 프로그래밍하는 연습을 한다 같이 현재 내 사항에서만 적당히 깔끔히 쓰이게 구현하는게 아니라 좀더 범용적으로 쓰일 수 있게 개선하는 작업은 어떤부분을, 어떻게 시작해야 할지 부터 잘 못하는거 같다. 이번처럼 xxTemplate을 만들고 나면 어떤 중복들이 생기는지 보고 그 중복들을 줄이는건 가능하지만, 그런걸 만들어야 한다던지(인터페이스로 구현할까 생각했다) 이후 이걸 좀더 수월하게 쓰게 개선 시켜야 할지는 아직 부족한거 같은데 이번 학습을 통해서 좀 익혀야겠다. 단, 중복을 줄이는 리팩토링은 좀더 수월해진 이유가 반복을 통해서 익혀진거 같은데, 이번과 같은 개선 사례는 나중에도 발생시 금방 떠오릴 수 있을까 싶다. 트램이 한번 다 만들고 다시 만들어봤다는데 나도 그래봐야겠다. 특히나 포비의 힌트를 많이 따르게 되는 경우 세부 구현이야 내가 했지만 내가 짠 느낌이 덜해서 아무래도 내꺼가 되는 느낌이 덜하니까 구현이 완료되면 다시 해봐야겠다.

  • 저녁을 먹다 잠깐 나온 mybatis, mysql 대화에서 아차 싶었다. “그래서 지금 내가 구현하고 있는 내용인 JDBC란게 뭐였지?” 순간 이 생각이 떠올랐다. JDBC라는 단어는 이전 9월에 공부하면서 봐서 db쪽 내용이란 것도 알고 있어서 단어 자체는 익숙했다. 그래서 정말 아무생각 없이 JDBC가 뭔지에 대해서는 고민을 하나도 안하고 실습의 요구사항에 대해서만 진행을 하고 있었다. JDBC가 뭔지에 대해서는 간략하게긴 해도 금방 기억났지만 내가 무얼하고 있는지 제대로 인지도 못한 상태로 작업을 하고 있었다는 점에서 스스로 충격 좀 먹었다. 단순히 요구사항에 맞춰 “좋은 코드 만들기” 이런 작업을 하고 있었던거 같다. 내가 현재 뭘 하고 있는지 제대로 인지하면서 진행을 하도록 해야겠다.

  • 디비와 관련 있는걸로 알고 있는 JPA, ORM은 아직도 뭔지 모르는 상태다. 그러다보니 JDBC나 몇몇 개념들이 이리저리 섞여 혼동을 하는거 같다. 좀 찾아봐서 뭔지 서로간에 구분을 해둬야 할거 같다. 지금 당장은 구현 욕심이 나는 관계로 이번 주말에 JDBC, JPA, ORM은 간단히 찾아보자. 이전까지는 모르는 단어나 개념들에 대해서는 해당 키워드만 기억해 두고 나중에 필요해질때 차차 알게 될테고 당시에 중요한 개념이 아니니 그때 중요한 것들에 집중 했는데, 이제는 모르는 단어나 개념들은 채워나가면서 진행 할 때가 된거 같다.


내일 할일

  • W3C HTML5 Conference 2017_FE개발자 구인구직 & 웹 전시회 (링크)