객체를 통해 클래스의 정보를 분석해 내는 프로그래밍 기법.구체적인 클래스의 타입을 알지 못해도, 컴파일된 바이트 코드를 통해 역으로 클래스의 정보를 알아 내어 클래스를 사용할 수 있게 되는 것이다.Reflection 기법을 통해 자료형을 모르는 상태에서도 객체의 메서드
Delegation Pattern 정의 먼저 단어의 의미부터 알고 가도록 한다. Delegation이란, 위임을 뜻한다. Delegater는 어떤 행위를 다른 이에게 위임하는 위임자를 말하며, Delegate는 어떤 행위를 위임받아 실제로 수행하는 대리자를 의미한다
1. DRY (Do not Repeat Yourself!) 원칙 2. YAGNI (You Ain't Gonna Need It!) 원칙 3. KISS (Keep It Simple Stupid) 원칙
전반적으로 책에선 객체지향의 오해로써 아래의 내용을 언급한다.객체지향의 핵심은 클래스가 아니다. 객체들이다.객체지향 어플리케이션을 설계할 때 주목해야 할 것은 클래스를 어떻게 작성할 것인지가 아니라, 메시지와 협력 그리고 책임과 역할을 적절한 객체에 부여함에 있다.객체
의미 있는 이름 의도를 분명히 밝혀라 > "의도가 분명한 이름이 정말로 중요하다. 좋은 이름을 통해 절약하는 시간이 매우 많다." 이름은 의도가 분명하게 지어야 한다. 더 좋은 이름이 생각난다면 개선해야 한다. 또한, 이름을 지었을 때 다음과 같은 질문들에 모두 답
작게 만들어라! > "함수를 만드는 규칙은 '작게!' 이다. 각 함수가 명백하고 명확하게 하나의 작업만 수행할 수 있도록 한다." 블록과 들여 쓰기 즉, if 문 / else 문 / while 문 등에 들어가는 블록은 한 줄이어야 한다는 의미이다. 대부분 그곳에서 함
주석은 나쁜 코드를 보완하지 못한다. > "코드에 주석을 추가하는 주된 이유는 코드 품질이 나쁘기 때문이다. 따라서, 주석을 달지 말고 코드로서 그것을 명확히 설명할 수 있도록 코드를 수정하는 것이 바람직하다." 코드로 의도를 표현하라! > "주석을 통해 코드를 설명
"깨끗한 코드를 다루는 데 있어 오류 처리는 매우 중요한 요소이다. 오류 처리 코드로 인해 프로그램의 논리를 이해하기 어렵다면, 깨끗한 코드라 부르기 어렵다." "오류가 발생하면 예외를 던져라"코드를 작성할 때 오류를 처리하고 보고하는 코드값을 만드는 것이 아니라 예
자료 추상화 > "자료를 세세하게 공개하기 보다 추상적인 개념으로 표현하는 편이 좋다. 개발자는 객체가 포함하는 자료를 표현할 가장 좋은 방법을 심각학 고민해야 한다. getter, setter를 그냥 추가하는 것은 정말 나쁘다." 아래 두 개의 코드를 비교해 보자.
"코드 형식은 매우 중요하다. 협업을 진행하는 개발자들은 코드 형식을 맞추기 위한 기준이 있어야 한다. 개발한 코드의 가독성은 앞으로 바뀔 코드의 품질에 매우 큰 영향을 끼치게 된다.""코드의 세로 길이와 가로 길이에 대한 적절한 기준이 필요하다."Clean Code
Given-When-Then Pattern Given-When-Then Pattern은 BDD(Behaviour-Driven Development) 중 하나로, Test Code 스타일을 표현하는 하나의 방식이라고 볼 수 있다. Given (테스트 전의 상태) 테
Kotlin In Action 1. 코틀린이란 무엇이며, 왜 필요한가? 1-1. 정적 타입 지정 언어 코틀린은 자바와 마찬가지로 정적 언어이다. > 정적 언어란, 컴파일 시점에 데이터 타입이 지정되는 언어를 말한다. 반대로 동적 언어란 런타임 시점에 데이터 타입