Computer Science
-
OSI model ( OSI 7 Layer )Computer Science 2023. 11. 28. 19:59
컴퓨터 네트워크 통신 과정을 7계층으로 나누어 개념적으로 분리해 놓은 것이다. 1. Physical Layer ( 물리 계층, 1계층, L1 ) 2. DataLink Layer ( 데이터링크 계층, 2계층, L2 ) 3. Network Layer ( 네트워크 계층, 3계층, L3 ) 4. Transport Layer ( 전송 계층, 4계층, L4 ) 5. Session Layer ( 세션 계층, 5계층, L5 ) 6. Presentation Layer ( 표현 계층, 6계층, L6 ) 7. Application Layer ( 어플리케이션 계층, 7계층, L7 ) Physical Layer ( 물리 계층, 1계층, L1 ) 통신 단위 예시 bit ( 0101 ) 허브, 리피터 등 Physical Layer..
-
[TypeScript] Declare 의 용도Computer Science/TypeScript 2023. 11. 19. 23:03
TypeScript에서 Declare 키워드는 주로 외부 라이브러리나 모듈을 정의할 때 사용된다. Declare의 용도는 함수, 클래스 등이 어딘가에 이미 선언이 되었다고 TypeScript 컴파일러에 알리는 용도이다. 즉 TypeScript로 작성되지 않은 코드에서 타입 정보를 주고 싶을 때 사용된다. 따라서 JS 로 변환될때 전부 사라진다. 이러한 이유로 Type 같은 경우에 어차피 JS 코드로 변환되지 않으므로 declare 키워드를 사용하지 않아도 된다. //index.ts type testType = { name: string; age: number; } const test: testType = { name: 'test', age: 10 } ///////////////////////// //in..
-
[ JavaScript ] For in 문 VS For of 문Computer Science/Aws 2023. 11. 11. 23:02
1. for in 문 for in 은 ES1부터 존재했던 방식이며 모든 객체에서 사용이 가능하다. 다만 해당 값의 value는 가져오지 못하며 key 값만 가져올 수 있다. let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; let object = { name: 'Nam', age: 23, city: 'Seoul' }; // 0,1,2,3,4,5,6,7,8 for(let i in arr) { console.log(i); } // name,age,city for(let i in object) { console.log(i); } 더욱이 for in 은 임의로 객체를 순회하여 반환해주기에 순서 등 유의해야한다면 사용하지 말 것을 권장한다. 2. for of 문 iterable 한 객체를 순회..
-
Git ( Rebase, Squash )Computer Science 2023. 11. 7. 09:46
1. Rebase 1.1 Rebase --onto 2. Squash 1. Rebase https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-Rebase-%ED%95%98%EA%B8%B0 Git - Rebase 하기 Rebase는 기존의 커밋을 그대로 사용하는 것이 아니라 내용은 같지만 다른 커밋을 새로 만든다. 새 커밋을 서버에 Push 하고 동료 중 누군가가 그 커밋을 Pull 해서 작업을 한다고 하자. 그런데 그 커 git-scm.com Git에서 한 Branch를 다른 Branch로 병합하는 방법은 크게 2가지가 있다. 하나는 Merge이고 다른 하나가 Rebase이다. Rebase는 말 그대로 현 Branch를 목표 Branch로 Base..
-
Utility Types ( Partial, Required, Pick&Omit )Computer Science/TypeScript 2023. 10. 21. 22:28
1. Utility Type이란 2. Partial 3. Required 4. Pick & Omit 1. Utility Type 이란 타입스크립트에서 기존에 존재하는 타입을 변환하여 새로운 타입을 만들어내는 데 사용되는 일련의 제네릭 타입. Utility Type을 통해 더 유연하게 타입을 조작하고 제공할 수 있다. 2. Partial 객체의 모든 속성을 옵셔널 타입으로 만들어준다. 주로 API에서 받아온 데이터의 형태가 일정하지 않거나, 일부 데이터만 필요할 때 사용된다. interface Product { id: number; name: string; price: number; description?: string; } function updateProduct(product: Partial) { } ..
-
Template Literal TypeComputer Science/TypeScript 2023. 10. 14. 15:54
1. Template Literal Type 2. Base 형태 3. Uniton Type을 이용한 Template Literal Type 4. 여러개의 Union Type을 이용한 Template Literal Type 5. Conditional Type을 같이 사용하여 추론하기 6. 공백 제거 및 특정 형태 쪼개기 7. 기타 8. 참조 1. Template Literal Type이란? String Literal Type을 기반으로 새로운 타입을 만드는 도구 2. Base 형태 type Champion = 'Malphite'; type ChampionLane = `${Champion} Top`; 위와 같이 한다면 string으로 Malphite Top을 만들 수 있는 Type을 생성한다. 3. Unio..
-
inferComputer Science/TypeScript 2023. 9. 30. 22:40
infer는 조건부 타입에서만 사용이 가능하다. Conditional types ( 조건부 타입 ) 조건부타입은 TypeScript에서 특정 조건에 따라 타입을 결정하는 기능이다. T extends U ? X : Y 형태를 가지며 이는 타입 T가 타입 U에 할당 가능하면 X 타입을 반환하고, 그렇지 않으면 Y 타입을 반환한다는 뜻이다. type IsString = T extends string ? "yes" : "no"; type Test1 = IsString; // "yes" type Test2 = IsString; // "no" infer 조건부 타입 내에서 동적으로 타입을 추론할 때 사용한다 type ReturnTypeOf = T extends (...args: any[]) => infer R ? ..
-
type vs interfaceComputer Science/TypeScript 2023. 9. 22. 22:57
https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#differences-between-type-aliases-and-interfaces Documentation - Everyday Types The language primitives. www.typescriptlang.org TypeScript 공식 사이트에서 간략하게 차이를 설명하고 있다. 1. 선언 Interface 와 type 모두 타입을 정의하는 주요 방법이지만, 선언 방식과 정의 할 수 있는 경우의 차이가 존재한다. 둘다 객체와 함수를 정의할 수 있지만 string, number, union, tuple 등 기본 타입은 type 에서만 선언 할 수 있으며 interface에서..