일곱 번째 수업 이모저모

  • 수업은 2017-04-24 19:00:00 +0900에 시작.
    • 매 시간 정각에 시작하는 게 신기하다. 시계 보고 기다리고 있다가 00 초가 되면 바로 시작하시는 듯.
  • 매 수업 시작 전에 일찍 출석해서 책상 셋팅해주시는 분들게 감사 인사.
  • 오늘은 중간 점검을 한다.
    • 그동안 작성한 코드들을 사용하여 과제를 수행한다.
  • 목요일에는 과제에 대한 피드백을 하고, annotation 기반 MVC 프레임워크를 구현할 예정.
  • AJAX의 장단점에 대한 논의.

단상 : 삶과 프로그래밍

  • 빈센트 반 고흐가 테오에게 쓴 편지 중

열심히 노력하다가, 갑자기 나태해지고 잘 참다가 조급해지고, 희망에 부풀었다가 절망에 빠지는 일을 또 다시 반복하고 있다.
그래도 계속해서 노력하면 수채화를 더 잘 이해할 수 있겠지.
그게 쉬운 일이었다면 그 속에서 아무런 즐거움도 얻을 수 없었을 것이다.
그러니 계속해서 그림을 그려야겠다.

감상 : 고흐의 편지를 읽고

고흐의 편지를 읽어보니 그가 반복적으로 찾아오는 절망 속에서 그림을 그렸음을 알 수 있다. 고흐는 살아있을 때 인정받은 사람이 아니다. 그는 삶의 막바지에 이르러 수채화를 이해하게 되었을까?

돌이켜보면 나 또한 늘 불안에 빠져 있는 것 같다. 불안해서 매일 공부를 하고, 운동을 하고, 책을 읽는다. 특출난 사람들을 보면 고흐처럼 절망에 빠진다. 질투심보다 불안에 휩싸여 집으로 돌아와 홀린듯이 공부를 한다. 결과적으로 불안은 나의 저력일지도 모르겠다. 불안이 있기에 조금씩이라도 실력이 향상되고 더 나은 미래를 준비할 수 있다.

늘상 불안을 안고 있는데도 그 못지 않은 행복을 느끼는 걸 보면 불안과 행복은 아마 다른 레이어에 걸쳐 있는 감정인 것 같다. 중첩이 가능하거나, 공존 가능한 심적 상태인 모양.

사족 : 레퍼런스 체크 - 인용된 반 고흐의 편지에 대해

위의 인용된 번역된 반 고흐의 편지는 반 고흐, 영혼의 편지에 수록된 것이다. 그런데 갑자기 원문이 어떤지 궁금해졌으므로, vangoghletters.org에서 해당 편지를 찾아보았다.

그리고 해당 편지를 찾아냈다.

링크로 들어가 original text탭을 클릭하면 네덜란드어로 된 원문을 읽을 수 있고, translation탭을 클릭하면 영어 번역본을 읽을 수 있다.

네덜란드의 반 고흐 박물관에서 운영하는 웹 사이트이므로 공신력을 인정받을 수 있는 번역이라 생각한다.

그런데 영어로 번역된 문장은 [반 고흐, 영혼의 편지] 책에 수록된 것과 꽤 다른 느낌이었다. 아래의 한국어 번역은 내가 한 것이다.

Now I’m going through a similar period of struggle and despondency, of patience and impatience, of hope and desolation. But I must plod on and anyway, after a while I’ll understand more about making watercolours. If it were that easy, one wouldn’t take any pleasure in it.

  • 이제 나는 투쟁과 낙담, 인내와 조바심, 희망과 황폐함의 시기를 겪고 있다. 그러나 꾸준히 내 길을 가다보면, 수채화를 더 잘 이해할 수 있겠지. 그게 쉬운 일이었다면 그 속에서 아무런 즐거움도 얻을 수 없었을 것이다.

그런데 다음 문장부터 내용이 다르다.

And it’s exactly the same with painting.

  • 그리고 그것은 그림을 그리는 일과 완전히 똑같다.

반 고흐는 "그러니 계속해서 그림을 그려야겠다"고 하지 않았다. 고흐는 자신의 삶/공부 과정이 괴롭고 어렵지만 나름의 즐거움도 있다고 말하고 있고, 그것이 그림 그리는 과정과 상징적으로 일치한다고 말하고 있다.

