10장. 헤드퍼스트 디자인 패턴 - 상태 패턴
Books/헤드퍼스트 디자인 패턴 2022. 7. 11. 09:48

안녕하세요 😀 유로띠 입니다 😉 헤드퍼스트 디자인패턴 TIL (Today I Learned) 3줄 요약 ✏️ 상태와 행동을 분리!! ✏️ 다음 현재 상태를 나타내는 객체에게 행동을 위임하므로 내부 상태가 바뀔 때 행동이 달라지게 된다는 사실을 쉽게 알 수 있다. ✏️ 전략 패턴과 쌍둥이 이지만 상태 패턴은 초기 상태 이후 Context 객체가 알아서 자기 상태를 변경한다. (전략 패턴은 1장이고 상태 패턴은 10장이다?! (전략 패턴 왈)) DAY 4 오늘 읽은 범위: 10장. 객체의 상태 바꾸기 - 상태 패턴 😉 책에서 기억하고 싶은 내용을 써보세요. 개요. 전략 패턴과 상태 패턴은 쌍둥이 입니다. 전략 패턴은 바꿔 쓸 수 있는 알고리즘을 내세워 큰 성공을 거둔 반면에, 상태 패턴은 내부 상태를 바꿈으..

4장. 헤드퍼스트 디자인 패턴 - 팩토리 패턴
Books/헤드퍼스트 디자인 패턴 2022. 5. 24. 14:46

안녕하세요 😀 유로띠 입니다 😉 헤드퍼스트 디자인 패턴 TIL (Today I Learned) 3줄 요약 ✏️ 간단한 팩토리 / 팩토리 메소드 / 추상 팩토리 메소드가 있다. ✏️ 의존성 뒤집기! - 추상화된 것에 의존하게 만들고 구상 클래스에 의존하지 않게 만든다. ✏️ 어떤 서브클래스를 선택했느냐에 따라 구현이 달라진다. DAY 3 오늘 읽은 범위: 4장. 객체지향 빵 굽기 - 팩토리 패턴( 간단한 팩토리, 팩토리 메서드 패턴) 😉 책에서 기억하고 싶은 내용을 써보세요. 최첨단 피자 코드 만들기 피자 종류를 고르고 그에 맞게 피자를 만드는 코드도 추가해야 합니다. Pizza orderPizza(String type) { Pizza pizza; if (type.equals("cheese")) { piz..

2장. 헤드퍼스트 디자인 패턴 - 옵저버 패턴
Books/헤드퍼스트 디자인 패턴 2022. 5. 2. 16:02

안녕하세요 😀 유로띠 입니다 😉 헤드퍼스트 디자인패턴 TIL (Today I Learned) 3줄 요약 ✏️ 상호작용하는 객체 사이에는 가능하면 느슨한 결합을 사용해야 한다. ✏️ 일대다의 관계를 정의 ✏️ 쉽게 확장할 수 있도록 push 방식보다는 pull 방식을 사용해 보자. CHAPTER 2 오늘 읽은 범위: 2장. 객체들에게 연락 돌리기 - 옵저버 패턴 😉 책에서 기억하고 싶은 내용을 써보세요. 기상 모니터링 애플리케이션 알아보기 기상 스테이션(실제 기상 정보를 수집하는 물리 장비) WeatherData 객체(기상 스테이션으로부터 오는 정보를 추적하는 객체) 사용자에게 현재 기상 조건을 보여 주는 디스플레이 장비 Weather 객체로 현재 조건, 기상 통계, 기상 예보, 이렇게 3가지 항목을 디스..

9장. 실용주의 프로젝트
Books/실용주의 프로그래머 2022. 4. 25. 21:04

안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) 3줄 요약 ✏️ 팀과의 의사소통은 중요하다. ✏️ 일찍 테스트하고, 자주 테스트하라. 자동으로 테스트하라. ✏️ 우리는 문제 해결사다. DAY 10 오늘 읽은 범위: 9장. 실용주의 프로젝트 😉 책에서 기억하고 싶은 내용을 써보세요. 실용주의 팀 🟢 프로그래머는 고양이 같은 면이 있다. 호기심 많고 제멋대로이며, 고집이 세고, 독립적인 데다, 가끔은 인터넷에서 숭배를 받기도 한다. (p.378) 깨진 창문을 없애라. 🟢 팀 전체가 깨진 창문을 용납하지 않아야 한다. 사소한 결점을 아무도 고치지 않고 놔두어서는 안 되고, 반드시 제품의 품질에 책임을 져야 한다. (p.379) 🟢 품질은 팀원 모두가 제각기 기여할 때..

1장. 헤드퍼스트 디자인 패턴 - 전략 패턴
Books/헤드퍼스트 디자인 패턴 2022. 4. 22. 21:06

안녕하세요 😀 유로띠 입니다 😉 헤드퍼스트 디자인 패턴 TIL (Today I Learned) 3줄 요약 ✏️ 바뀌는 부분은 따로 뽑아서 캡슐화한다. 그러면 나중에 바뀌지 않는 부분에는 영향을 미치지 않고 그 부분만 고치거나 확장할 수 있다. ✏️ 상속보다는 구성을 활용한다. ✏️ 구현보다는 인터페이스에 맞춰서 프로그래밍한다. DAY 1 오늘 읽은 범위: 1장 디자인 패턴의 세계로 떠나기 - 디자인 패턴 소개와 전략 패턴 😉 책에서 기억하고 싶은 내용을 써보세요. 오리 시뮬레이션 게임, SimUduck 모든 오리가 꽥(quack) 소리를 내고 수영(swim)을 할 수 있기에 슈퍼클래스로 작성합니다. 오리마다 모양을 다르기 때문에 display는 오버라이드 합니다. fly() 기능을 추가해 봅니다. Rub..

연습문제 33. 요구 사항의 구렁텅이
Books/실용주의 프로그래머 2022. 4. 4. 20:56

안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) 오늘 읽은 범위: 8장 프로젝트 전에 - 요구 사항의 구렁텅이 ⭐️ 연습 문제33 다음 문장들이 진정한 요구 사항인가? 가능하다면 진정한 요구 사항이 아닌 것을 좀 더 유용하게 고쳐 써보라. 🧐 응답 시간은 500ms 이하여야 한다. 🟢 나의 해답 : 충분히 요구 사항이라고 생각할 수 있다. 응답 시간은 500ms 이하여야 한다는 요구는 결국 '응답 시간을 최소화해야 한다'는 요구 사항일 것이다. 충분히 속도를 줄이되 500ms는 초과하면 안되는 것이다. 📖 책의 해답 : 더보기 이 문장은 진짜 요구 사항처럼 보인다. 환경 때문에 애플리케이션에 제약을 추가해야 할 수 있다. 모달 창의 바탕색은 회색이다. 🟢 나의 ..

