전체 글65 5장: 책임과 메시지 서문 참가자와 다른 사람의 이야기를 하는 과정에서의 실험 > 다른 사람의 소리는 녹음된 것이었음 다른 사람이 갑자기 발작을 일으킬 경우 자신밖에 없다고 생각했던 참가자는 85%가 심리학자들에게 도움을 요청 그러나 자신 말고도 또 다른 사람이 있다고 생각했던 참가자는 31%만 도움을 요청함 그 이유는 자신이 도움을 요청하지 않아도 된다고 생각했기 때문 - 사건에 대한 목격자가 많으면 많을수록 개인이 느끼는 책임감은 적어진다 - 따라서 객체지향에서도 명확한 책임과 역할을 부여해야만 객체가 자신의 책임이라고 느낄 것이다. 자율적인 책임 4장: 역할, 책임, 협력에서 작성하였듯이 적절한 책임을 적절한 객체에게 할당하는 것부터 실행되어야 한다. 또한 객체는 자신에게 부여된 책임을 충분히 자율적으로 수행할 수 있어.. 2023. 11. 7. [프리코스] 프리코스 2주차 후기 (자동차 경주 🚗) 다소 늦은 프리코스 2주 차 후기를 올립니다! 현재 진행 중인 미션이 꽤 걸리는지라 이제야 올리게 됐네요 🥲 이번 미션은 학교 선배 분께 리뷰를 받으며 미리 해 본 자동차 경주 미션이었습니다. 그렇기에 1주 차 때처럼 핵심 로직은 쉽게 이해되었었습니다. JUnit5에 대해 깊게 파보게 됨 (ParameterResolutionException) 이번 미션에서는 요구사항으로 테스트를 해 보라는 것이 아예 요구사항에 정의되어 있었습니다. 그래서 우아한 테크코스의 단위 테스트 테코톡 영상을 보며 제대로 테스트를 익혀보고 싶었고, 이 과정에서 @ParameterizedTest를 쓰면 같은 테스트이면서 다른 입력값을 검증할 경우를 축약할 수 있음을 배웠습니다. 그런데 우연히 @Test와 @ParameterizedT.. 2023. 11. 6. [프리코스] JDK16에서 정식으로 나온 "레코드"에 대해 알아보자 우아한 테크코스 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 = .. 2023. 11. 5. [프리코스] @Test에서 인자를 사용할 때 왜 ParameterResolutionException이 발생할까? 서론우아한 테크코스 프리코스 미션을 하면서 테스트 코드를 작성하던 도중, 테스트 코드를 다음과 같이 작성했었습니다. (최종 코드는 검증 로직을 다르게 했기 때문에 지금은 이 테스트 코드가 아예 있지 않습니다.)@Test@ParameterizedTest@ValueSource(strings = {"崔はлن", "?-bob"})void 한글과_알파벳_숫자를_제외한_모든_문자는_안된다(final String value) { // given & when Throwable exception = Assertions.assertThrows(IllegalArgumentException.class, () -> { Name name = Name.from(value); }); // then .. 2023. 11. 5. 4장: 역할, 책임, 협력 서문 전통적인 경제학 > 인간은 이기적이며 합리적인 행동을 한다. 실제 실험 결과 > 인간은 이기적이며 합리적인 행동을 하지만, 다른 사람들과의 관계를 맺는 과정 속에서 인간은 본연의 특성을 배제하고 자신의 이익을 최소화하는 불합리한 선택을 한다. 즉 중요한 것은 인간 본연의 특성이 아니라 인간이 처한 환경 (타인과의 협력)이다. 객체지향의 세계에서도 협력이 객체의 행동 방식을 결정한다. 중요한 것은 객체들 간에 이뤄지는 협력이다. 협력 실제 상황에서의 협력은 다음과 같다. - 협력은 한 사람이 다른 사람에게 요청할 때 발생하게 된다. - 요청을 받은 사람은 자신의 방식으로 응답하게 된다. - 이때 요청을 받은 사람은 자신 말고도 다른 사람을 필요로 할 수도 있다. 그때는 그 사람에게도 새로운 요청이 전.. 2023. 11. 5. 3장: 타입과 추상화 서문 시간이 지나도 사람들이 지하철을 문제없이 다닐 수 있는 이유는 직관적인 지하철 노선도가 있기 때문이다. 해리 벡 (Harry Beck)은 지하철을 이용하는 승객의 목적을 정확히 파악했다. (하나의 역에서 다른 역으로 이동하는 것) 해리 벡의 가장 위대한 업적은 지하철 노선을 추상화한 것이다. 추상화를 통한 복잡성 극복 현실에 있는 것들과 상호작용하기 위해서는 현실을 먼저 이해해야 하지만, 현실은 복잡한 것투성이다. 따라서 인간은 본능적으로 현실을 분해하고 단순화하는 전략을 따른다. 해리 벡의 지하철 노선도처럼 진정한 의미에서의 추상화는 현실에서 출발하되, 불필요한 부분을 도려가면서 사물의 놀라운 본질을 드러나게 하는 과정이다. 또한, 목적에 부합하여야 한다. 현상은 복잡하다. 법칙은 단순하다. 버릴.. 2023. 11. 2. 이전 1 ··· 7 8 9 10 11 다음