1.TypeScript로 계속해서 컴파일을 진행하기 귀찮을 경우(계속해서 수정이 진행되야 하는 작업중인 경우) tsc "fileName.ts" -w 또는 tsc "fileName.ts" --watch를 통해 파일이 변경(저장)된 경우 자동으로 컴파일된다.
하지만 개별 파일단위로 지정해야 하기 때문에 규모가 큰 경우에는 사용되지 않는다.
2.위와 같은 개별지정이 불편할 경우 tsc --init을 통해 이 프로젝트가 타입스크립트로 작업한다는 것을 알려줘 tsconfig.json 파일이 생기며
tsc라는 명령어를 터미널에 입력해 모든 파일을 컴파일한 다음
수정사항이 생기면 자동으로 그 파일을 컴파일한다.
3.tsconfig.json에서는 객체 내부에 여러가지 설정을 할 수 있는데
exclude :{}의 객체 내부에 파일명을 작성할 경우 그 파일은 컴파일에서 제외된다.
*.dev.ts로 설정할 경우 접미가 .dev.ts인 경우 컴파일에 제외되며
**/를 추가하면 모든 폴더로 범위가 확장된다.
또한 일반적으로는 "node_modules"는 자동으로 제외되어있다.
include를 설정하게 되면 include가 아닌 모든 파일들이 컴파일 되지 않기 때문에 개별적 통제를 원할 경우 include를 사용하는 것도 고려할 수 있다.
files는 include와 유사하지만 개별 파일들만 개별단위로 처리되며 include는 폴더단위로도 처리된다는 차이점이 있다고 한다.
4.TypeScript에서는 target 부분에서 컴파일 할 js의 버전을 선택할 수 있는데 이를 통해 편하게 변환할 수 있다.
(es6부터 let, const가 추가되었다)
5.lib은 처리할 수 있는 기능들에 대해 명시하지만 작성하지 않는다면 target을 따라가는 기본 설정이 되어있기 때문에 일반적으로는 건드릴 필요는 없다.
6.sourceMap 기능을 이용하면 TypeScript를 개발자도구에서 볼 수 있어 디버깅을 쉽게 할 수 있다.
7.outDir과 rootDir을 통해 어디에 있는 파일을 컴파일 해 어디에 위치시킬지를 정할 수 있다.
rootDir을 설정하지 않을 경우 상위폴더까지 outDir 폴더 내부에 지정될 수 있기 때문에 outDir을 사용할 경우 rootDir을 같이 사용해 주는 것이 좋다.
8.removeComments를 true로 사용할 경우 모든 주석이 삭제처리된다.
개발을 진행할 때는 편하게 주석을 사용해도 컴파일 후에는 주석이 사라지기 때문에 파일 크기를 줄일 수 있고 정보 유출도 걱정하지 않아도 된다.
9.noEmitOnError은 default가 false인데 true로 설정할 경우 정상작동 여부와 관계없이 에러가 발생한 파일은 컴파일을 하지 않게 처리하는 설정이다.
10.noUnusedParameters는 함수 내부 값이 사용되지 않을 경우 에러로 표기해주는 기능이며
noImplicitReturns는 함수가 return을 조건에 따라 사용할 경우 경고하는 기능을 가지고 있다.
return의 값의 차이는 따지지 않지만 return자체를 하지 않는다면 실수일 수 있음을 알려주는 기능이라고 생각된다.
11.Ajax, Comet의 단점들을 해결하기 위해 WebSocket이 탄생했다.
단방향이 아닌 양방향 통신이 가능한데
시작은 클라이언트의 첫 접속으로 진행되지만
그 이후로는 접속을 유지하는 동안 자유자재로 통신이 된다는 특징이 있다.
주요 특징은 아래와 같은 점들이 있다.
-서버에서 푸시가 가능
-접속 유지로 인한 통신량 감소
-핸드쉐이크
12.책에는 HTTP/2.0이 먼 미래에 나올 것 같다고 하고 있지만
2.0을 이미 본 기억이 났기 때문에 자세히 보니 12년 8월 기준이었다.
예전 책임에도 상당히 잘 정리했기 때문에 아직까지 추천도서인 것 같다..
HTTP/2.0에서 논의되는 기술은 다중화, TLS의 의무화, 네고시에이션, 클라이언트 풀/서버 푸시, 흐름 제어, WebSocket 등이 있다.
22년 11월 현재는 이미 3.0까지 개발된 상태로
2.0의 실제 개발 방향은 TLS 비의무화(하지만 대부분 사용)의 차이점정도가 있으며 헤더압축, 서버푸시, 우선순위 부여 등 SPDY와 유사한 기능이 많다.
정보를 찾아봤지만 MND등에도 최신화는 잘 되지 않았는데
이런저런 검색을 통해 확인해보니 개발자 도구를 통해 3.0까지 사용되고 있는 모습을 볼 수 있었으며
이전버전들이나 사용할 것 같은 HTTP 1.1도 의외로 많이 사용되고 있다는 것을 알 수 있었다.

