전체 글65 2장: 이상한 나라의 객체 서문 아기들의 막대기 실험 > 두 개의 막대기를 하나인 것처럼 보이도록 실험 사람은 태어난 지 얼마 안 된 시기부터 뚜렷한 경계를 가지고 함께 행동하는 물체를 하나의 개념으로 인지한다. 객체지향과 인지 능력 인간은 세상을 독립적으로 식별 가능한 객체의 집합으로 바라보기 때문에, 객체지향 또한 이해하기 쉬운 패러다임이다. 객체지향은 인간의 기본적인 인지 능력에 기반을 두고 있기 때문이다. 인간은 구체적인 것을 넘어서서 추상적인 것 까지도 객체로 인식할 수 있다. 오늘의 주문 내역과 어제의 주문 내역을 쉽게 구분할 수 있다. 인간은 최대한 더 단순한 객체들로 주변을 분해함으로써 세상을 이해하려고 노력한다. 따라서 객체는 인간이 분명하게 인지하고 구별할 수 있는 물리적, 개념적 경계를 지닌 것이다. 그러나 1.. 2023. 11. 1. "원시값 포장"에 대해 알아보자 서론 원시값 포장은 객체지향 생활체조로 유명한 소트웍스 앤솔러지에도 기록되어 있는 내용입니다. 원시값 포장을 하면 더욱 객체지향적으로 설계할 수 있다는데, 왜 그런 것일까요? 먼저 원시값 포장을 하기 전의 코드를 보겠습니다. public class Car { // 상수 등 기타 필드 private final String name; private Car(final String name) { this.name = name; } // 정적 팩터리 메서드 등 기타 다른 메서드들 public boolean isNameEqualTo(final String name) { return name.equals(this.name); } public String getName() { return this.name; } } 예.. 2023. 11. 1. DTO와 VO의 차이점 DTO와 VO의 혼용 사례와 원인 구글링을 해 보면 사람들이 DTO와 VO를 혼용하여 쓰는 경우가 많습니다. 원인 core J2EE Patterns 책의 1판에서는 데이터 전달용 객체를 VO로 정의했지만, 2판부터는 혼동의 여지 때문에 TO로 재정의하였기 때문으로 추측됩니다. 그리고 현재 데이터 전달용 객체의 정의는 D를 붙여 DTO로 정의하고 있습니다. 혼동의 여지가 있어 수정한 정의가 오히려 혼동을 초래했습니다. 이름이 다른 만큼 구별해 보겠습니다. 결론 먼저!! DTO는 데이터 전달용이며, VO는 값 표현용입니다. DTO란? 정의 Data Transfer Object 데이터를 전달하기 위해 사용하는 객체 (계층 간 데이터를 전달)입니다. 데이터를 담아서 전달하는 바구니입니다. 특성 오직 getter.. 2023. 10. 31. [프리코스] 프리코스 1주차 후기 (숫자 야구 ⚾️) 합격도 되지 않았으면서 우아한테크코스 6기 카테고리를 만드는 게 조금 웃기지만.. 프리코스를 하면서 어떤 것들을 배웠고 고민했었는지 남기기 위해 블로그에 적어봅니다. 사실 1주차는 이미 벨로그에 작성했어서, 그대로 복붙이 될 것 같네요. 클린 코드 책 내용만이 무조건 정답이라고 생각하지 말자. 코드를 그렇게 완벽히 작성하지 못하기도 해서 과감한 말일 수도 있지만, 클린 코드에서도 이와 비슷한 내용이 작성되어 있습니다. 실제로도 이 책에서 주장하는 기법 다수는 논쟁의 여지가 있다. 여러분도 모든 기법에 동의하지 않으리라. 어떤 기법은 격렬히 반대하리라. 그래도 괜찮다. 우리 생각이 무조건 옳다고 주장할 의도는 없으니까. 하지만 다른 한편으로 이 책은 우리가 오랫동안 고민하고 숙고한 교훈과 기법을 권고한다... 2023. 10. 31. 1장: 협력하는 객체들의 공동체 서문 객체지향을 흔히 실세계를 직접적이고 직관적으로 모델링 할 수 있는 패러다임으로 알고 있는 사람들이 많으나, 실세계의 모방이라는 개념은 객체지향의 기반을 이루는 철학적인 개념을 설명하는 데는 적합하지만 실용적인 관점에서 객체지향 분석, 설계를 설명하기에는 적합하지 않다. 방화벽을 예시로 들어보면, 소프트웨어 세상에서의 방화벽은 실제 방화벽과 다르게 불을 막는 것이 아니라 네트워크의 침입을 막는다. 이처럼 객체지향의 목표는 실세계를 모방하는 것이 아니라, 새로운 세계를 창조하는 것이다. 그럼에도 객체지향을 이런 방식으로 알고 있는 이유는 실세계에 대한 비유가 객체지향의 다양한 측면을 이해하고 학습하는 데 효과적이기 때문이다. 협력하는 사람들 커피 공화국에서의 예시: 커피 주문이라는 협력을 달성하기 위해.. 2023. 10. 31. 이전 1 ··· 8 9 10 11 다음