전체 글
-
Ch7. 함께 모으기코딩은 주댕이로/객체지향의 사실과 오해 2022. 4. 4. 20:34
마틴 파울러는 객체지향 설계 안에 존재하는 세 가지 상호 연관된 관점에 대해 설명한다. 개념 관점, 명세 관점, 구현 관점 개념 관점: 사용자가 도메인을 바라보는 관점을 반영한다. 실제 도메인의 규칙과 제약을 최대한 유사하게 반영하는 것이 핵심 명세 관점: 프로그래머는 객체가 협력을 위해 ‘무엇'을 할 수 있는가에 초점을 맞춘다. 구현 관점: 객체들이 책임을 수행하는 데 필요한 동작하는 코드를 작성하는 것. 책임을 ‘어떻게' 수행할 것인가에 초점 개념 관점, 명세 관점, 구현 관점은 동일한 클래스를 세 가지 다른 방향에서 바라보는 것을 의미한다. 클래스는 세 가지 관점을 모두 수용할 수 있도록 개념, 인터페이스, 구현을 함께 드러내야 한다. 동시에 코드 안에서 세 가지 관점을 쉽게 식별할 수 있도록 깔끔..
-
Ch6. 객체 지도코딩은 주댕이로/객체지향의 사실과 오해 2022. 3. 9. 01:08
유일하게 변하지 않는 것은 모든 것이 변한다는 사실뿐이다. 여행 중에 길을 모르면 지나가는 사람에게 묻는다. (길을 찾는 기능을 통해 해결) 지도를 보고 찾아간다. (길을 찾아주는 구체적 기능이 아닌 길을 찾을 수 있는 구조를 통해 해결) 여기까진 뭐지..? 했음 기능 설계 대 구조 설계 기능 측면의 설계는 제품이 사용자를 위해 무엇을 할 수 있는지에 초점을 맞춘다. 구조 측면의 설계는 제품의 형태가 어떠해야 하는지에 초점을 맞춘다. 성공적인 소프트웨어들이 지닌 공통적인 특징은 훌륭한 기능을 제공하는 동시에 사용자가 원하는 새로운 기능을 빠르고 안정적으로 추가할 수 있다는 것이다. 미래에 대비하는 가장 좋은 방법은 변경을 예측하는 것이 아니라 변경을 수용할 수 있는 선택의 여지를 설계에 마련해 놓는 것이..
-
Ch5. 책임과 메시지코딩은 주댕이로/객체지향의 사실과 오해 2022. 3. 9. 01:08
자율적인 책임 자율적인 객체란 스스로의 의지와 판단에 따라 각자 맡은 책임을 수행하는 객체 외부의 간섭을 받아선 안된다. 자신의 의지에 따라 증언할 수 있는 자유 객체가 책임을 자율적으로 수행하려면 책임이 자율적이어야 한다. → 책임이 자율적? 뭔소리? 자율적인 책임 증언하라 상세한 수준의 책임 목격했던 장면을 떠올려라 (난 기억력이 안좋아서 메모를 하는 타입인데..?) 시간의 순서대로 재구성하라 (순서를 편집할 수 없음) 말로 간결하게 표현하라 (난 말솜씨가 안좋아서 서류로 제출하고 싶은데?) → 자유의 범위를 지나치게 제한하고 있다. 증언이라는 책임을 수행하는데 왕의 명령에 지나치게 의존적이다. 너무 추상적인 책임 너무 구체적인 것도 문제지만 너무 추상적인 것 역시 문제다. ‘증언하라’가 아닌 ‘설명..
-
Ch3. 타입과 추상화코딩은 주댕이로/객체지향의 사실과 오해 2022. 3. 9. 01:07
추상화를 통한 복잡성 극복 이 추상화가 유용했던 이유는 승객들이 지하철을 바라보는 모델과 일치했기 때문 → 역의 위치가 중요한 것이 아니라 역와 역 사이의 연결이 중요하다고 생각함 추상화 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법이다. 복잡성을 다루기 위해 추상화는 두 차원에서 이뤄진다[Kramer 2007]. 첫 번째 차원은 구체적인 사물들 간의 공통점은 취하고 차이점은 버리는 일반화를 통해 단순하게 만드는 것이다. 두 번째 차원은 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것이다. 객체지향과 추상화 ‘기껏해야 트럼프에 불과해' 모든 트럼프 객체를 ‘트럼프'로 일반화 하였음 사람들은 본능적으로 공통적인 특성을 기준으로 객체를 여러 그룹..
-
Ch2. 이상한 나라의 객체코딩은 주댕이로/객체지향의 사실과 오해 2022. 3. 9. 01:06
인간은 세상에 존재하는 다양한 객체를 식별하고 분류함으로써 세상을 이해한다. 아기랑 막대기 실험으로 증명됨ㅋㅋ 상태와 프로퍼티 모든 객체의 상태는 단순한 값과 객체이ㅡ 조합으로 표현할 수 있다. 상태를 구성하는 모든 특징을 통틀어 객체의 프로퍼티라고 한다. 객체의 프로퍼티는 단순한 값인 속성과 다른 객체를 가리키는 링크라는 두 가지 종류의 조합으로 표현할 수 있다. 상태 캡슐화 객체는 상태를 캡슐 안에 감춰둔 채 외부로 노출하지 않는다. 객체가 외부에 노출하는 것은 행동뿐이며, 외부에서 객체에 접근할 수 있는 유일한 방법 역시 행동뿐이다. 동등성(Equality)과 동일성(Identical) 행동이 상태를 결정한다 초보자들은 먼저 객체에 필요한 상태가 무엇인지를 결정하고 그 상태에 필요한 행동을 결정한다..
-
주말동안 알아본 Secure Enclave앱등이에게 살충제를 뿌린다./iOS 2022. 1. 2. 23:29
출처: https://www.andyibanez.com/posts/cryptokit-secure-enclave/ Secure Enclave 암호화 기능만을 수행하는 iOS(OS)에 완전히 독립된 하드웨어. 생체인식 기능이 탑재된 iPhone 5S부터 가능. 터치바 있는 맥북도 가능. Touch ID, Face ID 인식에 필요한 수학적 계산도 Secure Enclave에서 일어난다. Touch ID데이터, Face ID데이터가 Secure Enclave에 저장되는 것은 아님! iOS가 Touch ID, Face ID 데이터로 연산을 한 뒤 이 데이터를 가지고 Secure Enclave에 물어본다. 이거 맞아?? Yes라고 대답하면 디바이스의 잠금이 해제된다. Security Framework, Crypt..
-
[Diary] 히가시노 게이고의 '녹나무의 파수꾼'을 읽고무념무상일상/히가시노 게이고 2021. 12. 19. 21:20
줄거리 하루 벌어 하루 먹고사는 레이토. 레이토는 다니던 회사에서 물건을 훔치다 걸려 입건되었다. 하지만 어느 변호사의 도움으로 무죄로 풀려나게 된다. 그 변호사는 레이토의 어머니의 이복어니 치후에가 고용한 사람이다. 치후네는 레이토를 도와주는 조건으로 이 되기를 바랐다. 레이토는 선택권이 없기 때문에 녹나무의 파수꾼이 된다. 보름달이 뜨는 밤에는 사람들이 기념을 하기 위해 예약을 하고 녹나무를 찾아 온다. 소설에 등장하는 단골 손님은 사지 도시아키. 도시아키는 가족들 몰래 기념을 하고 있기 때문에, 딸 유미의 의심을 받는다. 줄거리(스포O) 기념은 예념과 수념으로 나뉜다. 그믐달 즈음에 녹나무에서 예념을 하면 혈육인 사람이 보름달 즈음에 수념을 할 수 있다. 보름달에 가까울수록, 혈연이 가까울수록 수념..