분류 전체보기(137)
-
JavaScript Closure
Closure (클로저) 함수가 자신이 선언됐을 때의 환경인 스코프를 기억하여 자신이 선언됐을 때의 환경 밖에서 호출되어도 그 환경에 접근할 수 있는 함수를 뜻한다. (함수가 실행되는 위치가 어디인지는 관계가 없다. ) 렉시컬 스코프 스코프는 함수를 호출할 때가 아니라 함수를 어디에 선언하였는지에 따라 결정이 된다. 이를 렉시컬 스코핑이라고 한다. var x = 1; function foo() { var x = 10; bar(); } function bar() { console.log(x); } foo(); // 1 bar(); // 1 언뜻보면 foo에서 실행이 되어 x가 foo 내부의 x를 가리킬 것 같지만 실제 bar가 선언됐을 당시의 x인 1을 가리키게 된다. 이처럼 렉시컬 스코프는 함수를 어디서..
2022.04.13 -
테스트 주도 개발 / TDD의 정의와 장단점
개요 개발자라면 한번쯤은 테스트 주도 개발 (TDD)에 대해 들어봤을 것이다. 테스트 위주의 코드 작성으로 알고있는 TDD의 장점과 단점을 살펴보고 대략적인 이해를 주는 것이 본 포스팅의 목적이다. 장/단점에 대한 내용은 hoons.net에 14년도에 작성된 http://www.hoons.net/Lecture/View/644 포스팅을 정리한 내용이다. TDD란? TDD의 개발 흐름도 테스트 주도 개발(Test-Driven Development, TDD)은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다. 개발자는 먼저 요구사항을 검증하는 자동화된 테스트 케이스를 작성한다. 그런 후에, 그 테스트 케이스를 통과하기 위한 최소한의 코드를 생성한다. 마지막으로 작성한 코드를 표준에 맞도..
2022.04.13 -
[네트워크] get과 post의 차이
GET 이란? GET 은 클라이언트에서 서버로 어떠한 리소스로 부터 정보를 요청하기 위해 사용되는 메서드이다. 예를들면 게시판의 게시물을 조회할 때 쓸 수 있다. GET을 통한 요청은 URL 주소 끝에 파라미터로 포함되어 전송되며, 이 부분을 쿼리 스트링 (query string) 이라고 부른다. 방식은 URL 끝에 " ? " 를 붙이고 그다음 변수명1=값1&변수명2=값2... 형식으로 이어 붙이면 된다. 예를들어 다음과 같은 방식이다. www.example.com/show?name1=value1&name2=value2 서버에서는 name1 과 name2 라는 파라미터 명으로 각각 value1 과 value2 의 파라미터 값을 전달 받을 수 있다. GET의 특징 GET 요청은 캐시가 가능하다. : GET..
2022.04.13 -
code splitting / 번들링
Code Splitting Dynamic Imports Code Splitting in React The Async Component HOC React.lazy & Suspend 예제 Issue with React Router Loadable Components 예제 Lodable vs React.lazy 그 외의 Lodable 기능 정리 Library Spitting Dynamic Full Import (import(./${value}) Suspense React.Suspense lodable option props Preload Code Splitting 적용 전과 후 비교 적용 전 적용 후 webpack을 이용하여 좀 더 번들링된 파일 최적화 하기 Setting ouput filename Magic..
2022.04.13 -
REDUX란?
리덕스(Redux) 리덕스는 자바스크립트를 위한 상태 관리 프레임워크다. 컴포넌트 코드로부터 상태 관리 코드를 분리 할 수 있다. 서버 렌더링 시 데이터 전달이 간편하다. 로컬 스토리지에 데이터를 저장하고 불러오는 코드를 쉽게 작성할 수 있다. 같은 상태 값을 다수의 컴포넌트에서 필요로 할 때 좋다. 부모 컴포넌트에서 깊은 곳에 있는 자식 컴포넌트에 상태 값을 전달할 때 좋다. 알림창과 같은 전역 컴포넌트의 상태 값을 관리할 때 좋다. 페이지가 전환되어도 데이터는 살아 있어야 할 때 좋다. 세 가지 원칙 리덕스 사용 시 따라야할 세 가지 원칙이있다. 전체 상태 값을 하나의 객체에 저장한다. 상태 값은 불변 객체이다. 상태 값은 순수 함수에 의해서만 변경되어야 한다. 부수 효과: 외부의 상태를 변경하는 것..
2022.04.13 -
HTTPS란?
HTTP Secure의 약자이며 HTTPS를 사용하여 전송되는 데이터는 TLS를 통해 보호된다 TLS는 Certificate Authority(CA)라 불리는 서드 파티로부터 서버와 클라이언트 의 인증을 하는데 사용된다. SSL(TLS) 동작방식 클라이언트가 서버에 접속하며 랜덤 데이터를 전송. (Client hello) 서버가 Client hello에 대한 응답으로 Server hello를 함 (이때 인증서와 랜덤데이터 제공) 클라이언트의 브라우저에서 서버가 건네준 인증서가 CA에서 발급된건지를 확인하고 공개키로 인증서를 복호화한다. (인증서가 믿을 수 있다고 판단함) 클라이언트와 서버의 각각의 랜덤 데이터를 가지고 클라이언트에서 pre master secret값을 만들어냄 (대칭키) pre maste..
2022.04.13