본문 바로가기
반응형

풀스택 개발 (Full-Stack Development)22

useState를 중심으로 상태 변화 화면 변경 Tailwind 스타일 ✅ 핵심 키워드: useState✔️ 정의useState는 React 컴포넌트 내부에서 값을 저장하고,그 값이 바뀌면 자동으로 해당 컴포넌트가 다시 렌더링되는 메커니즘입니다.🧠 상태 변화 흐름 정리① 상태 정의const [flag, setFlag] = useState(false);항목의미flag현재 상태값 (true/false 같은 정보 저장)setFlag상태를 변경하는 함수 (flag가 바뀌면 화면 자동 갱신) ② 사용자 이벤트로 상태 변경const handleToggle = () => { setFlag(!flag);}사용자가 버튼 클릭 시 handleToggle 함수 실행flag가 true ↔ false로 변경됨③ 상태 변경 → 화면 다시 렌더링상태가 바뀌면 컴포넌트 전체가 다시 실행됨flag가 .. 2025. 7. 3.
React 기초: useState Hook 📘 React 기초: useState Hook ✅ 1. React Hook 이란?Hook은 함수형 컴포넌트에서도 상태(state)와 생명주기(lifecycle) 기능을 사용할 수 있도록 도와주는 React 내장 함수.기존에는 클래스 컴포넌트에서만 사용 가능했던 기능을 함수형에서도 사용하게 해줌.React 16.8 버전부터 도입됨.✅ 2. 대표적인 Hook: useState➤ 정의const [state, setState] = useState(initialState);요소설명state현재 상태값 (읽기 전용)setState상태를 업데이트하는 함수initialState초기 상태값 (예: 숫자, 문자열, 객체 등) 예시:import { useState } from 'react';function Counter(.. 2025. 6. 27.
JDBC SQL CRUD 실행객체 Statement PreparedStatement executeQuery executeUpdate DAO 패턴 Scanner ✅ 1. 실습 주제JDBC 프로그래밍의 기본 구조와 SQL 연동을 학습하기 위한 콘솔 기반 CRUD 실습✅ 2. 학습 목표 및 성과항목상세 내용📌 학습 주제JDBC를 활용한 자바 콘솔 CRUD 애플리케이션 개발🎯 학습 성과DB 연동, SQL 작성, PreparedStatement 적용, 콘솔 입출력 구현🔐 보안 고려SQL Injection 방지를 위한 PreparedStatement 사용💡 고급 기능ResultSetMetaData 활용 동적 쿼리 실행기(nativeQuery) 구현🛠 예외 처리try-catch-finally를 통한 안정적인 DB 자원 관리 ✅ 3. 구현 기능 요약기능설명insertPhonebook()연락처 정보 신규 입력updatePhonebook()ID 기반 연락처 정보 수정d.. 2025. 6. 24.
힙 정렬 Heap Sort 자바 Max Heap 최대 힙 Heap Sort 완전 이진 트리 🔷 1. 힙 정렬(Heap Sort)이란?힙 정렬은 **완전 이진 트리 형태의 자료구조인 '힙(Heap)'**을 기반으로 하는 정렬 알고리즘입니다.힙(Heap)은 최대 힙(Max Heap) 또는 최소 힙(Min Heap) 이 될 수 있습니다.힙 정렬은 주로 최대 힙을 사용해서 내림차순 → 오름차순 정렬을 구현합니다.🔷 2. 왜 힙 정렬인가? (배경과 장점)정렬 방식메모리 추가 필요 여부시간 복잡도 (최악)안정성특징힙 정렬❌ in-placeO(n log n)❌정렬 안정성은 없지만, 메모리 효율 높음퀵 정렬❌ in-placeO(n²)❌보통 빠르지만, 최악 케이스 존재병합 정렬⭕ extra memoryO(n log n)✅메모리 사용, 안정 정렬 가능 힙 정렬은 추가 메모리 없이 항상 O(n log n)을 .. 2025. 6. 20.
equals()와 ==의 차이는 값 비교 vs 참조 비교 📌 1️⃣ data.get(i) == x비교하는 것:두 객체의 메모리 주소 (참조값, 레퍼런스) 를 비교함.즉, 두 객체가 "물리적으로 같은 객체인가?" 를 비교함.예시:Point2 a = new Point2(1, 2);Point2 b = new Point2(1, 2);System.out.println(a == b); // false (주소 다름)a와 b는 값이 같아도 서로 다른 객체 → 주소 다름 → == 결과는 false.📌 2️⃣ data.get(i).equals(x)비교하는 것:두 객체가 가지고 있는 값의 내용이 같은가? 를 비교함.즉, ix, iy가 같은지 비교하도록 Point2 클래스에서 equals()를 오버라이딩 했기 때문에 동작함.예시:Point2 a = new Point2(1, 2.. 2025. 6. 9.
스택 Stack 접시 쌓기 LIFO 큐 Queue 줄 서기 FIFO 자바 자료구조 알고리즘 📌 스택 (Stack) — "접시 쌓기"비유우리가 식당에서 접시를 쌓아두는 모습을 생각해보자.새 접시는 항상 위에 올려.꺼낼 때는 위에서부터 꺼내.이걸 LIFO (Last In, First Out, 마지막에 들어간 것이 먼저 나온다) 라고 해.예시 상황웹 브라우저의 "뒤로가기"프로그램의 함수 호출 (Call Stack)기본 동작동작설명push()데이터를 위에 올린다 (넣기)pop()위에 있는 데이터를 꺼낸다 (빼기)peek()가장 위의 데이터가 뭔지 확인 📌 스택 (Stack) — 접시 쌓기 (LIFO) [ Top ] ┌───────┐ ← 마지막 넣은 것 (먼저 나온다: pop) │ 데이터3 │ ├───────┤ │ 데이터2 │ ├───────┤ │ 데이터1 │ ← 처음 넣은.. 2025. 6. 9.
Comparator 람다식 sid 기준 정렬 설명 Comparator 람다식으로 sid 기준 정렬Comparator sidComparator = (a, b) -> a.sid.compareTo(b.sid);① ComparatorComparator 인터페이스를 구현하는 객체를 만든다.Student2 타입을 비교하는 Comparator 라는 뜻이다.즉:"나는 Student2 객체 2개를 받아서 이 둘을 비교할 수 있는 비교기를 만들겠다."② 변수 선언: sidComparator만든 Comparator를 담아둘 변수 이름이다.나중에 이걸 Arrays.sort() 등에 전달해서 정렬에 사용한다.③ (a, b) -> ...람다식 시작 부분 → 두 매개변수를 받는다.요소의미a첫 번째 비교 대상 Student2 객체b두 번째 비교 대상 Student2 객체 → 이 a.. 2025. 6. 3.
JSP 입문 개발환경 세팅 JDK 설치 Eclipse 워크스페이스 설정 1️⃣ 개발환경 구성항목내용웹서버Apache Tomcat다운로드https://tomcat.apache.org/download-10.cgi다운로드 버전10.1.41 (64-bit Windows zip)설치방법압축 해제 (설치 없이 사용 가능)설치경로 예시C:\DevelopTools\apache-tomcat-10.1.412️⃣ Java JDK 설치항목내용JDK 버전OpenJDK 사용 가능설치 경로예시: C:\DevelopTools\OpenJDK-XX설치 방법복사만 하면 끝 (간단 설치)3️⃣ Eclipse 워크스페이스 설정항목내용워크스페이스 경로E:\workspace_jsp프로젝트 유형Dynamic Web Project서버 연결Apache Tomcat 연결 📌 워크스페이스 전환 후 새로 생성1️⃣ 먼저 워.. 2025. 5. 30.
ArrayList 확장 for문 인덱스 for문 예외처리 Exception Handling Throwable NullPointerException 사용자 정의 예외 자바프로그래밍 ✅ 자바 10장: 컬렉션 API와 반복문1. 확장 for문 (향상된 for문)for (타입 변수명 : 배열/컬렉션) { 실행문; }모든 요소 순차 탐색용읽기 전용 → 요소 변경은 불가2. 인덱스 for문for (int i = 0; i 인덱스 접근 필요할 때 사용요소 수정 가능3. ArrayList 실습 예시ArrayList list = new ArrayList(); list.add("서울"); list.add("북경"); ...list.get(i) : 인덱스로 요소 꺼내기list.size() : 리스트 크기 확인✅ 자바 11장: 예외(Exception) 처리1. 예외 종류예외원인 예시ArrayIndexOutOfBoundsException배열 인덱스 범위 초과ArithmeticException0으로 나눔N.. 2025. 5. 29.
자바프로그래밍 MathClass WrapperClass StringTokenizer ArraysClass PatternClass binarySearch parseInt split equals 기본API활용 📌 1. 자바 메모리 구조 이해메모리영역설명Code상수, 메서드 등 프로그램 코드 저장Stack지역변수 저장 (메서드 내 변수)Heapnew로 생성된 객체 저장Data외부 라이브러리 (ex: C/C++) 📌 2. Object 클래스 – hashCode() / toString()✅ hashCode()객체의 고유 식별 번호(정수값) 생성객체마다 다르며, 자바 내부적으로 주소 기반 해싱사용 목적:컬렉션 비교블록체인/암호화 원리와 유사정보 추적 및 동등성 판단System.out.println(obj1.hashCode());✅ toString()객체 출력 시 자동 호출되는 메서드기본값은 클래스명@해시코드원하는 정보 출력 시 오버라이딩 필수 System.out.println(obj1); // 자동으로 obj1... 2025. 5. 29.
자바프로그래밍 다형성 toString 인터페이스 내부클래스 자바 ObjectClass equalsMethod ✅ 08장 다형성과 내부 클래스📌 1. 클래스의 다형성 – 가장 중요한 개념“부모 타입의 변수로 자식 객체를 담아 사용할 수 있다”Employee emp = new Salesman(); // OK Employee emp = new Director(); // OK✔️ 핵심 포인트:다형성은 **"한 가지 타입으로 여러 객체를 표현"**할 수 있는 것**공통된 부모 클래스(또는 인터페이스)**를 이용해 다양한 자식 객체를 하나의 변수로 제어✔️ 결과:유지보수 용이, 확장성 ↑메서드 재정의(오버라이딩)를 통해 각각의 객체가 자신의 방식대로 동작📌 2. Object 클래스와 toString() / equals()toString()public String toString() { return getClass().. 2025. 5. 25.
상속과 인터페이스 자바프로그래밍 클래스 생성자 setter 상속 toString 오버라이드 super() @override 🌱 자바 상속과 인터페이스 – 기초 개념 요약✅ 1. 클래스(Class)와 생성자(Constructor)클래스는 설계도, 객체는 그로 만든 실제 물건이에요.클래스 이름은 항상 대문자로 시작합니다. public class Employee { public Employee() { super(); // 부모 클래스의 생성자를 가장 먼저 호출해야 함 System.out.println("Employee 생성자 실행"); } }super()는 부모 클래스(Person)의 생성자를 호출합니다.→ 상속받은 클래스는 부모의 초기화를 먼저 해야 함.✅ 2. setter 메서드란?**값을 설정(set)**할 때 사용합니다. 보통 private 변수에 접근할 때 사용합니다. publ.. 2025. 5. 24.
반응형