본문 바로가기

wrapper로 constant 관리하기 레거시 프로젝트 루트에 config.json 파일을 두고 api로 호출해서 사용> 추후 값이 추가되거나, 변경 될 경우 json 파일만 수정해서 배포할 수 있도록 하려는 의도> 플랫폼 별로 프로젝트 서버가 따로 돌아가고 있는데, 동일한 값을 사용하고 있었기 때문에 데이터 변경 시 모든 파일을 수정해야 하는 상황, 한 벌로 관리하고 싶었음 문제점> 관리가 제대로 안됨, 결국 프로젝트마다 별개의 config 파일을 사용하고 있었음> key 하드코딩을 제거하기 위해 별도의 constant를 새로 정의해서 추가적인 관리 비용이 발생됨 레거시 데이터 예시// config.json{ "SOME_CODE": { "01": "Title 01", "02": "Title 02", ... }, "SOM..
Vue 프로젝트에 React 도킹하기 (script 방식) Module Federation 기능을 사용해서 레거시 Vue2 프로젝트에 React 를 띄운 후 점진적 마이그레이션을 하려던 시도는, 레거시 프로젝트의 webpack이 4버전인 관계로 무산되었다.webpack 버전 업그레이드로 인한 사이드이펙트를 고려하는 대신, Module Federation 을 사용하는 대신 script 를 mount/unmount 하는 방식으로 진행하기로 했는데, 다헹히 큰 틀에서의 사용성 차이는 없어 비교적 수월하게 테스트가 완료됐다.이와 함께 MF를 사용하지 않는다면, 굳이 webpack을 사용할 필요가 없어져 Vite를 사용하는 방안을 고려했다.현재 프로젝트는 SSR 사용 할 필요 없음, SEO 고려 할 필요 없음 > Next.js 등 프레임워크 사용 할 필요 없음 (무거움)..
Modul Federation 으로 Vue2 > React 마이그레이션 하기 기존 프로젝트: vue2host: legacy vue2 projectremote: new react18 왜 리액트18인가 ? ssr이 필요 없는 내부 프로젝트안정성 및 레퍼런스 검증이 충분함초반 마이그레이션 베이스 잡은 후 18에서 19로 업데이트 고려. 우선은 MF 안정성을 우선으로 react 프로젝트 생성npm init -y // package.json 생성npm install react@18.3 react-dom@18.3 // react 설치// webpack 필수 패키지 설치npm install webpack webpack-cli webpack-dev-server html-webpack-plugin babel-loader @babel/core @babel/preset-react..
Pydantic model_config 속성 정리 model_config- 딕셔너리를 사용하여 모델 전체에 대한 설정을 선언- 모델의 동작 방식, 직렬화/역직렬화 규칙, 필드 처리 방식 등을 제어하는 메타 설정✅ 기본 예시class MyModel(BaseModel): id: int name: str model_config = { "title": "사용자 모델", "from_attributes": True, "populate_by_name": True, }✅ 주요 model_config 속성과 설명속성명설명title모델의 제목(문서화, OpenAPI 등에서 사용됨)description모델 설명from_attributes✅ ORM 객체나 일반 객체에서 속성 기반으로 필드 값을 추출할 수 있게 함 (..
Pydantic로 구조짜기 (부제:Pydantic BaseModel은 immutable일까?) ORM 객체로 받은 뒤 Pydantic 모델로 변경할 수 있어? ChatGPT의 말:네, FastAPI + SQLAlchemy 환경에서 ORM 객체를 Pydantic 모델로 변경하는 것은 매우 일반적인 작업입니다. FastAPI는 이를 위해 pydantic 모델의 from_orm() 기능을 공식적으로 지원합니다.✅ 전체 흐름 요약1. SQLAlchemy ORM 객체 조회→2. Pydantic 모델 정의 (Config.orm_mode = True)→3. PydanticModel.from_orm(orm_instance) 로 변환📌 예시 코드🔹 1. SQLAlchemy ORM 모델 # models.pyfrom sqlalchemy import Column, Integer, Stringfrom sqlalche..
자료구조 [Queue, Stack, Heap] ✅ 2. 큐 / 스택 / 셋 / 맵의 본질적 차이이제 이 네 가지 자료구조의 핵심 철학, 자료 보관 방식, 접근 패턴을 비교해볼게요.항목큐 (Queue)스택 (Stack)셋 (Set)맵 (Map / Dictionary)추상 개념줄 (대기열)쌓기 (접시 더미)집합 (중복 없음)키-값 대응 표저장 순서 유지예: FIFO예: LIFO보통 없음 (순서 중요 X)보통 없음 (Key 중심 접근)중복 허용✅ 가능✅ 가능❌ 허용 안 됨❌ Key 중복 안 됨접근 방식앞에서 제거위에서 제거값의 존재 여부만 확인Key로 접근대표 연산enqueue, dequeuepush, popadd, remove, input, get, in시간 복잡도O(1) 삽입/삭제O(1) 삽입/삭제O(1) 존재 확인 (해시기반)O(1) 조회/삽입 (해..
RAG (Retrieval-Augmented Generation) 🔍 RAG (Retrieval-Augmented Generation)란?**RAG (Retrieval-Augmented Generation)**은 검색 기반 생성 기법으로, **대규모 언어 모델(LLM)**이 외부 데이터베이스에서 정보를 검색한 후, 해당 정보를 바탕으로 응답을 생성하는 방식입니다.즉, 단순한 **문장 생성(Text Generation)**이 아니라, **검색(Retrieval)**을 통해 실시간 정보를 활용하여 더욱 정확하고 신뢰할 수 있는 응답을 제공합니다.🔹 왜 RAG가 중요한가?일반적인 LLM (예: GPT-4, Claude, Gemini)은 사전에 학습된 데이터를 기반으로 응답을 생성하지만, 최신 정보나 학습 데이터에 없는 내용은 잘못된 정보를 제공할 가능성이 있습니다.📌 ..
Thread & Task ✅ CS 관점에서 스레드(Thread)와 태스크(Task)의 차이➡ 스레드(Thread): 운영체제(OS)에서 직접 관리하는 실행 단위➡ 태스크(Task): 일반적으로 "작업 단위"를 의미하며, 특정 환경에 따라 다르게 정의됨🔥 1️⃣ 스레드(Thread)란? (CS 관점)➡ 스레드는 운영체제가 관리하는 실행 단위로, 하나의 프로세스 내에서 실행되는 흐름입니다.➡ 각 스레드는 자신만의 레지스터, 스택을 가지며, 동시에 실행될 수 있음.➡ 멀티스레드 환경에서는 여러 개의 스레드가 동시에 실행되며, CPU에서 병렬적으로 처리될 수도 있음.📌 운영체제에서의 스레드 특징운영체제가 관리✅ OS가 직접 생성, 스케줄링, 컨텍스트 스위칭멀티코어 활용 가능✅ 여러 개의 CPU에서 병렬 실행 가능각 스레드는 독립적인..