본문 바로가기

전체 글78

7장 가치 있는 단위 테스트를 위한 리팩터링 단위테스트 (블라디미르 코리코프) https://jonghoonpark.com/identifying-the-code-to-refactor 에서 이어지는 글입니다. 복잡한 코드를 알고리즘과 컨트롤러로 나눠보자. 험블 객체 패턴을 사용해 일반화 하는 방법에 대해서 알아보자. 2.1 고객 관리 시스템 소개 사용자 등록을 처리하는 고객 관리 시스템을 샘플로 한다. 모든 사용자는 데이터베이스에 저장된다. 현재 시스템은 사용자 이메일 변경이라는 단 하나의 유스케이스만 지원한다. 이 연산에는 세 가지 비즈니스 규칙이 있다. - 사용자 이메일이 회사 도메인에 속한 경우 해당 사용자는 직원으로 표시된다. 그렇지 않으면 고객으로 간주한다. - 시스템은 회사의 직원 수를 추적해야 한다. 사용자 유형이 직원에서 고객으로, 또.. 2023. 7. 28.
playwright 를 이용해 디시인사이드 크롤링 해보기 (python) 발단 디시인사이드의 특정 갤러리의 게시글들을 주기적으로 백업을 해서 보고 싶었다. 요구사항은 - 주기적으로 새로운 게시글을 조회하여 백업 (이전 글들은 굳이 다시 조회할 필요 없음) - 백업한 게시글은 dcinside를 거치지 않고 자체적으로 다시 볼 수 있어야 함 이렇게 두 가지 였다. 구현 방식 고민 나는 playwright 라는 도구를 사랑한다. 회사에서는 playwright node.js 버전을 사용하고 있다. 그런데 어쩐 일인지 과거의 나는 python 으로 뭔가를 만들어보고 싶어했던것 같고 클라우드 한 구석에 playwright python 을 이용한 자동화 시스템이 있었다. 이 시스템은 문제없이 잘 돌아가고 있었기에 기존 시스템의 연장선 느낌으로 개발을 원했다. 그래서 나는 python에 그.. 2023. 7. 24.
Node.js 기반 Slack 봇 만들어보기 (Daily Geek News 알림 봇 만들기) 발단 GeekNews(https://news.hada.io/) 라는 플랫폼을 잘 사용하고 있다. 재밌는 소식이 자주 들려와서 좋다. GeekNews에서는 자체 제작된 봇을 통해서 글이 생성될 때마다 알림해주는 기능을 제공해준다. 내가 속해 있는 K-DEVCON 슬랙에도 해당 봇을 추가 해두고 잘 사용 하고 있었는데 최근에 의견이 나온 것이 너무 알림이 잦다는 것이였다. 그래서 하루에 한 번 알림이 오도록 하면 어떻겠냐 라는 의견이 나왔다. 그래서 Daily GeekNews 봇을 만들어보기로 했다. 구현 방식 고민 어떻게 처리할 수 있을까를 고민해봤다. 첫번째 생각났던 방법은 현재의 봇을 어떻게든 이용하는 것이였다. private 채널을 만들어 거기서 현재 봇이 알림을 보내주도록 하고 slack api를 .. 2023. 7. 23.
11장 전문가 되기 소프트 스킬 - 존 손메즈 전문가가 된다는 건 사고방식의 전환을 의미한다. 두려움, 게으름, 미루는 버릇, 자기 회의 등에 휘둘리는 일은 비전문가처럼 생각할 때 발생한다. 비전문가는 약속을 어긴다. 비전문가는 포기한다. 비전문가는 역경에 굴복한다. 전문가가 생각하는 방식은 이와 다르다. 전문가는 약속을 지키고 자신이 맡은 일을 완수하며 무슨 일이 있어도 절대 포기하지 않는다. - 최고의 나를 꺼내라(The War of Art), 스티븐 프레스필드 - 전문가는 약속을 지키고 맡은 일을 완수하며 역경에 굴복하지 않아야 한다. 전문가는 약점을 묵묵히 극복하고 최선의 결과를 낼 수 있어야 한다. 개발자에게 전문성이랑 큰 자산 중 하나다. 전문가답게 처신하고 전문가 대접을 받아야 더 좋은 일자리, 더 많은 고객을.. 2023. 7. 23.
5장 지루한 이력서 어떻게 바꿀까? 소프트 스킬 - 존 손메즈 관광 안내소의 광고지도 100달러를 꺼내게 하기 위해 꽤 공들여 디자인한다. 개발자의 이력서는 인사 담당자가 소프트웨어 개발자들에게 연간 60,000~80,000달러, 어쩌면 그 이상의 비용을 지출하게 하려는 것이다. 개선할 여지가 있다는 것을 이야기 하고자 하는 것이다. 당신은 이력서 작성 전문가가 아니다 당신이 만든 이력서가 별로인 이유는 아주 간단하다. 당신은 이력서 작성으로 생계를 유지하는 사람, 즉 이력서 작성 전문가가 아니기 때문이다. 그렇다고 당신이 이력서 작성 전문가가 될 필요는 없다. 굳이 그런 일에 당신의 시간과 재능을 낭비하지 마라. 더 훌륭하게 써줄 수 있는 전문가는 주위에 무수히 많다. 이력서 작성 전문가 고용하기 많은 이력서 작성 전문가가 있지만. 개발.. 2023. 7. 23.
13장 검색어 자동완성 시스템 가상 면접 사례로 배우는 대규모 시스템 설계 기초 – System Design Interview 여기서 설계하는 검색 시스템은 당근마켓 과 같은 경우에 적합할 것이라는 생각이 들었다. 잘못 입력했을 경우에 대한 교정이 없고, 단어 위주로 검색을 하게 되는 시스템에 유용할 거라는 생각이 들어서였다. 검색어 자동완성과는 또 다른 이야기이긴 하지만 당근마켓은 검색엔진으로 엘라스틱서치를 사용하고 있다고 한다. 아래 글이 생각나서 링크로 걸어둔다. 당근마켓 검색 엔진, 쿠버네티스로 쉽게 운영하기 1단계 문제 이해 및 설계 범위 확정 질문 예시 - 사용자가 입력하는 단어는 자동완성될 검색어의 첫 부분이어야 하나요? 아니면 중간 부분이 될 수도 있습니까? - 몇 개의 자동완성 검색어가 표시되어야 합니까? - 자동완성.. 2023. 7. 20.