목록전체 글 (64)
leehyeon-dv 님의 블로그
마이그레이션 이유 npm을 사용할 때 종속성을 사용하는 프로젝트가 100개 있는 경우 해당 종속성의 사본 100개가 디스크에 저장되는반면, pnpm을 사용하면 의존성이 content-addressable 저장소에 저장되기때문에 디스크 상에서 단일 위치에 저장되어 추가적인 디스크 공간을 소비하지 않기 때문, 이를 통해 프로젝트 간에 동일한 버전의 의존성을 공유할 수 있다 결과적으로,디스크 공간이 프로젝트와 의존성의 수에 비례하여 더 많이 절약되고 더 빠르게 설치할 수 있다.https://pnpm.io/motivation Motivation | pnpmSaving disk spacepnpm.io 1. pnpm 설치하기 npm이 있기때문에 간단히 설치하겠습니다 npm i -g pnpm 2. 기존 node_..

📌소개 및 기초개념 디지털 서비스 예 : 메신저, 비디오 스트리밍, 온라인게임, 소셜 미디어 핵심 메세지 : 이런 서비스들은 모두 데이터통신을 기반으로 한다 어떻게 디지털 서비스가 제공될까? 서비스 제공구성: 사용자 장치와 서버 (서버에서 장치로 데이터를 전송) 예 : 메세지, 비디오, 이미지등이 서비스 데이터 어떻게 데이터가 전달될까? 발신자(Sender) → 수신자(receiver)까지 여러 중간 단계를 거침 (데이터도 네트워크를 통해 우편배송과 유사한 방식으로 전달됨) Data Communications 실제 데이터 통신모델 : 발신자 → data 네트워크 → 수신..

1. Tailwind CSS설치 pnpm install tailwindcss @tailwindcss/vite 2.Vite plugin구성vite.config.ts파일 아래 파일을 추가한다 import { defineConfig } from 'vite'import tailwindcss from '@tailwindcss/vite'export default defineConfig({ plugins: [ tailwindcss(), ],}) 3.index.css에 최상단에 아래 코드 추가 @import "tailwindcss"; React Router사용자가 웹 브라우저의 주소창에 URL을 입력하면 해당 URL에 맞는 데이터를 서버로 부터 받아와 사용자에게 제공하는 과정 CSR은 페이지는 유지하되, 부..

해당 화면들에 대해 작성했던 쿼리를 QueryDSL로 작성하여 리팩토링하기⭐미션목록1. Mission2. Review3. MemberRepository/Custom/Impl구조로 나누는 이유1. 기존 SpringDataJPA와의 통합 JpaRepository를 통해 기본 CRUD기능 + 커스텀 기능 동시에 사용가능 하나의 레포지토리 인터페이스로 모든 기능 접근 가능2. 관심사 분리 기본 기능과 복잡한 쿼리의 명확한 분리 인터페이스와 구현체 분리로 결합도 감소3. 확장성 새로운 QueryDSL메서드가 필요할때 인터페이스에 추가하고 구현만 하면 됨 기존 코드 변경없이 기능 확장 가능 Repository = SpringDat..

⭐ 목차영속성 컨텍스트란?왜 영속상태가 좋을까 지연로딩(FetchType.LASY)N=1JPQLQueryDSL실습목표 = JPA의 영속성 컨텍스트의 개념, JPQL과 QueryDSL의 차이점, QueryDSL이 가지는 유리함에 대해 알기 📌영속성 컨텍스트란? JPA의 핵심개념 중 하나로 엔티티 객체를 영구적으로 저장하고 관리하는 일종의 메모리 공간이다 쉽게 말하면, 애플리케이션 내부에 존재하는 가상의 데이터 베이스라고 이해할 수 있다 왜필요할까? → ORM은 객체와 관계형 데이터베이스를 자동으로 매핑해주는 기술이다. JPA는 이러한 ORM기술을 제공하며 영속성 컨텍스트는 JPA에서 엔티티 객체를 효율적으로 관리하기위해 존재한다 동작방식데이터를 조회하거나 저장시, JPA는 다음과 같은 흐름으로 동작합..

