본문 바로가기
  • 개발하는 곰돌이

OOP3

[OOP] 일급 컬렉션(First Class Collection)으로 컬렉션을 다뤄보자 목차 들어가기 전에 컬렉션은 굉장히 유용하고 그만큼 많이 사용되는 자료구조 인터페이스지만 그 자체로도 많은 기능을 구현할 수 있다. 이렇게 유용한 컬렉션을 일급 컬렉션(First Class Collection)으로 사용한다면 이미 강력한 기능을 갖고 있는 컬렉션을 더 안전하고 객체지향적으로 다룰 수 있다. 일급 컬렉션에 대해 정리해본다. 일급 컬렉션? 일급 컬렉션은 아래와 같이 멤버 변수로 컬렉션만 갖고 있는 클래스이다. Kotlin class Team( private val players: MutableList = mutableListOf() ) { // ... 기타 메소드들 } Java public class Team { private final List players; public Team(List.. 2024. 4. 15.
[OOP] 원시 타입을 Wrapper Class로 포장해보자(Value Object) 목차 들어가기 전에 주의! 이 글에서 다루는 Wrapper Class는 일반적으로 자바에서 이야기하는 Integer, Double, Long 등과 같이 원시 타입에 대응하는 클래스가 아니라 개발자가 필요에 의해 작성한 별도의 클래스를 이야기 합니다. 여러 클래스들을 작성하다 보면 숫자 등의 원시 타입 멤버 변수들을 추가하는 경우가 매우 많다. 이러한 멤버 변수들은 클래스의 성질을 나타내기 위해 반드시 필요한 존재들인데 원시 타입 멤버 변수를 Wrapping(포장)해주는 클래스를 작성해서 사용한다면 몇가지 부가 효과를 얻을 수 있다. 이렇게 작성된 Wrapper Class의 객체를 값 객체(VO : Value Object)라고 한다. Wrapper Class를 사용하면 얻을 수 있는 장점을 정리해본다. 원.. 2024. 3. 18.
[OOP] Getter와 Setter는 지양하는게 좋다 목차 들어가기 전에 얼마 전 사내에서 Getter와 Setter를 함부로 사용하면 안되는 이유에 대한 세미나가 있었다. Setter에 대한 이야기는 워낙 많이 알려져있었지만 Getter에 대한 이야기는 잘 하지 않다보니 꽤 흥미로운 주제였다. 그렇다면 왜 Getter와 Setter를 함부로 사용하면 안될까? 이 이유를 한 번 알아보자. Getter와 Setter를 사용하는 이유 객체 지향의 원칙 중 하나는 정보 은닉(Information Hiding)이다. 객체의 구체적인 정보를 외부에 노출하지 말라는 것이다. 이러한 이유 때문에 자바에서는 클래스를 작성할 때 모든 필드를 private으로 숨기고 public 메소드를 통해 간접적으로 필드를 다루게 된다. 코틀린의 경우에는 프로퍼티를 private으로 숨.. 2023. 6. 7.