공부
![[프로그래밍 기본] 객체지향 프로그래밍이란?](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQ2rKu%2FbtqDPXZaXUD%2FfQfRQnkxAglALQzyKGfCN1%2Fimg.jpg)
[프로그래밍 기본] 객체지향 프로그래밍이란?
객체지향 프로그래밍이란? 프로그래밍 패러다임 중 하나로, 함수와 자료형을 함께 묶어 객체를 만들고 그 객체를 이용해 프로그래밍을 하는 프로그래밍 기법을 뜻한다. 그렇다면 패러다임이란 무엇일까? 정의: 패러다임이란 어떤 한 시대 사람들의 견해나 사고를 지배하고 있는 이론적 틀이나 개념의 집합체. 라고 한다. 그렇다면 이전에는 어떤 패러다임이 있었을까? 1. 순차적 / 비구조적 프로그래밍 이전에는 그냥 단순하게 계속 순서대로 추가해가며 구현하는 방식이 있었다. 그러다가 이전에 작성했던 코드가 필요해지면 goto문을 사용해서 되돌아갔다. 그러나 규모가 커지면 goto문을 무분별하게 사용하게 되고, 코드가 꼬이게 된다. 코드가 어떻게 연결되어 있는지 파악하기 어려워 진다. 2. 절차적 / 구조적 프로그래밍 반복..
![[Typescript] Interface (인터페이스)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqjNDq%2FbtqDH09fUjB%2FXPwYRirhWRGkZY9Ssotyx1%2Fimg.png)
[Typescript] Interface (인터페이스)
기본적인 사용법 interface Person { name: string; age: number; } const person: Person = { name: 'Mark', age: 35 }; function hello(p: Person): void { console.log(`안녕하세요 ${p.name}`); } optinal property 1 // 이렇게 하면 age는 있어도 되고 없어도 된다. interface Person { name: string; age?: number; } function hello(person: Person): void { console.log(`안녕하세요! ${person.name}입니다.`); } const p1: Person = { name: 'Mark', age: 35..
![[Typescript] Type assertion, Type alias](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDWAlu%2FbtqDF1AlbAm%2FuqPHEEpsRzlUjhrq9x85Q0%2Fimg.png)
[Typescript] Type assertion, Type alias
Type assertion 형변환과는 다르다. '타입이 이것이다' 라고 컴파일러에게 알려주는 것을 의미한다. 문법적으로 두가지 방법이 있다. 변수 as 강제할 타입 (권장) 변수 let value: any = "this is a string"; let strLength: number = (value).length; let strLength: number = (value as string).length; /* 1. 주로 넓은 타입에서 좁은 타입으로 강제하는 경우가 많다. 2. jsx에서는 as를 쓴다. */ Type alias 별명. 인터페이스와 비슷하다. 주로 쓰는 경우 : Primitive, Union Type, Tuple. 여러번 쓸 때. 직접 작성해야 하는 타입을 다른 이름으로 지정할 수 있다. 만..
![[알고리즘] 정렬](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp5RpT%2FbtqDE0IwGzn%2Fgt5M7ufPb4eeV5xlXFdkK1%2Fimg.png)
[알고리즘] 정렬
정렬은 왜 필요할까? 우리가 사전에서 단어를 쉽게 찾을 수 있는 것처럼 컴퓨터도 정렬되어 있는 데이터에서 보다 효율적으로 탐색할 수 있기 때문이다. ◆ Bubble Sort, 거품정렬 서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않다면 자리를 교환하며 정렬하는 알고리즘 ◇ 과정 1회전에 첫번째 원소와 두번째 원소를, 두번째와 세번째, 세번째와 네번째 ... 이런 식으로 비교하며 조건에 맞지 않다면 서로 교환한다. 1회전을 수행하고 나면 가장 큰 원소가 맨 뒤로 이동하므로 2회전에서는 맨 끝에 있는 원소는 제외되고, 2회전을 수행하고 나면 끝에서 두번째 원소까지는 정렬에서 제외된다. 이렇게 제외되는 원소가 늘어난다. ● 시간복잡도 데이터의 개수가 N이라 할 때, 비교횟수는 N-1, N-2, N-3..
![[자료구조] 여러 자료구조들](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcI3EAl%2FbtqDDZiN1yh%2FchnHul4FBjMSN87yxHY3c1%2Fimg.png)
[자료구조] 여러 자료구조들
◆ 자료구조란? 자료구조란 데이터를 표현하고 저장하는 방식이다. 자료구조는 다음과 같이 분류할 수 있다. ◎ 선형 자료구조 배열 연결리스트 스택 큐 ◎ 비선형 구조 트리 힙 그래프 ◆ 목적 자료를 더 효율적으로 저장하고, 관리하기 위해 사용한다. 잘 선택된 자료구조는 실행시간을 단축시켜 주거나 메모리 용량의 절약을 이끌어 낼 수 있다. ◇ 리스트List (배열Array, 연결리스트Linked List) 리스트는 선형적으로 값을 가지고 있는 자료구조이며, 보통 ①배열(Array)과 ②연결리스트(Linked List)로 나뉜다. 그중 배열은 같은 자료형의 요소들이 순서를 갖고 나열되어 있는 집합으로 메모리에 연속적으로 저장되며, 논리적 저장 순서와 물리적 저장 순서가 일치한다. 연결리스트는 메모리의 동적할당..
![[Typescript] var, let, const](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMNohC%2FbtqDDw7PRxW%2FJ8JvUgDc9Y9L7IYtZSz8g0%2Fimg.png)
[Typescript] var, let, const
var ES5 변수의 유효범위 : 함수 스코프 호이스팅 (O) 재선언 가능 let, const ES6 변수의 유효범위 : 블록 스코프 호이스팅 (X) 재선언 불가 var말고 let, const를 쓸 것! 스코프 자바스크립트에서 스코프란 어떤 변수들에 접근할 수 있는지를 정의한다. 스코프엔 두가지 종류가 있다. 전역 스코프와 지역 스코프로 나뉜다. 전역 스코프 전역 스코프는 변수가 함수 바깥이나 { } 바깥에서 선언되었다면, 전역 스코프에 정의 된다. 지역 스코프 지역 스코프는 코드에서 특정 부분에서만 사용이 가능한 변수다. 자바스크립트에는 크게 두가지의 지역 스코프가 존재한다. 함수 스코프와 블록 스코프다. 함수 스코프 만약 함수 내부에서 변수를 선언한다면, 그 변수는 선언한 함수 내부에서만 사용이 가능..
![[Typescript] 자료형](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKY1Cd%2FbtqDBAhTZEg%2Ftq3g55kVg9yUmCDtXvbmQk%2Fimg.png)
[Typescript] 자료형
Typescript에서 기본 제공하는 데이터 타입 사용자가 만든 타입은 결국 이 기본 자료형들로 쪼개진다. ◆ Javascript 기본 자료형 포함 (superset) Boolean Number String Null Undefined Symbol (ECAMScript 6에서 추가) Array : Object형 ◆ 추가 (프로그래밍을 도울 몇가지 타입이 더 제공된다.) Any Void Never Enum Tuple : Object형 let 변수명: 타입 = 값; Primitive Type 오브젝트와 에퍼런스 형태가 아닌 실제 값을 저장하는 자료형 Primitive 형의 내장함수를 사용 가능한 것은 자바스크립트 처리 방식 때문 자바스크립트는 기본적으로 레퍼런스 타입이다. 그 중 Primitive Type만 ..
![[Typescript] 개발환경 구축 및 컴파일러 사용](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOhwTK%2FbtqDx5Yc5A6%2FxZKV68COtJT3yD5M4Uxq9K%2Fimg.png)
[Typescript] 개발환경 구축 및 컴파일러 사용
VS CODE 사용 TypeScript 설치 명령어 npm i typescript npm i typescript -g // -global 컴파일 명령어 1. Typescript 컴파일러를 global로 설치 후, ◆ cli 명령어로 파일 컴파일 tsc [typescript 파일] ◆ 특정 프로젝트 폴더에서 Typescript컴파일러 설정에 맞춰 컴파일 tsc --init // tsconfig.json 파일 생성 { "compilerOptions": { "module": "commonjs",/* 어떤 모듈 방식으로 컴파일할지 설정 */ "target": "ES2015",/* 어떤 버전으로 컴파일할지 설정 */ "sourceMap": true,/* sourceMap 처리 여부 */ "outDir": "dis..