본문 바로가기

728x90

Web

[TypeScript] 추상클래스(Abstract Class)란 무엇이고 어떻게 쓰는걸까? 타입스크립트에서 추상 클래스는 인스턴스를 생성할 수 없는 클래스로서, 다른 클래스에서 상속하여 사용하기 위해 설계됩니다. 추상 클래스는 일반적으로 하나 이상의 추상 메서드를 포함하며, 이러한 메서드는 구현 코드가 없는 메서드로서 하위 클래스에서 구현해야 합니다. 추상 클래스는 abstract 예약어를 사용하여 정의할 수 있으며, 하위 클래스에서 구현되어야 하는 추상 메서드는 abstract 키워드와 함께 메서드 이름과 파라미터를 정의합니다. 추상 클래스 내의 일반 메서드는 하위 클래스에서 오버라이드하여 구현할 수 있습니다. 예를 들어, 다음과 같은 추상 클래스를 정의할 수 있습니다. abstract class Shape { abstract area(): number; } class Circle exten.. 더보기
[TypeScript] 다형성(Polymorphism)과 제네릭(Generic) 다형성(Polymorphism)은 하나의 인터페이스, 클래스, 함수가 여러 다른 타입의 매개변수 또는 반환 값으로 동작할 수 있는 능력을 말합니다. 즉, 하나의 코드가 다양한 타입의 데이터에 대해 유연하게 작동할 수 있도록 만드는 것을 말합니다. 이는 코드의 재사용성과 유연성을 높여주는 중요한 개념 중 하나입니다. 다형성은 크게 두 가지 유형으로 나뉩니다. 매개변수 다형성(Parameter Polymorphism) 하나의 함수가 여러 다른 타입의 매개변수를 받아들일 수 있는 능력입니다. 예를 들어, console.log() 함수는 문자열, 숫자, 객체 등 다양한 타입의 값을 인자로 받아 출력할 수 있습니다. 반환값 다형성(Return Type Polymorphism) 하나의 함수가 여러 다른 타입의 반환.. 더보기
[TypeScript] 오버로딩(OverLoading) 이란? TypeScript에서 오버로딩(OverLoading)은 같은 이름의 함수를 여러 번 정의하되, 매개변수의 타입, 개수, 반환값의 타입 등을 다르게 하여 구현하는 것을 말합니다. 즉, TypeScript에서 오버로딩을 사용하면, 함수를 호출할 때 전달되는 매개변수의 타입과 개수를 판단하여 해당 매개변수와 일치하는 시그니처를 가진 함수를 호출하게 됩니다. 다음은 TypeScript에서 오버로딩을 사용한 함수의 예시입니다. function add(a: number, b: number): number; function add(a: string, b: string): string; function add(a: any, b: any): any { return a + b; } console.log(add(1, 2).. 더보기
[JavaScript] 1에서부터 주어진 숫자까지 홀수 구하기 (짝수는 싫어요) 프로그래머스 Day3의 마지막 문제이다. 이번에는 앞의 두 문제가 난이도가 있어서 그랬는지 매우 쉽게 풀었다. 짝수는 싫어요 문제 매개변수는 1~99 중 하나의 정수이다. 주어진 매개변수까지 홀수로 오름차순 정렬 된 배열을 return 한다. 문제풀이 방법 앞에 작성했던 몫값을 구하는 방법을 사용해서 문제풀이를 진행했다. 반복문을 만들어 충족되는 값이면 배열에 추가하는 방법이다. 1. n값만큼 증가하는 반복문을 만든다. 2. 안에 i % 2 = 1 을 충족하는 i를 answer의 배열에 push한다. function solution(n) { let answer = []; for (let i = 0; i 더보기
[JavaScript] 배열(Array)에서 최빈값 구하기 프로그래머스 LV0 Day3에 있는 최빈값 구하기 문제이다. 레벨0인데도 문제를 풀이하는데 1시간 이상의 시간을 소요하는 것 같다.. 자괴감이 든다 일단 내 수준에선 하나에 여러 기능을 한번에 담는것은 힘들어 하나씩 진행했다. 이번에도 문제를 풀어보고 기억하기 위해 풀이방법을 작성해보았다. 최빈값 구하기 문제 매개변수는 정수로만 이루어진 배열(Array) 이다. 주어진 매개변수에서 최빈값을 구해 return 한다. 최빈값이 여러개일 경우 -1을 return 한다. 문제풀이 방법 배열의 숫자와 개수를 기록할 수 있는 오브젝트를 만든 뒤 오브젝트의 value(개수) 중 가장 높은 값을 찾아 그 key(숫자)값을 반환한다. 그리고 반환 과정에서 최빈값이 2개 이상인지 확인한다. 1. 빈 오브젝트를 만든다. 2.. 더보기
[JavaScript] 배열(Array)에서 중앙값 구하기 프로그래머스 레벨0 문제를 풀기 시작했다. day3의 첫 번째 문제까지는 아주 쉽게 지나갔지만 이 문제부터 풀이에 시간이 걸리기 시작했으며 JavaScript에서 지원하는 기능을 사용하거나 for / if / while 등을 활용하여 문제를 풀어야 했다. 중앙값 구하기 문제 - 무작위로 입력된 홀수 길이의 배열에서 중앙에 위치한 값을 구한다. - 정수 배열만 주어진다. - 배열의 길이는 0 < Array < 100 - -1,000 < Array < 1,000 사이의 무작위 숫자 문제풀이 방법1 아래 방법은 배열을 크기로 정렬을 해준 뒤 양쪽 끝을 제거해가며 마지막 남은 중앙 값 하나를 남기는 방법으로 코드를 작성했다. 1. 무작위 숫자로 주어진 배열을 크기의 순서대로 정렬한다. 2. 배열의 길이를 계산하.. 더보기
[JavaScript] Promise대신 사용할 수 있는 async / await 2017년에 나왔고 ES6라고 할 수는 없고 ES8부터 Promise를 대신하여 사용할 수 있는 문법이 있습니다. async / await이라는 키워드입니다. 이 키워드는 Promise와 then을 더 쉽게 만들어주는 문법입니다. async / await async 키워드를 사용하면 Promise 오브젝트가 자동으로 생성됩니다. 이 키워드는 function 선언 앞에서만 붙일 수 있습니다. async function fc(){ 1+1; } function앞에 async를 붙임으로써 fc()는 Promise가 되었습니다. 이제 fc()는 then을 사용할 수 있습니다. async function fc(){ return 1+1; } fc().then(function(result){ console.log(re.. 더보기
[JavaScript] ES6 프로미스(Promise) 프로미스(Promise) 프로미스(Promise)는 성공하면 then()안의 코드를, 실패하면 catch()안의 코드를 실행해주는 함수 입니다. 동기방식을 비동기방식으로 바꿔주는 함수가 아닙니다. Promise 코드를 작성할 때 성공과 실패 상황을 알 수 있도록 해야 합니다. 콜백함수 디자인패턴이 마음에 안드는 분들은 Promise 디자인패턴을 사용하시면 됩니다. Promise는 자바스크립트의 새로운 기능이라기보다는 코드/함수 디자인 패턴일 뿐입니다. Promise의 구조는 이렇게 됩니다. var promise1 = new Promise(); promise1.then(function(){ // 프로미스가 성공했을 경우 실행할 코드1 }).then(function(){ // 프로미스가 성공했을 경우 실행할.. 더보기

728x90