
JavaScript와 TypeScript의 차이점
1) JavaScript
2) TypeScript
TypeScript의 장점
1) 높은 수준의 코드 탐색과 디버깅
2) 자바스크립트 호환
3) 강력한 생태계
4) 점진적 전환 가능
5) 프로젝트의 규모가 크고 복잡할수록, 유지보수가 중요한 장기 프로젝트일수록 타입스크립트의 이점이 부각될 것
=> 이러한 장점 덕분에 최근에 js진영에서 ts를 많이들 도입하고 있다.
TypeScript 기초문법과 사용법
1) 기본 타입 : Boolean, Number, String, Object, Array, Tuple, Enum, Any, Void, Null, Undefined, Never
2) 제네릭 : 타입을 마치 함수의 파라미터처럼 사용하는 것
function logText(text: T):T {
return text;
}
logText<string>('aa');
logText<number>(100);
3) 타입 추론 : 타입스크립트가 코드를 해석하는 과정
var a = true;
a = 100; //Error
4) 타입 단언 : 타입스크립트가 해석하는 것보다 더 확실한 목적을 가지고 개발자가 해당 코드에 타입을 직접 지정하는 것
var a;
a = 10;
a = 'string';
var b = a as string;
참고)
https://www.typescriptlang.org/
https://www.samsungsds.com/kr/insights/TypeScript.html
https://ko.strephonsays.com/javascript-and-vs-typescript-13697#menu-1
동기와 비동기란
동기(Synchronous)
비동기(Asynchronous)
blocking과 non-blocking의 차이
blocking
non-blocking
자바스크립트의 비동기 처리 기술 변화(callback부터 promise, async-await까지)
function add5(a, callback) {
setTimeout(() => callback(a + 5), 100)
// 100ms가 지난 후 함수로 입력받은 callback에 a + 10값을 다시 입력하여 callback함수 호출
}
add5(10, function (res) { // add5가 입력받는 callback함수 정의 부분
console.log(res)
});
function add10(a) {
return new Promise(resolve => setTimeout(() => resolve(a + 10), 100));
} //Promise사용 시 작업이 끝났음을 알려주는 resolve를 인자로 받아들임.
add10(10)
.then(add10)
.then(add10)
.then(add10)
.then((res) => console.log(res))
async function f1() {
const a = await add10(10);
const b = await add10(a);
console.log(a, b)
}
f1();
참고)https://www.youtube.com/watch?v=sN4E9_u7xQk
https://techlog.io/Javascript/General/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EB%B9%84%EB%8F%99%EA%B8%B0%ED%86%B5%EC%8B%A0-callback-promise-async-await-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0/
CORS란?

CORS의 동작 방식
1) Simple request

2) Preflight request

CORS를 사용하는 이유

참고)
https://beomy.github.io/tech/browser/cors/
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORc
Session과 Cookie 방식을 대체할 수 있는 JWT 방식이란?

JWT (JSON Web Toke)
장점
1) 세션/쿠키는 별도의 저장소의 관리가 필요하지만 JWT는 발급한 후 검증만 하면 되기 때문에 추가 저장소가 필요 없음
2) 확장성이 뛰어남
단점
1) 세션/쿠키 방식에서는 유저의 정보가 전부 서버의 저장소에 안전하게 보관됨 하지만 JWT는 유저의 중요한 정보들은 Payload에 넣을 수 없음
테스트 프레임워크란?
테스트의 종류

1) 유닛테스트
2) E2E 테스트
3) 통합테스트
jest 란?

또다른 테스트 프레임워크들

1) Mocha
2) Jasmine
참고) https://velog.io/@sms8377/Testing-%ED%85%8C%EC%8A%A4%ED%8A%B8%EC%9D%98-%EC%A2%85%EB%A5%98-%EB%B0%8F-Jest
https://marcofranssen.nl/jasmine-vs-mocha
https://jonnung.dev/javascript/2018/11/15/tdd-javascript-testing-framework/