💡 Kotlin을 주 언어로 활용하면서, 특징과 사용하는 이유에 대하여 한 번 학습하고 넘어가는 것이 필요할 것 같았습니다.Kotlin자바를 만든 회사인 IntelliJ IDEA의 개발사 JetBrains에서 공개한 언어로, 자바와 100퍼센트 호환되며 자바보다 더 간결하고 많은 기능을 추가한 언어입니다.또한 절차 지향적인 문법 위주의 코드에서 벗어나, 사람과 가까운 객체지향 언어 중 더욱 사람의 언어와 비슷하게 코드를 구사하도록 개발된 언어입니다.Kotlin의 큰 장점가독성과 접근성객체지향 언어이면서 변수 유형 유추 및 손쉬운 캡슐화직관적인 기능을 갖는 함수를 탑재생산성을 높일 수 있는 언어개발 언어 트렌드코드의 재사용을 통해 반복적인 코드를 최소화유연하고 빠른 수정유지 보수 편리한 언어 형식자바와 ..
Kotlin Extensionhttps://kotlinlang.org/docs/extensions.html Extensions | Kotlin kotlinlang.orgKotlin은 클래스에서 상속하거나 새로운 디자인 패턴을 사용하지 않고도 새로운 기능으로 클래스나 인터페이스를 확장할 수 있는 기능을 제공합니다.이는 Extensions 라는 특수 선언을 통해 수행됩니다.수정할 수 없는 타사 라이브러리의 클래스 또는 인터페이스에 대한 새 함수를 작성할 수 있으며,함수를 마치 원래 클래스의 메서드인 것처럼 일반적인 방법으로 호출할 수 있습니다.이를 extension function이라고 하며, 기존 클래스에 대한 새 속성을 정의할 수 있는 extension properties도 있습니다. extension ..
개요 이번 미션을 진행하면서, 위와 같은 코드 리뷰를 받게 되었습니다. 이에 대해서 아래와 같이 답변을 달게 되었는데요, 내가 제대로 이해하고 있는 것이 맞는지, 확인하기 위해서 Object와 Companion object의 차이에 대하여 학습하는 시간을 가졌습니다. Object 코틀린에서는 싱글톤 패턴을 구현하기 위해서 object를 사용합니다. object는 싱글톤 패턴을 쉽게 사용하기 위해서 코틀린에서 제공하는 객체 선언 키워드입니다. object Error { private const val ERR_MSG = "[ERROR]" const val NOT_EXIST_MENU = "$ERR_MSG 존재하지 않는 메뉴 입니다." const val IS_INCORRECT_BENEFIT = "$ERR_MSG..
코틀린에서는 자바와 마찬가지로 타입을 담는 클래스인 enum 클래스를 지원합니다. 열거형 클래스라고 하며, 아래와 같이 상수를 집합으로 관리할 수 있어 코드에 가독성이 높아집니다. 이번 프로젝트에서 아래와 같이 Swipe 상태를 관리하는 enum 클래스를 선언했습니다. 클래스를 enum으로 선언할 경우 장점은, 직접 이름을 전달하지 않고 SwipingStates를 전달함으로써 상수 클래스로 활용할 수 있습니다. enum class SwipingStates { EXPANDED, COLLAPSED } 각 열거형 상수는 객체이며, 열거형 상수를 쉼표로 구분해야 합니다. 각 Enum 클래스는 Enum class의 인스턴스 이므로 특정 값으로 초기화 될 수 있습니다. enum 정의 형식 enum 키워드를 사용하여..
코틀린의 validation 로직을 실행하기 전에 검증을 통해서 사용자의 input이나 사용하는 상태가 적절한지에 대한 판단이 필요합니다. isEmpty()나 orNull()을 포함한 함수를 사용하여 간단하게 검증하는 방법이 일반적인데요. 이러한 과정에서 코틀린은 좀더 쉽고 정형화 된 함수를 사용하는데, 이 것이 check와 require 입니다. 우테코 프리코스 과정을 거치면서 처음으로 학습하여 코드에 적용하게 되었습니다. 두 함수 모두 Boolean 형태의 argument를 받아서 false인 경우 예외처리하도록 합니다. IllegalArgumentException를 throw하며, 파라미터의 값을 검증하는데 사용할 수 있습니다. require() require() 함수는 매개변수의 값이 참인지 체크..
코딩 컨벤션 코틀린의 문법을 사용하면서 코딩 컨벤션을 제대로 준수하고 있는지 알아보는 시간을 가졌습니다. 코딩 컨벤션은 각 언어 특성에 맞게 규칙을 적용하여 파일 이름, 줄 바꿈 간격, 변수와 클래스 등 식별자 이름의 규칙을 지정하는 것입니다. 한 프로젝트 내에서 팀으로 일하는 개발자끼리 특정한 도메인 개념들에 대하여 네이밍 컨벤션을 지정하기도 합니다. 코딩 컨벤션을 활용할 경우 가장 큰 장점은 일관된 코드 스타일을 유지할 수 있다는 점입니다. camelCase를 활용해서 변수나 상수를 선언하는 규칙을 통해서 일관 된 코드 스타일과, 타입 추론이 가능한 변수를 명시적으로 선언하는 방법이 있습니다. 질서있는 코드를 작성하고, 네이밍에 규칙을 적용한다면 원활한 협업에도 도움을 주게 됩니다. 일관된 코드 크타..