본문 바로가기

전체 글459

React 기본 개념 1. JSX (JavaScript XML)JSX는 JavaScript에서 HTML을 작성할 수 있는 문법.React에서 UI를 선언적으로 표현할 때 사용.1️⃣ JSX 기본 문법JSX는 HTML과 유사하지만, JavaScript 표현식을 {} 안에 포함할 수 있습니다.const name = "희성";const element = Hello, {name}!;ReactDOM.render(element, document.getElementById("root"));HTML과 차이점class → className 사용onclick → onClick (camelCase로 작성)JavaScript 코드 사용 시 {} 중괄호로 감싸야 함2️⃣ JSX에서 속성 사용하기className (HTML의 class 대신 사용)c.. 2025. 3. 21.
React 프로그래밍을 위한 javascript 기본 ES6+ 문법 let과 constES6에서는 var 대신 블록 스코프를 가지는 let과 불변 변수인 const가 추가됨.let x = 10;x = 20; // 가능const y = 30;y = 40; // 에러 (const는 재할당 불가능)let → 재할당 가능const → 재할당 불가능화살표 함수 (()=>{})ES6에서 함수 선언을 간결하게 표현하는 방법.// 일반 함수 표현식function add(a, b) { return a + b;}// 화살표 함수const add = (a, b) => a + b;console.log(add(2, 3)); // 5특징return을 생략 가능 (한 줄 코드일 때)this가 기존 함수와 다르게 동작 (lexical this)const obj = { value.. 2025. 3. 21.
JDBC 프로그래밍 1. 데이터베이스란?데이터를 체계적으로 저장하고 관리하는 시스템데이터를 검색, 수정, 추가, 삭제하는 기능 제공DBMS (Database Management System)데이터베이스를 관리하는 응용 소프트웨어종류: MySQL, PostgreSQL, Oracle, MS SQL Server 등2. 관계형 데이터베이스 (RDB)행(Row)과 열(Column)로 구성된 테이블을 사용하여 데이터를 저장 **각 테이블은 특정한 **"스키마(Schema)"를 가짐스키마란 테이블 구조(컬럼 이름, 데이터 타입 등)를 정의하는 것관계형 데이터베이스 구조 주요 개념테이블(Table)데이터를 저장하는 기본 단위행(Row, 레코드)테이블에 저장된 한 개의 데이터 (각각 고유 ID)열(Column, 속성)테이블의 속성 (필드).. 2025. 3. 21.
멀티 스레드 프로그래밍 1. 프로세스 vs 스레드프로세스 (Process)실행 중인 프로그램독립적인 메모리 공간 가짐하나 이상의 스레드를 포함 가능스레드 (Thread)프로세스 내 실행 흐름메모리 공유 (힙, 정적 영역 공유)각 스레드는 개별적인 스택(Stack) 사용멀티 스레드 (Multi-Thread)하나의 프로세스 내에서 여러 개의 스레드가 동시에 실행main 스레드에서 다른 스레드를 생성하여 독립 실행 가능2. 스레드 생성 방법 (Runnable vs Thread 상속)1️⃣ Runnable 인터페이스 구현 (권장 방식)2️⃣ Thread 클래스 상속 (비권장 - 확장성 낮음)1️⃣ Runnable 인터페이스 구현 (추천)class MyRunnable implements Runnable { public void r.. 2025. 3. 21.
컬렉션과 스트림(Stream) 1. 외부 반복 vs 내부 반복외부 반복: 루프(for, while, Iterator 등)를 사용해 직접 반복을 제어내부 반복: 스트림 API를 사용하여 내부적으로 반복 처리외부 반복 vs 내부 반복import java.util.*;public class ExternalInternalIterationExample { public static void main(String[] args) { List list = Arrays.asList("Apple", "Banana", "Cherry"); // 외부 반복 (for-each) for (String fruit : list) { System.out.println(fruit); } .. 2025. 3. 20.
컬렉션 1. JCF란?Java에서 여러 개의 데이터를 효율적으로 저장 & 관리하는 자료구조 모음java.util 패키지 내 Collection & Map 인터페이스 기반제네릭(Generic) 지원 → 타입 안정성 보장2. JCF 인터페이스 구조 Iterable │ ┌────────┴─────────┐ Collection Map ┌────┴─────┐ ┌────┴─────┐ List Set SortedMap HashMap ┌──┴──┐ ┌──┴──┐ ├────────┐ArrayList LinkedList HashSet TreeSet.. 2025. 3. 20.
java.nio 패키지의 활용 1. java.nio 패키지란?NIO (New Input Output) → java.io 패키지를 개선한 고성능 입출력 패키지버퍼(Buffer) 기반 처리 → 입출력 성능 향상 (입출력 속도 차이 해결)블로킹 vs 논블로킹 (Blocking vs Non-Blocking) 지원멀티스레드 환경에서 최적화됨 (파일 입출력, 네트워크 등)java.nio.file (파일 시스템), java.nio.channels (채널), java.nio.Buffer (버퍼) 등 포함2. Path 인터페이스 (java.nio.file.Path)파일 & 디렉터리를 다루는 객체 (File 클래스보다 더 강력함)Paths.get("경로")를 사용하여 Path 객체 생성파일 경로 조작, 파일 정보 조회 가능1️⃣ Path 객체 생성 및.. 2025. 3. 20.
java.io 패키지와 스트림 1. Java I/O 패키지 개요Java에서 데이터를 입력받고 출력하는 기능을 제공스트림(Stream) 사용 → 데이터를 연속적인 흐름으로 처리파일, 네트워크, 콘솔 등 다양한 입출력 소스를 지원대부분 예외 처리 필수 (try-catch or throws IOException)처리 단위 \ 처리 방향입력 스트림출력 스트림기본 스트림바이트 스트림InputStream (파일이나 네트워크에서 바이트 데이터를 읽음)FileInputStreamByteArrayInputStreamOutputStream (파일이나 네트워크로 바이트 데이터를 씀)FileOutputStreamByteArrayOutputStream문자 스트림Reader (문자 단위로 데이터를 읽음)FileReaderCharArrayReaderString.. 2025. 3. 19.
Mac 내부 사운드 녹음, PC 사운드 녹음 및 화면 녹화 Mac으로 클로바 노트를 사용하려고 보니 PC 내부 사운드 녹음이 안돼서 방법을 찾아봤다.내부 사운드 녹음하기GPT에게 물어보니 무료 버전인 BlackHole(https://existential.audio/)을 추천해줬다. Existential Audio existential.audio1. 다운로드1-1. 접속 후 아래 사진과 같은 버튼을 클릭한다.1-2. 기부를 할 생각이 없다면 아래 버튼을 클릭한다.1-3. 아래에 email과 이름을 입력하고 'Send Link to Download'를 클릭한다.1-4. 입력한 메일로 이동해서 링크를 클릭한다.1-5. 원하는 걸 선택해 클릭한다. lackHole 2ch → 스테레오 (왼쪽 & 오른쪽)만 지원 → 대부분의 기본적인 녹음에 적합BlackHole 16ch .. 2025. 3. 19.
java.lang 패키지 java.lang 패키지java.lang 패키지에 존재하는 클래스를 사용할 때는 import문이 필요 없음Object, String, StringBuffer, Process, Thread, Exception, Throwable, Error, System, Package, Class, Math, 포장클래스(Number, Integer, Duble ...) object 클래스자동으로 모든 클래스의 조상이 되는 클래스주요메서드: clone(), equal(), hashcode(), toString() toString()객체를 문자열로 표현하여 반환(클래스이름@16진수해시코드)문자열의 + 연산 또는 System.out.print() 등에서 필요자식 클래스에서 재정의할 수 있음(String, Integer 클래스.. 2025. 3. 19.
Zod vs zod-validator Zod vs zod-validatorZod와 zod-validator는 모두 TypeScript에서 데이터 검증을 수행하는 라이브러리이다.주요 차이점:Zod → 런타임 데이터 검증 및 TypeScript 타입 안전성 보장zod-validator → Zod 기반의 추가적인 확장 기능 제공 (Express 미들웨어 지원 등)1️⃣ Zod란?Zod는 TypeScript에서 데이터 검증을 위한 가장 널리 사용되는 라이브러리 중 하나런타임에서 JSON, API 응답, Form 데이터 등을 검증TypeScript의 타입 시스템과 잘 통합되어 정적 + 동적 타입 안전성을 제공기본 사용법import { z } from "zod";const UserSchema = z.object({ name: z.string().mi.. 2025. 3. 19.
Zod Zod 기본 개념 (TypeScript에서 스키마 기반 데이터 검증)Zod란?Zod는 TypeScript에서 스키마 기반 데이터 검증을 수행하는 라이브러리이다.TypeScript의 타입 시스템은 컴파일 단계에서만 타입을 체크하지만, Zod는 런타임에서도 데이터를 안전하게 검증할 수 있도록 도와준다.TypeScript 타입만 사용한 경우 (런타임에서 오류 검출 불가)type User = { name: string; age: number;};const data = JSON.parse('{"name": "Alice"}'); // `age` 없음const user: User = data; // ❌ 컴파일 시 문제 없음 (하지만 실행 시 오류 가능)console.log(user.age.toFixed(2)); .. 2025. 3. 19.