본문 바로가기

728x90
반응형

회고

(335)
[TDD, 클린 코드 with Java] 4. 수강신청 - 레거시 코드 리팩터링 *개요 수강신청 과제 피드백을 정리합니다. 1단계 - 레거시 코드 리팩터링 1:N 관계 로직 만들기 고민 의존성에 따라 객체 생성 위치를 정하라 생성, 수정 일시를 외부에서 주입받아라 코드 라인을 줄일 수 있으면 로직을 합치라 2단계 - 수강신청(도메인 모델) 도메인의 공통 칼럼은 하나의 인스턴스로 리팩토링하라 도메인의 enum을 내부, 외부에 정의하는 고민 도메인 책임 영역을 고민하라 유동적인 요구사항을 추가 구현하라 다른 도메인을 객체로 의존하기 vs 객체 id(pk)에 의존하기 연관이 있는 도메인 인스턴스를 묶어 관리하라 양방향 의존관계를 단방향으로 개선하라 3단계 - 수강신청(DB 적용) 인덱스 자료구조 검색을 제거하라 기존 도메인 유지하기 vs 새로운 도메인 추가하기 비지니스 책임을 Servic..
[TDD, 클린 코드 with Java] 3.사다리타기 - FP, OOP *개요 사다리타기 과제를 구현하면 피드백 받은 내용을 정리합니다. 2단계 - 사다리(생성) 매개변수 값 전달 시 변수명에 맞는 값을 전달하 매개변수 전달 시, personCount라는 매개변수명을 가지고 있습니다. 따라서 실제 전달은 personCount를 해야 합니다. Factory 분리를 고민하라 사다리를 생성하는 LadderFactory는 Ladder에서만 사용합니다. 이전에 로또번호를 생성하는 과제에서는 별도로 Factory를 분리했습니다. 제대로 로또 번호가 생성되었는지 테스트를 하기 위함이 큰데, 이번 리뷰에서는 오히려 만들지 않는 것이 낫다는 피드백을 받았습니다. 따로 정답이 있다고 생각하지 않습니다. 경우에 따라서 분리하거나 그냥 유지 할 수 있습니다. 중복된 유효성 검증을 제거하라 Lin..
[TDD, 클린 코드 with Java] 2.로또 - TDD * 개요 2단계 로또 TDD 과제를 하면서 피드백 받은 부분을 정리합니다 1단계 - 문자열 계산기(로또 - TDD) 메서드명의 의도를 분명하게 드러내라 메서드명을 단순하게 main으로 하지 않고 분명하게 의도가 드러나야 합니다. View에서 유효성 검증을 하지 마라 View는 말 그대로 데이터의 입출력만 관리합니다. 유효성 검사는 Controller나 도메인에서 합니다. Map은 O(n) 보다는 O(1) 을 고려하라 지금은 Map 원소의 갯수가 많이 없지만, 갯수가 많아지면 O(n)의 성능이 문제가 될 수 있습니다. 따라서 미리 선언하여 O(1)로 쉽게 검색이 가능하도록 합니다. @DisplayName으로 테스트 설명을 추가하라 테스트명으로 충분한 의도를 나타낼 수 있지만, @DisplayName을 사용..
[TDD, 클린 코드 with Java] 1.자동차 경주 *개요 문자열 계산기와 자동차 경주 과제 구현 및 피드백을 회고한다. 2단계 - 문자열 덧셈 계산기 선언형 스타일로 정의하라 엘레강트 오브젝트 책에서 선언형 스타일로 코딩 할 것을 추천해서 사용해 봤습니다. boolean형을 Boolean으로 인터페이스 선언하고 LessThan이라는 같거나 작은 경우를 satisfied() 메서드를 통해 실행합니다. 피드백 과제전형의 좋은 점은 다양한 스타일을 시도하고 공유할 수 있다는 점입니다. Pattern에 static을 추가하라 static은 어디서나 접근이 가능한 점도 있겠으나, 미리 컴파일 한다는 의미가 더 큽니다. 그런 점에서 반복 사용되는 상수 개념의 경우 미리 static으로 만든다면 이후 호출에서 불필요한 메모리 사용을 예방할 수 있습니다. CUSTOM..
도파미네이션 *개요 저는 일종의 중독 증세가 있습니다. 한가지에 빠지면 다른 것들을 보지 못하고 깊게 몰두하는 경향이 있습니다. 보통 미디어가 그러합니다. 왜 나는 중독 증세가 있을까, 그 과정에 도파민이 영향이 있다는 것을 알았고 제목에 있다시피 쾌락 과잉시대에서 균형을 찾기 위해 도파미네이션이라는 책을 읽게 되었습니다. *느낀점 쾌락과 고통의 관계를 저울로 비교하여 이해하기 쉬웠습니다. 쾌락이 클수록 저울은 항상성을 유지하기 위해 그만큼 고통을 겪어야 합니다. 또한 쾌락에 노출될수록 내성이 생겨 더 강한 쾌락을 필요로하고 그만큼 고통도 커집니다. 그동안 내가 자극적인 것에 계속 집착하는 것도 결국 쾌락을 계속 맛보려는 것이며, 나의 도파민이 계속 분비되고 있었음을 깨달았습니다. 나의 뇌에서 얼마나 많은 호르몬의 ..
THE ONE THING 내가 큰 성공을 거뒀을 때에는 단 하나의 일에만 모든 정신을 집중했다. 그러나 성공이 들쭉날쭉했을 때는 나의 집중력도 여러 군데에 퍼져 있었던 것이다. 탁월한 성과는 당신의 초점(focus)을 얼마나 좁힐 수 있느냐와 밀접하다. 성공하는 사람들은 꼭 해야 하는 일을 잘 알아보는 혜안을 가지고 있다. 그들은 잠시 시간을 내어 무엇이 중요한지 결단을 내리고는, 바로 그 일을 중심으로 하루 일과를 운영한다. 성공하는 사람들은 언제나 뚜렷한 우선순위를 가지고 일한다. 조금만 주의를 기울여 찾아보면 같은 노력이 언제나 같은 결과를 가져오지 않는다는 사실을 금세 알 수 있게 된다. 언제나 수많은 나머지보다 중요한 소수의 것이 있을 것이고, 그 소수 중에서도 가장 중요한 단 하나가 있을 것이다. 어쨋거나, 가장 중요..
생각하는 인간은 기억하지 않는다 *개요 항상 창의적인 아이디어와 뇌를 활용하는 방법에 궁금증이 많습니다. 코딩을 직업으로 가지고 있어 뇌과학에 관심을 가지고 어떻게 효율적으로 뇌를 사용하는지 관심을 가지고 있습니다. 이번 책을 통해서 흥미로운 연구 결과들을 알아보고 싶었습니다. 지식이 많은 것과 지혜를 발휘하는 일은 다르다. '생각해 내기'를 통해 기억을 끌어내 현재 상황에 비춰 편집해야 비로소 지혜가 된다. 이것이 바로 뇌의 구조를 바탕으로 한 생각 해 내기가 중요한 이유다. 나쁜 기억을 바꿀 수 있다 인간의 기억과 감정의 구조를 바탕으로 보면 과거는 변하지 않는 게 아니라 성장하는 것이다. 물론 발생한 일이나 사실은 변하지 않는다. 하지만 그 의미는 바꿀 수 있다. 그리고 과거에 만들어진 의미를 어떻게 바꿀지는 자신의 손에 달렸다...
왜 나는 사업부터 배웠는가 *개요 유튜브 세바시에서 송성근 씨의 발표를 보고 관심이 생겼습니다. 굉장히 어린 나이에 창업해 맨 땅에 헤딩으로 자라 온 삶이 인상 깊었습니다. 사업을 하면서 겪은 많은 어려움은 어떻게 이겨냈을까? 야수의 심장을 가지는 그의 경험이 무엇이 있을까? 궁금했습니다. '아무리 좋은 제품이라도 고객이 지갑을 열지 않으면 의미가 없구나' 어렵게 만든 제품이었지만 그 아이템은 바로 접었다. 내 것이 아니다 싶으면 과감히 포기할 줄 알아야 한다. 더 큰 가치를 위해 아끼던 것을 미련 없이 희생할 줄 알아야 한다. '내가 만들고 싶은 것을 하면 안 되겠구나. 고객이 지갑을 열고 싶은 것을 만들어야 한다' 실력보다 심리가 승부를 좌우하기도 한다. 졌다고 포기하면 그 자리가 끝이다. 마음가짐이 역량의 한계를 정해버리는 ..

728x90
반응형