공식 매뉴얼 https://www.typescriptlang.org/docs/ 공식 튜토리얼 https://www.typescriptlang.org/docs/handbook/intro.html 온라인 책 https://radlohead.gitbook.io/typescript-deep-dive/getting-started
1.프로그램 세팅 (1) 터미널(cmd) 실행 : npm init -y : tsc --init --rootDir ./src --outDir ./dist --esModuleInterop --module commonjs --strict true --allowJS true --checkJS true (2) package.json 수정 : script 항목 "scripts": { "start": "tsc && node ./dist/index.js", "build": "tsc --build", "clean": "tsc --build --clean" }, (3) src 폴더 생성 > index.ts파일 생성 2. 인터페이스 & 데이터 정의 (index.ts) (1) 역할 enum enum Role { LIBRARI..
S. SRP : ★ 단일 책임 원칙 ★ O. OCP : 개방 폐쇄 원칙 -> 인터페이스 혹은 상속 잘 쓰기 L. LSP : 리스코프 치환 원칙 I. ISP : 인터페이스 분리 원칙 D. DIP : 의존성 역전 원칙 1. SRP : ★ 단일 책임 원칙 ★ - 클래스는 하나의 책임만 갖기 - 기본적이고 제일 중요한 원칙 - 유저 서비스에서 유저 관련 액션만 하고 다른 액션은 금지 2. OCP : 개방 폐쇄 원칙 - 기존 코드를 변경하지 않고도 기능을 확장하기 (수정X) - 인터페이스나 상속을 통해 해결 가능 - 부모 클래스 기존 코드 변경 안하기 3. LSP : 리스코프 치환 원칙 - 서브타입은 기반이 되는 슈퍼타입을 대체 가능 - 논리적으로 엄격하게 관계가 정립 (자식클래스는 부모클래스의 기능 수정 X, ..
1. 추상클래스 - 인스턴스화를 할 수 없는 클래스 - 기본은 부모클래스가 하지만, 핵심 기능은 자식클래스에 위임하는 것 - 상속을 통해 자식클래스에서 메서드를 각각 구현하기 abstract class Shape { abstract getArea(): number; // 추상 함수 정의!!! printArea() { console.log(`도형 넓이: ${this.getArea()}`); } } class Circle extends Shape { radius: number; constructor(radius: number) { super(); this.radius = radius; } getArea(): number { // 원의 넓이를 구하는 공식은 파이 X 반지름 X 반지름 return Math.PI..
1. 상속 - 기존 클랙스의 속성과 메서드를 물려받아 새로운 클래스의 정의 가능 - extends 키워드 사용 class Animal { name: string; constructor(name: string) { this.name = name; } makeSound() { console.log('동물 소리~'); } } class Dog extends Animal { age: number; constructor(name: string) { super(name); this.age = 5; } makeSound() { console.log('멍멍!'); // 부모의 makeSound 동작과 달라요! } eat() { // Dog 클래스만의 새로운 함수 정의 console.log('강아지가 사료를 먹습니다.'..
1.객체 지향 프로그래밍을 구성하는데 핵심 = 클래스 2. 속성 : 객체의 성질 결정 (팥붕 /슈붕) 3. 메서드 : 객체의 성질을 변화 + 객체에서 제공하는 기능들을 사용하는 창구 - 붕어빵 주인 = 팥붕 -> 슈붕으로 변경 - 붕어빵 고객 = 팥붕의 가격이 3개의 1천원, 슈붕 2개의 1천원임을 알 수 있음 4. 객체 = 클래스의 인스턴스 (1) 클래스 정의 - class 키워드 사용 - new 키워드 : 객체 생성 가능 - constructor 키워드 : 생성자 ( 클래스 인스턴스 생성 & 초기화) => 인스턴스 생성 시 자동 호출 + 오직 1개만 존재 + 초기값을 지정하는 코드임 => DB 연결을 미리 가능 class Person { name: string; age: number; construc..