개요 이번 미션을 진행하면서, 위와 같은 코드 리뷰를 받게 되었습니다. 이에 대해서 아래와 같이 답변을 달게 되었는데요, 내가 제대로 이해하고 있는 것이 맞는지, 확인하기 위해서 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..
개요 우아한 테크코스 과정을 진행하면서 단위 테스트와 도메인 로직에 대하여 공부하게 되었습니다. 이는 미션에서 요구 사항으로 추가되기도 하였는데요, 단위 테스트와 도메인 로직의 개념과 필요성에 대하여 알게 되었습니다. 단위 테스트 단위 테스트는 앱의 작은 단위를 사용하고, 코드의 나머지 부분에서 격리하며 예상대로 동작하는지 확인하는 기능을 합니다. 각 기능 단위가 예상되로 수행되고, 앱 전체에서 오류가 발생하지 않는지 확인하는 것이 주 목표입니다. 메서드나 동작 하나를 검증하며, 빠르고 작아야할 필요성이 있습니다. 유닛 테스트? 유닛 테스트는 단위와는 반대되는 개념을 가지고 있습니다. 작은 단위로 테스트하는 단위 테스트와는 반대로 모든 함수와 메소드에 대한 테스트 케이스를 작성하는 절차입니다. 단위 테스..
3주차 돌아보기 개인적인 일이 많아서 3주차는 4주차가 끝날 무렵 작성하게 되었습니다. 벌써 프리코스의 마지막 주차를 앞두게 되었고, 처음 접해보는 큰 실수로 인한 아쉬움을 가지고 회고를 작성하게 되었습니다. 3주차에서 가장 아쉬웠던 점은 아래의 예제 테스트 결과를 해결하지 못한 것이었습니다. 가능한 꼼꼼하게 기능을 구현하고, 소감을 작성하고자 하였기에 계속해서 코드를 수정하고 제출 마감 3시간 전에 제출하게 되었습니다. 이번 미션도 무사히 끝났다는 안도와 함께 위에 메세지를 접하게 되었습니다.. 빌드 과정에서 오류가 있다는 문구를 읽게 되었고, 코드에 문제가 있다고 파악하여 전체적인 수정을 진행하였으나 제출 기간 내에 문제점을 찾기 못하게 되었습니다.. 제출 기간이 끝난 후에 "프로그래밍 요구 사항에서..
개요 우아한 테크코스 3주차 미션을 진행하면서 단위 테스트에 대하여 학습하게 되었습니다. kotlin은 프로그래밍 언어 중에 간결한 문법과 테스트를 지원한다는 장점을 가지고 있습니다. 이번 미션을 통해서 Junit과 assertJ를 활용한 단위 테스트를 학습하고 적용하게 되었습니다. IntelliJ 작업 환경에서 간단하게 테스트 하는 방법을 작성하였습니다. 테스트 코드의 장점 코틀린에서 테스트 코드를 활용하면 자동화된 테스트를 통해서 개발자가 수동으로 테스트해야 하는 시간을 절약할 수 있습니다. 초기에 버그를 발견하고, 빠른 수정을 통해서 소프트웨어 품질을 향상시킬 수 있으며, 코드 변경이나 리팩토링 후 테스트를 자동으로 실행하여 기존 기능이 제대로 작동하는지 확인할 수 있습니다. 테스트 코드를 작성함으..
코틀린에서는 자바와 마찬가지로 타입을 담는 클래스인 enum 클래스를 지원합니다. 열거형 클래스라고 하며, 아래와 같이 상수를 집합으로 관리할 수 있어 코드에 가독성이 높아집니다. 이번 프로젝트에서 아래와 같이 Swipe 상태를 관리하는 enum 클래스를 선언했습니다. 클래스를 enum으로 선언할 경우 장점은, 직접 이름을 전달하지 않고 SwipingStates를 전달함으로써 상수 클래스로 활용할 수 있습니다. enum class SwipingStates { EXPANDED, COLLAPSED } 각 열거형 상수는 객체이며, 열거형 상수를 쉼표로 구분해야 합니다. 각 Enum 클래스는 Enum class의 인스턴스 이므로 특정 값으로 초기화 될 수 있습니다. enum 정의 형식 enum 키워드를 사용하여..
코딩 컨벤션 코틀린의 문법을 사용하면서 코딩 컨벤션을 제대로 준수하고 있는지 알아보는 시간을 가졌습니다. 코딩 컨벤션은 각 언어 특성에 맞게 규칙을 적용하여 파일 이름, 줄 바꿈 간격, 변수와 클래스 등 식별자 이름의 규칙을 지정하는 것입니다. 한 프로젝트 내에서 팀으로 일하는 개발자끼리 특정한 도메인 개념들에 대하여 네이밍 컨벤션을 지정하기도 합니다. 코딩 컨벤션을 활용할 경우 가장 큰 장점은 일관된 코드 스타일을 유지할 수 있다는 점입니다. camelCase를 활용해서 변수나 상수를 선언하는 규칙을 통해서 일관 된 코드 스타일과, 타입 추론이 가능한 변수를 명시적으로 선언하는 방법이 있습니다. 질서있는 코드를 작성하고, 네이밍에 규칙을 적용한다면 원활한 협업에도 도움을 주게 됩니다. 일관된 코드 크타..