Refactoring 2판 마틴파울러 2.5 ~ 정리 특정한 기술, 도구, 아키텍처 등을 내세울 때마다 항상 문제점을 찾는다. 무언가를 언제, 어디에 적용할지 판단하려면 손익을 제대로 이해해야 한다. 리팩터링의 궁극적인 목적은 개발 속도를 높여서, 더 적은 노력으로
client측에서만 사용하는 상태관리를 해야할 때가 있다. 따로 서버 측으로부터 데이터를 요청하는 것이 아니라, client 측에서 localStorage, cookie 등으로 관리를 해주어야 할 때가 있는데, Apollo Client에서는 이때 로컬 상태 관리를 직접
리팩터링 : 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 기법 리팩터링(하다) : 여러 가지 리팩터링 기법을 적용해서 소프트웨어를 재구성하다. 특정한 방식에 따라 코드를 정리하는 것만이 리팩터링이다. 리팩터링하는
Babel은 ES6+/ES.NEXT로 구현된 최신 사양의 소스코드를 IE 같은 구형 브라우저에서도 동작하는 ES5 사양의 소스코드로 변환(트랜스파일링)할 수 있다. Webpack은 의존 관계에 있는 자바스크립트, CSS, 이미지 등의 리소스들을 하나(또는 여러개)의 파
모듈(module)이란 애플리케이션을 구성하는 개발적 요소로서 재사용 가능한 코드 조각을 말함. 일반적으로 모듈의 기능을 기준으로 파일 단위로 분리함. 이때 모듈이 성립하려면 모듈은 자신만의 파일 스코프를 가질 수 있어야 함.✔️ 모듈은 공개가 피요한 자산에 한정하여
발생한 에러에 대해 대처하지 않고 방치하면 프로그램은 종료됨.Error 생성자 함수에는 에러를 상세히 설명하는 에러 메세지를 인수로 전달할 수 있음. Error 생성자 함수가 생성한 에러 객체는 message 프로퍼티와 stack 프로퍼티를 갖는다. message 프로
ES6에 도입된 제너레이터(generator)는 코드 불록의 실행을 일시 중지했다가 필요한 시점에 재개할 수 있는 특수한 함수 1\. 제너레이터 함수는 함수 호출자에게 함수 실행의 제어권을 양도할 수 있다. 제너레이터 함수는 함수 호출자가 함수 실행을 일시 중지 시키거
시스템과 사용자의 상호작용을 다이어그램으로 표현한 것. 사용자의 관점에서 시스템의 서비스 혹은 기능 및 그와 관련한 외부 요소를 보여주는 것이다.사용자가 시스템 내부에 있는 기능 중에 어떤 기능을 사용 할 수 있는지 나타내며 유스케이스 다이어그램을 사용함으로써 고객과
REST(Representational State Transfer)의 기본 원칙을 성실히 지킨 서비스 디자인을 "RESTful"이라고 표현 REST는 HTTP를 기반으로 클라이언트가 서버의 리소스에 접근하는 방식을 규정한 아키텍쳐고, REST API는 REST를 기반으
Ajax(Asynchronous Javascript and XML)란 자바스크립트를 사용하여 브라우저가 서버에게 비동기 방식으로 데이터를 요청하고, 서버가 응답한 데이터를 수신하여 웹페이지를 동적으로 갱신하는 프로그래밍 방식 🔖 Ajax 이전의 웹페이지 작동 방식
먼저 서버의 응답 결과를 반환하는 GET 요청을 위한 함수를 작성해보면, ⭐️ 비동기 함수 내부의 비동기로 동작하는 코드는 비동기 함수가 종료된 이후에 완료된다. 따라서 비동기 함수 내부의 비동기로 동작하는 코드에서 처리 결과를 외부로 반환하거나 상위 스코프의 변수에
지금껏 나는 그냥 무작정 기능들이 필요할 때마다 별다른 고민없이 컴포넌트를 무작정 만들어왔던 것 같다. 흑,, 괜차나 이제부터라도 제대로 고민해도... 늦지않아...(?)아무튼,,, 내가 "왜" 이 컴포넌트를 만드는지, 이 컴포넌트의 목적이 무엇인지 고민없이 만들면,
상황 : 기존의 커밋을 취소하고, 내가 한 커밋 파일 중 일부를 제외시키고 다시 커밋하고 싶을 때이전 커밋 되돌리기 git reset HEAD^커밋 잘 취소됬는지 확인해주기 git log제외시키고 싶은 파일 이름 확인하기 git statusgit add .해당 파일 제
Set 객체는 중복되지 않는 유일한 값들의 집합(set)이다. 배열과 유사하지만, Set 객체는 배열과 다르게 동일한 값을 중복하여 포함할 수 없고, 요소 순서에 의미가 없으며 인덱스로 요소에 접근할 수 없다. Set은 수학적 집합을 구현하기 위한 자료구조로, Set을
디스트럭처링 할당(destructuring assignment, 구조 분해 할당)은 구조화된 배열과 같은 이터러블 또는 객체를 destructuring(비구조화, 구조 파괴)하여 1개 이상의 변수에 개별적으로 할당하는 것을 말함. 배열 디스트럭처링 할당의 대상(할당문의
ES6에서 도입된 스프레드 문법(spread syntax) ...은 하나로 뭉쳐 있는 여러 값들의 집합을 펼쳐서 개별적인 값들의 목록으로 만듬.Arraym String, Map, Set, DOM 컬렉션(NodeList, HTMLCollection), arguments와
이터레이션 프로토콜 이터러블 이터레이터 빌트인 이터러블 for ...of 문 이터러블과 유사 배열 객체 이터레이션 프로토콜의 필요성 사용자 정의 이터러블 사용자 정의 이터러블 구현 이터러블을 생성하는 함수 이터러블이면서 이터레이터인 객체를 생성하는 함수 무한 이터러블
ES6에서 도입된 7번째 데이터 타입으로 변경 불가능한 원시 타입의 값. 주로 이름의 충돌 위험이 없는 유일한 프로퍼티 키를 만들기 위해 사용한다. 심벌 값은 Symbol 함수를 호출하여 생성! 👉 Symbol 값은 외부로 노출되지 않아 확인할 수 없으며, 다른 값과
자바스크립트 엔진은 한번에 하나의 태스크만 실행할 수 있는 싱글 스레드(single thread)방식으로 동작한다. 싱글 스레드 방식은 한 번에 하나의 태스크만 실행할 수 있기 때문에 처리에 시간이 걸리는 태스크를 실행하는 경우 블로킹(blocking, 작업중단)이 발
만약 함수를 명시적으로 호출하지 않고 일정 시간이 경과된 이후에 호출되도록 함수 호출을 예약하려면 타이머 함수를 사용한다. 이를 호출 스케줄링(scheduling a call)이라고 한다. 타이머 함수는 ECMAScript 사양에 정의된 빌트인 함수가 아님. 하지만