개발로그
close
프로필 배경
프로필 로고

개발로그

  • 분류 전체보기 (551)
    • JAVA (68)
      • 자바소개 (4)
      • 자바 기본 문법 (22)
      • 객체 지향 프로그래밍 (15)
      • 예외 처리 (9)
      • 스레드 (18)
    • Databases (14)
      • JDBC (13)
      • Hibernate ORM (1)
    • GIT (39)
      • 시작하기 (5)
      • GIT의 기초 (7)
      • Git 브랜치 (6)
      • Git 서버 (7)
      • Git 분산 환경 (6)
      • Git 도구 (8)
    • AWS (6)
      • 시작하기 (3)
      • AMI (3)
    • Docker (30)
    • Kubernetes(K8S) (2)
    • 브라우저 (32)
    • JavaScript (79)
    • TypeScript (38)
    • D3 (47)
      • D3 소개 (2)
      • 시각화 (45)
    • REACT (13)
      • 리액트 학습하기 (13)
      • 리액트 API (0)
      • 리액트 DOM API (0)
    • React Native (19)
    • Dart (26)
    • Flutter (8)
    • Electron (15)
    • 알고리즘 (41)
      • 자료구조 (24)
      • 검색 알고리즘 (0)
      • 초급 알고리즘 (17)
      • 중급 알고리즘 (0)
      • 고급 알고리즘 (0)
    • 코딩문제 (35)
    • 도구 (39)
      • 프리미어프로 (39)
  • 홈
  • 태그
  • 방명록
[JavaScript] 믹스인 패턴

[JavaScript] 믹스인 패턴

자바스크립트에서 믹스인(Mixin) 패턴은 단일 상속의 한계를 극복하고 여러 클래스의 기능을 결합할 수 있는 패턴입니다. 믹스인은 독립적인 메서드와 속성의 집합을 가진 객체로 구현되며, 이를 원하는 클래스의 프로토타입에 합성하여 새로운 동작을 부여합니다.// LoggerMixin: 로깅 기능을 제공하는 믹스인const LoggerMixin = { logInfo(message) { console.log(`[INFO] ${message}`); }, logError(message) { console.error(`[ERROR] ${message}`); }};// Document 클래스에 LoggerMixin 기능 추가class Document { constructor(title, conten..

  • format_list_bulleted JavaScript
  • · 2025. 2. 18.
  • textsms
[JavaScript] instanceof 연산자

[JavaScript] instanceof 연산자

기본 사용법class Person { }class Student extends Person { }const student = new Student();console.log(student instanceof Student); // true: student의 프로토타입 체인에 Student.prototype이 있음console.log(student instanceof Person); // true: Student.prototype의 [[Prototype]]이 Person.prototype을 가리킴위 예제에서 student 객체는 Student와 Person의 인스턴스로 모두 인식됩니다. 이는 instanceof 연산자가 객체의 프로토타입 체인을 따라 부모 클래스까지 확인하기 때문입니다.Symbol.hasI..

  • format_list_bulleted JavaScript
  • · 2025. 2. 18.
  • textsms
[JavaScript] 내장 클래스 확장

[JavaScript] 내장 클래스 확장

