Kotlin

과제/우테코 6기 프리코스

우테코 6기 프리코스 안드로이드 - 3주차 미션

로또 게임 3주차의 미션은 '로또' 게임 프로그램을 구현하는 것이다. 이번에 추가된 학습 목표는 아래와 같다. 클래스(객체)를 분리하는 연습 도메인 로직에 대한 단위 테스트를 작성하는 연습 2주차까지 했던 설계 방식으로 해도 기능 구현에는 큰 무리가 없었다. 작성한 코드 역시 직관적이고 간결하다고 생각했다. 그러나 여전히 테스트 코드는 어떤 위주로 작성해야 하고, TDD에 대한 감을 잡지 못한 것 같았다. 지금까지 했던 설계로는 캡슐화나 의존성으로 인해 테스트 코드를 작성하면서 구현 코드를 변경했다. 테스트 코드에 기능을 맞추는 꼴이 되어가는 것 같아 찝찝했다. 또한, 과연 내가 했던 설계가 보기에는 직관적이어도 유지보수에는 용이할까라는 의문도 들었다. 다른 사람들이 왜 MVC 패턴이나 일급 컬렉션을 사..

Kotlin

변수와 상수

var vs val 두 키워드 모두 Kotlin에서 변수 선언 시 사용되는 키워드입니다. 둘의 차이는 초기화한 후 값에 대한 변경이 가능하냐 불가능하냐입니다. var : 변경 가능한 mutable 참조를 저장하는 변수입니다. val 키워드 변수의 값은 재할당(변경)이 가능합니다. 자바의 일반 변수에 해당됩니다. var number = 1 number = 2 println(number) // output: 2 val : 변경 불가능한 immutable 참조를 저장하는 변수입니다. val 로 선언된 변수는 초기값을 변경하는 것이 불가능합니다. 자바의 final 변수에 해당됩니다. val number = 5 number = 3 // Compile Error 코드를 작성할 때 기본적으로 val 키워드의 불변 변..

과제/우테코 6기 프리코스

우테코 6기 프리코스 안드로이드 - 2주차 미션

자동차 경주 게임 이번 주차의 미션은 '자동차 경주 게임' 프로그램 구현이다. 기능구현 측면에서 저번 주차의 '숫자 야구 게임'과 비슷하다. 이번 주차는 학습 목표로 '함수를 분리하는 것'과 '함수별로 테스트를 작성하는 것'이 추가되었다. '숫자 야구 게임'에서 함수를 분리하는 것은 신경썼었지만 테스트 코드는 충분히 고민해보지 못해 아쉬웠는데 학습 목표로 추가되어 테스트코드에 대해 좀 더 집중해서 미션을 수행해보려고 한다. 테스트 코드에 대한 의문 프로그램에 대한 설계를 빠르게 마치고 구현 기능 목록을 작성한 다음에 기능 구현에 들어갔다. 기능 구현 자체는 어렵지 않았지만 저번 주차처럼 테스트 코드를 작성해봤지만 뭔가 찝찝함이 들었다. 테스트 코드는 언제 작성해야 하는 것일까? 기능 구현 전? 기능 구현..

과제/우테코 6기 프리코스

우테코 6기 프리코스 안드로이드 - 1주차 미션

숫자 야구 게임 올해 프리코스의 1주차 미션은 숫자 야구 게임 프로그램을 구현하는 것이다. 리드미의 '기능 요구 사항', '프로그래밍 요구 사항', '과제 진행 요구 사항' 세 카테고리의 요구 사항을 만족하며 과제를 진행하면 된다. 과제의 기능 구현은 간단하다. 하지만 코드 컨벤션, 예외처리, 테스트, 클린코드까지 고민하고 학습하다 보면 일주일이 금방 지나간다. 그동안 개발을 하면서 기능 구현에만 집중했던 스스로를 반성했다. 주도적으로 학습하는 개발자, 협업에 능한 개발자가 되기 위한 기본적인 역량을 체감할 수 있었다. 무엇보다 오랜만에 순수하게 개발에만 몰입할 수 있어 즐거웠다. '오랫동안 동료들과 즐겁게 일하며 성장하는 개발자'가 우테코가 지향하는 개발자의 모습이지 아닐까 하다. 짧은 시간동안 모든 ..

Kotlin

수신 객체 지정 람다, with 와 apply

with 함수와 apply 함수는 수식 객체를 명시하지 않고 람다의 본문 안에서 다른 객체의 메서드를 호출할 수 있게 한다. 그런 람다를 수신 객체 지정 람다 lambda with receiver 라 부른다. with 함수 표준 라이브러리의 with 함수를 사용하면 어떤 객체에 대한 참조를 반복해서 언급하지 않으면서 그 객체의 메서드를 호출할 수 있다. EX. 알파벳 만들기 fun alphabet() : String { val result = StringBuilder() for (letter in 'A'..'Z') { result.append(letter) } result.append("\\nNow I know the alphabet!") return result.toString() } println(a..

Kotlin

자바 함수형 인터페이스 활용

코틀린 람다를 자바 API에 활용하는 방법 // Java public class Button { public void setOnClickListener(OnClickListener 1) { ... } } public interface OnClickListener { void onClick(View v); } Button 클래스는 setOnClickListener 메서드를 사용해 버튼의 리스너를 설정 OnClick 메서드만 선언된 OnClickListener 인터페이스를 인자로 전달 // Java 8 이전 button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } }) 자바 8 이전의 자바는 무명 클래..

minux.
'Kotlin' 태그의 글 목록