우아한테크코스 레벨3가 끝나갈 무렵, 학습 돌아보기 인터뷰를 진행했다. 나는 6명으로 이루어진 조에 배정되어 인터뷰이 1명, 인터뷰어 3명, 옵저버 2명으로 진행했다.사전에 준비해간 자료를 토대로 질문을 하고 그에 대한 답변을 하는 방식이었다.옵저버는 인터뷰 과정을 관찰하고 그에 대한 피드백을 전달한다.인터뷰 20분 + 피드백 10분으로 진행했다. 인터뷰 때 받은 질문과 답변, 피드백들을 정리해 보려고 한다. 인터뷰 사전 자료인터뷰를 위한 사전 자료를 같은 조 크루들끼리 공유해야 했다.레벨3 팀 프로젝트를 하며 학습/협업한 내용을 A4 한 장 내외로 정리하는 것이었는데,나는 내가 팀에 기여한 점과 협업 측면에서 배운 점들을 자세히 작성했다.여러 주제를 얕게 적는 것보다는, 한 두개의 주제를 자세히 작..
미션 관련 링크쇼핑 장바구니 레포지토리https://github.com/kimhm0728/android-shopping-cart쇼핑 장바구니 1, 2단계 PRhttps://github.com/woowacourse/android-shopping-cart/pull/54쇼핑 장바구니 3, 4단계 PRhttps://github.com/woowacourse/android-shopping-cart/pull/79 코드 리뷰 받은 코멘트들 일반적으로 뷰모델은 화면과 1:1 구조로 만든다흔히 화면 단위의 ViewModel은 액티비티와 1:1 대응 구조를 가지고는 합니다. 뷰모델의 역할은 프레젠터와 마찬가지로 데이터(UI 상태)를 관리하고, 비즈니스 로직을 수행하는 것이다.그렇기에 현재 "UI에서 비즈니스 로직을 수행..
글에 들어가기 전, 지극히 주관적인 내용임을 밝힌다.'이렇게 생각할 수도 있구나!'라는 생각으로 가볍게 읽어주면 좋겠다. - 우아한테크코스에서 MVP 아키텍처를 기반으로 을 진행했다.MVP 아키텍처 관련해서 리뷰어와 여러 의견을 주고 받았고, 덕분에 내 의견을 명확히 정립할 수 있었다.내가 깨달은 내용들을 의식의 흐름대로 작성해보려고 한다. 리뷰어가 쏘아올린 작은 공..처음으로 MVP 아키텍처를 적용해보면서, 리뷰어에게 아래와 같은 코멘트를 받았다. Activity에서 repository 를 presenter 로 넘겨주는 것은, Activity와 presenter 의 역할을 제대로 하지 못하고 있는 것으로 보입니다. view 에서 model 을 presenter 에 넘겨주는 형태이니까요!Share..
미션 관련 링크영화 극장 선택 레포지토리https://github.com/kimhm0728/android-movie-theater영화 극장 선택 1, 2단계 PRhttps://github.com/woowacourse/android-movie-theater/pull/57영화 극장 선택 3, 4단계 PRhttps://github.com/woowacourse/android-movie-theater/pull/75 코드 리뷰 받은 코멘트들 Util 패키지에 Model -> String으로 변환하는 Formatter 함수 vs 화면 별 UiModel내 코드에는 util 패키지에 모델을 화면에 띄우는 문자열로 변환하는 함수를 구현하고, 이를 전역적으로 쓰는 현태였다.하지만 어떤 모델을 출력할 때, 모든 화면에서 ..
미션 관련 링크영화 티켓 예메 레포지토리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 테스트에서는 하나의 시나리오에 관점을 두고 진행한..
미션 관련 링크 오목 레포지토리 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..
우테코에서 진행했던 방과후 수업 자료를 업로드한다. 엘레강트 오브젝트 스터디를 하면서 인상 깊었던 내용과, 이를 우테코 미션에 어떻게 적용했는지에 대해 얘기했다. 발표에 대한 강박을 깨기 위해 수업을 진행했는데, 머리 속 뒤죽박죽 했던 지식들을 정리할 수 있어서 좋았다 🤗 명령형 프로그래밍 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 기존에는 카드를 받을 때마다 카드의 점수를 계산해서, 멤버 프로퍼티를 갱신하는 로직이었다. 그런데 리뷰어님이..