자바스크립트에서는 내장 클래스(예: Array, Map, Set 등)도 사용자 정의 클래스처럼 확장할 수 있습니다. 이를 통해 기존 기능을 기반으로 새로운 메서드나 프로퍼티를 추가하여 맞춤형 컬렉션 클래스를 만들 수 있습니다.class CountMap extends Map { // 요소의 개수를 반환하는 메서드 count() { return this.size; }}// CountMap의 인스턴스 생성const myMap = new CountMap();myMap.set('apple', 1);myMap.set('banana', 2);myMap.set('orange', 3);console.log(myMap.count()); // 출력: 3// 내장 메서드 사용myMap.delete('banana')..

  • format_list_bulleted JavaScript
  • · 2025. 2. 17.
  • textsms
[JavaScript] 클래스의 캡슐화

[JavaScript] 클래스의 캡슐화

캡슐화란객체 지향 프로그래밍(OOP)의 핵심 개념 중 하나로, 객체의 내부 구현 세부 사항을 숨기고, 외부에는 필요한 인터페이스만을 제공하여 안전하고 일관된 동작을 보장합니다. 자바스크립트에서는 public, protected(관례적으로 _ 접두사 사용), 그리고 private(최신 문법에서는 # 사용) 필드와 메서드를 활용하여 캡슐화를 구현할 수 있습니다.class Student { // #grade는 완전히 숨겨진 private 필드입니다. #grade; // _studentId는 protected 역할을 하는 필드로, 자식 클래스에서 접근 가능합니다. _studentId; constructor(name, studentId, initialGrade = 0) { this.name = na..

  • format_list_bulleted JavaScript
  • · 2025. 2. 17.
  • textsms
[JavaScript] 정적 메서드와 정적 프로퍼티

[JavaScript] 정적 메서드와 정적 프로퍼티

정적 메서드 (Static Methods)정적 메서드는 static 키워드를 사용하여 클래스 내부에서 정의되며, 인스턴스화된 객체가 아닌 클래스 자체에서 호출됩니다. 일반적으로 객체 간의 비교, 유틸리티 함수, 팩토리 메서드 등을 구현할 때 사용됩니다.class MathHelper { // 정적 메서드: 두 수의 합을 계산 static add(a, b) { return a + b; } // 정적 메서드: 두 수의 차이를 계산 static subtract(a, b) { return a - b; } // 정적 메서드: 두 수의 곱을 계산 static multiply(a, b) { return a * b; } // 정적 메서드: 두 수의 나눗셈 결과를 계산 static di..

  • format_list_bulleted JavaScript
  • · 2025. 2. 17.
  • textsms
[JavaScript] 클래스 상속

[JavaScript] 클래스 상속

기본 상속 구조 extends 키워드를 사용하여 한 클래스가 다른 클래스를 상속할 수 있습니다. 이를 통해 자식 클래스는 부모 클래스의 프로퍼티와 메서드를 자동으로 상속받게 되며, 프로토타입 체인을 통해 접근할 수 있습니다.class Animal { constructor(name) { this.name = name; } speak() { console.log(`${this.name}이(가) 소리를 냅니다.`); }}class Dog extends Animal { // 추가적으로 Dog만의 메서드 정의 fetch() { console.log(`${this.name}이(가) 공을 가져옵니다.`); }}const myDog = new Dog('바둑이');myDog.speak(); ..

  • format_list_bulleted JavaScript
  • · 2025. 2. 17.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • ···
  • 14
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (551)
    • JAVA (68)
      • 자바소개 (4)
      • 자바 기본 문법 (22)
      • 객체 지향 프로그래밍 (15)
      • 예외 처리 (9)
      • 스레드 (18)
    • Databases (14)
      • JDBC (13)
      • Hibernate ORM (1)
    • GIT (39)
      • 시작하기 (5)
      • GIT의 기초 (7)
      • Git 브랜치 (6)
      • Git 서버 (7)
      • Git 분산 환경 (6)
      • Git 도구 (8)
    • AWS (6)
      • 시작하기 (3)
      • AMI (3)
    • Docker (30)
    • Kubernetes(K8S) (2)
    • 브라우저 (32)
    • JavaScript (79)
    • TypeScript (38)
    • D3 (47)
      • D3 소개 (2)
      • 시각화 (45)
    • REACT (13)
      • 리액트 학습하기 (13)
      • 리액트 API (0)
      • 리액트 DOM API (0)
    • React Native (19)
    • Dart (26)
    • Flutter (8)
    • Electron (15)
    • 알고리즘 (41)
      • 자료구조 (24)
      • 검색 알고리즘 (0)
      • 초급 알고리즘 (17)
      • 중급 알고리즘 (0)
      • 고급 알고리즘 (0)
    • 코딩문제 (35)
    • 도구 (39)
      • 프리미어프로 (39)
최근 글
인기 글
최근 댓글
태그
  • #git
  • #java
  • #알고리즘
  • #D3
  • #docker
  • #프리미어프로
  • #브라우저
  • #Javascript
  • #코딩문제
  • #TypeScript
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바