본문 바로가기

우테코/level1(코틀린)

[우테코] 02/24 level1 여섯번째 수업 (로또 점진적 리팩터링) 🐗점진적 리팩터링🐗 강의 자료에 있는것들을 다 배워서 제이슨의 라이브코딩으로 우리를 혼내줬다. 라이브코딩을 보고있는데 흡사 마술쇼를 보는것 같았다. 내 입장에서 빨라서 잘인식을 못했고 (다른 애들은 잘 이해함 킹받네) 기억마저 가물가물하지만 일단 남는거라도 정리해본다. 1.리펙터링할 부분의 복제본을 만들고 수정해서 대체하라 로또를 통해 이 상황의 예시를 들자면(수업에서 로또로 했으니까) 리펙토링이 필요한 코드에서 로또번호로 Int값을 그냥 사용하고 있다고 가정해보자 이번 리펙토링에서 원시값을 포장해서 Int를 LottoNumber 로 바꿔줘야하는 상황이다. 이 상황에서 함수에서 인자로 받던 Int값을 LottoNumber로 바꾼다면 함수의 사용처에서 다 터져버릴것이다. 만약 작은 로또앱이라면 그냥 바꾸고.. 더보기
[우테코]02/21 level1 다섯번째 수업 (로또 피드백) 자꾸 바빠서 블로그 글이 밀린다 미치것다. 자꾸 휘발성으로 날아가는데 ㅠㅠㅠㅠㅠ 그래도 얼른 정리해보자. 와 ㅋㅋㅋㅋ 방학이 되어서야 정리하고있음 레벨 2때는 어쩌냐 🐗로또 피드백2🐗 이번 수업은 로또 두번째 피드백이였다 자료에서 정리되지 않은 남은 부분들을 짚어 주셨다. 에피타이저 우선 개인적으로 이번수업에서 나만몰라서 멍때렸던 것을 찾아봤는데 별거 아니라서 킹받아서 그 내용에 대해 찾아보았다. 코틀린에서 자바로 넘어가며 원시값으로 가는지 Boxing 하는지에 대한 어쩌구 저쩌구 잡설에 대해 설명된 블로그 글이다. https://gwi02379.tistory.com/14 코틀린의 변수와 자료형 (Kotlin) 코틀린의 자료형 코틀린은 기본적으로 null 허용을 하지 않습니다. 즉, 값이 항상 할당되어야.. 더보기
[우테코] 템플릿 메서드 패턴 간단요약 너무 바쁘고 정신머리 없어서 글을 쓸수가 없다. 일단 작은것부터 쓰고 모으는 형태로 해야겠다 글쓰기를 마이크로 서비스화 시켜보자 요즘 패턴들 배워보는게 너무 재미있는거같다. 그 중 최고로 공감했던 템플릿 메서드 패턴에대해서 프롤로그에 남긴김에 블로그에도 옮겨적는다. 블랙잭 하면서 배운거니 나중에 블랙잭에서도 계속 등장 할 것이다. 아니 자꾸 글쓰면서도 자꾸 띄어쓰기 불편하면 Command + Option + L 를 누르고 있다. 돌아버린것같다. 이제 한번 템플릿 메서드 패턴을 살펴보자 템플릿 메서드 패턴 자 항상 하던 고민을 긁어주는 우리의 패턴맨 제이슨이 무심하게 던져놓고간 템플릿 메서드 패턴이다. ->이런 고민해본적 있지않는가? 아니 다 똑같은데 이부분만 다른거 어떻게 재활용못하나? 이 의문에 대한 .. 더보기
[우테코]02/17 level1 네번째 수업(로또 피드백) 🐗로또 피드백🐗 현재까지 학습테스트, 단위테스트, TDD 맛보기를 진행했으니 이제 계속 미션을 진행해 나가며 TDD에 익숙해져 나가는 과정을 거친다고 한다. 시작하기 - 요구 사항 분성을 통한 기능목록 작성 - 객체 설계를 통해 어느 부분부터 구현을 시작할 것인지 결정 지난 수업에 이야기했듯이 개발이전에 설계가 선행되어야하고 개발 시작과 동시에 일단 객체를 설계하게된다.(TDD와 함께 코딩하기 전에) 설계의 관점 설계를 할때 의인화 하는 방법을 사용하기도 하는데 객체 자체에 인격을 부여하듯이 일상사물에서 모티브를 가져오면 모두가 이해할수있도록 공감을 유도할수있다고한다. 의인화는 좋은 접근법이니 잘 사용해보자. 기능목록 -구매할 Lotto의 매수 구하기 -1000 -> 1 -1500 -> 1 -500 ->.. 더보기
[우테코]로또 미션 코드리뷰 관련 학습내용 멧돼지 피드백 관련 학습 질문과 답변 1. 원시값 포장의 이점과 기준? 원시값들을 모두 포장하려고하니 로또구입금액, 로또구입개수 같은것들은 거의 같은 역할을 하는것들이라 검증 하는 내용들이 같아 중복이 일어났습니다. 게다가 로또구입 금액을 가지고 로또구입 개수를 구하는 형태이다보니 연속으로 같은 검사를 중복해서 해야할 필요가 있나 느껴졌습니다. 하지만 원시값들을 포장해놓고 아무런 검증이나 내부 함수가 없다면 원시값을 포장하는 의미가 있나? 라는 생각이 들어 모든 원시값을 포장하는것이 옳은가라는 생각이 들었고 원시값을 모두 포장한다해도 중복되는 검사또한 해야하는지 궁금합니다. 원시값을 무조건 포장하라는 의미를 그대로 해석하시지 말고, 근본적으로 포장하는 것에 대한 이유를 설명할 수 있어야 합니다. Int .. 더보기
[우테코]02/14 level1 세번째 수업 (두번째 미션 자동차경주) TDD,OOP 🐗TDD🐗 이제야 제대로된 첫수업이다. TDD라니 설렌다. TDD 쉽게 말하면 테스트가 먼저 선행되는 개발인건 맞지만 테스트만 먼저 짠다고 TDD라기 보다는 결국 Development가 중요하지 않는가 라고 코치님은 생각하신다고 한다. 개발을 할때 설계(design)와 개발(development) 중 무엇이 먼저 선행되어야하는가? -> 설계가 당연히 설계가 먼저 진행되어야 할것이다. TDD의 약자는 Test Driven Development 이다 . 즉 개발의 영역이므로 설계는 알아서 선행하고 난 이후에 진행되는것이다 즉 TDD에 앞서 객체지향적 설계이든 함수형 설계이든 설계의 기본적인 과정이 선행되어야한다. 그래서 여태까지 매번 기능목록을 짜고 그 기능목록을 보충하고 했던것들이다.(설계적인 의미로) T.. 더보기
[우테코]02/10 level1 두번쨰 수업 자동차 경주 피드백 1.변수명 이름을 잘짓는건 항상 중요하다!!! grep.app 이 사이트에서 검색해서 많이 적용한다고한다. -> 깃에서 많은 스타를 많이 받은 레포지토리들이 어느 단어를 쓰나 검색할수 있는 사이트이다. 변수 명에서 다양한 고민이 있을때 사용하겠지만 이러한 예시도 있다 영국식 영어랑 미국식 영어중 어느 단어를 쓸까? ex) 영국식 : judgment -> 미국식은 e가 하나 더들어간다고 한다.judgement judgement 로 검색해보면 실제로 우테코가 나온다(밑의 이미지에 빨간색 부분이 유명한 레포지토리들을 나타낸거라고 한다.) 이런것중 많이 사용한것으로 결과가 나오는것으로 사용하는것도 좋은 방법이라고 한다. -> 우테코의 judgement 코드를 실제로 이렇게 적용한거라고 한다 . tip: 주소창 .. 더보기
[우테코]온보딩 코드리뷰 관련 학습내용 멧돼지 피드백 관련 학습 1.MVC 패턴 기존에도 패턴에대해서 공부하고 MVVM에 대해서 주로 공부했지만 그냥 관습적으로 사용하던 안드로이드에서만 사용 했을뿐 이렇게 모든 곳에서 사용할 수 있을것이라고 생각조차 하지 못하였다.(이런 코틀린 프로그램에서도 MVP나 MVVM도 적용할수 있는거자나?......) 당장 짠 프로그램도 MVC와 유사하게 짜여져 있지만 일부 도메인 로직이 controller에 들어가있는 상황이었다. 또한 페어프로그래밍을 통해서 Car객체를 만들어서 사용했지만(고마워요 하티) 혼자 코딩했다면 이런 data들을 controller가 들고있는 실수를 범했을것이다. 이러한 실수를 하지않고 MVC패턴을 제대로 사용해 보기위해 각 요소들이 갖는 역할들과 내가 하지못했던 문제점을 찾아보려한다. .. 더보기