다섯 번째 수업 이모저모

  • 수업은 2017-04-17 19:00:00 +0900에 시작.
    • 오늘은 리팩토링 후 Servlet, MVC 구현 순으로 학습.
    • 앞으로 2주간은 MVC + JDBC + AJAX 구현 실습이 예정되어 있다.
    • 이후로는 프레임워크를 구현하면서 Spring 공부할 준비를 한다.
    • JSP 수업은 패스.

준비물

  • 오늘 수업은 준비물이 있었다.
    • https://github.com/slipp/jwp-basic 저장소를 자신의 계정으로 fork한다.
    • fork한 jwp-basic 저장소를 로컬 PC로 clone한 후 master 브랜치를 step0-getting-started 브랜치로 변경한다.
    • IntelliJ IDEA에서 maven 프로젝트로 import한다.
    • src/test/java 디렉토리의 next.WebServerLauncher를 실행한 후 브라우저에서 http://localhost:8080 접속해 질문/답변 게시판 서비스 화면이 나타나는지 확인한다.

과제 구현

  • Github Repository에 올려두었다.
  • HTTP 웹 서버 구현할 때 만들었던 AnnotationReflectionUtil, ControllerRegister등을 그대로 복붙… 아니 재활용해서 완료했다.
  • 차이가 있다면: 지난번에는 Controller interface를 작성한 반면, 이번에는 Controller를 abstract class로 작성했다. forward method를 분리하기 위한 목적.

단상 : 객체지향 연습 방법은?

  • 게임을 만들어 보기
  • 마음 맞는 사람들과 서로 Code 리뷰
  • 기타 등등…

메모 : 내 생각

이건 딱히 객체지향을 위한 방법은 아니지만 객체지향 연습에도 도움이 되는 방법이라 생각해서 메모한다.

계속해서 새로운 프로그램을 개발해보되, 같은 프로그램을 재개발하는 경험이 꽤 효과적이었던 것 같다. 열 번 스무 번 반복 개발할 필요까지는 없고, 똑같은 프로그램을 한 번 더 개발해보는 정도가 좋았다. 세 번째부터는 괴로운 느낌이 든다.

요약하자면 다음과 같은 무간지옥 사이클이라 할 수 있다.

  1. 개발
  2. 재개발
  3. 회고, 리뷰 : 교훈을 얻는다.
  4. 다른 프로그램 개발 계획을 세운다.
  5. 1로 돌아간다.
  • 다음 프로그램에서 사용할만한 코드가 있다면 라이브러리화해서 조금이나마 무간지옥을 편하게 한다.
  • 망했다 싶으면 다 지워도 된다. 업무라면 큰일나겠지만 이건 연습이니까. 게다가 git도 있고, 경험도 남아 있다. Fred Brooks도 어차피 언젠간 버리게 될 테니까 한 번은 버릴 마음을 갖고 코딩하라고 했었지 아마.

Links