본문 바로가기

스터디-공부62

7장 가치 있는 단위 테스트를 위한 리팩터링 단위테스트 (블라디미르 코리코프) https://jonghoonpark.com/identifying-the-code-to-refactor 에서 이어지는 글입니다. 복잡한 코드를 알고리즘과 컨트롤러로 나눠보자. 험블 객체 패턴을 사용해 일반화 하는 방법에 대해서 알아보자. 2.1 고객 관리 시스템 소개 사용자 등록을 처리하는 고객 관리 시스템을 샘플로 한다. 모든 사용자는 데이터베이스에 저장된다. 현재 시스템은 사용자 이메일 변경이라는 단 하나의 유스케이스만 지원한다. 이 연산에는 세 가지 비즈니스 규칙이 있다. - 사용자 이메일이 회사 도메인에 속한 경우 해당 사용자는 직원으로 표시된다. 그렇지 않으면 고객으로 간주한다. - 시스템은 회사의 직원 수를 추적해야 한다. 사용자 유형이 직원에서 고객으로, 또.. 2023. 7. 28.
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.
7장 가치 있는 단위 테스트를 위한 리팩터링 - 리팩터링할 코드 식별하기 단위테스트 (블라디미르 코리코프) 7장에서 다루는 내용 - 네 가지 코드 유형 알아보기 - 험블 객체 패턴 이해 - 가치 있는 테스트 작성 1. 리팩터링할 코드 식별하기 기반 코드를 리팩토링 하지 않고서는 테스트 스위트를 크게 개선할 수 없다. * 테스트 스위트(test suite) 소프트웨어 프로그램을 테스트하여 특정 동작 집합이 있음을 보여주기 위한 테스트 케이스 모음 a collection of test cases that are intended to be used to test a software program to show that it has some specified set of behaviors. 테스트 코드와 제품 코드는 본질적으로 관련돼 있기 때문에 다른 방도는 없다. 1.1 코드의 네.. 2023. 7. 18.
6장 단위 테스트 스타일 – 함수형 아키텍처의 단점 이해 + 6장 요약 단위테스트 (블라디미르 코리코프) 아래 내용에서 이어지는 글입니다. https://jonghoonpark.tistory.com/43 https://jonghoonpark.tistory.com/44 https://jonghoonpark.tistory.com/45 https://jonghoonpark.tistory.com/47 안타깝게도 항상 함수형 아키텍처를 이룰 수 있는 것은 아니다. 또한 함수형 아키텍처라고해도, 코드베이스가 커지고 성능에 영향을 미치면서 유지 보수성의 이점이 상쇄된다. 5.1 함수형 아키텍처 적용 가능성 감사 시스템은 결정을 내리기 전에 입력을 모두 미리 수집할 수 있으므로 함수형 아키텍처가 잘 동작했다. 그러나 종종 실행 흐름이 간단하지 않을 수 있다. 의사 결정 절차의 중간 결과에.. 2023. 7. 15.