OverRiding(오버라이딩)과 OverLoading(오버로딩) 간단 정리
·
개발/Javascript
OverRiding(오버라이딩) 부모 Class로 부터 받은 메서드와 같은 이름의 내용이 다른 매서드를 재정의해 덮어 씌우는 방식. [경우] 부모 Class의 기능을 사용하지 않고 자식 Class에서 구현한 기능을 사용하고 싶은 경우. 부모 Class의 기능을 자식 Class에서 확장하고 싶은 경우. [조건] 매서드의 이름이 같아야 한다. 매서드가 받는 매개변수(parameter)가 같아야 한다. 매서드의 반환 타입이 같아야 한다. class greet { constructor() {}; hello() { return "안녕하세요"; } bye() { return "ㅃ2ㅃ2"; } } class greet_new extends greet{ hello() { return "ㅎㅇㅎㅇ"; } } const f..
[TS] 타입스크립트로 구현해 본 정렬 알고리즘 #1 (버블 정렬, 선택 정렬, 삽입 정렬)
·
개발/Typescript
정렬 알고리즘 [의미] 무작위로 섞여있는 데이터를 어떠한 기준에 맞추어 정리하는 알고리즘. [사용하는 경우] 각종 데이터의 목록을 정리하고 싶을 때 분포도의 중위값을 알아내고 싶을 때 데이터에서 중복 값을 파악하고 싶을 때 이진 탐색을 하려고 할 때 [공부하는 이유] 기본적으로 제공되는 시스템 정렬(sort 매서드)이 항상 좋은 퍼포먼스를 보장하지는 않음. 환경과 상황에 걸 맞는 정렬을 사용하는 것이 중요하기 때문. 버블 정렬(Bubble Sort) [의미] 인접한 두 개의 데이터에 크기를 비교한 후 대소관계에 따라 두 값의 교환여부를 판단하는 알고리즘. [특징] N번째 정렬 회차가 끝나면, 뒤에서 n번째 자리의 데이터가 확정됨. Stable한 정렬 (중복된 데이터의 순서가 바뀌지 않는 정렬) [Big ..
[Typescript] 단일 연결 리스트 Stack 구조 만들기
·
개발/Typescript
[ String 타입만 받는 Stack ] interface Stack { readonly size: number; push(value: string): void; pop(): string; } type StackNode = { readonly value: string; readonly next?: StackNode; } class Stack_Impl implements Stack { private _size: number = 0; private head?: StackNode; constructor(private capacity: number) {} get size() { return this._size; } push(value: string) { if (this.capacity === this.size..
[Dream Coding TS + OOP] 계획 및 목표
·
개발/Typescript
목표 TS의 대한 전반적인 개념과 올바른 사용방법 익히기 TS를 이용해 OOP에 대한 개념 정리하기 TS를 이용한 여러 프로젝트들을 만들어 보기 추가 공부 bigInt에 대해서. Tuple의 좋은 사용의 예 타입 설정의 범위? 타입을 정해야 하는 것과 그러지 않아도 되는 것 관심 토픽 리소스 / 사이트 타입스크립트 공식사이트 수강일지 [3/21] 소개(6/6), 타입스크립트란? (9/9) 수강 완료 / TS를 왜 사용하는지 알게됨, TS의 개발환경을 세팅함. [3/28] 기본 타입 마스터 하기 (8/16) 수강 , 6~8 정리 못함 / 타입스크립트의 기본 타입들과 좋은 사용의 예를 알게됨. [4/3 - 4/4] 기본 타입 마스터 하기 (16/16) 수강 완료 / 타입스크립트의 기본 타입들을 이해함. 슬슬..
C언어에서 선언된 배열 값외의 배열 주소에 접근이 가능할까?
·
개발/C
군대에서 C언어를 복습하다가 포인터와 배열의 관계에 대해 궁금한점이 생겨서 한 번 알아보았다.궁금한 점은 사진에 나와있는 코드를 실행해보고 생겼는데, '어째서 존재하지 않을 int arr[2][0]의 주소(메모리)에 접근이 가능한가?' 였다. 그리고 '접근이 가능하더라도 왜 그 값은 쓰레기 값이 아닌, int arr[1][1]의 주소에 4바이트를 더한 정상적인 주소값이 나오는지' 가 궁금했다. 이 결과를 보고 왜 그런지 알아보기 위해, 일단 sizeof 연산자를 이용해보았다. 하지만, 배열의 크기는 16바이트로 정상적인 값이 나왔다. 그리고 int arr[3][0]이나 다른 주소값에도 접근을 해보았지만 에러만 발생했다. 아는대로 왜 그런지 알아보려고 했지만 알 수 없어서 질문을 한 결과. 《 int ar..
Typescript 알아보기
·
개발/Typescript
Typescript 알아보기 Anders Hejlsberg가 개발을 주도한 Typescript는 Javascript의 대체 언어의 하나로써, Javascript(ES5)의 Superset(상위확장, 초집합) 이다. Javascript는 인터프리터 기반의 언어로써 실행과 동시에 렌더링 되는데, Typescript는 인터프리터 방식이 아닌 컴파일 후에 실행되는 컴파일 언어이다. (전통적인 컴파일 언어와는 차이가 있어 Transpile 이라는 용어를 사용하기도 한다.) Typescript는 정적 타이핑을 지원하며, ES6(ECMAScript 2015)의 Class, Module 등과 ES7의 Decorator 등을 지원한다. (Typescript는 정적 타입의 언어이기 때문에 디버깅 하기 쉽다는 장점이 있다...
React-Redux 개념 잡기 #1
·
개발/React
소개 Redux는 상태(state) 관리 라이브러리이다. Redux는 컴포넌트들의 상태 관련 로직들을 다른 파일들로 분리시켜서 효율적으로 상태를 관리할 수 있다. 특히, 컴포넌트끼리 상태를 공유해야 할 때, 기존의 여러 컴포넌트를 거쳐 전달해야 하는 방식과는 달리 Store를 통해 쉽게 상태 값을 전달할 수 있다. Redux는 React 외에도 jQuery 혹은 Angular를 사용하는 애플리케이션에서도 사용할 수 있지만, 이 글에서는 React 기반으로 서술할 것이다. Redux는 글로벌 상태 관리에 효과적이다. 굳이 '글로벌 상태 관리'라는 말을 하는 이유는 굳이 Redux를 사용할 필요는 없기 때문이다. 간단한 애플리케이션이라면, Redux를 사용하지 않더라도 상태를 관리하는데 큰 어려움 겪지 않을..
React Flux 란?
·
개발/React
Flux란? Flux는 Facebook에서 클라이언트-사이드 웹 어플리케이션을 만들기 위해 사용하는 어플리케이션 아키텍쳐이다. 또는 애플리케이션에서 데이터를 다루기 위한 패턴이라고 할 수 있다. Flux 이전 방식(MVC)의 문제점 Facebook에서 React를 사용할 때, Flux이전에는 다음과 같은 방식으로 데이터를 처리하였다. 어떠한 Action이 입력되면 Controller는 Model이 지니고 있는 데이터를 조회하거나 업데이트 하며, 이 변화는 View에 반영된다. 사용자와의 상호작용(UI)이 뷰를 통해서 일어나기 때문에, 사용자의 입력(input)에 따라 뷰가 가끔씩 모델을 업데이트 할 수도 있다. 이러한 디자인 패턴은 작은 어플리케이션에는 큰 문제없이 작동한다. 하지만, Model과 Vie..