전체 글
-
[JavaScript] Object VS Map ( 성능 비교 )Computer Science 2023. 12. 2. 23:07
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Map Map - JavaScript | MDN Map 객체는 키-값 쌍과 키의 원래 삽입 순서를 기억합니다. 모든 값(객체 및 원시 값 모두)은 키 또는 값으로 사용될 수 있습니다. developer.mozilla.org Object 키를 문자열 또는 심볼로만 가질 수 있는 구조입니다. 위 링크에서도 나와있지만 Object는 역사적으로 Map으로 사용되어왔습니다. Map key, value 형태로 저장 가능한 자료구조로써 빠른 검색 등에 사용합니다. Object와는 다르게 키의 데이터 유형에 제약이 없습니다. Map은 Object를 상속하여 사용합니다. 하지만 당연..
-
TCP ( Transmission Control Protocol )Computer Science 2023. 12. 1. 00:03
TCP ( Transmission Control Protocol ) Transmission : 전송 Control : 제어 Protocol : 프로토콜 ( 통신 규약 ) OSI 7 Layer에서 Transport Layer ( 4계층 )을 사용하는 프로토콜로 3계층에서 사용하는 IP와 같이 묶어서 TCP/IP라고 많이 부릅니다. TCP란 TCP는 세그먼트 단위로 데이터 통신을 하기 위한 프로토콜이며 다음과 같은 특징을 가지고 있습니다. 1. 연결 지향적 TCP는 통신을 시작하기 전에 3-way handshake 방식으로 연결을 설정하고, 통신을 종료할때 4-way handshake 방식으로 연결을 종료합니다. 2. 신뢰성 있는 통신 TCP는 데이터 세그먼트의 순서, 손실을 관리하여 데이터가 정확하게 수신..
-
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..