8장. 프로젝트 전에
Books/실용주의 프로그래머 2022. 4. 4. 01:01

안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) 3줄 요약 ✏️ 우리가 하는 일은 특이한 경우에 대해 집요하게 캐물어서 사람들을 화나게 해야 한다. ✏️ 행운은 준비된 사람에게 찾아온다. 🍀 ✏️ 코드에 혼자 들어가지 말자... 코드 리뷰를 하자. DAY 8 오늘 읽은 범위: 8장. 프로젝트 전에 😉 책에서 기억하고 싶은 내용을 써보세요. 🟢 프로젝트가 닻을 올리기 전에 이런 중요한 문제들이 잘 정리되어야 '분석 마비증'을 모면할 수 있다. 프로젝트를 정말로 시작하고, 성공적으로 마칠 수 있다. (P.350) 요구 사항의 구렁텅이 🟢 요구 사항이 땅 위에 놓여 있는 경우는 드물다. 보통은 가정과 오해, 정치의 지층 속 깊숙이 묻혀 있다. 심지어 아예 존재하지 않..

7장. 코딩하는 동안
Books/실용주의 프로그래머 2022. 4. 1. 21:52

안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) 3줄 요약 ✏️ 테스트를 실행할 때가 아니라 테스트에 대해 생각하고, 테스트를 작성할 때 생긴다. ✏️ 리팩터링이 필요한 코드는 '종양'이다. ✏️ 이름 짓기 정말 어려워... DAY 7 오늘 읽은 범위: 7장. 코딩하는 동안 😉 책에서 기억하고 싶은 내용을 써보세요. 🟢 코딩할 때는 매 순간 결정을 내려야 하는데, 프로그램이 정확하게 생산적으로 작동하면서 천수를 누리도록 하려면 사려 깊은 생각과 판단으로 결정을 내려야 한다. (P.273) 🟢 적극적으로 자기 코드에 대해 생각하지 않는 프로그래머는 우연에 맡기는 프로그래밍을 하는 것이다. 코드가 작동하긴 하지만 왜 그렇게 작동하는지 설명은 못한다. (P.274) ..

