본문 바로가기

관심사

<마르티네즈> 카오스 멍키 - 혼돈의 시대, 어떻게 기회를 낚아챌 것인가 '카오스 몽키'라는 제목에 속아 읽기 시작한 책이다. 이 책을 읽기 전에는 '카오스 엔지니어링'과 관련된 내용을 기대했다. 실은 저자가 실리콘밸리에서 겪은 IT 업계의 비하인드를 담은 회고록이었다. 저자는 솔직하고 대담한 필력으로 스타트업 창업과 인수합병, 그리고 실리콘밸리의 IT 대기업에 대한 이야기를 다룬다. 글을 읽다보면 저자인 마르티네즈는 똑똑하지만 거칠고, 잔꾀가 많은 사람으로 보인다. 책 내용과 관계없는 '카오스 몽키'를 제목으로 삼은 것은 실리콘밸리 사람들의 이목을 끌기 위한 전략이지 않았을까 의심스럽다. '카오스 엔지니어링'이란, 시스템이 예상치 못한 상황을 견딜 수 있도록 실험하는 것을 말한다. 운영 시스템에 무차별적인 부하를 일으켜 분산 시스템의 장애 지점을 찾아내고, 회복하는 과정을 ..
<나루세 마사노부> 도메인 주도 설계 철저입문 밑줄 그으며 책 읽기 📝 애플리케이션 서비스는 유스케이스를 구현하는 객체이다. 도메인 객체는 도메인을 코드로 옮긴 것이다. 도메인을 코드로 나타냈다고 해도 그것만으로는 이용자가 당면한 문제나 필요가 해결되지 않는다. 이용자의 필요를 만족시키거나 문제를 해결하려면 도메인 객체의 힘을 하나로 엮어 올바른 방향으로 이끌어야 한다. ... 유효성 검증 로직에서 에러를 반환하게 하는 경우, 결과 객체를 반환한다. 결과 객체는 개발자에게 강제력을 미치지 못한다. 즉, 처리 실패 핸들링의 역할을 클라이언트에 전적으로 위임하게 되는데, 이는 자칫 의도치 않게 실패를 그냥 지나쳐버리는 결과를 낳는다. 반대로 예외를 발새하는 쪽을 택하면 반환 값을 반환하지 않는다. 예외를 발생시키고 아무것도 하지 않으면 프로그램이 종료되..
<이동욱> 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 나는 새로운 프레임워크를 학습할 때에는 일단 튜토리얼을 따라서 간단한 게시판을 만들어본다. 그리고 서버에 애플리케이션을 올려보는 것까지 실습해본다. 처음에는 새로운 언어를 배우는 것이 무작정 어렵게만 느껴진다. 그러나 실습을 하다 보면 패턴이 익숙해지고, 초기에 느꼈던 마음의 장벽들이 낮아진다. 그리고 의미를 모르는 채 코드를 따라치는 것에 갑갑함을 느끼게 되어, 동작 원리에 흥미를 갖게 된다. 올해 중순부터 자바/스프링을 공부하기로 결심했다. 그래서 학습의 방향성을 잡고 언어에 대한 흥미를 줄 수 있는 첫 삽이 필요했다. 그래서 얇은 스프링 부트 책 몇 권을 따라쳐보았다. 그 중, "스프링 부트와 AWS로 혼자 구현하는 웹 서비스"가 가장 이해하기 쉽고, 실습하기 좋았다. 폰트 크기와 컬러 여부, 그리..
<이미예> 달러구트 꿈 백화점 달러구트 꿈 백화점은 꿈을 판매하는 상점을 다룬 소설이다. 꿈 판매자와 제작자, 현실의 손님들의 이야기를 다루고 있어, 판타지와 현실 세계를 번갈아가며 이야기를 풀어나간다. 소설 속 판타지 세계에서는 꿈 제작자들이 꿈을 만들고, 사람들은 자기가 꾸고 싶은 꿈을 구매한다. 소설을 읽으면서 나도 인셉션처럼 꿈을 설계하고 싶다는 생각이 들었다. 현실에서 경험할 수 없는 것들을 체험해보고자 우주에 가는 꿈을 상상해보기도 했다. 그러나 꿈속의 나는 여전히 평범했다. 소설을 읽는 내내 나도 이런 판타지 세계를 경험하고 싶다는 생각이 들었다. 소설에서는 심신 안정용 쿠키, 진정 시럽을 추가한 커피, 설렘 용액처럼 마법의 약이 등장한다. 그런데 다른 관점으로 보면 나는 이미 판타지적인 세계를 살고 있다. 나는 최근 들..
<마이클 C. 페더스 > 레거시 코드 활용 전략 레거시 코드 활용 전략은 테스트 코드 없이 레거시 코드를 다 감수하시겠습니까? 글을 읽은 후, 흥미를 갖게 된 책이었다. 이후, 비즈니스 로직이 복잡한 업무를 담당하게 되었고 나의 복잡한 심정을 대변해줄 대상을 찾는 심정으로 이 책을 읽게 되었다. 이 책은 현업에서 리팩토링을 하면서 암묵적으로 체득한 기법들이 명쾌하게 정리되어 있어 흥미로웠다. 리팩토링을 할 때, 적용 결과가 이전보다 낫다고 확신할 수 없는 경우가 종종 있었다. 이 때, 리팩토링을 하지 않으면 코드를 이해하기 어려웠기 때문에 별다른 선택지가 없어서 고민하고는 했다. 몇 번의 실패를 경험한 후, 스케치하듯이 연습 삼아 리팩토링을 하며 코드를 분석하는 패턴을 체득하게 되었다. 물론, 이 코드는 로컬에서만 사용했고, 리팩토링 효과가 확실하다고..
Beams - 일본 온라인 셀렉트 숍 살펴보기 Beams는 일본의 1세대 셀렉트 숍이다. 최근 빔즈는 온라인 셀렉트숍으로서 여러 시도를 하고 있는 것으로 보인다. 이 포스팅에서는 Beams 사이트를 살펴보면서 느꼈던 점들을 정리해보고자 한다. Beams 사이트는 최근 국내 온라인 셀렉트샵 서비스와 유사한 점이 꽤나 많았다. 전반적인 트렌드가 다 비슷해져가는 것 같다. 공통적인 요소들은 아래와 같다. 웹으로 매거진 콘텐츠를 제공하기 일반인 / 직원들의 패션을 공유하기 영상 콘텐츠를 상품 / 브랜드별로 노출하기 라이브 영상 콘텐츠 제공하기 이 외에도 라디오 서비스 등을 시도하고 있다. 매거진 컨텐츠 웹 매거진 콘텐츠 잡지의 느낌을 온라인으로 잘 옮겨낸게 흥미로웠다. 여기서 상품을 클릭하면, 상품 상세 페이지로 이동한다. THINGS WE LOVE vol..
이커머스에서 검색엔진이 필요한 이유 이커머스에서 검색엔진이란, 사용자들이 쉽게 상품을 검색할 수 있게 해주는 기술을 의미한다. 상품 검색을 아래와 같이 DB에 상품명을 단순 조회하는 방법으로 생각할 수 있지만, 이 방식은 몇가지 한계가 있다. SELECT * FROM products WHERE product_title LIKE '%{search_query}%' 1. 상품명이 정확하게 일치해야 상품을 조회할 수 있다. 위와 같은 쿼리로 "리버시블 무스탕”을 검색하면, "리버시블 카라 무스탕”이라는 상품은 검색할 수 없다. 완전 일치되는 상품만 검색할 수 있기 때문이다. 2. 검색 결과를 가중치에 따라 정렬할 수 없다. 정확도순 (계절/키워드 가중치 등), 추천순 등을 반영하기 어렵다. 3.하나의 속성에 대한 검색만 가능하다. 위의 쿼리는 상..
<조영호> 오브젝트 05. 책임 할당하기 1. 클래스가 여러 이유로 변경돼야 한다면 응집도가 낮은 것이다. 변경의 이유를 기준으로 클래스를 분리해야한다. 2. 응집도가 높은 클래스는 인스턴스를 생성할 때 모든 속성을 함께 초기화한다. 반면 응집도가 낮은 클래스는 객체의 속성 중 일부만 초기화하고, 일부는 초기화되지 않은 상태로 남겨진다. 때문에 함께 초기화되는 속성들을 기준으로 클래스를 분리해야한다. 3. 모든 메서드가 객체의 모든 속성을 사용한다면 클래스의 응집도가 높다고 볼 수 있다. 반면 메서드들이 사용하는 속성에 따라 그룹이 나뉜다면 클래서의 응집도가 낮다고 볼 수 있다. 06. 메시지와 인터페이스 디미터 법칙 클래스 내부의 메서드는 아래 조건을 만족하는 인스턴스에게만 메시지를 전송해야한다. -> this 객체 / ..