인파

You Can Become A

늦게 시작해도 누구든지 노력하면 개발자가 될수 있어요 !

공부한 내용을 정리합니다
Snippet/Java 스니펫

🚀 JAVA 코드 실행 시간 측정하기

자바 코드 실행 시간 측정하기 밀리 초 측정하기 Java에서 기본적으로 제공하는 메서드중 System.currentTimeMillis 메서드를 이용하면 현재 시간을 밀리세컨드 단위로 출력할 수 있다. 다음과 같이, long 타입 변수 startTime, endTime에 각각 currentTimeMillis() 값을 입력받도록 하고, 두 시간의 차이를 밀리 세컨드 단위로 구하면 곧 코드 실행 시간이 된다. public static void main(String[] args) { long startTime = System.currentTimeMillis(); // 코드 시작 시간 // 코드 ... long endTime = System.currentTimeMillis(); // 코드 끝난 시간 long du..

category_image
인파_
2022.09.18
(0)
Snippet/JS 스니펫

🚀 객체로 구성된 배열 정렬 방법

자바스크립트 객체 배열 정렬 배열의 객체 요소들을 정렬하기 위해서는 객체 내의 속성을 키(key)로서 잡고 기준으로 정렬할지를 지정해야 한다. const user = [ { name: '홍길동', age: 40 }, { name: '임꺽정', age: 12 }, { name: '주몽', age: 23 }, { name: '척준경', age: 88 }, ]; 다음 user 라는 객체 배열을 정렬할 것인데, 각 원소의 객체 속성들을 보면 age 라는 넘버 값과 name이라는 스트링값이 있다. 이 age 와 name 속성을 기준으로 각각 나이순, 이름순으로 객체들을 정렬할 수 가 있다. // 나이순 오름차순 const result1 = user.sort((a, b) => a.age - b.age); conso..

category_image
인파_
2022.09.17
(0)
Language/TypeScript

📘 타입스크립트 Mapped types 완벽 이해하기

타입스크립트 맵드 타입 타입스크립트의 고급 타입인 맵드 타입(mapped type)이란 기존에 정의되어 있는 타입을 새로운 타입으로 변환해 주는 문법을 의미 한다. 예를 들어 인터페이스에 있는 모든 속성을 루프문 같이 순회해서 optional(?) 로 바꾸거나 readonly 로 지정할수 있으며, 아예 지정된 타입을 바꿔서 변경된 타입을 반환할 수 도 있다. 아직 맵드 타입에 대해 문법을 배우지는 않았지만 간단하게 살펴보자면 다음과 같다. interface Obj { prop1: string; prop2: string; } type ChangeType = { [K in keyof T]: number; }; type Result = ChangeType; /* { prop1: number; prop2: nu..

category_image
인파_
2022.09.16
(0)
Language/TypeScript

📘 타입스크립트 느낌표 단언 연산자

Non-null assertion operator 자바스크립트를 포함한 대부분 프로그래밍 언어에서 느낌표(!)는 주로 False를 의미하는 연산자로 사용된다. 하지만 타입스크립트에서 변수 앞이 아닌, 뒤에 느낌표(!)를 사용하면 기발한 용도로 사용할 수 있는데, 피연산자가 Nullish(null이나 undefined) 값이 아님을 단언할 수 있다. 이를 Null이 아닌 단언 연산자(Non-null assertion operator) 또는 확정 할당 어선셜(Definite Assignment Assertions) 이라고도 부른다. Null이 아닌 어선셜 연산자는 피연산자가 null이 아니라고 컴파일러에게 전달하여 일시적으로 Null 제약조건을 완화시킨다. 당최 무슨말인지 모를것이다. 😪 이해를 돕기위해 다..

category_image
인파_
2022.09.11
(0)
Language/TypeScript

📘 객체를 타입으로 변환 - keyof / typeof 사용법

타입스크립트 - keyof / typeof typeof 연산자 typeof : 객체 데이터를 객체 타입으로 변환해주는 연산자 아래의 코드의 obj는 객체이기 때문에, 당연히 객체 자체를 타입으로 사용할 수 없다. 그래서 만일 객체에 쓰인 타입 구조를 그대로 가져와 독립된 타입으로 만들어 사용하고 싶다면, 앞에 typeof 키워드를 명시해주면 해당 객체를 구성하는 타입 구조를 가져와 사용할 수 있다. const obj = { red: 'apple', yellow: 'banana', green: 'cucumber', }; // 위의 객체를 타입으로 변환하여 사용하고 싶을때 type Fruit = typeof obj; /* type Fruit = { red: string; yellow: string; gree..

category_image
인파_
2022.09.10
(0)
Language/TypeScript

📘 타입스크립트 Generic 타입 정복하기

제네릭(Generics) 소개 우리가 프로그래밍을 할때 '변수' 라는 저장소를 사용하는 이유는 데이터 값의 유연성을 위해서이다. 변수 라는 단어는 변할 수 있는 것을 말하고 그반대인 상수는 항상 고정된 것을 말한다. 이러한 개념으로 봤을때 우리가 이때까지 number[] 며 string 이며 사용했던 타입은 항상 고정되어 절대 변하지 않는 타입을 사용해오고 있었던 것이다. 그리고 여기에 약간의 유연성을 가미한게 number | string | undefiened 유니온 타입이다. 하지만 이 프로그래밍 환경에서는 상황이 항상 고정되어 의도대로 흘러가지는 않는다. 언제 어디서 변할수 있는 변수가 항상 일어나는게 이 업계이다. 따라서 타입을 직접적으로 고정된 값으로 명시하지말고 '변수' 를 통해 언제든지 변할..

category_image
인파_
2022.09.09
(0)
Language/TypeScript

📘 타입스크립트 Enum 타입 정복하기

고급 타입 Enum enum은 C, Java와 같은 언어를 다뤄봤으면 한번쯤 들어보는 흔하게 쓰이는 타입으로 특정 값(상수)들의 집합을 의미한다. 타입스크립트의 튜플 타입이 특정 타입이나 값을 고정하는 배열이라면, Enum은 특정 값을 고정하는 또다른 독립된 자료형이라고 보면 된다. enum Color { Red, Green, Blue, } // enum 타입 let c: Color; // enum 타입 변수 선언 c = Color.Green; // enum 타입 변수에 enum 값 할당 c = 'Hello'; // Error - enum 타입 변수에는 반드시 설정된 enum 값 (Red, Green, Blue)만 올수 있음 let d: Color.Red; // enum 값을 타입 자체로도 사용할 수가 ..

category_image
인파_
2022.09.08
(0)
Language/TypeScript

📘 타입 추론 / 타입 호환 / 타입 단언 / 타입 가드 💯 총정리

타입 추론 (Inference) 타입 추론이란, 개발자가 굳이 변수 선언할때 타입을 쓰지않아도 컴파일이 스스로 판단해서 타입을 넣어주는 것을 말한다. 예를들어 다음과 같이 타입을 생략한채 변수를 선언하면 대입되는 값의 자료형태를 보고 컴파일러가 num 변수는 number 타입인걸 추론해서 자동으로 넣게 되는 원리이다. let num = 12; num = 'Hello type!'; // Error - TS2322: Type '"Hello type!"' is not assignable to type 'number'. 위와 같이 num에 대한 타입을 따로 지정하지 않더라도 일단 num 변수는 number로 간주되는 걸 확인 할 수 있다. 타입 추론은 함수의 리턴 타입에도 요긴하게 쓰일 수 있다. 다음과 같이 ..

category_image
인파_
2022.09.07
(0)
Language/TypeScript

📘 타입스크립트 클래스 · 객체 지향 문법 💯 총정리

타입스크립트의 객체 지향(OOP) 자바스크립트는 프로토타입 기반 언어라, 객체 지향으로 코드를 구성하려면 많은 애로 사항이 있었다. 그러다 ES6으로도 알려진 ECMAScript 2015를 시작으로 클래스 문법이 추가되면서 JavaScript 프로그래머들은 이런 객체-지향적 클래스-기반의 접근 방식을 사용해서 애플리케이션을 만들 수 있게 되었다. 그리고 자바스크립트의 바톤을 그대로 이은 타입스크립트에서는 더욱 더 객체 지향 문법들을 더 끌어 모아, 보다 자바(JAVA) 스럽게 클래스를 구성 할수 있다. 이번 타입스크립트 객체 지향 강의에서는 자바(JAVA) 혹은 자바스크립트(JavaScript)의 객체 지향 문법을 미리 익혀두는 것을 강력하게 추천한다. 자바스크립트의 클래스 문법은 다음 포스팅을 참고하길..

category_image
인파_
2022.09.06
(0)
Language/TypeScript

📘 타입스크립트 인터페이스 활용 💯 총정리

타입스크립트 Interface 인터페이스는 자바(JAVA)를 배운 분들은 매우 익숙하면서도 반가운 단어일 것이다. 다만 자바에서의 인터페이스는 추상 메소드와 상수만을 정의한 클래스를 위주로 다루지만, 타입스크립트(TypeScript)의 인터페이스는 객체를 위주로 다룬다는 점에서 차이가 있다. 타입스크립트의 인터페이스는 두개의 시스템 사이에 상호 간에 정의한 약속 혹은 규칙을 포괄하여 의미한다. 혹은 객체의 껍데기 또는 설계도라고 할 수 있다. 즉, 프로그래밍에서 클래스 또는 함수의 '틀' 을 정의하는 것처럼, 타입의 '틀'로서 사용할 수 있는 것이 인터페이스 인 것이다. 여러 함수가 특정한 시그니처를 동일하게 가져야 할 경우 또는 여러 클래스가 동일한 명세를 정의해야하는 경우 인터페이스를 통해서 정의할 ..

category_image
인파_
2022.09.05
(0)
FILES/YAML

📑 자바스크립트 에서 yaml 파일 읽기

자바스크립트에서 YAML 사용하기 만일 노드 프로젝트에서 yaml 파일로 구성된 설정 데이터들을 가져와 읽으려면 어떻게 해야 할까? 결론 부터 말하자면, 자바스크립트 언어 자체에서는 xml이나 json 밖에 지원하지 않으니, yaml을 json으로 변환하여 사용하여야 한다. 대표적으로 직접 온라인 툴로 yaml → json으로 변환 시키고 사용하거나, 노드 패키지를 사용하여 한번에 yaml 파일을 읽어와 사용하는 두가지 방법이 있다. 온라인 변환 툴 사용 어렵게 생각할 필요없이, yaml 데이터를 직접 json으로 변환한뒤, json 파일로 저장하고 파일 디스크립터로 읽어 오면 된다. 다만 프로젝트 인원이 설정파일을 계속 yaml로 관리한다고 가정한다면, 버전업이 있을때마다 일일히 변환하여 사용하는 것은..

category_image
인파_
2022.09.04
(0)
FILES/YAML

📑 YAML 개념 & 문법 마스터 하기

YAML 이란? 우리가 타 시스템 간에 데이터를 주고 받을 필요가 있을때 데이터의 연동과 호환성을 위해 포맷에 대한 규칙이 필요하게 된다. 한번 쯤 들어보았고, 또한 이때까지 자주 사용해왔던 CSV, XML, JSON, Properties 등이 바로 그것이다. 기존에는 웹에서는 XML과 JSON으로 그리고 자바 프로젝트에서는 properties 파일을 이용하여 어떤 값들을 정의하고 저장하고 사용해왔다. XML은 사용하기 매우 까다롭고 가독성도 좋지 않기 때문에 요즘 들어 JSON 포매팅 방식으로 많이 이용되는 편이지만, JSON 역시 주석을 달수 없는 등 약간의 제한이 있고 쓸데없는 중괄호와 대괄호의 남발로 코드 길이가 강제적으로 길어지게 된다는 단점이 있다. 이러한 사용하기가 복잡하다는 점 때문에 20..

category_image
인파_
2022.09.03
(0)