💡 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 (최소 지식 원칙)또한 직관적인 이해를 위해서 여러 개의 .(도트)를 사용하지 않도록 ..
💡 Kotlin에서 사용되는 예외 클래스와 커스텀 예외를 어떻게 처리할 수 있는지 학습하였습니다. Kotlin & Java의 Exception ClassKotlin에서 예외 처리는 기본적으로 Java의 예외 처리 모델을 따르고 있습니다.Throwable 클래스는 모든 예외 클래스의 최상위 클래스이며, 모든 예외와 오류의 기본 클래스 입니다.Throwable 클래스Java와 Kotlin에서 발생하는 모든 예외는 Throwable 클래스의 인스턴스이며, 아래와 같은 메서드를 포함하고 있습니다.getMessage() : 예외 또는 오류 메시지를 반환getCause() : 예외 원인을 분석printStackTrace() : 스택 트레이스를 콘솔에 출력Exception 클래스프로그램의 논리적인 오류를 나타냅니다..
💡 프로그래밍 언어, 특히 Java 언어에서 사용되는 Compile, Decompile에 대한 내용과 코틀린 코드를 자바 코드로 Decompile하는 과정을 실습하였습니다. Compile?사람이 이해하는 언어를 컴퓨터가 이해하는 언어로 바꾸는 과정을 컴파일이라고 합니다.0과 1로 모든 명령어를 이해할 수 있는 컴퓨터에게 언어를 이해 시켜줄 수 있도록 번역해주는 과정을 거칩니다.또한 원시코드를 목적코드를 바꿔주는 과정을 컴파일이라 합니다.원시코드 : 인간이 알아볼 수 있는 코드 (.java..)목적코드 : 컴퓨터가 이해하는 코드, 기계어 (.class..)컴파일 과정이 필요한 이유JVM에서는 byte code(.class)를 실행할 때 compile 과정에서 진행한 일을 다시 진행하는 과정 없이 실행만 ..
💡 Kotlin에서 객체의 상태를 변경할 수 있는지 여부를 나타내는 불변성과 가변성에 대하여 학습하였습니다.불변성 (Immutability)불변 객체는 생성된 이후에 상태를 변경할 수 없는 객체입니다.이러한 객체는 생성할 때 값을 설정하고, 이후에는 값을 변경할 수 없습니다.Kotlin에서는 val 키워드를 사용하여 불변 변수를 선언합니다.Kotlin은 함수형 프로그래밍을 지원하는 언어로, 불변성의 사용을 권장하고 있습니다.불변성의 중요성불변 객체는 생성 시점 이후 한 번 정의된 상태는 계속 유지하며 변경되지 않으므로 스레드 간 안전성을 보장하며, 이를 통해 동기화 문제를 해결할 수 있습니다.또한 한 번 생성한 값은 변경되지 않으므로 캐시도 수월합니다.기존 객체에서 프로퍼티가 변경된 객체를 리턴 받고자..
💡 함수와 메서드의 차이를 알고, 프로퍼티와 필드에 대해서도 학습하였습니다.함수 vs 메서드메서드와 함수는 프로그래밍 관점에서 매우 유사한 개념이지만, 사용 맥락에 따라 차이가 있습니다.함수(function)코틀린은 함수를 fun 키워드를 활용해서 시작합니다.이를 활용해서 top-level 함수, 멤버 함수, 지역함수 등을 생성할 수 있습니다.아래와 같이 이름이 없는 익명함수로 활용도 가능합니다.val anonymousFunction = fun(x: Int, y: Int): Int { return x + y}메서드(method)메서드는 클래스와 연결된 함수, 객체에 속한 함수를 의미합니다.멤버 함수를 메서드라고 하며, 메서드 호출을 위해서 클래스 인스턴스가 반드시 필요합니다.확장 함수도 메서드인가..