본문 바로가기
끄적끄적

코드스테이츠 - 1주차 메모 모음글

by 측면삼각근 2019. 11. 17.
728x90
반응형

191112

Sptring - 
Code Quality
1. 작성한 코드가 의도한 대로 동작하는가?
2. 작성한 코드에 결함이나 문제가 없는가?
3. 작성한 코드가 읽기 쉽고 유지 보수가 용이한가?

Linting  & Testing 을 통해 코드 Quality를 높일 수있다.

Linting is the process of running a program that will analyse code for potential errors.

Testing을 통해 의도대로 동작하는지, 결함 - 문제가 없는지 tesing을 통해 확인 할 수 있다.

Testing Tool
1. End to End Test
2. Integration Test
3. Unit Test -> 학습할것 Jest ; Facebook에서 만듬


ESLint
JS Linting 유틸리티
대부분의 프로그래밍 언어는 컴파일 하는 과정이 있어 컴파일시 수행되는 Linter가 내장되어있다. 그러니 역동적이고 느슨한 언어인 Js는 이러한 Linter가 존재하지 않는다. Js는 별도의 컴파일 과정이 없고 Node나 Browser에서 바로 실행되기 때문이다. 따라서 Js 개발시 구문오류나 기타 오류를 찾기 위해서는 실제 실행까지 시켜봐야 한다.
하지만 ESLint같은 Linting도구를 사용하면 Js를 실행하지 않고도 기본적인 문제를 발견할 수 있다.

사용 환경
ESLint를 사용할 수 있는 환경은 두 가지가 존재한다.

첫번째로 JavaScript 개발시 사용되는 IDE/Editor 에 지원되는 ESLint 플러그인을 설치하는 것이고,
두번째로 webpack 을 사용하여 webpack 번들링시 eslint-loader 를 추가하여 사용하는 것이다.
물론 두 개 같이 사용할 수도 있다. 두 개 같이 사용하게 되면 좀 더 편리한 JavaScript 개발환경을 구축할 수 있다. 

환경 설정
ESLint를 사용할 때 환경 설정 파일이 존재한다.
이 환경 설정 파일을 참고하여 Linter 는 소스코드 체크를 수행한다.
환경 설정은 IDE/Editor 에 따라서 별도의 UI로 제공되는 경우도 있고,
환경 설정 파일 내용을 오픈 소스로 공개하여 자신들만의 ESLint 환경 설정을 배포하기도 한다. (대표적으로 Airbnb, Naver 등등.. 이 있다.)
자신만의 Linting 설정을 하고자 한다면 ESLint 공식 홈페이지 에서 확인하여 설정할 수 있다.

Object.values 하면 values 값만 return

 

191113

 

외부함수의 context에 접근할 수 있는 내부함수
외부함수가 실행 종료된 뒤에도 반환된 내부함수가 계속 이 외 함수의 스코프를 참조할수있다.

git init : 스스로 프로젝트 만들기(프로젝트 시작)
+ 깃허브에서 프로젝트를 어떻게 만들것인가!

Branching
other git commands(merge, fetch, stash...)

1. Linter : 코드 스타일을 지키는지 체크해 주는 툴
읽기 좋은 코드, 유지 보수하기 좋은 코드를 만드는데 큰 도움
2. Tester
작성한 코드가 의도한 대로 동작하는지, 결함이 없는지 자동화하여 테스트 해주는툴

npm list -g --depth=0
packaging manager yarm/npm

터미널에서 node 명렁어 입력하면 콘솔처럼 칠 수있음.

 

191114

git push 1(remote name) master
git push origin master

git pull remote master
git pull ~ master

git pull 시에는 별다른 권한없이 코드를 가져올 수 있다.
깃허브에 코드를 올렸다는 것 자체가 코드 공개를 시사하는것이기때문에

페어는 git pull 1 master 
git remote add pair(이름 수정 가능) 

git --help

lint 와 pretitier(프리티어) 의 차이
lint - code의 룰('string' or "string")
프리티어 : 코드의 모양
if(){
}
or
if()
{
}

그런데 프리티어에서도 일부설정하는게 있는데 왜??
린트는 안쓰면 에러를 내고 프리티어는 그냥 바꾸어줌

프리티어를 쓰지 않으면 린트 rule설정대로 설정해주어야함
린트 너 무 중 요 함!


stack 
push
pop
top
size
isEmpty

high level - backbutton
low level - callstack : Maximum call stack over flow

서버접속의 대기열, 프린터
que

push
shift


191115

__prototype__과 protoType는 다름

Object.create()는 상속이라고 하기엔 비슷하지만 조금 부족함.
protoType엔 존재하지 않기때문에!

test하는 방법 : console.log(Object.prototype)
vs 코드에서 ,debugger stop point 를 찍고 실행하면나옴

Object.create()를하면 prototype 이 아니라 __prototype_에 object1 자체가 들어감!!
-> obj1 === obj2.__prototype___
obj1 : 조상
obj2 : 상속받는 객체
--> obj2 는 빈객체라고 할 수 있음.
obj2

prototype chain

constructor ->  ?

new 키워드로 인스턴스가 만들어질때 새로 만들어지는 인스턴스의 __Proto__가 들어갈 객체
Object.create 는 그냥 prototype을 가르킴?

call은 this를 바인딩한상태로 함수를 바로 실행시키고
bind는 this값이 바인딩된 함수를 리턴한다.

 

반응형