분류 전체보기 308

쏙쏙 들어오는 함수형 코딩

읽은 순서랑 정리하는 순서를 맞추기가 생각보다 어렵다. 작년에 읽은 책을 이제야 정리하네. "책 제목을 꼭 이렇게 해야만 했을까?"라는 생각이 스치지만 좋은 책이다. 참고로, 이 책의 예제는 자바스크립트로 되어있는데, 리팩터링 2판과 최근에 나온 SICP 등의 특정 언어에 국한되는 내용이 아닌 책에서 예제를 구현하는 언어로 자바스크립트를 선택하고 있는데, 개발 환경을 별도로 구성할 필요도 없고 간단하게 예제를 돌려볼 수 있어서 좋다. ‘부수 효과를 없애라!’라는 슬로건 때문에 너무 단순하게 생각할 수도 있지만, 사실 함수형 프로그래밍은 부수 효과 구성에 관한 내용입니다. 부수 효과를 잘 관리해서 코드의 아무 곳에나 있지 않도록 하는 것입니다. 이 책의 주제이기도 합니다. 이 책은 보통 함수형 프로그래밍이..

Dev 2023.05.06

좋은 코드, 나쁜 코드 (Good Code, Bad Code)

2023년 카카오 신입 공채 기술 온보딩에서 코드 리뷰어로 활동할 때 참고하려고 구매했던 도서다. 나름 신간이면서 표지가 마음에 들기도 했고, 코드 품질은 언제나 관심이 있는 주제다. 읽어보니 책의 내용도 내용이지만, 적절한 컬러 사용과 보기 편한 편집으로 가독성도 매우 좋다. 이 책의 특이사항으로는 일단 예제 구성하는 데 사용한 언어에 있다. 보통 하나의 언어를 정해서 실행할 수 있는 예제를 구현하는 다른 책들과 달리 의사코드를 사용하여 예제를 구성하고 있다. 저자가 자기 생각을 전개하는 방식도 책의 제목과 순서는 배치 순서는 다르지만, 저자가 생각하기에 나쁜 코드와 좋은 코드를 대비시켜서 보여주고 왜 나쁘고 좋은지를 친절하게 설명해준다. 그리고, 모든 상황에 맞는 정답은 없다는 것을 계속 상기시켜준다..

Dev 2023.03.04

ChatGPT를 영어 연습 챗봇으로 사용해보기

요즘 ChatGPT에 대한 소개, 활용법 등등 글과 영상이 여기저기 많이 보인다. 조심해야 할 점 하나는 ChatGPT가 모르면 모른다고 답을 주면 좋을 텐데, 어떻게든 문장을 만들어서 사실이 아닌 답을 주는 경우도 꽤 있으니 애매할 때는 추가 검증이 필요하다. 이 글에서는 영어 학습에 도움이 될만한 팁 하나를 간단히 공유하려고 한다. 2명의 대화 상대를 등장시키고, 영어 선생님이 내 영어 문장을 교정해주는 다자간 영어 연습 챗봇으로 ChatGPT를 사용해볼 수 있다. 가입 절차는 많은 곳에 소개되어 있으니 다른 자료를 참고 바란다. 우선, 아래의 화면에서 '프롬프트 입력 박스'이라고 표시한 부분이 ChatGPT에게 요청 사항을 적는 텍스트 박스다. 입력 텍스트를 프롬프트(Prompt)라고 한다. 일단 ..

I'm prostars 2023.02.22

싯다르타

오랜만에 읽은 소설이 고전이네. 짧은 소설이고 생각보다 잘 읽힌다. 불교에 관심이 없거나, 다른 종교를 가지고 있더라고 큰 부담 없이 읽을 수 있을 거라고 생각하지만, 개인차가 큰 부분이니까. 어느 한 사람에게는 소중한 보배이자 지혜처럼 여겨지는 것이 어떤 다른 사람에게는 항상 바보 같은 소리로 들린다는 사실에 대해서도 나는 동의하고 있어. 작품 해설에 나온 내용으로 소개가 충분할 것 같다. 싯다르타는 아무리 각성자라 할지라도 깨달음의 순간에 체험한 것을 말이나 가르침을 통하여 전달할 수는 없다는 사실, 즉 삶과 인식 사이에 가로놓여 있는 균열을 인지한다. 열반은 ‘이성적으로 파악되는 것이 아니라 한순간의 심오한 통찰 속에서 체험될 수 있는 것’임을 깨달은 싯다르타는 편력의 길을 계속한다. https:/..

Book Shelf 2023.02.11

도메인 주도 설계

꽤 오래전에 읽은 책이 eBook으로 새로 출간되었다. 2011년에 번역서가 나왔었는데, 2023년에 eBook으로 출간되었다. 꽤 어렵게 읽었던 기억이 있어서 다시 읽어보려고 구매했다. 개정판인가 기대를 살짝 했었는데 개정판은 아니다. 출간된 지 10년이 훌쩍 넘은 기술 서적이지만 지금 읽어도 좋은 책이다. 도메인 주도 설계의 목표는 기술보다는 도메인에 대한 모델에 집중해 더 나은 소프트웨어를 만들어내는 것이다. 이 책의 목표를 간결하게 보여주는 멋진 말이다. 상호의존성은 모델과 설계를 이해하기 어렵게 만든다. 또한 테스트를 어렵게 만들고 유지보수성을 떨어뜨린다. 그리고 쉽게 축적되는 경향이 있다. ... 객체 개념을 구성하는 데 필수적이라는 사실이 증명되기 전까지는 모든 의존성을 검토해야 한다. 이러..

