프로젝트 작업 중.....!
·
Programming/Typescript
최근의 글을 안올렸던 이유는 일단 휴가를 다녀왔고.. 강좌가 70%에 도달했을 무렵 프로젝트가 주어졌기 때문! 그래서 Motion 이라는 웹 페이지를 잠깐 만들고 있고 이 사이트는 강좌에서 배운 TS를 이용해 만드려고함. 하지만 오랫동안 토이 프로젝트를 하지 않았고 이론만 공부한 나는 JS도 까먹고 CSS도 까먹은 상태라 예전에 비해서 코딩하는데 이것도 찾아봐야 하고 저것도 찾아보면서 해야하기에 시간이 오래 걸리는 중! 물론 강좌에 만드는 영상이 올라와 있지만.. 저걸 보고하면 의미가 없기 때문에 오래 걸리더라도 천천히 해볼 예정.. 노트북을 주말밖에 사용하지 못해서 시간을 엄청 걸리겠지만.. 최대한 빨리 해보자! (디자인이 개구리 이지만.. 일단 이번에는 코드를 다루는 것에 집중하도록 하자!) + 더이..
[TS] 타입스크립트로 구현해 본 정렬 알고리즘 #2 (병합 정렬, 퀵 정렬)
·
Programming/Typescript
병합 정렬(Merge Sort) [의미] 전체 원소를 하나의 단위로 분할한 후 분할한 원소들을 다시 병합하는 정렬 [특징] 분할 단계와 병합 단계로 나뉘어져 있으며, 분할 단계는 시간복잡도에 포함하지 않음. Stable한 정렬 (중복된 데이터의 순서가 바뀌지 않는 정렬) [Big O] Best - O(nlog₂n) Worst - O(nlog₂n) [장점] 데이터의 분포에 영향을 적게 받음. 크기가 큰 레코드를 정렬할 경우 연결 리스트(Linked List)를 사용한다면, 링크 인덱스만 변경됨으로 데이터의 이동이 엄청나게 적어지고 In-Place정렬로 구현할 수도 있다. [단점] 레코드를 배열(Array)로 구현하면 Not-In-Place 정렬이 되며 추가적인 별도의 메모리를 필요로 하게 된다. [구현] ..
OverRiding(오버라이딩)과 OverLoading(오버로딩) 간단 정리
·
Programming/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 (버블 정렬, 선택 정렬, 삽입 정렬)
·
Programming/Typescript
정렬 알고리즘 [의미] 무작위로 섞여있는 데이터를 어떠한 기준에 맞추어 정리하는 알고리즘. [사용하는 경우] 각종 데이터의 목록을 정리하고 싶을 때 분포도의 중위값을 알아내고 싶을 때 데이터에서 중복 값을 파악하고 싶을 때 이진 탐색을 하려고 할 때 [공부하는 이유] 기본적으로 제공되는 시스템 정렬(sort 매서드)이 항상 좋은 퍼포먼스를 보장하지는 않음. 환경과 상황에 걸 맞는 정렬을 사용하는 것이 중요하기 때문. 버블 정렬(Bubble Sort) [의미] 인접한 두 개의 데이터에 크기를 비교한 후 대소관계에 따라 두 값의 교환여부를 판단하는 알고리즘. [특징] N번째 정렬 회차가 끝나면, 뒤에서 n번째 자리의 데이터가 확정됨. Stable한 정렬 (중복된 데이터의 순서가 바뀌지 않는 정렬) [Big ..
[Typescript] 단일 연결 리스트 Stack 구조 만들기
·
Programming/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] 계획 및 목표
·
Programming/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) 수강 완료 / 타입스크립트의 기본 타입들을 이해함. 슬슬..
휴가 나와 작성해보는 회고 및 계획
·
생각
군대에 입대한 지 255일이 흘렀다. 아직 군생활은 절반 넘게 남았지만, 휴가 나온 김에 이때까지 내가 군대에서 무엇을 해왔는지에 대해 정리해 두려고 한다. 입대 전 ( ~ 20.06.22 ) 입대 및 주니어 프론트 개발자의 회고 입대 및 주니어 프론트 개발자의 회고 5월 육군 운전병으로 입대해야 하는 걸, 굳이 6월 육군 전술 c4i운용으로 해서 6월 22일 자로 논산훈련소에 입대하게 되었다. 무엇보다 빨리 끝내고 나오고 싶어서 이 타이밍에 육군을 택했지만.. so-tired.tistory.com 훈련소 ~ 후반기 ( 20.06.22 ~ 20.08.20 ) 예전에 "좋은 개발자가 되기 위해선, 어떤 분야든 Managed Language의 개념이 잘 잡혀있어야 한다.라는 말을 들은 적이 있다. 나는 이 ..
C언어에서 선언된 배열 값외의 배열 주소에 접근이 가능할까?
·
Programming/C
군대에서 C언어를 복습하다가 포인터와 배열의 관계에 대해 궁금한점이 생겨서 한 번 알아보았다.궁금한 점은 사진에 나와있는 코드를 실행해보고 생겼는데, '어째서 존재하지 않을 int arr[2][0]의 주소(메모리)에 접근이 가능한가?' 였다. 그리고 '접근이 가능하더라도 왜 그 값은 쓰레기 값이 아닌, int arr[1][1]의 주소에 4바이트를 더한 정상적인 주소값이 나오는지' 가 궁금했다. 이 결과를 보고 왜 그런지 알아보기 위해, 일단 sizeof 연산자를 이용해보았다. 하지만, 배열의 크기는 16바이트로 정상적인 값이 나왔다. 그리고 int arr[3][0]이나 다른 주소값에도 접근을 해보았지만 에러만 발생했다. 아는대로 왜 그런지 알아보려고 했지만 알 수 없어서 질문을 한 결과. 《 int ar..