본문 바로가기

분류 전체보기

(246)
나의 파이썬 환경 구축기 1 - 써본 것들에 대한 생각 언젠간 한 번쯤은 나의 파이썬 개발 환경에 대해 글을 쓰려했었다. anaconda, virtualenv, pyenv 등등 지금까지 이것저것 다 써본 뒤... 이제 때가 왔다. 이번 글에서 내 맥북에 내가 어떻게 파이썬 개발 환경을 만들었는지 차례대로 적어볼 것이다. 다음과 같은 분들에게 이 글이 흥미가 있지 않을까 싶다. 주로 파이썬으로 개발하는 개발자 (분석가 아니다.) 파이썬 버전에 민감하게 반응하시는 분 (특히 새로운 파이썬 버전을 적극적으로 사용하려고 허시는 분) 깔끔하고 트렌디하게 파이썬 개발 환경 구축하고 싶은 분 거두절미하고, 이 글의 결론은 다음과 같다. 파이썬 버전 관리는 pyenv로, 가상 환경, 패키지 설치 및 관리는 poetry로 하자. 아, 난 맥을 쓰므로 맥을 쓴다는 것을 전제로..
새벽에 주저리 주저리 써보는 글 요즘 글을 안 썼다. 이미 테크 블로그와는 거리가 멀어진 거 같아, 그냥 끄적거리는 글을 써도 괜찮을 거 같다. 고등학생 땐 싸이월드 다이어리에 이 시간 즈음 해서 이루펀트 - 졸업식 같은 감성 힙합 들으면서 글 끄적거리곤 했는데. 지금 딱 그 감성인 거 같다. 뭔가 일을 계속하고 있으면서, 간간히 새벽이 돼서야 적는 그런 글. 늘어난 블로그 글 조회수 블로그 글 조회수가 꾸준히 늘었다. 이제 평일 방문수는 2000을 넘고, 누적 방문수는 40만을 찍었다. 딱히 테크 블로그도 아닌데, 꾸준히 유입되는 글 몇 개 때문에 방문수가 꾸준히 찍히는 거 같다. 근데 사실 조회수에 비해, 댓글 같은 건 잘 안달 린다. 싸이월드 투데이 수는 올라가는데, 방명록은 0인 그런 느낌이랄까. 여하튼 쉽게 노출되는 만큼, 그..
산드로 만쿠소님의 소프트웨어 장인을 읽고 들어가며 최근 산드로 만쿠소 님의 소프트웨어 장인이라는 책을 읽고 좋았던 문구들, 느낀 점들을 적어보려 한다. 내용 정리라기 보단, 지극히 주관적으로 느꼈던 생각 위주의 글이 될 거 같다. 소프트웨어 장인과의 첫 만남 서문에는 다음의 내용이 등장한다. 팀으로 합류한 지 얼마 안 되어 빠르게 일을 마무리했다고 생각한 저자가 그의 상사 나무르에게 깨지는 내용이다. "이 코드가 얼마나 무례한지 알고 있습니까?" 그는 조용히 말했다. 코드는 겨우 200라인 남짓이었다. 나무르가 제기한 문제들 에 답을 하지도, 적당히 되받아 치지도 못했다. 충격에 휩싸였다. 아무 말도 없이 천천히 일어서서 문쪽으로 걸어갔다. "산드로." 문에 다다랐을 때, 나는 멈춰 서서 그를 돌아봤다. "일을 하는 것도 중요하지만 그에 못지않..
파이썬으로 구현하는 클린 아키텍쳐 - rentomatic 0. 들어가며 클린 아키텍처 책을 읽고 나서도, 실제로 구현하지 않고는 이를 구체적으로 체감하기 어렵다는 생각이 들었다. 그래서 생각나는대로 스스로 구현해보았다. 무려 일주일이나 고민 고민하며 만들었다. 그래도, 맘에 들지 않았다. 솔직히 내가 구현한게 올바른 지에 대해서 확신이 없었다. 인터넷을 뒤적거리며 클린 아키텍처를 파이썬으로 구현하는 자료를 찾아보았다. 그중 발견한 블로그 글. 매우 세세하게 설명되는 데 양이 꽤 길다. 더 찾아보니 이 글을 쓴 사람이 leanpub에 책을 내신 것을 알게 되었다. 무료다. 180페이지 조금 안되는데, 생각보다 읽어볼 만한 것 같았다. 이 글은 이 책을 읽고 클린 아키텍처를 구현하는 핵심만 정리한 글이다. 책 자체는 TDD 방식으로 구현을 진행하는데, 이게 무료인..
클린 아키텍처 5부 - 아키텍처 이 글은 로버트 C. 마틴의 클린 아키텍처를 읽고 나름대로 중요하다고 생각한 부분만 정리한 글이다. 들어가며 이번 5부에서부터는 본격적으로 아키텍처에 대한 이야기가 나온다. 사실 대부분의 내용이 이미 잘 정리되어 인터넷 여기저기에 공유가 되어있다. (충분히 잘 정리된 글이 많아서 그런지, 굳이 내가 더 정리해야 하나 싶기도 하고... ) 여하튼, 일단 시작해본다.. 아키텍처란? 거두절미하고 아키텍처와 관련된 설명만 짤막하게 간추려 본다. 좋은 아키텍처는 시스템을 쉽게 (이해하고, 개발하며, 유지보수하고, 배포)할 수 있게 한다. 아키텍처는 시스템의 동작 여부 자체와는 거의 관련이 없다. 아키텍처는 소프트웨어를 유연하고 부드럽게 구조화한다. 좋은 아키텍트는 시스템의 핵심적인 요소(정책이라고 한다)를 식별하..
클린 아키텍처 4부 - 컴포넌트 이 글은 로버트 C. 마틴의 클린 아키텍처를 읽고 나름대로 중요하다고 생각한 부분만 정리한 글이다. 들어가며 이전 부서에서 SOLID 원칙이 벽과 방에 벽돌을 배치하는 방법을 알려준다면, 컴포넌트 원칙은 빌딩에 방을 배치하는 방법을 알려준다. 큰 빌딩과 마찬가지로, 대규모 소프트웨어 시스템은 작은 컴포넌트들로 만들어진다. 컴포넌트 컴포넌트는 배포 단위다. 시스템의 구성 요소로 배포할 수 있는 가장 작은 단위다. 라고, 책에 써져있기는 한데. 솔직히 말해서 이게 무슨 말이지 싶었다. 배포 단위면 컨테이너 이미지 정도를 말하는 건가? 솔직히 말해 나는 와 닿지 않아, CBD에 관한 글을 참고하며 이해했다. 내가 생각한 컴포넌트는 "사용 가능한 단위"다. 즉 실행 가능한 소스 코드 뭉치고, 이를 사용할 수 있..
클린 아키텍처 3부 - 설계 원칙 이 글은 로버트 C. 마틴의 클린 아키텍처를 읽고 나름대로 중요하다고 생각한 부분만 정리한 글이다. 들어가며 3부 설계 원칙에서는 SOLID 원칙에 대해서 다룬다. SOLID 원칙은 과거 몇 년 동안 수차례 여기저기서 언급되고, 이미 너무나 유명한 원칙들이기 때문에, 책에서는 SOLID 원칙이 무엇인지 처음부터 친절히 설명해주지는 않는다. 다만, 각 SOLID 원칙을 하나씩 다시 되짚어 보며 각 원칙이 지니는 핵심 의미를 다시 살펴본다. SOLID 원칙을 처음 정립한 사람에게, 수 년 뒤에 다시 듣는 SOLID 원칙의 핵심 의미라... 꽤나 의미 있지 않을까? 밥 아저씨가 말하는 SOLID 원칙의 전반적인 의미는 다음과 같다. SOLID 원칙은 함수와 데이터 구조를 클래스로 배치하는 방법, 그리고 클래스..
수군수군 파이썬 개발자 오픈 카톡방 회사에서 코딩 하다보면, 솔직히 좀 외로울 때가 있다. 내가 지금 짜는 코드가 클린한건가? 이 파이썬 코드가 최선일까? 혹시 더 좋은 라이브러리가 있는게 아닐까? 나는 종종 친구나 회사 동료들한테 변수명 괜찮은지 묻곤 한다. 여러 대답이 돌아오기는 하지만, 좀 더 파이썬을 잘 쓰는 개발자들이라면 어떤 대답을 줄 지 여전히 궁금하다. 파이썬의 철학, 파이써닉함을 신경쓰는 사람들이라면 좀 더 다른 대안을 주지 않을까 싶었다. 페이스북 그룹인 "Python korea" 에다가도 종종 물어본다. 잘하시는 분들이 많아서 꽤나 중요한 조언이나 통찰력을 얻곤 한다. 하지만, Q&A 식으로 끝나버리는 거 같아 조금 아쉽다. 파이썬 코드를 만들어 나가는 데 있어, 같이 고민하고 리뷰해주거나, 더 나은 코드는 없을 지 등..