171118~19-TIL

Reading time ~2 minutes

주말에 한일

- 인프런의 파이썬 웹 프로그래밍 - Django로 웹 서비스 개발하기 강의의 사진 SNS앱 만들기

  • 오랜만에 들은거라 일부 세팅에서 에러가 나서 다시 파이썬 가상환경을 맞춰줬다.

  • 로그인 및 회원가입 구현

  • 사진 업로드 구현

  • 소셜로그인(페이스북) 기능 추가, 하지만 아쉽게도 아래의 문제로 실패
    장고_페이스북_로그인

- 쓰레드 공부

  • 쓰레드를 만드는 두가지 방법 :

    1. Runnable을 implement한 클래스를 만든다.

    2. Runnable을 implement한 Thread를 상속 받는 클래스를 만든다.
      (둘다 Runnable의 run()메소드를 구현 해야 한다.)

    3. 기본적으로 ‘Thread-번호’ 형태의 이름을 가진다.

  • 쓰레드 풀 : 쓰레드 생성/수거에는 무시못할 자원을 소모한다. 그렇기 때문에 10개 혹은 100개의 정해진 쓰레드를 생성해 놓고 작업 큐에 들어오는 작업들을 쓰레드가 맡아 처리하고 작업이 끝난 쓰레드가 다시 작업큐에서 새로운 작업을 받아와 처리한다.


주말에 느낀점

  • HTTP 웹 서버 리팩토링을 마저 하려고 했는데, 주말은 개인적으로 관심 가는 부분이나 보고 싶던 부분을 보기로 했다. 과정을 빨리 하는 측면에서는 주말에도 과정에 집중 하거나, 주중 동안 하던걸 지속적으로 하고 싶기도 했지만 의도적으로 작업에 손을 안댔다. 그 차원에서 이전부터 보다가 멈췄던 파이썬&장고 강의를 보기로 했다.(9월달에 2/3를 수강하고 남겨 뒀던게 계속 마음에 걸렸다) 그리고 내일은 요번주 과정을 진행하면서 개인적으로 신경 쓰이던 쓰레드 부분을 다시 봤다.

  • HTTP 웹서버 만들기를 하면서 계속 쓰레드 부분이 신경 쓰였다.

    00:05:59.787 [INFO ] [Thread-357]
    00:05:59.785 [INFO ] [Thread-355]
    00:05:59.787 [DEBUG] [Thread-358]
    00:05:59.787 [INFO ] [Thread-355]

    결국 발견한게 저 부분이였다. 쓰레드 번호가 늘어나기만 한다. 작업이 끝났으면 다시 1부터 사용해도 될거 같은데 자꾸 늘어나기만 했다. 그래서 쓰레드를 다시 찾아보다 9월에 공부하다 봤던 스레드풀도 다시 보면서 그땐 크게 와닿지 않았던 점들이 지금에선 이해되는 좋은 기회가 됐던거 같다.
    해당 내용들을 찾아 보기만 했는데 다른 사람들처럼 정리해보고 싶어졌다. 오늘은 늦었으니 또 너무 늦게 잘거 같으니 별일이 없으면 이따 저녁 8시엔 HTTP 웹서버는 손놓고 정리해서 블로깅 하는 시간을 가져봐야겠다.

  • 파이썬&장고를 간단히 보면서 느낀게 확실히 왜 장고를 이용하면 빠른 개발이 가능한지 알수 있는거 같다. 많은걸 장고에서 지원해준다. 그만큼 개발자가 신경쓸부분이 적어진다. 확실히 파이썬도 그렇지만 장고도 나름의 매력이 있는것 같다. 하지만 장고는 지금선에선 해당 강의정도로 간단히 경험을해 보는게 목적인지라 좋은 경험을 하고 있는것 같고 아직은 그 이상의 관심은 안가고 있다. 아! 소셜로그인 기능 구현을 처음 접해봤는데(비록 아직 성공은 못했지만) 일단 한번 경험하고 보니 자바에서도 생각보다 어려울거 없을것 같다.

  • 이팩티브 자바의 규칙 세개정도를 보면서 느낀게 있다. 만약 내가 일반적으로 남들 배우듯이 공부를 했으면 지금 해당 규칙들이 뭔소리를 하는지 이해하지 못했을것 같다. 어려운 전공책 읽듯이 글로서만 읽어 갔을거 같다.(아마 암기를 할려고 했을듯 싶다) 예를 들면

    규칙 13. 클래스와 멤버의 접근 권한은 최소화하라
    모듈 사이의 의존성을 낮춰서(decouple), 각자 개별적으로 개발하고, 시험하고, 최적화하고, 이해하고, 변경할 수 있도록 한다는 사실에 기초한다. 그렇게 되면 시스템 개발 속도가 올라가는데, 각각의 모듈을 병렬적으로 개발할 수 있기 때문이다. 유지보수의 부담도 낮아지는데, 모듈 각각을 좀 더 빨리 이해할 수 있을 뿐 아니라 다른 모듈에 영향을 끼칠 걱정 없이 디버깅을 진행할 수 있기 때문이다.

    여기서 언급한 것들을 모두 경험해본 덕에 의존성이 낮춰질때의 장점이 무엇인지 글이 아닌 내 경험을 떠올리며 다시한번 곱씹게 됐다. 포비가 없었다면 지금 저 내용들을 제대로 이해할수 없었을거다. 아직은 많이 부족하다고 느끼지만, 자바를 공부 하는 사람들은 코드스쿼드내 사람들 외엔 본 적이 없어(화이트과정을 마치고 현재 계속 다니고 계신 나머지분들도 저 내용은 아시니까, 비록 저 내용은 크게 어려운 내용은 아니지만) 내가 어느 상태인지, 어느정도인지 가늠이 안돼서 조금은 불안했는데 착실히 잘 알아가는것 같다고 느꼈다.
    (특히 더 그렇게 느꼈던건 9월달에 잠시 몇 규칙을 봤을땐 일정부분은 책을 읽는 느낌이라 잘 안읽혀서 보다 말았었는데 이번엔 확실히 이해되는 느낌이라 내가 성장하고 있다는걸 더 느낀거 같다)


내일 할일

  • HTTP 웹 서버 리팩토링

  • 자바 쓰레드 좀더 공부해서 정리해서 블로그에 올려보자