React : JavaScript 오픈소스 라이브러리 UI에 집중한 라이브러리 3가지 특징으로 프론트엔드 개발을 효율적으로 할 수 있게 해줌 컴포넌트를 먼저 개발(Bottom-up 개발 방식) 장점 1. 복잡한 UI를 이전보다 쉽게 구현 2. JS문법을 사용하여 따로 공부할 문법이 적음 3. 많이 사용되기 때문에 참고할 레퍼런스가 많음 4. 컴포넌트 기반이라 재사용 용이 5. React-Native와 문법이 같아서 모바일 개발도 가능 특징 1. 선언형 JSX(HTML과 JS가 결합한 문법)을 기반으로 명시적으로 코드를 작성 코드만 보고도 실제 웹 애플리케이션의 모습과 기능을 상상할 수 있음 2. Component Based 컴포넌트 기반 컴포넌트 : 하나의 기능 구현을 위해 여러 종류의 코드를 묶어놓은 ..
비동기 요청의 대표적인 사례: 네트워크 요청 JSON에서 데이터를 문자열로 다루는 이유는(객체, 배열도) 주고받는 과정에서 데이터가 변하지 않길 바라기 때문 fetch API : url로 네트워크에 요청할 수 있게 해주는 API (API: Application Programming Interface. 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법) axios 라이브러리 : 브라우저, Node.js를 위한 Promise API를 활용하는 HTTP 비동기 통신 라이브러리 fetch API보다 사용이 간편하고 추가 기능이 있음 axios fetch api 3rd-party 라이브러리 built-in API JSON데이터 자동 변환 .json() 메서드 사용해야함 response -> data r..
"나쁜 코드에 주석을 달지 마라. 새로 짜라" -브라이언 W. 커니핸, P.J. 플라우거 잘 달린 주석은 그 어떤 정보보다 유용 경솔하고 근거 없는 주석은 코드를 이해하기 어렵게 만듦 오래되고 조잡한 주석은 거짓과 잘못된 정보를 퍼뜨림 주석은 필요악 프로그래밍 언어 자체가 표현력이 풍부하거나 개발자가 프로그래밍 언어를 치밀하게 사용해 의도를 표현할 능력이 있다면 필요하지 않음 코드로 의도를 표현하지 못해 실패를 만회하기 위해 주석을 사용(주석 = 실패) Good: 코드로 의도를 표현 주석을 다는 것 = 표현력이 없는 것 코드는 변화하고 진화하지만 주석은 유지보수하지 않기 때문에 오래될수록 코드에서 멀어짐 부정확한 주석은 주석이 아예 없는 것보다 나쁘다 : 지킬 필요 없는 규칙이나 지켜서는 안 될 규칙을 ..
Promise : 비동기 작업이 맞이할 미래의 완료 또는 실패와 그 결과 값을 나타냄 미래의 어떤 시점에 결과를 제공하겠다는 '약속'(프로미스)을 반환 Promise의 상태 - 대기(pending) : 이행/ 거부하기 전 초기 상태 - 이행(fulfilled) : 연산 성공 - 거부(rejected) : 연산 실패 Promise의 callback 함수의 매개변수 resolve, reject : 성공할 경우 then으로 받은 resolve 함수 실행 실패(에러)할 경우 catch로 받은 reject 함수 실행 에러 전달(혹은 then의 두번째 인자) then 메서드는 onFulfilled, onRejected(성공, 실패)를 인자로 받음 catch(failureCallback) === then(null, ..
어떤 프로그램에서든 가장 기본적인 단위: 함수 안 좋은 함수 : 길이가 긺 중복된 코드 괴상한 문자열(이름) 추상화 수준이 너무 다양 함수를 잘 만드려면(읽고 이해하기 쉽게) 1. 작게 만들 것 - 블록과 들여쓰기 if/ else/ while 등에 들어가는 블록은 한 줄(= 함수 호출)이어야 함 : 이를 감싸는 함수가 작아질 뿐만 아니라, 내부 함수 이름을 적절히 짓는다면 코드를 이해하기 쉬워짐 2. 한가지만 할 것 여러 기능을 수행하는 것이 아닌 한 가지만 잘 할 것 - 함수 내 섹션 섹션이 자연스럽게 나눠진다면 여러 작업을 하는 것. 한 가지 작업만 하는 함수는 섹션으로 나누기 어려움 3. 함수 당 추상화 수준은 하나로 함수가 한가지 작업만 하려면(2) 함수 내 모든 추상화 수준이 동일해야 함 한 함..
