181217_181223

2018년 12월 17일 ~ 2018년 12월 23일 주간 회고


181217_181223 주간회고

Weekly Review

  • 매일 아침 일찍 출근해서 1~2강씩 꼬박 들었던 백기선의 스프링 데이터 JPA 강의를 마무리 지었다.
    • 생각보다 강의가 많아서 언제 다 듣지 고민했었는데 아침에 일찍 출근해서 한두 개씩 꼬박 듣고 올해 안에 마무리 돼서 뿌듯했다.
    • 강의 들은 것을 바탕으로 자바 ORM 표준 JPA 프로그래밍 책을 읽었는데 이해가 한결 쉬워졌다.
    • 나처럼 JPA를 시작할 때 책으로 바로 시작하지 않고 강의로 한번 훑고 책을 읽는 것도 좋은 방법인 것 같다.
  • 창천향로님의 Spring Batch 가이드를 학습하였다.
    • 처음 배우는 스프링 부트2와 병행해서 학습 하니 이해가 조금 되기 시작하는 것 같다.
    • 내년에 사내 배치 고도화 작업에 Sprinboot batch를 적용해야 되므로 계속 반복하면서 익숙해져야겠다.
  • 올해 4분기쯤부터 알고리즘 문제 풀이를 하지 않고 있는데 확실히 멈추니깐 감을 잃어버리는 것 같다. 내년부터는 다시 꼬박 풀기 시작해야겠다.
  • 연말이고 크리스마스도 있는 만큼 다음 주 목표를 너무 빡빡하게 잡지 않았지만, 회고도 써야 하고 올해 마무리 지어야 할 일이 꽤 많다.
    • 조금 놀고 싶고 풀어지는 시기이지만 다음 주만 힘내서 잘 마무리 지어야겠다.

학습

다음 주 목표

