TIL-20171027

2017.10.27 (금) 오늘의 TIL

  • MVC 프레임워크 1단계 구현을 완료하다.

    • 모든 요청을 DispatcherServlet에서 받고, RequestMapping에 따라 각 Controller로 뿌려주는 실습을 해 보다.
    • Servlet의 사용법과 메소드들에 대해 학습해보다.
    • 다형성 개념을 이용해 Controller를 구현하다. HTTP 웹 서버 구현 때도 실습해본 내용.
  • Servlet과 JSP에 대해 포비와 이야기 나누다.

    • Servlet의 작동 원리에 대해 복습. 사실 내가 미리 숙지하고 있어야 했던 내용이지만 깊이 이해하지 못 하고 있었다.
    • 여기서 드러나는 나의 단점. 새로운 개념을 학습할 때에 지나치게 키워드나 메소드 사용 중심의 이해를 하려고 하는 경향이 있다. 이제 메소드 예제 보고 따라치던 시절은 졸업했으니, 작동 원리에 대해 심화 학습을 하고 충분한 이해를 가지는 것도 좋겠다. 즉, 지나치게 코드 작성에만 집착하는 태도를 버릴 필요가 있겠다. 특히 Servlet과 같은 개념은 방대한 개념이므로 예제를 보고 따라하는 학습이 의미 없을 수도 있겠다.
    • Servlet => 인스턴스가 하나다.
      인스턴스 변수를 사용하면 안 된다. Thread-safe하지 못한 코드가 된다.
    • Servlet의 라이프사이클. init() -> service() -> destroy()
    • 제어의 역전 (Inversion of Control)이 일어나는 상황에 대해 알아보다. 그동안 Spring Framework를 사용하면서 CrudRepository interface같은 것을 구현할 때 IoC가 일어난다고 피상적으로 알고 있었다.
      즉 개발자가 Spring의 사용 명세서 상에 명시된 대로 메소드를 작성하면 그 메소드에 맞게 Spring Framework가 구현체를 만들어 코드에 삽입해주는 구현을 많이 했었다. (@Autowired)
      IoC라는 것이 Spring만의 고유한 특성이 아닌 자바 진영 프레임워크들의 특성임을 알게되다.
  • 호눅스의 장고 강의를 인프런에서 수강하기 시작했다. MVC나 객체 지향 프로그래밍에 대한 이해가 높아졌기 때문에 이제 다른 언어 기반의 MVC 프레임워크에 접근해도 괜찮겠다는 판단이 들었다.

오늘 점심시간에는 iOS 팀원들과 함께 조촐한 회식 자리를 가졌다. 같은 공간에서 공부하고 하루의 대부분을 같이 생활하면서도 이런 자리를 그동안 갖지 못한 것이 내심 아쉬웠었다.
학습하는 언어는 달라도 다들 비슷한 고민을 갖고 있음을 느낀 식사시간이었다. 특히 서로의 닉네임을 숙지할 수 있게 되어 좋았다.

포비에게 코드스쿼드 전체 회고 세션이 필요함을 말해주었다. 포비를 비롯한 마스터 네 분 다 공감하시리라 생각한다.
다른 팀원에게 전파하고 싶은 얘기나 서로 알고싶은 부분을 알아가는 것도 의미 있겠다. 공부하려고 모였지만 사람이 하는 일임을 서로 잊지 않았으면 한다.