목록전체 글 (72)
yeonuel-tech
현재 진행 중임...
현재 회사에서 프로젝트를 하고 있다. 해당 프로젝트의 주요 서비스 중 하나는 문서 관리가 있다. 문서를 쓰고 결제를 올리고 ,,, 다양한 작업을 할 수 있다이 과정에서 파일을 등록하는 기능을 구현하는 것이 매우 중요하다 스프링부트에서 파일 등록 기능을 구현하기 위한 매커니즘은 크게 아래와 같이 구분할 수 있다. - 1. MultipartFile- 2. Part - 3. HttpServletRequest 객체 직접 파싱 - 4. InputStream / byte[] 직접 받기 - 5. 스트리밍 방식- 6. WebFlux의 FilePart... 현재 우리 회사 프로젝트는 오픈을 앞두고 있는 상황이기 때문에 성능보단 안전성이 중요하다. 따라서, 가장 안정적이면서도 일반적인 방법인 MultipartFile ..
### 현재 상황 현재 나는 회사에서 LLM, 웹 서비스를 맡고 있다. 챗 봇 서비스(RAG)를 만들기 위해 간단한 MSA 프로젝트를 구성했는데, 이를 상기하며 공부할겸 블로그에 정리하려고 한다. ### 기술 선택 배경 ### 프로젝트 구현 과정
### 현재 상황 현재 회사 서비스 구조는 스프링부트 기반의 멀티 모듈 플랫폼 서비스이다. 그리고 Docker 환경에서 해당 서비스를 빌드/배포 처리를 하고 있다. ### 기술 선택 과정 스프링부트로 멀티 모듈을 구성한 이유는 간단하다 내부 개발자들 중에 frontend를 전문으로 하는 사람이 없기 때문이다.그래서, 복잡도를 최소화하기 위해 아래와 같은 기술을 선정하여 프로젝트를 구현했다고 한다. 내가 생각해도 해당 선택은 합리적이라고 생각한다. ### 스프링 프레임워크 내부 구조 일단, 스프링부트와 시큐리티 기반의 JWT 인증/인가 기능을 구현하기 앞서 내부 프레임워크 구조부터 파악하는 것이 중요하다. 사용자가 스프링부트로 요청을 보낼 경우 아래와 같은 구조로 요청이 처리된다. 이때 ..
### 현재 상황 현재 회사에서 인프라 구축을 담당하고 있으며 특정 회사의 솔루션을 도입하여 온프레미스 환경에서의 MSA 구축을 진행했다 현재 회사 서비스 시스템 구조는 Docker, Docker-Compose, Jenkins를 활용하여 도커 환경에서 컨테이너 기반의 서비스를 구축하였고 젠킨스를 통한 CI/CD 파이프라인도 적용되어 있다. 솔루션 프로그램 또한, 리눅스 환경에 Docker, Docker-Compose 기반으로 적용했다. ### 기술 선택 과정 현재 내가 위 구축 과정에서 사용한 기술은 크게 3가지가 있다 - Docker, Docker-Compose, NFS 통신 Docker, Docker-Compose를 사용한 이유는 온프레미스 환경에서 클라우드 환경으로 이주할 경우를 고려하여 적용..
1. epoll, mmap 이란?epoll, mmap을 설명하기 앞서, '시스템 콜'에 대해 간단히 짚고 가는 것이 중요하다. 시스템 콜이란? 프로세스가 컴퓨터의 리소스를 적절히 활용할 수 있도록 커널의 특정 기능을 호출하는 방식이다. 이를 통해 멀티 프로세스 환경에서라도 안정적이고 균등하게 컴퓨터 리소스를 활용할 수 있다. 그럼, epoll이란? I/O 처리가 완료되어 실행이 가능 상태가 된 fd(파일 디스크립터)를 알려주고 이를 통해 대기 중인 스레드를 깨우는 매커니즘. 즉, fd 상태 알림으로써 효율적인 스레드 사용 도모할 수 있다. 또한, mmap이란? 파일을 메모리 주소 공간에 배치하여 I/O를 메모리 접근으로 바꿔서 시스템 콜, 복사, 컨텍스트 스위칭 병목을 제거하여 효율적인 성능을 기..
> 목차[1] LLM 애플리케이션의 취약점 및 애로사항[2] Local LLM의 등장 [3] LM Studio 소개(Ollama와 비교) [4] LM Studio 실습 과정 [1] LLM 애플리케이션의 취약점 및 애로사항LLM 애플리케이션에는 여러 취약점 및 애로사항이 있습니다.이를 공식 문서로 정리한 곳이 있습니다. 해당 문서에서는 아래와 같이 총 10가지 항목으로 LLM 애플리케이션의 취약점에 대해 설명합니다. - 1. Prompt Injection- 2. Sensitive Information Disclosure - 3. Supply Chain - 4. Data and Model Poisoning - 5. Improper Output Handling - 6. Excessive Agency - 7...
컴퓨터 구조를 살펴보기 전에 먼저 컴퓨터는 어떤 정보를 바탕으로 동작하는지 생각해보자.바로, ‘명령어(Instruction)’와 ‘데이터(Data)’이다.이 둘은 모두 0과 1로 이루어진 이진수 형태의 정보이며, 컴퓨터는 이 정보를 해석하고 처리함으로써 동작한다.명령어(Instruction):컴퓨터가 수행해야 할 작업(예: 덧셈, 비교, 저장 등)을 정의한다.데이터(Data):명령어가 처리해야 할 실제 값이나 입력 값이다.이제 이러한 정보들이 어떻게 처리되고 흐르는지 거시적인 관점에서 컴퓨터 구조를 살펴보자.컴퓨터의 구조는 보통 다음과 같은 4가지 주요 구성 요소로 나뉜다: - 1. CPU: 프로그램 내에서 다양한 연산 처리 - 2. 캐시/메인 메모리: 실행 중인 프로그램이나 데이터 적재 공간 - 3. ..