본문 바로가기

전체 글

[우테코 권장도서] 객체지향 사실과 오해 4장 4장 역할,책임,협력 역시 이책이 그렇듯 실제 예시를 들어가며 설명한다. 두명에 사람들에게 일정금액을 한명은 몇대몇으로 나눠가질지 한명은 받을지 말지 결정하고 기회는 단한번인 최후 통첩게임의 예시이다. 인간은 일단 돈을 아주 조금이라도 받으면 이득이기 때문에 아주 작은 비율이더라도 돈을 받을쪽으로 움직일것이고 비율을 결정하는자도 지가 많이 먹는 쪽으로 움직일것이라고 전통 경제학은 예상하지만 실제 결과는 그렇지 않다는것이다. 협상의 문맥상 사람들은 불합리하다고 생각이 들어 빡돌면 내가 돈을 받고 말고는 상관없고 그냥 손해보더라도 같이 손해보는 결과를 선택한다는 실험결과가 나온다는 것이다. 여기서 중요성은 문맥(context)이다 사람이 객체일텐데 객체는 문맥에 따라서 다른 행동을 할수도 있다는것이다. 일반.. 더보기
[우테코 권장도서] 객체지향 사실과 오해 3장 중간에 블로그에 올리는걸 까먹어서 순서가 뒤죽박죽이 되었다 3장 타입과 추상화 추상화라는것이 참 어려운 이야기 같은데 지하철역 지도를 통해서 쉽게 설명하고있다. 추상화라는것은 두가지 측면에서 볼 수 있다고 한다. 1.분류를 위해 공통점을 취하고 차이점을 버리는 일반화를 통해 단순화 시키는 작업이라고 하는데 -> 한마디로 그냥 공통적인것들에 집중하여 분류 기준을 가져오는것이라고 생각한다 이때 사소한 차이점들은 과감히 버린다. (클래스든 인터페이스든 타입을 만드는 방법들에서는 공통적인 행위를 분리해내는것이 포인트라고 생각한다.) 2.중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거 단순하게 만드는것이다. 이것도 공통점을 취하는 과정에서 차이점들은 버려야하는데 이것들을 필요에 맞게 과감하게 버리라는 뜻으.. 더보기
아키텍처 패턴에 대한 고찰 (MVC,MVP) 아키텍처 패턴을 정의할수 있는 사람이 과연 있을까? 우테코를 진행하며 아키텍처 패턴에 대해서 많은 논의를하고 학습을 진행하였지만 각 아키텍처 패턴은 무엇이며 어떠한 조건을 지켜야하는가 라는 정의에 대한 부분은 종교처럼 과연 실체가 있는건가 라는 생각이 계속 들었다. 레벨1을 진행하며 콘솔 프로그래밍 레벨에서 MVC 아키텍처 패턴을 학습하며 리뷰어 분들에게 계속된 피드백을 받았다. 이때까지만 해도 그냥 나의 학습이 부족하니까 모르는거지 하면서 비판없이 수용만 했던것같다.(특히 아키텍처 패턴에 대한것은) 하지만 리뷰어분들 끼리도 의견이 많이 다르고 아무리 구글링해보고 해도 뚜렷이 이것이 기준이다 나를 따르라 같은것이 없었다. 그래서 각 아키텍처 패턴별로 시작점(아키텍처 패턴의 시작)에 대해 뭐가 본질인가를 .. 더보기
[우테코 권장도서] 객체지향 사실과 오해 6장 6장 계속 같은말을 하지만 이번장은 좀 어렵다. 결국 객체지향 짱짱맨 이런거지만 키워드 위주로 정리해 보려고한다. 도메인 모델(멘탈 모델) 책에서는 구구절절히 설명하는데 결국 도메인 모델이란 우리가 원래 실세계에서 객체들을 보고서 객체지향적으로 옮겨내려고 노력하지만 일반적으로 우리의 도메인이 되는것들은 꼭 실세계 뿐만이 아니라 추상적인 것들도 있고 꼭 물리적인 것은 아니다. 예를들어 은행의 예금 상품 같은것들은 물리적인 실체가 없지만 우리가 실제로 잘사용하고있고 이것들을 우리가 어떻게 머리속에 받아들이고 서로 객체로서 생각하며 머리에 연관도가 작성되는지를 머리속에서 꺼내보고 이런것들을 객체지향적으로 옮겨내야 한다고 한다. 즉 꼭 실체가아니라 내가 이 도메인에서 분석하고 받아들인상태에서 내가 일반적인 사람.. 더보기
안드로이드 테스트 종합선물세트 -1편 돌잡이 우테코를 진행하며 많은것들을 배우지만 희안하게 예전처럼 정리가 안된다. 그리고 내머리는 잠을 자지못해 점점 퇴화 하고있다. 그래서 기억에 남는거라도 빠르게 기록을 해둬야겠다는 생각에 테스트에 대한 개요를 정리해놓은 테스트 돌잡이 글을 적어보려한다. (테스트야 무럭무럭 자라렴) 1.테스트에서는 무엇이 있고 공부할것은 무엇이 있을까? 테스트에 대해서 논하자면 이것도 미친듯이 분야가 넓고 애초에 안드로이드 뿐의 이야기가 아니기 때문에 소프트웨어 공학적으로 접근해야한다. 그렇게 보자면 테스트의 종류는 수도 없이 많다. 구글에 "소프트웨어 테스트 종류"라고 구글링해보자 대충 몇개의 글만봐도 테스트 종류가 어마무시하고 분야를 막론하고 학문적으로 다루고 있음을 느낄수있다. https://www.atlassian.co.. 더보기
[우테코 권장도서] 객체지향 사실과 오해 5장 5장 책임과 메시지 지금 현재 상태가 헤르페스나고 목구멍에는 구멍나고 졸려죽겠다. 그리고 책읽는것도 밀렸었어서 모든걸 정리할 힘이 나지않고 거기다가 이책은 읽을때마다 느끼는거지만 술취한 사람과 대화하는 느낌으로 한말 또하고 한말 또 한다. 근데 또 중간에 의미를 툭툭던져서 넋을 놓고 읽을수는 없는 개꼰대 교수님과의 술자리 같다. 그래서 아주 핵심적인 내용들을 키워드와 함께 정리해보려한다. 자율적인책임 외부에 노출된 인터페이스를 제외하고는 객체가 자율적으로 처리방법을 정하는것이 주이다. 이래야 재사용성도 올라가고 객체의 변경에 따른 다른 객체의 연쇄 변경을 막을수 있다. 여기서 자율적인 책임은 모자장수의 증언을 예시로 드는데 왕이 증언하라 라고 메시지를 던져야지 기억을 더듬어라 생각을 말로 정리해라 말해봐.. 더보기
조금더 강력해진 직렬화에 대한 견해(Serializable,Parcelable) 과거의 나의 글을 보다보면 이렇게 조잡할수가 없다. 하지만 나의 성장 과정이니 애정을 가지고 업데이트를 해보려한다. https://mccoy-devloper.tistory.com/29 예전부터 궁금했던 parcelize 로 액티비티간 객체 교환에 대한 것을 파헤쳐보자 + as 로 캐스팅하기 예전부터 난 객체를 액티비티간에 옮기고 싶었다 물론 이제 다른 아이디어들도 새록새록 떠오르지만 어찌됐건간에 이러한 데이터 이동에 관한 방법을 고찰해본것을 적어놓아야겠다. 우선 객체 mccoy-devloper.tistory.com 기존에 직렬화에 대한 글이다 직렬화가 뭔지모른다면 한번쯤 읽어보면 내가 쪽팔리니까 읽지말고 다른블로그로 공부하자 원래 직렬화에 대한 학습을 아주 얕고 간단하게 했었는데 계속 코딩을 해오면서 생.. 더보기
[우테코] 02/24 level1 여섯번째 수업 (로또 점진적 리팩터링) 🐗점진적 리팩터링🐗 강의 자료에 있는것들을 다 배워서 제이슨의 라이브코딩으로 우리를 혼내줬다. 라이브코딩을 보고있는데 흡사 마술쇼를 보는것 같았다. 내 입장에서 빨라서 잘인식을 못했고 (다른 애들은 잘 이해함 킹받네) 기억마저 가물가물하지만 일단 남는거라도 정리해본다. 1.리펙터링할 부분의 복제본을 만들고 수정해서 대체하라 로또를 통해 이 상황의 예시를 들자면(수업에서 로또로 했으니까) 리펙토링이 필요한 코드에서 로또번호로 Int값을 그냥 사용하고 있다고 가정해보자 이번 리펙토링에서 원시값을 포장해서 Int를 LottoNumber 로 바꿔줘야하는 상황이다. 이 상황에서 함수에서 인자로 받던 Int값을 LottoNumber로 바꾼다면 함수의 사용처에서 다 터져버릴것이다. 만약 작은 로또앱이라면 그냥 바꾸고.. 더보기