💡 가짜 생성자와 팩토리 함수에 대하여 학습하였습니다. 가짜 생성자Fake Constructor팩토리 메서드 또는 동반 객체와 관련해서 사용되는 용어이며, 일반적인 생성자 호출 대신 특정 조건이나 로직에 따라 객체를 생성하는 메서드를 의미합니다.객체 생성 로직을 캡슐화하여 코드의 가독성 및 유지보수성을 높이는 데 유용하게 활용할 수 있습니다.Kotlin과 Java에서는 생성자라는 개념이 있지만 실제로는 일반 함수와 차이점이 없습니다.동반 객체를 이용한 팩토리 함수companion object를 활용해서 가짜 생성자를 구현하였습니다.class User private constructor(val name: String, val age: Int) { companion object { fun creat..
💡 TDD를 통해 로직을 구현하면서 TestFixture에 대한 개념을 알게 되었고, 이에 대하여 자세하게 학습하였습니다.TestFixture테스트를 위한 고정된 상태를 설정하는 것을 의미합니다.테스트 실행 전에 공통으로 필요한 객체나 데이터를 준비하여, 중복 코드를 줄이고 가독성과 일관성을 향상시킬 수 있습니다.테스트 대상 클래스 생성class Calculator { fun add(a: Int, b: Int): Int { return a + b } fun subtract(a: Int, b: Int): Int { return a - b }}위와 같은 간단한 클래스가 있다고 가정하고, 테스트 코드를 작성해보겠습니다.import org.junit.jupiter..
💡 TDD를 활용한 개발의 장점을 알고, 리팩토링하는 과정을 학습하였습니다.TDD테스트 주도 개발로 코드를 작성하기 전에 테스트를 먼저 작성하는 개발 방법론입니다.아래와 같은 작업을, 매우 짧은 사이클로 반복한다는 특징이 있습니다.[빨강] 실패하는 작은 테스트 작성[초록] 최대한 빠른 테스트 통과[파랑] 리팩터링 과정을 통해서 중복 & 코드 개선TDD의 목적은 코드가 테스트에 지정한 요구 사항을 충족하는지 확인하고, 코드를 리팩토링하기 쉽게 수정하는 것입니다.TDD 원칙실패하는 단위 테스트를 작성할 때까지 구현 코드를 작성하지 않습니다.컴파일은 실패하지 않지만, 실행이 실패하는 정도로만 코드를 작성합니다.현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성합니다.Kotlin에서의 TDDKotlin은..
💡 경량 클래스의 한 형태인 inline class에 대하여 학습하였습니다.Inline classInline class는 경량 클래스의 한 형태로, 단일 프로퍼티를 가지고 있으며 런타임 시에 실제 클래스 인스턴스로 할당되지 않는 특징이 있습니다.대신에 해당 클래스의 단일 프로퍼티가 직접 인라인됩니다.이는 성능 향상과 불필요한 객체 생성을 방지할 수 있습니다.특징[단일 프로퍼티] Inline class는 반드시 단일 프로퍼티를 가집니다.[경량성] 런타임 시 객체로 할당되지 않고 단일 프로퍼티 값이 직접 사용됩니다.[타입 안전성] 인라인 클래스를 활용하면 코드에 더 명확한 타입을 명시할 수 있습니다.[함수와 연산자 오버로딩] 메서드와 연산자를 오버로딩 할 수 있습니다.[제한사항] 아래와 같은 제한 사항을 ..
💡 Java에서 주로 사용되는 Primitive Type과 Wrapper Class에 대하여 학습하였고, Kotlin에서는 어떻게 적용되는지 학습하였습니다. Primitive Type프리미티브 타입은 기본 데이터 타입으로, 가장 단순한 형태의 데이터를 나타냅니다.메모리 효율적이며, 직접 값을 저장한다는 특징이 있습니다.또한 메모리 주소를 참조하지 않고 직접 값을 다루므로 더 빠르다는 특징이 있습니다.Java에서는 아래와 같이 프리미티브 타입을 제공합니다.Int, Boolean, Char, Byte, Short, Long, Float, Double…프리미티브 타입에는 기본 값이 존재합니다.Int - 0, Boolean - false..Wrapper Class래퍼 클래스는 프리미티브 타입을 객체로 다룰 수..
💡 리뷰 활동을 하면서 디미터의 법칙을 상기시켜보라는 리뷰를 받게 되었습니다. 객체 지향 프로그래밍에서 중요하게 적용되는 디미터의 법칙에 대하여 학습하였습니다. 디미터의 법칙?Law of Demeter어떤 객체가 다른 객체에 대해 지나치게 많이 알다보니, 결합도가 높아지고 좋지 못한 설계가 발생합니다.이를 개선하고자 객체에게 내부 값을 숨기는 대신 함수를 공개하도록 하는 것이 디미터의 법칙입니다.다른 객체가 어떠한 내부 값을 가지고 있는지 속사정을 몰라아 햔다는 뜻으로, 아래와 같이 불리기도 합니다.Don’t Talk to Stranger (낯선 이에게 말하지 마라)Principle of lesat knowledge (최소 지식 원칙)또한 직관적인 이해를 위해서 여러 개의 .(도트)를 사용하지 않도록 ..