반응형
✅ 1. Symbol(심볼) 이란?Symbol은 자바스크립트 ES6에 도입된 원시 타입(Primitive Type)중 하나로 고유하고 변경 불가능한 값입니다. 주로 객체의 키(Key)로 사용해 충돌을 방지할 때 활용됩니다.const id = Symbol("id");console.log(id); // Symbol(id)console.log(typeof id); // symbol✅ 2. Symbol 특징 고유성 보장: 같은 설명(description)을 줘도 하상 다른 값을 반환함const a = Symbol("test");const b = Symbol("test");console.log(a === b); // false문자열 변환 불가: 자동으로 문자열이 반환되지 않음const sym = Symbol("..
✅ 1. 매개변수 전달(parameter passing)Perl에서 매개변수 전달(parameter passing)과 반환값(return value) 처리 방식의 핵심은 서브루틴(subroutine)이 인자를 어떠한 방식으로 전달 받는지, 어떤 방식으로 결과를 돌려주는지 이해하는 것이 중요합니다. Perl 에서는 기본적으로 서브루틴에 전달되는 인자를 배열(@_)에 저장해 인자를 접근할 수 있습니다.sub add { my ($x, $y) = @_; # @_에서 두 개의 값을 꺼냄 return $x + $y;}my $result = add(10, 20);print "result: $result\n"; # 결과: 30인자는 값이 아닌 리스트 형태로 전달사실상 참조(reference)가 넘어오기..
✅ 1. BigInt - 큰 정수 처리Javascript에서 일반적인 숫자(Number)는 2^53 - 1(약 9경)까지 처리할 수 있지만 그 이상의 수까지 처리하기 위해서는 BigInt를 사용해서 처리해야 합니다. BigInt를 생성하려면 다음과 같습니다.// ✅ BigInt 생성하기 - 숫자 뒤에 n을 붙이거나 BigInt() 함수 사용const big1 = 1234567890123456789012345678901234567890n; // 숫자 뒤에 n을 붙임const big2 = BigInt("1234567890123456789012345678901234567890"); // BigInt() 함수 사용console.log(big1); // 12345678901234567890123456789012..
✅ 1. 인덱스 인덱스는 테이블에서 특정 컬럼의 검색 속도를 빠르게 하기 위한 자료구조로, 테이블에 직접적인 영향을 주지는 않지만, SELECT, JOIN, WHERE, ORDER BY 등에서 성능을 향상시킵니다. -- users 테이블 생성CREATE TABLE orders ( order_id SERIAL PRIMARY KEY, user_id INT NOT NULL, order_date DATE NOT NULL);-- 외래 키 제약 조건 추가ALTER TABLE ordersADD CONSTRAINT fk_userFOREIGN KEY(user_id) REFERENCES users(id)ON DELETE CASCADEON UPDATE CASCADE;-- 단일 컬럼 인덱스 생성CREATE I..
✅ 1. 정적 메서드 (Static Method)정적 메서드(Static Method)는 클래스 자체에서 호출되는 함수로, 인스턴스 없이 클래스 이름으로 직접 사용합니다. 유틸리티 함수나 공용 기능에 자주 사용되는 메서드입니다.class MathUtil { static randomInt(min, max) { // 정적 메서드 return Math.floor(Math.random() * (max - min + 1)) + min; }}console.log(MathUtil.randomInt(1, 20)); // ✅ 1~20 사이의 랜덤 정수✅ 2. 정적 필드 (Static Field) 정적 필드(Static Field)는 클래스 자체에 속하는 함수로, 인스턴스가 아닌 클래스에 바로 접근합니다. ..
✅ 1. 비동기 프로그래밍이란?동기(Synchronous)는 코드가 순서대로 실행하는 방식, 비동기(Asynchronous)는 시간이 걸리는 작업을 기다리지 않고 다른 일을 동시에 수행할 수 있는 방식입니다. 예를 들어, 파일을 읽거나, 네트워크에 요청, DB를 조회하는 등 시간이 걸리는 작업을 할 시 비동기로 처리하며 UI 멈추지 않고 부드럽게 동작할 수 있습니다.using System;using System.Threading.Tasks;class Program{ static async Task Main(string[] args) { Console.WriteLine("작업 시작"); await Task.Delay(1000); // 1초 대기 (비동기) C..
✅ 1. switch 표현식 (Switch Expressions)C# 8버전 부터 추가된 기능으로, 기존 switch 문보다 간결하고 표현력이 좋은 기능입니다. 값을 직접 변환하거나 패턴일치를 조합하면 더욱 좋아집니다.using System;class Program{ static void Main() { object obj = 5.54; // switch 표현식 호출 string typeDescription = GetTypeDescription(obj); Console.WriteLine(typeDescription); } // switch 표현식 method static string GetTypeDescription(object..
📖 1. 프라이빗 필드(privateField)자바스크립트는 ES20222(ES13) 버전 부터 프라이빗 필드/메서드를 공식적으로 지원합니다. 방법은 간단하게 # 기호를 붙여 사용할 수 있습니다.class Person { #name; // private 필드 선언 constructor(name) { this.#name = name; // 생성자에서 초기화 } getName() { return this.#name; // 내부에서는 접근 가능 } setName(newName) { this.#name = newName; // 외부 값 접근 허용 }}const p = new Person("mary");console.log(p.getName()); // ✅ "mary";console..
✅ 1.Dart 믹스인 (Mixin)Mixin(믹스인)은 상속과 비슷하지만 다중 상속을 흉내낼 수 있는 기능으로, 클래스에 기능(메소드, 속성)을 끼워 넣는 것입니다. with 키워드를 사용해 다른 클래스의 기능을 재사용합니다, 상속은 한 클래스만 가능하나, 믹스인은 여러 개를 동시에 적용할 수 있다는 장점을 가지고 있습니다.✅ 2. 기본 문법// 기본 문법mixin Loader { void log(String msg) { print("Loading: $msg"); }}class Program with Loader { String name; Program(this.name); void sayBooting() { log("Window's $name"); }}void main() { ..
✅ 1. 자바스크립트 모듈 시스템자바스크립트에서 모듈(module)은 코드의 재사용과 관리 편의성을 위해 나눠서 작성하는 파일입니다. 대표적으로 ESM(ES Module)과 CommonJS(CJS)가 있습니다. 대부분은 ESM 방식을 채택하고 있습니다. 먼저 기존 모듈을 불러오는 방식에 대해서 설명해보겠습니다.// 상수 내보내기export const PI = 3.14;// 함수 내보내기export function add(a, b) { return a + b;}export -> 다른 파일에서 사용할 수 있도록 내보내는 키워드모듈로 내보낸 값은 여러개 사용 가능브라우저에서는 안에서 사용✅ 2. 모듈 가져오기 (import)import 문을 사용해 export한 값을 가져올 수 있습니다. 여러개의 값을 가..