그렇다면 다음 문장에는 그런 말이 나올까? 안타깝게도 비슷한 말은 전혀 나오지 않았다. 날씨까지 나빠서 올 겨울엔 별로 즐겁지는 못했지만 삶을 즐기고 있고, 이제 자신의 스튜디오가 있어 너무 좋다고… 언제 한번 찾아와서 자신과 함께 커피나 마시자는 등의 이야기를 하고 있다.

Moreover, the weather is bad, and this winter I haven’t yet gone out for pleasure. Still, I enjoy life and, in particular, having my own studio is too wonderful for words. When will you come and have coffee or tea with me? Soon I hope. You can stay here too, if necessary, that would be nice and companionable. And I even have flowers, and a couple of boxes of bulbs. And I’ve also acquired another ornament for my studio, I got a great bargain on some splendid woodcuts from The Graphic, some of them prints not of the clichés but of the blocks themselves. Just what I’ve been wanting for years.

중간 점검

  • 내 구현 내용은 GitHub에 올려두었다.

중간 점검을 위한 실습 환경 설정

  • 자신의 계정으로 fork한 jwp-basic 프로젝트의 브랜치를 step7-self-check 으로 이동한다.
  • src/test/java 디렉토리의 next.WebServerLauncher의 main 메서드를 실행한 후 http://localhost:8080 으로 접근한다.

요구사항

  1. 서버 초기화 과정을 설명할 것.
  2. http://localhost:8080으로 접근해서 질문 목록이 보이기까지 소스 코드의 호출 순서 및 흐름을 설명하라.
  3. 질문하기 기능을 구현한다.
  4. 로그인한 사용자만 질문이 가능하도록 수정한다.
  5. 상세보기 화면의 JSP에 하드코딩 된 부분을 JSTL과 EL을 사용하여 수정할 것.
  6. CharacterEncodingFilter에 어노테이션 설정을 하여 한글 문제를 해결할 것.
  7. ShowController가 멀티 스레드 상황에서 문제가 발생하지 않도록 수정하고, 문제 원인을 설명한다.
  8. 답변을 추가하면 댓글 수가 1씩 증가하도록 수정한다.
  9. QnA 전체 리스트를 JSON으로 돌려주는 api를 구현할 것.
  10. 상세보기 화면의 답변 삭제 기능을 AJAX로 구현할 것.
  11. 질문 수정 기능 구현할 것.
  12. JdbcTemplate이 하나의 인스턴스로 작동되도록 수정한다.
  13. 질문 삭제 기능을 구현한다.
  14. 질문 삭제 기능 구현에 대한 단위 테스트를 작성한다.

메모

* 94f6966 - [요구사항 12] JdbcTemplate Single Instance 유지하도록 수정 (11 hours ago)<John Grib>
* dd271b0 - [요구사항 11] 질문 수정 기능 구현(API만 구현) (11 hours ago)<John Grib>
* 3d3a7f9 - [요구사항 10] AJAX 답변 삭제 기능 구현 (12 hours ago)<John Grib>
* 561ae58 - [요구사항 9] JSON API 추가 : /api/qna/list (12 hours ago)<John Grib>
* 5e047bb - [요구사항 8] 답변을 달면 댓글 카운트가 증가하도록 수정 (13 hours ago)<John Grib>
* c70df2a - [요구사항 7] ShowController에서 발생 가능한 멀티 스레드 문제를 수정한다 (13 hours ago)<John Grib>
* a483e1d - [요구사항 6] CharacterEncodingFilter에 WebFilter annotation 적용 (13 hours ago)<John Grib>
* 2ff4dba - [요구사항 5] 상세보기 화면 답변 목록을 DB 조회하여 출력 (13 hours ago)<John Grib>
* a08eff7 - [요구사항 4] 로그인한 사용자만 질문이 가능하도록 수정한다. (13 hours ago)<John Grib>
* f3b24ee - [요구사항 3] 질문하기 기능 구현 (14 hours ago)<John Grib>
* c0cdc93 - 요구사항 1, 2 (14 hours ago)<John Grib>
  • 커밋 로그를 보니 대충 3 시간 정도 작업한 모양이다.
  • 나는 JdbcTemplate 싱글 인스턴스 문제까지만 했다.
  • 요구사항 11은 API만 구현했다. 프론트엔드 작업은 너무 번거롭다.

Links