2024-04-15 백엔드를 위한 Django REST Framework with 파이썬

연초 약 3개월간 진행한 팀프로젝트에서 사용한 책이다.fly.io/DRF를 활용하여 유사 배달앱 백엔드를 구축했고 프론트 스택은 React/TS/vercel로 진행했다. 빠르게 속독 및 습득하는데 일주일도 안걸렸던거 같고, 실제로 구현할 당시에는 DRF 공식홈페이지를 많이 참고했었다.

팀 프로젝트로 진행한 리포지터리 URL https://github.com/Food-Bridge

2024-05-05 스트리트 코더

오랜만에 교양서 하나인 스트리트 코더를 마무리 했다. 이번에 책 하나를 마무리하면서 느낀것은 학습 속도가 떨어진 부분과 방식을 바꿔야겠다는 생각이 들었다.

책 읽는 방식을 이렇게 바꾸려고 한다.

  • 최소한의 요약 내용은 바로 말할 수 있도록
  • 1회 정독 대신, 2~3회 N회 이상 빠르게 읽는 것

그리고 책을 둘 공간이 없는게 두려워 Ebook으로 살수 있으면 사려고 하는데, 막상 전문서적은 리디에 없는게 흠이다. 여튼 처음으로 전문서적을 ebook으로 사서 읽어보았다. 중간중간에 개발자 유우우우머를 넣은게 좀 재밌긴하다 ㅋㅋㅋㅋ

개발 속도에 영향을 미치는 가장 큰 요인은 경험, 좋고 명확한 요구 사항, 기계식 키보드이다. 마지막은 농담이다.

독학한 프로그래머든 컴퓨터 과학을 공부한 사람이든 간에 그들이 커리어를 시작할 때 공통으로 놓치고 있는 것이 있는데, 바로 무엇이 가장 중요한지 알아차리기 위해 필요한 전문 지식인 길거리 지식이다.

1장 거리로
2장 실용적인 이론
3장 유용한 안티패턴
4장 맛있는 테스트
5장 보람 있는 리팩터링
6장 조사를 통한 보안
7장 자기 주장이 뚜렷한 최적화
8장 기분 좋은 확장성
9장 버그와의 동거

C#으로 예제가 되어있긴하지만, 저자의 의도를 읽어보다보면 언어는 상관이 없다.

회사에서 3?년?차? 개발자를 바라보면서, 이리저리 고민이 많은 상황인데, 좋은 내용들이 담겨져 있다. 실제로 회사에서 코드를 작성하면서 경험한 내용들이 책에 담겨 있습니다.

책을 보다보면 제목이 자극적인 부분이 있는데, 주석을 작성하지마라, 테스트를 작성하지마라, 불량 코드를 작성하라 등등..

중첩 루프, 문자열이 많은 코드, 비효율적인 불리언 표현식과 같이 ㅂㅂ문제가 있는 코드를 식별하는 습관을 가져라

실은 내용을 보면 주석을 (이렇게) 작성하지말고 요렇게 좀 써라는 내용이다.

성능 최적화에 대한 이야기를 하면서 도널드 커누스에 대한 이야기가 나온다.

최적화에 대한 프로그래밍 참고 문헌은 항상 저명한 컴퓨터 과학자 도널드 커누스의 말을 인굥하는 것으로 시작한다. “섣부른 최적화는 모든 악의 근원이다.”

이 말이 정확히는 중간에서 가져온 말이다보니 전문을 보면

“우리는 작은 효율성를 잊어야한다. 97%의 경우에 말이다. 섣부른 최적화는 모든 악의 근원이다. 그러나 중요한 3%의 기회를 놓쳐서는 안된다. … 나는 오히려 석부른 최적화가 모든 학습의 근원이라고 주장하고 싶다. 열정적으로 임하는 일에 주저하지마라 … 여러분의 기술력을 향상시키기 위한 합법적인 방법이다. 배움의 기회를 놓치지 마라.

중요한 것은 해결해야할 문제가 무엇인지 파악하는것 부터가 중요하다는 점이다.

2024-05-20 육각형 개발자

훌륭한 시니어가 되기 위해서 10가지 핵심 역량(유지보수, 리팩토링 등)을 갖춰야 한다는 것으로 시작한다. 여러가지 조급한 마음이 많아진 상황이었는데, 읽고나니 마음이 편안해졌다.

왜 마음이 편해졌냐면 실제로 유사하게 경험했던 부분에 대해서 리마인드 해주고 작가분의 실제 경험담을 통해서 시니어로 가기 전에 눈여겨보면 좋은 부분들을 잘 짚어주는 참 좋은 책인 것 같다.

특히나 나같은 주니어 대상이 좋고 서비스를 만들어내는데 시야를 넓혀줄 수 있는 좋은 책이라고 생각된다.

2024-09-01 컴퓨터 밑바닥의 비밀

이 책을 선택한 이유는 여러 가지가 있었지만, 개인적인 공부 동기부여가 좀 필요했다. 책 제목부터 밑바닥이라는 단어가 나오지만 내용을 보니 이정도로 Computer Science를 본질적으로 다룬 책은 오랜만에 읽어본다.

어떻게 해야 할지 모르겠다고요? 정상입니다. 아무런 기초도 없이 어떻게 할지 바로 떠올랐다면, 당장 이 책을 덮고 대학원에서 박사과정을 신청하세요. 여러분은 컴퓨터 과학계에 꼭 필요한 인재니까요!

이전에 읽었던 CODE(인사이트 출판사)에서의 진행과 비슷하게 0과 1만을 처리할 수 있는 원시적인 형태부터 시작하여 CPU가 어떻게 우리의 언어를 이해하고 처리하는지 설명을 시작한다.

기계어와 해당 특정 작업을 간단하게 대응시켜 기계어를 인간이 읽고 이해할 수 있는 단어와 대응 시켰습니다.

특히 1장에서는 동적 라이브러리와 정적 라이브러리의 내용이 인상 깊었는데, DLL의 정체나 C 바인딩, 특정 Python 라이브러리의 Rust 구현체 등이 도움을 준다는 것은 알고 있었지만, 정확히 어떻게 도움을 주고 있었는지 몰랐으나 이번에 책을 읽으면서 알게 되었다.

결국 1장부터 6장까지 읽게 되면 사용자로부터 입력을 받아 처리한 후 출력하는 과정에서 컴퓨터 내부에서 무슨 일이 일어나는지 알 수 있게 된다. 여느 전공 책과 동일하게 초반부터 후반까지 집중력을 놓치지 않고 있어야 전체적인 흐름과 내용들이 이해된다는 점에서 어렵다고 볼 수도 있겠다.

현재는 책에서 말하는 시스템 추상화가 잘 되어 있기 때문에 컴퓨터 내부의 동작 원리까지 파악하는 것은 효율적이지 않을 수 있다. 하지만 일을 하면서 느낀 생각은 컴퓨터 동작 원리를 알게 되면 버그가 발생했을 때 어떤 부분에서 발생했을지 파악을 빨리할 수 있다는 것이다.

2024-09-07 켄트 벡(kent beck)의 tidy first?

본권 141p/별책 99p로 약 2만원 주고 구매했을때, 가격이 맞나 싶었다.

내용은 기능을 변경하는 것이 아닌 구조를 변경하는 것. 그 구조를 변경함으로써 가독성(읽기 더 수월해지고), 유연성(더 변경하기 쉬운 코드가 되며), 장기적으로 관리하기가 수월한 코드가 되는 한 번에 적용할 수 있는 작은 단위에 변화에 대해서 이야기하고 있다.