Skip to content

Instantly share code, notes, and snippets.

@parkchanjong
Last active October 16, 2018 08:47
Show Gist options
  • Save parkchanjong/cf9e8cd4df3f36d4e7b722de21fe8343 to your computer and use it in GitHub Desktop.
Save parkchanjong/cf9e8cd4df3f36d4e7b722de21fe8343 to your computer and use it in GitHub Desktop.
## 린터(linter)
* 코딩컨벤션과 에러체크 도와주는 툴
* 협업을 위해 코딩스타일을 설정하고 규칙에 어긋난 코드를 맞추는것
* 코딩스타일 표준-> 코딩 컨벤션(코드작성할때 추천하는 코딩스타일, 괜찮은 사례등을 모아놓은 가이드라인)
* 자바스크립트 es 린트 많이 사용
## 코드유지보수
* 정적분석
* 줄바꿈, 메소드 길이,변수명 형식, 언더바,카멜케이스(중간중간 대문자로 낙타처럼..)
* 동적분석
* 메모리누수 등
* 테스트
* pr 할때 테스트 코드도 같이 보내달라고함 - 없으면 나중에 소스가 수정될때 어떤 영향을 미치는지 알수 없음
* 개발부채
## 함수형 프로그래밍
* 함수적 접근방식으로 문제 해결
* 특징
* 불변성
* First-class, higher-order functions
* lazy evaluation
* 병렬 처리가능- 많은cpu 사용 가능
## 일급시민 -함수에 대해서 일급시민을 지원해야함
* 함수를 일급 시민으로 관리
* 함수가 Argument로 전달될수 있다
* 리턴값이 함수가 될수 있다
* 함수를 값처럼 할당하기도 하고 수정하기도 한다
* value
* type
* object
* entity
## 불변성
* 함수형 프로그래밍 언어는 불변성 지향, 변경 가능한 상태를 최대한 제거하려고 노력
* 순수함수(내부상태를 갖지 않아 같은 입력에 대해서는 항상 같은 출력) 지향, 부작용이 없는 함수
* ex)삼각함수 - 내부상태가 존재하지 않고 출력값은 입력값에만 영향 받음
* 특징
* 프로그램 검증쉽다- 테스트 코드 작성 하기 쉽다
* 최적화 가능
* 동시성 프로그램을 작성하기 쉽다
* 메모이제이션-반복되는 결과를 메모리에 저장해서 같은 결과가 나올때 실행하는 것
## lazy evaluation
* 어떤 값이 실제로 쓰이기 전까지 그값의 계산을 최대한 미루는것
* 장점
* 필요할때 계산하므로 메모리 효율적 사용가능
* 무한 자료구조를 만들어 사용가능
* 실행도중 오류 피할수 있음(컴파일 타임 체킹)
* 컴파일러 최적화
## string interpolation
* 문자열 보간
* 문자열내에 변수와 같은 동적인 값을 출력하기 위해 사용되는 것
## 절차지향형 프로그래밍
* 순차적처리 - 프로그램 전체가 유기적으로 연결되도록 만듬
* c언어
## 리덕트
* 자바스크립트 프레임워크
* 자바스크립트 어플리케이션을 위한 예측가능한 스테이트 컨테이너
* ![캡처](.\캡처.PNG)
* ![캡처2](.\캡처2.PNG)
* 데이터가 앱에 전달되서 뷰가 데이터 출력
* 데이터는 독립된 버킷형태로 존재
* 리덕트 -데이터 조종 리액트 -뷰, 유저가 실제 상호 작용,앱 조종
* 스테이트 컨테이너
* 한오브젝트 안에 모든 앱 데이터를 집중시킴
* ![캡처2](.\캡처3.PNG)
* 리덕트는 현재 카운터의 스테이트를 추적
* 앱의 스테이트를 포함하고 데이터가 컴포넌트를 뭘 어떻게 렌더링 할지 알려줌
* 어떻게 스테이트를 디자인 하는지 중요(모델링)
![캡처2](.\캡처4.PNG)
* 유저가 이미지에 반응- 좋아요! -
![캡처2](.\캡처5.PNG)
https://user-images.githubusercontent.com/29893072/46244260-3a86ba00-c417-11e8-8bc2-a7694306317c.PNG
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment