1. 당신의 시장을 선택하라[ 1.1 길거리에서 중요한 것 ]한 가지 분명한 건 본인이 일을 얼마나 빨리 하느냐가 가장 중요하다는 점이다. 아무도 우아한 설계, 알고리즘 지식, 고품질의 코드를 신경 쓰지 않는다. 여러분을 고용한 사람들은 주어진 시간에 얼마나 많은 것을 해줄 수 있느냐에만 관심이 있다. 하지만 여러분의 직관과는 반대로 좋은 설계, 좋은 알고리즘, 좋은 품질의 코드는 처리량에 상당한 영향을 주며, 많은 프로그래머가 이를 놓치고 있다.만약 여러분이 나쁜 코드를 쓰고 있다면 여러분은 동료들의 속도를 늦추고 있는 것이다. [ 1.3 훌륭한 스트리트 코더 ]스트리트 코더는 업계의 인정, 명예, 충성심 외에도 이상적으로 다음과 같은 자질을 가지고 있다.질문하기결과 중심적높은 처리량복잡성과 모호성 ..
0. 프로그래밍 패러다임[ 패러다임의 시대 ]프로그래밍 패러다임은 개발자 공동체가 동일한 프로그래밍 스타일과 모델을 공유할 수 있게 함으로써 불필요한 부분에 대한 의견 충돌을 방지한다. 또한 프로그래밍 패러다임을 교육시킴으로써 동일한 규칙과 방법을 공유하는 개발자로 성장할 수 있도록 준비시킬 수 있다.이 책은 코드를 개발하는 우리가 객체지향 패러다임이라는 용어를 사용할 때 완벽하게 동일하지는 않더라도 어느 정도 유사한 그림을 머릿속에 그릴 수 있는 기반을 제공하는 것이다. 또한 객체지향에 대한 다양한 오해를 제거함으로써 객체지향 프로그래밍을 하는 개발자들이 동일한 규칙과 표준에 따라 프로그램을 작성할 수 있게 할 것이다. 1. 객체, 설계[ 2. 무엇이 문제인가? ]로버트 마틴은 “클린 소프트웨어”에..
1. 당신의 시장을 선택하라큰 투자를 하려고 한다. 큰돈을 투자하는 게 아니라 자신의 시간, 바로 자신의 삶을 투자하는 것이다. 경력이라는 흐름에 그저 떠다니기만 하면서 그 흐름이 가는 대로 자신을 내맡겨 버리는 사람이 많다.그렇다면 왜 개발자들은 대부분 경력 선택에 이와 같은 주의를 기울이지 않을까? 경력을 사업이라고 생각한다면(사실은 그렇다), 자신이라는 “상품”은 자신이 제공해야만 하는 서비스로 구성된다.그러면 서비스는 무엇인가? 서비스를 누구에게 팔려고 하는가? 서비스에 대한 수요가 향후 몇 년간 늘어날 것인가, 즐어들 것인가? 이러한 선택에 얼마나 큰 모험을 기꺼이 할 것인가? [ 1. 그냥 앞서 갈 것인가, 위험까지 무릅쓸 것인가? ]위험과 보상을 절충하는 것은 어느 기술과 영역에 투자할지 ..

현재 회사에서는 A/B 테스트를 통해 아주 많은 의사 결정을 내리고 있다. 그런 환경에 있다가 A/B 테스트가 부를 수 있는 함정에 대한 좋은 아티클을 발견하여 번역한 것이다. 1. Four pitfalls of hill climbing(A/B 테스트의 4가지 함정)제품을 디자인할 때, 눈에 띄게 발전된 부분 중 하나가 바로 A/B 테스트의 도입이다. 우리의 고객에게 무엇이 최상일지 추측하는 것이 아니라, 일부 고객에게 제품에 대한 변형을 제공하고 그 효과가 얼마나 좋은지를 측정하는 것이다. A/B 테스트는 분명 유용하지만, 때로 “언덕 오르기(hill climbing)”를 지나치게 부추긴다는 지적을 받기도 한다. “언덕 오르기”란 쉽고 즉각적인 성공을 강조하는, 점진적이고 근시안적인 제품 개발 방식..

1. 유용한 인텔리제이 기능 모음(IntelliJ)[ HttpClient 생성하기 ]개인적으로는 최근에 Postman이 아닌 인텔리제이의 HttpClient를 주로 활용하고 있다. 이때 인텔리제이의 HttpClient 생성 자동화를 사용하면 편리한데, 다음과 같이 컨트롤러 옆에 있는 버튼을 클릭한다. 그러면 인텔리제이가 임의의 위치에 다음과 같은 http 파일을 생성해준다. 이를 통해 보다 편리하게 HttpClient를 생성할 수 있다. [ ViewMode ]IntelliJ에서 Control + ` 단축키를 누르면 스킴 관련된 변경을 편하게 할 수 있다. 그리고 그 중에서 View Mode에 흥미로운 기능이 많이 있다. 1~5번의 설정을 통해 상황에 맞게 화면이 보여지는 모드를 변경할 수 있다...