다소 늦은 프리코스 2주 차 후기를 올립니다! 현재 진행 중인 미션이 꽤 걸리는지라 이제야 올리게 됐네요 🥲 이번 미션은 학교 선배 분께 리뷰를 받으며 미리 해 본 자동차 경주 미션이었습니다. 그렇기에 1주 차 때처럼 핵심 로직은 쉽게 이해되었었습니다. JUnit5에 대해 깊게 파보게 됨 (ParameterResolutionException) 이번 미션에서는 요구사항으로 테스트를 해 보라는 것이 아예 요구사항에 정의되어 있었습니다. 그래서 우아한 테크코스의 단위 테스트 테코톡 영상을 보며 제대로 테스트를 익혀보고 싶었고, 이 과정에서 @ParameterizedTest를 쓰면 같은 테스트이면서 다른 입력값을 검증할 경우를 축약할 수 있음을 배웠습니다. 그런데 우연히 @Test와 @ParameterizedT..
전체 글
항상 부족합니다. 목표를 이룰 때 까지 계속 달리겠습니다.우아한 테크코스 2주 차 프리코스 미션을 하면서 JDK17의 특징을 살릴 수 있는 레코드 (record)에 대해 접해볼 수 있었습니다. 사용하면서 느낀 점은, 기존에 작성했던 DTO를 쉽게 대체할 수 있겠다는 생각이었습니다. (DTO가 무엇인지를 보시려면 이 글을 참고해주세요!)기존의 DTO먼저, 기존에 사용했던 DTO 코드의 예시를 보겠습니다.public class CarResponse { private final String name; private final int position; private CarResponse(final String name, final int position) { this.name = name; this.position = ..
서론우아한 테크코스 프리코스 미션을 하면서 테스트 코드를 작성하던 도중, 테스트 코드를 다음과 같이 작성했었습니다. (최종 코드는 검증 로직을 다르게 했기 때문에 지금은 이 테스트 코드가 아예 있지 않습니다.)@Test@ParameterizedTest@ValueSource(strings = {"崔はлن", "?-bob"})void 한글과_알파벳_숫자를_제외한_모든_문자는_안된다(final String value) { // given & when Throwable exception = Assertions.assertThrows(IllegalArgumentException.class, () -> { Name name = Name.from(value); }); // then ..
서문 전통적인 경제학 > 인간은 이기적이며 합리적인 행동을 한다. 실제 실험 결과 > 인간은 이기적이며 합리적인 행동을 하지만, 다른 사람들과의 관계를 맺는 과정 속에서 인간은 본연의 특성을 배제하고 자신의 이익을 최소화하는 불합리한 선택을 한다. 즉 중요한 것은 인간 본연의 특성이 아니라 인간이 처한 환경 (타인과의 협력)이다. 객체지향의 세계에서도 협력이 객체의 행동 방식을 결정한다. 중요한 것은 객체들 간에 이뤄지는 협력이다. 협력 실제 상황에서의 협력은 다음과 같다. - 협력은 한 사람이 다른 사람에게 요청할 때 발생하게 된다. - 요청을 받은 사람은 자신의 방식으로 응답하게 된다. - 이때 요청을 받은 사람은 자신 말고도 다른 사람을 필요로 할 수도 있다. 그때는 그 사람에게도 새로운 요청이 전..
서문 시간이 지나도 사람들이 지하철을 문제없이 다닐 수 있는 이유는 직관적인 지하철 노선도가 있기 때문이다. 해리 벡 (Harry Beck)은 지하철을 이용하는 승객의 목적을 정확히 파악했다. (하나의 역에서 다른 역으로 이동하는 것) 해리 벡의 가장 위대한 업적은 지하철 노선을 추상화한 것이다. 추상화를 통한 복잡성 극복 현실에 있는 것들과 상호작용하기 위해서는 현실을 먼저 이해해야 하지만, 현실은 복잡한 것투성이다. 따라서 인간은 본능적으로 현실을 분해하고 단순화하는 전략을 따른다. 해리 벡의 지하철 노선도처럼 진정한 의미에서의 추상화는 현실에서 출발하되, 불필요한 부분을 도려가면서 사물의 놀라운 본질을 드러나게 하는 과정이다. 또한, 목적에 부합하여야 한다. 현상은 복잡하다. 법칙은 단순하다. 버릴..
서문 아기들의 막대기 실험 > 두 개의 막대기를 하나인 것처럼 보이도록 실험 사람은 태어난 지 얼마 안 된 시기부터 뚜렷한 경계를 가지고 함께 행동하는 물체를 하나의 개념으로 인지한다. 객체지향과 인지 능력 인간은 세상을 독립적으로 식별 가능한 객체의 집합으로 바라보기 때문에, 객체지향 또한 이해하기 쉬운 패러다임이다. 객체지향은 인간의 기본적인 인지 능력에 기반을 두고 있기 때문이다. 인간은 구체적인 것을 넘어서서 추상적인 것 까지도 객체로 인식할 수 있다. 오늘의 주문 내역과 어제의 주문 내역을 쉽게 구분할 수 있다. 인간은 최대한 더 단순한 객체들로 주변을 분해함으로써 세상을 이해하려고 노력한다. 따라서 객체는 인간이 분명하게 인지하고 구별할 수 있는 물리적, 개념적 경계를 지닌 것이다. 그러나 1..