본문 바로가기

전체 글203

[Java] 기본 디자인 패턴 전략 패턴 알고리즘(전략)을 캡슐화하여 상황에 따라 언제든지 교체 가능하게 하는 패턴.1. 유연하게 언제든지 교체 가능2. 결합도 감소(사용하는 코드와 실제 코드가 분리) 옵저버 패턴 한 객체의 상태가 변화가 되면 이를 의존하는 다른객체들에게 통보하는 전략 패턴.(1:N 의존관계)1. 느슨한 결합(주제와 관찰자는 서로 잘 몰라도 됨)2. 이벤트 기반(상태 변경에 따른 자동 업데이트 편함) 데코레이터 패턴 기존의 객체의 코드를 수정하지 않고도 기능의 추가를 덮어씌우듯이 추가하는 전략 패턴(상속대신에 객체를 감싸서 기능을 확장)1. 유연한 기능 추가(필요한 기능만 골라 동적으로 조합가능)2. 기존 코드 보호(원래 코드를 건드리지 않고 기능 확장 가능) 팩토리 패턴 모든 객체 생성 로직을 별도의 공장 클래스로.. 2025. 10. 26.
[트러블 슈팅]Vite + React 프로젝트를 GitHub Pages에 배포했는데 흰 화면만 나오는 문제 [문제사항]Vite + React로 만든 프로젝트를 GitHub Pages에 올렸는데, 로컬에서는 npm run dev로 잘 실행되는데 정작 깃 페이지 주소 URL에 들어가면 배경이 흰 화면만 나오는 문제가 발생했다.빌드도 에러 없이 끝났고, GitHub Pages 설정도 main 브랜치로 되어 있었는데 페이지에 들어가면 제목만 나오고 아무 내용도 안 보였다. 원인 분석 처음엔 “빌드가 잘못된 건가?” 하고 생각했지만,Vite 프로젝트는 로컬(localhost:3000)에서는 기본 경로(/) 기준으로 파일을 불러온다.하지만 GitHub Pages는 리포지터리 이름이 포함된 하위 경로(/@@@_Dev/) 에서 페이지를 호스팅한다. 즉,로컬 실행 시 http://localhost:3000/ GitHub P.. 2025. 10. 18.
[자료구조 & 알고리즘] 스택, 큐, 덱(JAVA) 스택(Stack), 큐(Queue), 덱(Deque): 기본 자료구조의 완벽 이해가장 기본이 되는 "선형자료구조"인 스택(Stack), 큐(Queue), 덱(Deque)은 데이터의 접근 순서를 규정함으로써 프로그램의 효율적인 작동을 가능하게 합니다. 또한 알고리즘 문제(코딩테스트) 해결은 물론, 운영체제나 네트워크 통신 등 컴퓨터 시스템 전반에 걸쳐 핵심적인 역할을 수행합니다.스택(Stack) : LIFO 구조의 메모리스택은 마지막에 들어온 데이터가 가장 먼저 나가는(LIFO:Last-In, First-Out) 구조를 가진 자료구조입니다. 데이터 삽입과 삭제는 항상 한쪽 끝에서만 이루어집니다.삽입 / 삭제321(제일 먼저 들어와 먼저 나감)특징 및 주요 연산연산설명시간 복잡도Push스택의 맨 위에 데이터.. 2025. 9. 25.
[자료구조&알고리즘] 배열과 리스트(JAVA) 자바(Java) 배열(Array)과 리스트(List) 단순히 문법을 아는 것을 넘어, 두 자료구조의 내부 동작 원리와 성능 차이를 이해하는 것이 중요합니다. 해당 내용은 자바(Java)를 기준으로 배열과 리스트를 완벽하게 파헤치고, 성능, 동작, 메서드, 캐시 원리까지 알아보겠습니다. 배열(Array) : 고정된 연속 공간자바에서 배열은 같은 타입의 연속된 메모리 공간에 저장되는 자료구조입니다. 한 번 생성되면 크기를 변경할 수 없으며, 인덱스(Index)를 사용하여 요소에 접근합니다.특징 및 원리크기 고정(Static) : 배열은 생성 시점에 메모리 크기가 고정됩니다. 한 번 선언된 배열은 크기를 늘리거나 줄일 수 없습니다.캐시 힛 레이트(Chash hit rate) : cpu가 데이터를 가져올시 배열.. 2025. 9. 25.