≫ 유지보수성 높은 Clean Method의 조건 1. Method를 호출하는 사람이 사용하기 용이해야 한다. 2. Method를 유지보수 하는 사람이 이해하고, 변경하기 용이해야 한다. 3. Method를 유지보수 하는 사람이 테스트하기 용이해야 한다. ▶ Clean Method의 원칙 · 가능한 한 충분히 작아야 한다. · 한 가지를 해야 한다. 그리고 그 한 가지를 잘 해야 한다. · 테스트 가능해야 한다. · 중복이 없어야 한다. Method를 만들 때 Method를 호출하는 사람의 인지적 부하를 최소로 만들어 주어야 한다. 즉, Method를 호출할 때마다 내부 코드를 보거나 API 문서를 보지 않게끔 해야한다는 것이다. 인지적 부하를 낮추는 가장 좋은 방법은 Method의 Parameter의 ..
Clean Naming을 알아보기에 앞서 Clean Code란 무엇일까? Clean Code란? 이해하기 쉽고, 변경하기 쉬운 Code. 사람이 읽고 이해하기 쉽고, 명확한 한가지 역할을 하며, 이 역할을 의미있게 표현하고, 중복이 없고 테스트 케이스가 존재하는 Code 이다. Clean Naming은 가독성 향상에 가장 중요한 요소이다. 개발의 대부분은 코드를 이해하고 수정하는 행위이다. 만약 그게 수백 라인의 코드라면 크게 어려운 일이 아닐 것이다. 그러나 수십, 수백만 라인의 코드를 읽고 이해하고 수정하는 것은 매우 어려운 일이다. 그렇기에 Clean Naming에 대한 작은 투자는 장기적으로는 팀의 개발 생산성 향상에 크게 기여가 될 수 있는 부분이다. SW의 주요 요소들은 모두 아래와 같이 Cl..
List 인터페이스 : List 자료구조를 위해 정의된 인터페이스 - 여러 건의 데이터를 하나의 객체로 관리한다. - 입력된 데이터에 순서가 존재한다. (순서 정보의 관리를 위해 인덱스 개념이 존재) - 입력된 데이터들의 중복을 허용한다. ≫ Collection 인터페이스를 상속하여 정의된 인터페이스 Collection 인터페이스에서 정의된 메서드에 List 자료구조에 필요한 메서드가 추가로 정의 된다. ≫ 대표적인 List 자료구조의 컬렉션 클래스 → ArrayList가 가장 많이 사용되는 클래스 ArrayList 클래스는? · Array와 가장 유사한 컬렉션 클래스이다. · Array처럼 객체 내부 데이터에 접근하기 위한 인덱스가 존재한다. · Array와 다르게 생성된 객체에서 데이터의 추가, 삭제..
컬렉션 프레임워크 (Collection framework) 다양한 자료구조의 구현을 위한 클래스와 인터페이스의 집합 ≫ 컬렉션 프레임워크 클래스와 Array의 차이점 1. Array는 정의할 때 데이터의 개수를 정하여 변경이 불가능하지만, 컬렉션 프레임워크 클래스는 데이터 개수의 동적인 변경이 가능하다. 2. Array는 Object나 int, char형 등의 Primitive Type을 원소로 가질 수 있지만, 컬렉션 프레임워크 클래스는 객체만을 원소로 가진다. 컬렉션 프레임워크의 주요 인터페이스 1. List 인터페이스 2. Set 인터페이스 3. Map 인터페이스 (* List와 Set 인터페이스는 모두 Collection 인터페이스를 상속받아 정의하지만, Map 인터페이스는 구조상의 차이로 Col..
상속 (inheritance) 일반화된 클래스를 재사용하여 새로운 specific 한 클래스를 생성하는 것 상속을 하는 클래스(User)를 '부모(Parent) 클래스, 상위(Super) 클래스, 기반(Base) 클래스'라고 표현하고, 상속을 받는 클래스(PaidUser)를 '자식(Child) 클래스, 하위(Sub) 클래스, 파생(Derived) 클래스'라고 표현하기도 한다. - 자식 클래스는 부모 클래스의 모든 멤버변수와 메소드를 상속받는다 (But, Java는 단일상속만 허용하기 때문에 하나의 클래스로부터만 상속을 받을 수 있다) - 상속을 사용하면 클래스 간의 계층적 분류(hierarchical classifications)가 가능해진다 ▷ Java에서는 extends를 사용하여 부모 클래스의 멤버..
클래스 뭔 기본단위, 객체를 생성하기 위한 설계도(틀) - 객체를 만들기 위한 틀, 템플릿, 설계도 - 객체 생성을 위한 정보들을 (어떤 속성과 행위들을 포함할 것인지의 정보를 포함) ≫ 추상화(Abstraction) - 반드시 필요한 것들을 선택하고, 불필요한 것들을 버리는 과정 - 추상화의 과정 자체가 하나의 클래스를 설계하는 과정이다. → 즉, 특정 객체에 반드시 필요한 속성과 행위를 정의하는 과정임 클래스 선언 * 변수는 멤버 변수, 인스턴스 변수라고 부르고, 메소드는 메소드, 인스턴스 메소드라고 부른다. - class 키워드를 사용하고, 내부에는 변수들과 메소드들이 존재한다. (=클래스의 멤버 라고도 함) - 클래스 이름은 대문자로 시작하며 생성되는 객체를 가장 잘 표현하는 명사 형태의 의미있는..