13.WebDAV는 Web-based Distributed Authoring and Versioning의 약자로 HTTP/1.1을 확장한 프로토콜로 정의되어있다.
주 기능은 웹 서버의 파일을 관리하는 것으로
작성, 삭제, 관리, 잠금, 갱신관리 등의 기능이 있다.
WebDAV를 다루기 위해 아래와 같은 메서드들이 있으며
PROPFIND - 프로퍼티 취득
PROPPATCH - 프로퍼티 변경
MKCOL - 컬랙션 작성
COPY - 리소스 및 프로퍼티 복제
MOVE - 리소스 이동
LOCK - 리소스 잠금
UNLOCK - 리소스 잠금 해제
메서드들의 추가로 인한 상태 코드들도 확장되어 있다.
102 Processing - 처리중
207 Multi-Status - 복수의 상태
422 Unprocessable Entity - 틀린 내용
423 Locked - 잠긴 리소스
424 Failed Dependency - 리퀘스트 실패로 인한 의존관계 유지 실패
507 Insufficient Storage - 기억 영역 부족
14.ARM 프로세서는 Advanced RISC Machine의 약자로 RISC가 핵심이다.
RISC는 Reduced Instruction Set Computing의 약자로
단순한 명령들의 집합으로 구성된 프로세서를 말한다.
구조 자체가 작고 간략한 설계이기 때문에
태블릿, 스마트폰 등에 이용되고 있으며
ARM베이스를 위해 개발된 프로세서는 ARM 기반 기기에서만 작동된다는 특징이 있다.
(1).백준 3004 체스판 조각은 체스판을 n번 평행하게 자를 때 나올 수 있는 최대 조각 숫자를 구하는 문제였다.
n = a+b로 분배한 다음 (1+a)(1+b)로 처리했다.
중간에 틀려서 자세히 보이 console이 들어가지 않은 문장이 있었다.
콘솔창에는 콘솔이 없어도 결과가 그냥 출력(계산결과)되기 때문에
이상한 점을 찾지 못했고 틀린 이유 자세히 살펴보다가 눈치챌 수 있었다..
의외로 콘솔만 보고 감지하기 어려운 것들 중 하나가 마지막 부분 콘솔 없이 반환되는 것과
string, number타입 비교가 색으로 차이나지 않는 부분이다.
let input = 100
if(input%2){
console.log((1+Math.floor(input/2))*(2+Math.floor(input/2)))
}
else{
console.log((1+input/2)**2)
}'회고' 카테고리의 다른 글
| [취업준비일지] - 24 (0) | 2022.11.13 |
|---|---|
| [취업준비일지] - 23 (0) | 2022.11.12 |
| [취업준비일지] - 21 (0) | 2022.11.10 |
| [취업준비일지] - 20 (0) | 2022.11.09 |
| [취업준비일지] - 19 (0) | 2022.11.08 |