이번 주에 읽었던 좋은 글(출퇴근지하철)

  • 오늘의 질문 2018.12.16 : 창천향로님 창천향로님이 블로그를 운영하며 받은 질문들을 정리한 글로 3개의 질문 중 마지막 질문에 대한 답변이 인상 깊었다. 먼저 배운 건 실력이 아니다. 당장의 실력보다는 어떤 마음가짐을 갖고 있는지가 중요한 것 같다. 사냥개와 같은 끈질김. 아무리 어려운 문제라도 이 친구라면 해결해낼 거라는 믿음? 저는 이런 마음가짐을 갖고 있는 사람과 같이 일하고 싶다.
  • 오늘의 질문 2018.12.18 : 창천향로님 1년차 백엔드 개발자가 된다면 어떤 것에 더 집중할 것인지에 대한 답변 글이다. 격리된 테스트 환경 구축 반복과 사용하는 시스템의 디버깅 방법 2가지를 연습할 것이라고 얘기하고 있다. 즉, 회사 코드가 아닌, 나만의 코드로 문제 상황을 재연해보는 연습(백지 상태에서 문제상황만 재연) 그리고 사용하는 시스템의 문제를 해결 하는 능력(어떻게 디버깅 할 것인가)을 길러야 한다는 의미.
  • 마소콘 2018 - 개발자와 블로그 창천향로님의 마소콘 발표 영상으로 꾸준한 블로깅을 통해 이직, 컨퍼런스 발표, 강의 글 기재 등 많은 기회가 주어졌다고 소개하고 있다. 내 생각에는 대상이 꼭 블로그가 아니더라도 하겠다는 의지와 열정 그리고 꾸준함이 가장 중요하다고 생각이 든다.
  • Readtrend. devnews와 같이 국내 블로거들이 작성한 좋은 아티클을 소개하는 사이트이다.
  • 나는 어떻게 1년에 300권을 읽었나? 우리의 뇌는 독서하는 뇌가 아니기 때문에 어렵다. 하지만 뇌의 가소성으로 독서하는 뇌로 변할 수 있다. 먼저 양서를 정독하려 하지 말고 다독을 하라. 꾸준히 매일 한 시간 이상. 이것이 습관이 되면 독서가 삶의 일부분처럼 서서히 느껴지게 된다. 이후에 정독하고 서평 쓰고 계독, 남독 등을 통해 비판적 사고, 창의성, 겸손을 배우도록 한다.
  • #2 한달에 한권부터 읽는 독서법 ‘연간 독서 목록’을 만들고 매달 한 권씩 빠짐없이 채워나가도록 한다. 올해는 실패했지만, 내년에는 꼭 실천해보자!
  • AWS 기초를 배우는 사이트들 AWS 기초를 학습하는 데 있어 도움이 되는 사이트들을 모아놓은 글이다. 대부분 아마존 공홈에 있는 글이긴 하다.
  • 2018년 링크 모음 기계인간 종립님의 아이폰 사파리에 열려 있던 탭을 모두 기록한 글이다. 이미 읽어본 글도 많았지만 읽어보지 못한 좋은 글들도 많았다. 당분간 여기서 하나씩 꺼내서 읽어봐야겠다 !
  • 체대 출신 개발자의 2018년 회고 출퇴근길 개발 읽기와 고퀄리티 개발 컨텐츠 모임 만드신 분이였구나.. 글 정말 잘 쓰셨다. 엄청난 열정에 많은 자극이 되었고 글의 마지막 말이 인상 깊어서 아직은 아니라고 생각했던 회고를 쓰고 싶어 졌다. 거만한 자는 자기 발밑을 내려다 보고, 겸손한 자는 자기 발자취를 되돌아본다.
  • 스타트업에서 대규모 서비스 기업으로 이직한 주니어 개발자의 2018년 회고 이 글에서 소개하는 레거시를 대하는 태도의 변화, 과도한 책임감의 폐해 등은 그동안 나는 어떻게 해왔는지 다시 한번 돌아보게끔 해주는 좋은 주제였다. 다른 개발자들의 회고를 읽으면 이렇게 나 자신도 돌아볼 수 있는 시간을 가질 수 있어서 너무 좋은 것 같다.
  • DevOps 오픈소스 트랜드 (클라우드, 모바일 중심) 처음 들어보는 오픈소스들이 많이 등장한다. 이해 안 가는 부분이 많은데 DevOps에 조금 더 익숙해진 뒤에 읽어보면 더 도움 되지 않을까?
  • DB도 형상관리를 해보자! DB 형상 관리 오픈소스 도구 FlyWay를 소개하는 글이다. 어떻게 동작하는지 실제로 한번 써봐야 감이 올 듯한데 개인 프로젝트에 도입해서 테스트를 먼저 해봐야겠다.
  • SpringBoot에서 날짜 타입 JSON 변환에 대한 오해 풀기 궁금했던 내용인데 깔끔하게 정리되어있다. 또한 삽질하는 시간을 줄일 수 있게 되었다. :)
  • (Spring JPA) 프로젝시(proxy)와 지연로딩 한동안 지연로딩과 같은 동작 원리도 이해하지 못하고 JPA를 썼었는데 조금씩 눈에 들어오기 시작했다. Fetching 전략과 지연로딩, 프록시에 대해 궁금하다면 읽어보자.
  • 의도적 수련 1 - 고수, 무술과 프로그래밍에 대한 소고 엄청난 인사이트를 얻었다. 이번에 출간된 김창준님의 ‘함께 자라기’를 최대한 빨리 읽어 보고싶다.
    • 뛰어난 프로그래머를 관찰하면 흥이 난다. 리듬감이 있다. 옆에서“얼쑤!”라고 추임새를 해주고 싶을 때도 있다. 필자도 프로그래밍이 잘 될 때에는 박자가 잘 맞고 흥이 난다. 하지만 그렇지 않을 때에는 박자가 어긋나고 흥이 없고 살아 있는 느낌이 나질 않는다.
    • 하루 종일 의자에 앉아서 일해야 하는 직업의 특성상 허리, 눈, 다리, 팔, 손목 등에 병이 걸리기 쉽다. 꾸준히 하는 운동이 있으면 그런 병 걱정이 없다.
    • 그들(고수)을 주의 깊게 관찰하고, 분석하라. 그리고 무엇이 그들을 그렇게 ‘특별하게’ 하는지 알아내고 그걸 배워라. 또 그들이 어떻게 그렇게 특별해질 수 있었는지 배워라. 조만간 당신도 그들이 하는 것을 할 수 있을 것이다.
    • 고수가 하는 것을 배우거나 따라하려고 하지 말고, 그들이 어떻게 고수가 되었는지를 배우고 따라하라. (아마도 우리가 배워야 할 것은 그들이 전문가에 도달하기 위해 밟았던 과정일지도 모른다.)
    • 문제의 해결법만 달달 외운 사람은 세상의 모든 문제가 그 해결법을 적용할 대상으로 보인다. 또 새로운 문제에 직면했을 때 창의적이고 상황에 맞는 전문가적 해결안을 제시하지 못한다. 컴퓨터 프로그래밍에서 좋은 해결안들만 사전처럼 모아둔 디자인 패턴을 공부하는 사람들의 병폐가 대부분 여기에서 온다.
    • 단순한 반복 연습은 아무 도움이 안 된다고 강조한다. 자기 자신을 관찰하는 것, 그리고 피드백을 통해 재조정하는 것, 특별히 현재의 기량 증진을 위해 설계된 훈련 등이 중요하다. 에릭슨은 이런 수련을 특별히 의도적 수련(deliberate practice)이라고 부른다.
    • 전문성 연구에 따르면 한 분야의 세계적 수준의 고수가 되려면 10년의 수련, 혹은 도합 일만 시간 이상의 의도적 수련이 필요하다고 한다. 문가와 준전문가(semi-expert)의 경우 수련 시간이 일주일에 최소 두 배 이상(43시간 대 17시간)의 차이가 있었다. 나는 일주일에 몇 시간을 의도적 수련에 할애하는가?
  • 의도적 수련 2 - 프로그래머에게 적합한 의도적 수련 고수가 되기 위해서는 구체적인 몇가지 규칙이라기보다는 현재 자신의 상태에서 관심과 애정을 가지고 노력하는 습관 같은 것이었다.
    • 내가 컴퓨터를 시작한 게 언제부터인가? 일주일에 대충 몇 시간이나 프로그래밍 수련을 했나? 예를 들어 프로그래밍 경력 10년에, 그동안 늘 일주일에 10시간씩 수련해 온(이 정도면 대단하지 않나?) 사람이라고 치자. 계산하면 약 5,000시간이 나온다. 연주자와 비교하자면(꼭 정확한 비교는 아니지만) 전문가 수준에 속한다. 세계수준은 아닐지언정. 좀 더 정확히 말하자면, 전문가의 싹이 보이는 음악아카데미학생과 비견할 만하다. ‘ 에이 이거밖에안돼?’라고 생각할지도 모르겠지만, 1만 시간은 엄청난 양이다.
    • 고수 프로그래머가 빨리 되는 방법은 없을까? 있다. 지난 회에 밝혔듯이 지속적인 의도적 수련을 통해 고수되기는 가능하다. 코드 시각화하기, 같은 코드를 정해진 시간(예컨대 한 시간)동안 할 수 있는 데까지 매일 리팩토링 해보기, 같은 장난감 문제를 여러 번 풀기, 새로운 언어 배우기 등이 그러한 방법이다.
    • 이런 의도적 수련의 공통점은 반복적이라는 것(전문가일수록 일주일 중 공휴일까지도 하루에 투입하는 의도적 수련의 양이 일정했다), 그리고 피드백을 거의 즉각적으로 받을 수 있다는 것, 나중에 오류 수정이 가능하다는 것, 실수에 대한 부담이 크지 않다는 것, 자신이 한 것에 대해 생각해볼 여유가 주어진다는 것 등이 있을 것이다. 필자 생각에는 전문가일수록 스스로 이런 의도적 수련을 계획, 설계해서 하는 것 같다. 자기만을 위한 특수훈련을 만들어 실험해 본다는 것은 참 즐거운 경험이 되기도 한다.
    • 어떻게 일(work)을 하면서 동시에 수련(practice)할 수 있을까가 된다. 일도 되면서 수련도 되는, 생활수련의 방법은 없을까? 앞서 말했던 실험, 피드백, 실패 허용, 오류 수정 등이 핵심 키워드다. 뭔가 실험적인 것을 안심하고 시도해 볼 수 있어야 하며, 거기에서 의도적으로 피드백을 얻고, 그 피드백을 통해 자신의 오류를 수정해서 다음번에는 더 나은 시도를 할 수 있어야 한다.
    • 테스트 주도 개발을 하면 일하는 도중 수련을 하게 된다. 피드백뿐만이 아니다. 테스트가 있기 때문에 사람이 과감해진다. 여러 가지 실험을 해보게 된다. 뭔가 잘못 건드리면 테스트가 곧바로 알려줄 것이기 때문에 무서움이 없다. 테스트 주도 개발과 리팩토링을 짝을 이뤄 작업하다 보면 하루 중에 학습하는 것이 참 많다. 프로그래머가 나날이 퇴근을 하면서 “오늘은 또 이런 걸 깨달았군” 하면서 가슴 뿌듯하게 집으로 돌아가는 경우는 흔하지 않다. 하지만 이런 방법을 사용하면 매일 깨달음이 있고 매일 새롭다.
    • 전문가들일수록 일정 수준에 오른 이후에도 꾸준히 수련을 계속하며, 그 활동 자체에서 큰 즐거움을 얻는 것으로 알려져 있다. 고수가 되는 길은 오히려 ‘고수’보다 ‘길’에 대한 집착에서 나오는 것일지도 모르겠다.
facebook share twitter share
0%