6장. 동시성
Books/실용주의 프로그래머 2022. 3. 31. 01:24

안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) 3줄 요약 ✏️ 공유 상태? 어떤 상태? 틀린 상태 ✏️ 불규칙한 실패는 동시성인 경우가 많다. ✏️ 상태 비공유 특성(No Shared State) - 액터 DAY 6 오늘 읽은 범위: 6장. 동시성 😉 책에서 기억하고 싶은 내용을 써보세요. 🟢 동시성은 둘 이상의 코드 조각이 실행될 때 동시에 실행 중인 것처럼 행동하는 것이다. 그리고 병렬성이란 실제로 동시에 실행되는 것이다. (P.241) 동시성 -> 파이버, 스레드, 프로세스 등을 사용하여 동시성을 구현 병렬성 -> 두 가지 일을 동시에 할 수 있는 하드웨어가 필요 🟢 사용자와 상호작용하고, 데이터를 불러오고, 외부 서비스를 호출하는 일을 동시에 해야 한다..

5장. 구부러지거나 부러지거나
Books/실용주의 프로그래머 2022. 3. 30. 17:53

안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) 3줄 요약 ✏️ 구부러지는 유연한 코드를 작성하자. ✏️ 묻지 말고 말하라, TDA ✏️ 내 코드가 도도새가 되지 말자. DAY 5 오늘 읽은 범위: 구부러지거나 부러지거나 😉 책에서 기억하고 싶은 내용을 써보세요. 🟢 가능한 한 느슨하고 유연한 코드를 작성해야 한다. (P.181) 🟢 유연함을 유지하는 한 가지 좋은 방법은 물론 가능한 한 코드를 적게 작성하는 것이다. 이런 모든 기법을 활용하면 여러분의 코드가 부러지지 않고 구부러질 것이다. (P.182) 결합도 줄이기 🟢 높은 결합도는 변경의 적이다. (P.182) 🟢 소프트웨어의 구조는 유연해야 한다. (P.183) 🟢 결합도가 낮은 코드가 바꾸기 쉽다. (..

4장. 실용주의 편집증
Books/실용주의 프로그래머 2022. 3. 25. 01:54

안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) 3줄 요약 ✏️ 완벽한 소프트웨어는 만들 수 없어.. 안전한 소프트웨어를 만들자. ✏️ 망치지 말고 멈춰! ✏️ 이상적이지만 언제나 교체 가능한 코드를 작성하여 대비하자. DAY 4 오늘 읽은 범위: 4장 실용주의 편집증 😉 책에서 기억하고 싶은 내용을 써보세요. 여러분은 완벽한 소프트웨어를 만들 수 없다. 🟢 실용주의 프로그래머는 자기 자신 역시 믿지 않는다. 자신의 실수에 대비한 방어책을 마련한다. (P.146) 🟢 불완전한 시스템, 어림도 없는 기간, 우스꽝스러운 도구, 불가능한 요구사항으로 가득 찬 세상에서 안전하게 살아 보자 (P.147) 계약에 의한 설계 🟢 DBC - 계약에 의한 설계(Design By..

3장. 기본 도구
Books/실용주의 프로그래머 2022. 3. 23. 19:54

안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) 3줄 요약 ✏️ 셸로 능률을 향상시키자. 잘하면 자동화도 할 수 있겠다. ✏️ 버전관리는 정말 중요하고 git을 더 잘 다룰수 있도록 노력하자. ✏️ 버그를 해결하는 것도 찾는 것도 능력이다. DAY 3 오늘 읽은 범위: 3장 기본 도구 😉 책에서 기억하고 싶은 내용을 써보세요. 서론 🟢 도구는 여러분의 재능을 증폭한다. 언제나 일을 하는 데에 더 나은 방법이 없는지 살펴라 (P.104) 일반 텍스트의 힘 🟢 우리가 수집하는 요구 사항은 지식이고, 우리는 그 지식을 설계와 구현, 테스트, 문서로 표현한다. (P.105) 🟢 일반 텍스트가 널리 쓰이는 이유. 지원 중단에 대한 보험 - 데이터가 남아 있는 한 그걸 사..