미션 관련 링크영화 티켓 예메 레포지토리https://github.com/kimhm0728/android-movie-ticket영화 티켓 예매 1, 2단계 PRhttps://github.com/woowacourse/android-movie-ticket/pull/72영화 티켓 예매 3, 4단계 PRhttps://github.com/woowacourse/android-movie-ticket/pull/83 코드 리뷰 받은 코멘트들 액티비티 테스트에서 다른 액티비티로의 이동, 앱 종료 등은 테스트하지 않는다도메인 테스트에서도, 해당하는 객체에 대해서만 테스트했고 다른 객체는 테스트하지 않았듯이액티비티 테스트에서는 한 액티비티에서의 시나리오만을 검증한다.Ui 테스트에서는 하나의 시나리오에 관점을 두고 진행한..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/D9H2E/btsGCY0xahO/qKSqTlP8LgKqSkTiJoD5bk/img.png)
미션 관련 링크 오목 레포지토리 https://github.com/kimhm0728/kotlin-omok 오목(렌주룰) 1단계 PR https://github.com/woowacourse/kotlin-omok/pull/62 오목(안드로이드, 데이터베이스) 2단계 PR https://github.com/woowacourse/kotlin-omok/pull/93 코드 리뷰 받은 코멘트들 Dao는 도메인 로직일까? 모델의 생성자에 Dao를 받아서, 모델 내에서 저장을 해주었다. 하지만 데이터를 저장하는 것은 도메인 로직이 아니기 때문에, 모델이 Dao를 알 필요가 없다. Dao(SQLite) 자체가 안드로이드 프레임워크에 의존적이니, 액티비티에서 Dao를 수행한다. Activity 내의 flag flag가 Ac..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b2wFuh/btsGANZZetr/2xwWBBxW0MmQCDkkyOIkf0/img.png)
우테코에서 진행했던 방과후 수업 자료를 업로드한다. 엘레강트 오브젝트 스터디를 하면서 인상 깊었던 내용과, 이를 우테코 미션에 어떻게 적용했는지에 대해 얘기했다. 발표에 대한 강박을 깨기 위해 수업을 진행했는데, 머리 속 뒤죽박죽 했던 지식들을 정리할 수 있어서 좋았다 🤗 명령형 프로그래밍 vs 선언적 프로그래밍 명령형 프로그래밍 :컴퓨터처럼 연산을 차례대로 실행한다. 주로 static 메서드로 구성된다. 선언적인 프로그래밍 : 객체와 객체 사이의 관계로 구성된다. 예를 들어, 세 개의 수 중 중간 값(between)을 찾는 기능을 구현한다고 하자. 명령형 프로그래밍 public static int between(int l, int r, int x) { return Math.min(Math.max(l, ..
미션 관련 링크 블랙잭 레포지토리 https://github.com/kimhm0728/kotlin-blackjack 블랙잭 1단계 PR https://github.com/woowacourse/kotlin-blackjack/pull/72 블랙잭(베팅) 2단계 PR https://github.com/woowacourse/kotlin-blackjack/pull/97 코드 리뷰 받은 코멘트들 테스트를 위한 부생성자 테스트를 위해 작성된 생성자는 결국 실제 코드에서도 쓰이게 되는 경우가 대부분이다. 그래서 이는 클라이언트에게 객체의 생성 방법을 여러개 열어둔 것이라고 생각한다. Lazy Evaluation 기존에는 카드를 받을 때마다 카드의 점수를 계산해서, 멤버 프로퍼티를 갱신하는 로직이었다. 그런데 리뷰어님이..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/VBYx5/btsGB9O0a0S/bKLITyJW1DCgu1OiM22DN0/img.png)
미션 관련 링크 로또 레포지토리 https://github.com/kimhm0728/kotlin-lotto 로또(자동) 1단계 PR https://github.com/woowacourse/kotlin-lotto/pull/74 로또 (수동) 2단계PR https://github.com/woowacourse/kotlin-lotto/pull/94 코드 리뷰 받은 코멘트들 상수를 관련 클래스에 포함시키자 기존에는 상수만을 갖는 클래스를 생성했다. (LottoConstants) 여러번 사용되는 상수는, 해당 상수를 사용하는 클래스에 각각 선언하는 것은 중복 코드라고 생각했기 때문이다. 또한 하나의 클래스에 상수를 선언하고, 다른 클래스에서는 그 클래스의 상수를 참조한다면, "상수를 선언하는 클래스를 어떻게 정할지..
우테코에 들어와서 첫 미션을 마쳤다! 첫 미션은 프리코스 2주차 미션과 동일한, 자동차 경주였다. 조금 늦은 감이 있지만.. 이번 미션에 대한 회고를 작성하려 한다. 미션 관련 링크 자동차 경주 레포지토리 https://github.com/kimhm0728/kotlin-racingcar 자동차 경주(구현) 1단계 PR https://github.com/woowacourse/kotlin-racingcar/pull/100 자동차 경주(리팩터링) 2단계 PR https://github.com/woowacourse/kotlin-racingcar/pull/116 코드 리뷰 받은 코멘트들 변경에 유연한 테스트 함수명을 사용하자. 기존에는 `자동차 이름이 다섯 글자가 넘는 경우 예외가 발생한다`라는 함수를 작성했다...
const val과 val의 차이점은? val private val result = sum(3, 5) fun sum(a: Int, b: Int) = a + b val 키워드를 사용했기 때문에 불변 프로퍼티가 되지만, 런타임 시 프로퍼티의 값이 결정된다. 즉, val 프로퍼티에 대입되는 값이 함수의 값이라면, 함수의 인자로 어떤 값을 넣느냐에 따라 달라질 수 있다. const val const val result = 8 컴파일 시 결정되는 상수이기 때문에 런타임 시에는 변하지 않는다. primitive type과 String만 const 키워드를 사용할 수 있다. 코틀린의 primitive type과 wrapper type 자바에는 int, double 등의 primitive type과 Integer, D..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bba9vm/btsCN5xb4Ow/GaAAPLvnr7rzVH4PQ7E4m0/img.png)
우테코 6기 ot 전날 설렘 반 떨림 반의 마음으로 합격 회고를 적어본다. 뒤늦게 합격 회고를 적는 이유는... 우테코 과정에서 얻은 사소한 것 모두 티스토리에 기록하자는 자신과의 다짐을 했는데, 이 합격 회고가 그 기록의 시작이길 바라며! 지원 계기+자소서 사실 얼른 취업하고 싶은 마음이 커서 (지금은 아님), 혼자 기업지원+스터디를 할 생각이었다. 그래서 우테코 모집글을 보고도 아무 생각 없이 넘겼고, 내 머릿속에서 우테코가 잊혀질 때쯤.. 우연히 백준에서 우테코 지원 광고를 다시 보게 되었다. "취준 기간 동안, 증거로 남는 의미있는 활동을 하는 것도 좋다"는 동기의 말이 생각나 지원을 다짐했다. 그때가 딱 지원 마감 하루 전이라서 자소서 벼락치기를 했다 ^^;; 우테코 자소서가 기존에 작성하던 기..