Dev 2023.02.05

카카오 사내 Tech talk 발표

얼마 전에 사내 Tech talk에서 크루 300여명을 대상으로 발표했던 내용이 글로 다시 정리되어 카카오 테크 블로그에 기재되었다. 이쁜 굿즈도 주셨다. https://tech.kakao.com/2023/01/19/kakaotalk-java-app-server-refactoring/ 카카오톡 Java App Server Refactoring 후기 안녕하세요, 카카오톡 메시징 파트에서 메시징 서버를 개발하고 있는 Soo입니다. 취미가 직업이 된 지 어느덧 8,000일이 넘어가고 있는 개발자입니다. 2019년 말에 톡 메시징 파트에 합류하여 기술 tech.kakao.com

I'm prostars 2023.01.19

DEATH 죽음이란 무엇인가

참여하고 있는 독서 모임의 새해 첫 지정도서의 주제가 밝고 명랑하지는 않네. 철학과 친하지 않기에, 책을 읽다가 유튜브에서 형이상학 강의를 찾아서 보고, 존재론에 대해서 보고, 참... 개론서도 이렇게 보기 어려워서야. 학교 다닐 때 키보드만 만지고 있을 게 아니라, 공부도 좀 해뒀어야 했다. 지금도 신해철의 음악을 좋아하지만, 어린 시절에는 거의 매일 들었고, 그의 음악에는 생에 대한 내용들이 많았다. 그 시절에는 요즘과 달리 책을 좋아하지 않았음에도 많은 생각을 해볼 수 있었다. 지구라는 별에 잠시 머물렀다 떠나야 한다는 사실을 얼마나 자주 떠올리는가? 사실 우리는 이런 질문을 달가워하지 않는다. '영혼은 존재하지 않는다'라고 본인의 생각을 밝히고 시작하는 이 책은 물리를 기반으로 하는 현실 세계와 ..

Book Shelf 2023.01.15

도메인 주도 개발 시작하기

개인적으로 새로운 주제에 대한 책을 보는 것도 좋아하지만, 한번 봤던 주제, 이미 사용하면서 조금은 알고 있다고 생각하는 주제에 대한 책도 다시 찾아서 읽어보는 것을 좋아하는데, 다시 보면 예전에 볼 때는 놓쳤던 것, 이해를 못하고 넘어갔던 것, 시간이 지나면서 잊었던 것들을 재확인할 수 있다. 오래전에 '도메인 주도 설계'를 봤을 때는 어렵게 읽은 기억이 있는데, 이 책은 주요 내용만 추려서 더 쉽게 풀어 쓰였고, 예제 코드들도 있어서 편하게 읽었다. 다만, 중반부의 리포지터리 구현 쪽 예제가 스프링과 JPA에 치중된 점은 아쉽지만, 이 점이 매우 마음에 드는 분도 있을 것이다. 10년쯤 전에 참여했던 프로젝트의 설계에 도메인과 I/O가 매우 잘 분리되어 있었고, 덕분에 많은 공부가 되었다. 하지만, ..

Dev 2023.01.09

코드 복잡도 줄이기 (Cyclomatic Complexity, NPath Complexity)

2023년 8월 3일 추가: 이 내용을 포함한 카카오 테크밋에서 발표한 영상이 올라왔습니다. 이번 포스팅도 어떤 백엔드 서비스의 코드를 리팩터링한 내용을 정리하는 것으로, 이번에는 코드 복잡도 줄인 리팩터링에 대한 내용을 정리한다. 이전에 포스팅했던 '가변 Context 클래스는 신중하게 사용하자'와 '고차 함수로 의존성 줄이기'로 코드의 의존성 문제들이 많이 정리된 상태라서 복잡도 줄이기를 진행할 수 있었다. 아래는 어떤 백엔드 서비스 코드의 리팩터링 전과 후의 코드 복잡도 Cyclomatic Complexity와 NPath Complexity의 수치 변화다. 많이 줄어든 것을 볼 수 있다. 실제로 작업했던 코드를 기반으로 소개할 수는 없으니, 일반화해서 조금은 억지스러운 예제로 만들어 내용을 정리한다..

Dev 2022.12.25

시민의 교양

종이책과는 달리 전자책은 사놓고 까먹으면 눈에 띄지 않는다는 단점이 있었네. 구매한 지 4년 만에 읽었다. 책이 출간된 지 오래되어 책에서 보여주는 통계자료 등은 오래전 자료지만 책의 내용을 이해하는 데 문제가 되지는 않는다. '지적 대화를 위한 넓고 얕은 지식 1권'을 재밌게 읽었었는데, 이 책도 지루한 내용을 쉽고 재밌게 풀어서 설명하고 있다. 경제체제와 세금 등 겹치는 내용도 조금 있지만, 이 책의 설명이 조금 더 자세하다. 일반적으로 간접세는 조세에 대한 저항이 상대적으로 적다. 자신의 선택이 세금을 발생시켰다고 생각해서 강제성이 적고 평등해 보이기 때문이다. 하지만 개인의 소득을 고려했을 때는 간접세가 공평하다고 말하기 어렵다. ... 소득을 기준으로 할 때, 간접세는 저소득자의 실질적인 부담을..

Book Shelf 2022.12.03
반응형