값vs타입, 원시 타입
·
✒️Notes/📕공부기록
📚 책 정보 - 우아한 타입스크립트 with 리액트 (2023) - 우아한 형제들 웹프론트개발그룹 지음 📝 목차 - 값vs타입 - 원시 타입 📍값vs타입 값 공간과 타입 공간의 이름은 서로 충돌하지 않음 - 타입과 변수를 같은 이름으로 정의할 수 있음 (타입스크립트 type 문법은 컴파일 시 제거되기 때문) type Developer = { isWorking: true }; const Developer = { isTyping: true }; // OK ES6의 class 문법은 값과 타입으로서 동시에 사용됨 - 타입스크립트에서는 클래스를 타입 어노테이션으로 사용 가능 - 자바스크립트에서는 런타임에서 객체로 변환되어 자바스크립트의 값으로 사용됨 class Developer { name: string; do..
구조적 타이핑, 구조적 서브타이핑, 덕 타이핑
·
✒️Notes/📕공부기록
📚 책 정보 - 우아한 타입스크립트 with 리액트 (2023) - 우아한 형제들 웹프론트개발그룹 지음 📝 목차 - 구조적 타이핑 - 구조적 서브 타이핑 📍구조적 타이핑 아래 코드에서는 비슷하면서 서로 다른 타입이 호환된다. 타입스크립트는 구조로 타입을 구분하기 때문. (다른 언어였으면 타입 이름이 다르면 호환 불가) interface Dog { age: number; } interface Man { age: number; } let sundance = { age: 10 }; let kim = { age: 30 }; sundance = kim; // ok kim = sundance; // ok 📍구조적 서브타이핑 타입스크립트에서 타입은 집합의 개념이기 때문에, 특정 값이 string or number 타..
프로그래머의 뇌 - 8. 명명을 잘하는 방법
·
✒️Notes/📕공부기록
프로그래머의 뇌 (펠리너 헤르만스 지음) 📍목차 1장 | 코드 더 잘 읽기 1. 코딩 중 겪는 혼란에 대한 이해 2. 신속한 코드 분석 3. 프로그래밍 문법 빠르게 배우기 4. 복잡한 코드를 읽는 방법 2장 | 코드에 대해 생각하기 5. 코드를 더 깊이있게 이해하기 6. 코딩 문제해결을 더 잘하려면 7. 생각의 버그 3장 | 좋은 코드 작성하기 8. 명명을 잘하는 방법 📍이름이 중요한 이유 ✅식별자에는 타입, 변수, 메서드, 함수 등이 있으며, 식별자 이름이 중요한 이유는 대표적으로 4가지가 있다 1. 이름은 코드베이스의 상당 부분을 차지 예) 200만 줄의 코드에서 토큰의 33%, 문자열의 72%가 식별자에 해당 2. 코드 리뷰 시 이름의 역할 - 코드 리뷰 때도 식별자 이름이 자주 언급됨 - 평균적으..
프로그래머의 뇌 - 7. 생각의 버그
·
✒️Notes/📕공부기록
프로그래머의 뇌 (펠리너 헤르만스 지음) 📍목차 1장 | 코드 더 잘 읽기 1. 코딩 중 겪는 혼란에 대한 이해 2. 신속한 코드 분석 3. 프로그래밍 문법 빠르게 배우기 4. 복잡한 코드를 읽는 방법 2장 | 코드에 대해 생각하기 5. 코드를 더 깊이있게 이해하기 6. 코딩 문제해결을 더 잘하려면 7. 생각의 버그 📍왜 2번째 프로그래밍 언어가 1번째 보다 쉬울까? ✅전이(transfer) 이미 배운 지식이 다른 영역에서 유용하게 사용됨 근거리 전이 : 자바와 C# 처럼 가까운(비슷한) 영역 사이의 지식이 전이 원거리 전이 : C와 파이썬처럼 먼 영역 사이의 지식의 전이 => 근거리 전이가 일어날 가능성이 더 높다 ✅LTM에 저장된 프로그래밍 지식이 새로운 프로그래밍 개념을 배우는데 도움이 되는 형태 ..
프로그래머의 뇌 - 6. 코딩 문제해결을 더 잘하려면
·
✒️Notes/📕공부기록
프로그래머의 뇌 (펠리너 헤르만스 지음) 📍목차 1장 | 코드 더 잘 읽기 1. 코딩 중 겪는 혼란에 대한 이해 2. 신속한 코드 분석 3. 프로그래밍 문법 빠르게 배우기 4. 복잡한 코드를 읽는 방법 2장 | 코드에 대해 생각하기 5. 코드를 더 깊이있게 이해하기 6. 코딩 문제해결을 더 잘하려면 📍요약 ✅문제를 표현하는 방법은 문제에 대한 생각에 큰 영향을 미칠 수 있다 예) 고객을 리스트와 집합으로 표현하는 방법이 고객 객체를 저장하고 분석하는 방법에 영향을 줄 수 있다 ✅멘탈 모델 - 문제를 생각할 때 형성하는 정신적 표상 - 사람은 서로 경쟁하는 여러개의 정신 모델을 가질 수 있다 ✅개념적 기계 - 실제 컴퓨터가 어떻게 기능하는지를 추상적으로 표현한 것 - 기존의 스키마타(기억과 LTM)를 프로..
프로그래머의 뇌 - 5. 코드를 더 깊이있게 이해하기
·
✒️Notes/📕공부기록
프로그래머의 뇌 (펠리너 헤르만스 지음) 📍목차 1장 | 코드 더 잘 읽기 1. 코딩 중 겪는 혼란에 대한 이해 2. 신속한 코드 분석 3. 프로그래밍 문법 빠르게 배우기 4. 복잡한 코드를 읽는 방법 2장 | 코드에 대해 생각하기 5. 코드를 더 깊이있게 이해하기 📍요약 ✅코드를 깊게 이해하는 다양한 방법이 존재한다 1. 변수 역할 프레임워크 (role of variable) 2. 헝가리안 표기법 (현재는 안쓰임) 3. 텍스트 이해 전략 - 코드 읽기와 자연어 읽기가 매우 유사하므로, 자연어를 쉽게 배우는 능력을 통해 프로그래밍을 배우는 능력을 예측 가능 - 텍스트 이해 전략을 코드 읽기에 적용 가능 📍"변수 역할" 프레임워크 ✅핀란드의 사야니에미 교수가 만든 프로그램 내에서 변수 역할(총 11개)을 ..
프로그래머의 뇌 - 4. 복잡한 코드를 읽는 방법
·
✒️Notes/📕공부기록
프로그래머의 뇌 (펠리너 헤르만스 지음) 📍목차 1장 | 코드 더 잘 읽기 1. 코딩 중 겪는 혼란에 대한 이해 2. 신속한 코드 분석 3. 프로그래밍 문법 빠르게 배우기 4. 복잡한 코드를 읽는 방법 📍4-1. 복잡한 코드를 이해하는 것이 왜 어려울까? ✅작업 기억 공간 (Working Memory) 은 특정 문제에 대한 STM이다. 따라서 많아봐야 7개 정도의 공간 제한이 있다. 인지 부하(cognitive load) : WM이 처리할 수 있는 한계 인지 부하가 한도를 초과하면 과부하(overload) 상태가 된다 ✅인지 부하의 3종류 - 내재적 부하 : 문제 자체의 복잡도. 예) 피타고라스의 법칙을 이해. 3^2 + 4^2 = 5^2 - 외재적 부하 : 외부적 요인에 의해 문제에 추가된 것 예) 피..
프로그래머의 뇌 - 3. 프로그래밍 문법 빠르게 배우기
·
✒️Notes/📕공부기록
프로그래머의 뇌 (펠리너 헤르만스 지음) 📍목차 1장 | 코드 더 잘 읽기 1. 코딩 중 겪는 혼란에 대한 이해 2. 신속한 코드 분석 3. 프로그래밍 문법 빠르게 배우기 📍요약 ✅문법에 대한 지식이 많을 수록 코드를 읽을 때 청킹하여 쉽게 이해할 수 있다 ✅기억이 없어지는 것을 방지하기 위해, 의도적인 인출 연습이 필요 (무심코 검색하는 것보다 떠올리려고 노력해보기) 📍3-1. 문법을 기억하기 위한 팁 ✅업무 중단은 개발자의 생산성을 크게 저하 예) 모르는 메서드를 찾으려 검색하다가 메일 확인 등 다른 내용으로 빠지게 됨 => 작업하던 내용을 잊어버림 - 다시 업무로 돌아가는데 평균 15분 정도 걸림 ⭐따라서, 문법이나 메서드를 암기하고 있는 것은 개발 생산성을 상승시킬 수 있음 (LTM 활용 가능) ..