<객체지향의 사실과 오해> 1.협력하는 객체들의 공동체
·
🤓 기술 학습 & 공부 기록/컴퓨터 일반
1. 협력하는 사람들📍 커피 공화국의 아침역할, 책임, 협력이 모든 곳에 존재예) 카페에서- 캐시어: 손님에게 커피가 준비됐음을 알리는 역할- 손님: 커피를 받아서 돌아가는 역할 📍 요청과 응답으로 구성된 협력요청- 손님 -> 캐시어: 커피 주문 요청- 캐시어 -> 바리스타: 커피 제조 요청 응답- 바리스타 -> 캐시어: 커피 제조 완료 응답- 캐시어 -> 손님: 커피 준비 완료 응답  📍 역할과 책임역할: 어떤 협력에 참여하는 특정한 사람이 협력 안에서 차지하는 책임이나 임무예)- 손님: 커피를 주문하는 임무- 캐시어: 손님으로부터 주문을 받는 임무- 바리스타: 주문된 커피를 제조할 책임 역할은 책임을 내포- 예) 범죄자를 검거할 책임을 거부하면 경찰이 아니다 역할의 특징 4가지1) 여러 사람이 ..
프로그래머의 뇌 - 8. 명명을 잘하는 방법
·
🤓 기술 학습 & 공부 기록/컴퓨터 일반
프로그래머의 뇌 (펠리너 헤르만스 지음) 📍목차 1장 | 코드 더 잘 읽기 1. 코딩 중 겪는 혼란에 대한 이해 2. 신속한 코드 분석 3. 프로그래밍 문법 빠르게 배우기 4. 복잡한 코드를 읽는 방법 2장 | 코드에 대해 생각하기 5. 코드를 더 깊이있게 이해하기 6. 코딩 문제해결을 더 잘하려면 7. 생각의 버그 3장 | 좋은 코드 작성하기 8. 명명을 잘하는 방법 📍이름이 중요한 이유 ✅식별자에는 타입, 변수, 메서드, 함수 등이 있으며, 식별자 이름이 중요한 이유는 대표적으로 4가지가 있다 1. 이름은 코드베이스의 상당 부분을 차지 예) 200만 줄의 코드에서 토큰의 33%, 문자열의 72%가 식별자에 해당 2. 코드 리뷰 시 이름의 역할 - 코드 리뷰 때도 식별자 이름이 자주 언급됨 - 평균적으..
프로그래머의 뇌 - 7. 생각의 버그
·
🤓 기술 학습 & 공부 기록/컴퓨터 일반
프로그래머의 뇌 (펠리너 헤르만스 지음) 📍목차 1장 | 코드 더 잘 읽기 1. 코딩 중 겪는 혼란에 대한 이해 2. 신속한 코드 분석 3. 프로그래밍 문법 빠르게 배우기 4. 복잡한 코드를 읽는 방법 2장 | 코드에 대해 생각하기 5. 코드를 더 깊이있게 이해하기 6. 코딩 문제해결을 더 잘하려면 7. 생각의 버그 📍왜 2번째 프로그래밍 언어가 1번째 보다 쉬울까? ✅전이(transfer) 이미 배운 지식이 다른 영역에서 유용하게 사용됨 근거리 전이 : 자바와 C# 처럼 가까운(비슷한) 영역 사이의 지식이 전이 원거리 전이 : C와 파이썬처럼 먼 영역 사이의 지식의 전이 => 근거리 전이가 일어날 가능성이 더 높다 ✅LTM에 저장된 프로그래밍 지식이 새로운 프로그래밍 개념을 배우는데 도움이 되는 형태 ..
프로그래머의 뇌 - 6. 코딩 문제해결을 더 잘하려면
·
🤓 기술 학습 & 공부 기록/컴퓨터 일반
프로그래머의 뇌 (펠리너 헤르만스 지음) 📍목차 1장 | 코드 더 잘 읽기 1. 코딩 중 겪는 혼란에 대한 이해 2. 신속한 코드 분석 3. 프로그래밍 문법 빠르게 배우기 4. 복잡한 코드를 읽는 방법 2장 | 코드에 대해 생각하기 5. 코드를 더 깊이있게 이해하기 6. 코딩 문제해결을 더 잘하려면 📍요약 ✅문제를 표현하는 방법은 문제에 대한 생각에 큰 영향을 미칠 수 있다 예) 고객을 리스트와 집합으로 표현하는 방법이 고객 객체를 저장하고 분석하는 방법에 영향을 줄 수 있다 ✅멘탈 모델 - 문제를 생각할 때 형성하는 정신적 표상 - 사람은 서로 경쟁하는 여러개의 정신 모델을 가질 수 있다 ✅개념적 기계 - 실제 컴퓨터가 어떻게 기능하는지를 추상적으로 표현한 것 - 기존의 스키마타(기억과 LTM)를 프로..
프로그래머의 뇌 - 5. 코드를 더 깊이있게 이해하기
·
🤓 기술 학습 & 공부 기록/컴퓨터 일반
프로그래머의 뇌 (펠리너 헤르만스 지음) 📍목차 1장 | 코드 더 잘 읽기 1. 코딩 중 겪는 혼란에 대한 이해 2. 신속한 코드 분석 3. 프로그래밍 문법 빠르게 배우기 4. 복잡한 코드를 읽는 방법 2장 | 코드에 대해 생각하기 5. 코드를 더 깊이있게 이해하기 📍요약 ✅코드를 깊게 이해하는 다양한 방법이 존재한다 1. 변수 역할 프레임워크 (role of variable) 2. 헝가리안 표기법 (현재는 안쓰임) 3. 텍스트 이해 전략 - 코드 읽기와 자연어 읽기가 매우 유사하므로, 자연어를 쉽게 배우는 능력을 통해 프로그래밍을 배우는 능력을 예측 가능 - 텍스트 이해 전략을 코드 읽기에 적용 가능 📍"변수 역할" 프레임워크 ✅핀란드의 사야니에미 교수가 만든 프로그램 내에서 변수 역할(총 11개)을 ..
프로그래머의 뇌 - 4. 복잡한 코드를 읽는 방법
·
🤓 기술 학습 & 공부 기록/컴퓨터 일반
프로그래머의 뇌 (펠리너 헤르만스 지음) 📍목차 1장 | 코드 더 잘 읽기 1. 코딩 중 겪는 혼란에 대한 이해 2. 신속한 코드 분석 3. 프로그래밍 문법 빠르게 배우기 4. 복잡한 코드를 읽는 방법 📍4-1. 복잡한 코드를 이해하는 것이 왜 어려울까? ✅작업 기억 공간 (Working Memory) 은 특정 문제에 대한 STM이다. 따라서 많아봐야 7개 정도의 공간 제한이 있다. 인지 부하(cognitive load) : WM이 처리할 수 있는 한계 인지 부하가 한도를 초과하면 과부하(overload) 상태가 된다 ✅인지 부하의 3종류 - 내재적 부하 : 문제 자체의 복잡도. 예) 피타고라스의 법칙을 이해. 3^2 + 4^2 = 5^2 - 외재적 부하 : 외부적 요인에 의해 문제에 추가된 것 예) 피..