⭐ 목차JPA사용 이유spring 프로젝트 설계엔티티 매핑매핑테이블 설계연관관계 매핑양방향 매핑칼럼 별 세부적인 설정 목표 = JPA를 사용해 엔티티를 만들고 DB에 테이블이 만들어지는지 확인하기 📌JPA사용이유 자바의 목표 : 캡슐화/상속/다형성을 활용하는 것, RDBMS(관계형 데이터베이스)는 데이터를 정교하게 구성하는 것예)// 중복 회원인지 먼저 확인해주는 작업pStmt = conn.prepareStatement("SELECT * from member WHERE id = ?");pStmt.setLong(1, newUser.getId());res = pStmt.executeQuery();if(res.next()) { return "이미 가입한 사용자입니다. 다른 id를 사용해주세요.";}J..

🔑Table of Contents시간복잡도 알고리즘분석RAMO, Ω , Θ 표기최대 부분 배열단순한 O(n³) 알고리즘 O(nlogn) 분할정복법 알고리즘 O(n) 동적 계획법 알고리즘중복 계산을 제거한 O(n²) 알고리즘정렬과 탐색삽입정렬선택정렬거품정렬퀵정렬이진탐색선형리스트 순차매핑연결리스트 헤드노드를 가진 연결리스트 환형 연결리스트 이중 연결리스트 스택과 큐스택큐환형 큐연결리스트를 큐로 구현 리스트의 응용배열이용희박행렬 배열이용희박행렬 연결리스트 이용스트링 표현연산식트리용어정리재귀적정의트리표현 - 링크이용트리의 이진 트리 표현괄호를 이용한 트리표현이진트리이진트리의 재귀적 정의이진트리의 성질이진트리 표현 - 링크이용이진트리 표현 - 배열이용이진트리 순회수식트리중순위 순회후순위 순회와 전순위 순회..

🔑Table of Contents스택이란?📌스택이란? 삽입과 삭제 연산을 한 쪽 끝에서만 일어나도록 제한한 리스트스택에서 삽입과 삭제 연산이 일어나는 끝을 top이라하고, 삽입 연산과 삭제 연산을 각각 push, pop이라고 한다 LIFO : 스택에서 나중에 삽입된 원소가 먼저 삭제되는 성질시스템에서 함수 호출이 발생할 경우, 가장 최근에 호출된 곳으로 복귀하기 위해 스택에 복귀 주소를 저장해 둔다 📌스택의 구현1 - 배열#define MAX_STACK_SIZE 1000 // 스택의 최대 크기 정의// 스택에 저장될 요소의 구조체 정의typedef struct { int key; // 저장할 데이터 (다른 필드도 확장 가능) /* other fields here ..

🔑Table of Contents선형리스트 란? 선형리스트의 연산배열 - 선형리스트 표현1 📌선형리스트 란? 선형 리스트(혹은 리스트)는 자료가 순서를 가지고 나열된 자료구조 리스트의 원소 = 리스트를 이루고 있는 각각의 자료 n개의 원소 a₀, a₁, ... , aₙ₋₁로 이루어진 리스트는 ( a₀, a₁, ... , aₙ₋₁ )로 표기한다 📌선형리스트의 연산 리스트에서 수행하는 대표적인 연산리스트 길이는?리스트의 모든 원소를 하나씩 읽어라k번째 원소는 무엇인가k번째 원소를 다른 원소로 교체해라k번째 위치에 새로운 원소를 삽입하라, 연산을 수행한 후에는 기존의 k번째 원소가 k+1번째 원소가 된다 k번째 원소를 삭제해라. 기존의 k+1번째 원소가 k..
🔑Table of Contents정렬 및 탐색 알고리즘정렬- 재귀적 접근1 정렬- 재귀적 접근2 퀵 정렬 퀵 정렬 분석 퀵 정렬에 덧붙여..정리📌 정렬 및 탐색 알고리즘정렬삽입 정렬 → O(n²)선택 정렬 → O(n²)거품 정렬 → O(n²)퀵 정렬 → O(n²) O(n logn)합병 정렬 → O(n logn)힙 정렬 → O(n logn)이진 탐색 트리를 이용한 정렬 → O(n logn)탐색이진 탐색 → O(logn)선형 탐색 → O(n)📌 정렬- 재귀적 접근1 [ 8 21 33 6 7 10 40 87 66 42 50 ] 삽입 정렬 6 7 8 10 21 33 40 42 66 87 • 앞에서 부터 수를 정렬에 맞게 삽입 / n개 n번탐색 O(n²) ..