전체 글 146

Charmander - CICD 파이프라인 구축

1. EC2 인스턴스 생성2. EC2 인스턴스 접속3. Docker, Docker Compose 설치# 패키지 업데이트sudo yum update -y# Docker 설치sudo yum install -y docker# Docker 데몬 시작sudo service docker start# (선택) 부팅 시 Docker 자동 시작sudo systemctl enable docker# ec2-user(또는 원하는 사용자)를 docker 그룹에 추가sudo usermod -aG docker ec2-user# (권장) 최신 버전 설치를 원한다면, GitHub 릴리스 페이지에서 버전 번호를 바꿔 사용하세요.# https://github.com/docker/compose/releases# 1) 바이너리 다운로드sud..

카테고리 없음 2025.03.13

shoplink - 모니터링 시스템 구축 (prometheus + grafana)

1. Spring Boot 애플리케이션에 Prometheus 메트릭 내보내기1.1. 의존성 추가1) Spring Boot Actuator - 애플리케이션의 다양한 지표(헬스 체크, 정보, 메트릭 등)를 제공하는 핵심 라이브러리2) Micrometer Registry Prometheus - Micrometer를 통해 Actuator에서 수집한 메트릭을 Prometheus가 이해할 수 있는 형태로 노출 1.2. 설정 파일(yml) 변경application.yml(혹은 application.properties)에서 Actuator 엔드포인트 설정 해주기Prometheus가 수집할 수 있도록 /actuator/prometheus 엔드포인트를 공개해야 함server: port: 8080management: e..

카테고리 없음 2025.02.20

패스트캠퍼스 토이프로젝트3 쇼핑몰 잡화 서비스 회고

회고할 내용1. 개발문화정립2. LLM경험 1. 개발문화정립약 2주간의 토이프로젝트가 2월 4일 발표를 기점으로 끝이 났다. 이번 프로젝트에서 가장 인상깊었던 부분은 개발 문화에 대한 정립이었는데, 이전 프로젝트에서 개발 프로세스에 여러 문제점을 느낀 한 팀원분이 좋은 개발 문화를 정립하는데 큰 기여를 해주셨는다. 특히 그 부분이 프로젝트 진행에 있어 크나큰 도움이 됐다. 팀원 분께서 느낀 (전)프로젝트의 문제점은 세가지였다. 1. 한 PR의 많은 커밋2. 잦은 충돌3. 대기 / 병목으로 인한 효율 저하 이 문제점을 다음과 같이 수정했다. 1. 하나의 PR에는 최소한의 코드만 작성 / 변경2. 개발하는 시간 이외에 충돌 문제를 해결하는 시간 줄이기3. 목표를 수치화스프링 부트 오픈소스나 다른 이름있는 프..

회고 2025.02.05

IoC 디자인 원칙과 스프링 프레임워크

IoC는 디자인 원칙이다.스프링 프레임워크는 IoC디자인 원칙을 따르고 있다. IoC 원칙을 구현하기 위해 스프링은 *IoC컨테이너를 제공하고 이 컨테이너의 핵심 인터페이스는 BeanFactory이다.*(IoC컨테이너는 실제 구현되어있는 클래스나 인터페이스가 아닌 개념에 가깝다. IoC컨테이너를 제공한다는것은 IoC컨테이너라는 개념을 구현한 실제 인터페이스와 구현체를 제공한다는 것이다.)스프링에서 제공하는 대표적인 IoC 컨테이너에는 BeanFactory라는 인터페이스가 있다. IoC 원칙을 적용해서 객체 생성, 의존성 주입, 빈 생명주기 관리 등을 수행한다. 가장 기본적인 스프링 IoC컨테이너이자, 경량 컨테이너이다. 이 인터페이스의 대표적인 구현체로는 DefaultListableBeanFactory가..

Programming/Spring 2025.01.11

자바에서 가장 많이 호출되는것은 무엇일까

자바에서 가장 많이 호출되는 클래스는 사용자의 코드와 환경에 따라 다를 수 있지만, 일반적으로 핵심 Java API 클래스들이 가장 많이 호출됨. 그중에서도 아래 클래스들이 자주 호출됨: 1. java.lang 패키지이 패키지의 클래스는 기본적으로 import 없이 사용되므로 매우 자주 호출됨. • String:• 문자열 처리와 관련된 작업에 사용. • 예: System.out.println("Hello");에서 문자열 리터럴 "Hello"가 포함됨. • Object: • 모든 클래스의 최상위 부모 클래스. • 객체 생성, 비교, 해시코드 계산 등에서 자주 호출됨. • 예: equals, hashCode, toString 메서드. • Math: • 수학적 계산(예: Math.sqrt, Math.pow)에..

패스트캠퍼스 중간회고(240928~250110)

먹보블로그에서의 첫 회고 목차- 나는 왜 회고를 해야할까- 집중적으로 공부했던것- 학습기간 중 개선했던 한 가지- 복기- 고민되는 것 나는 왜 회고를 해야할까?1. 기억과 기록 중 오래가는것은 기록이다.2. 내가 했던 공부와 작업물들을 점검한다.3. 협업시 기술이나 소통에 있어 나의 미흡했던 부분을 복기하고 개선한다. 집중적으로 공부했던 것1. Java    a. 세븐포커 카드게임 미션을 통한 객체지향적 프로그래밍 사고 및 구현        - 전략 패턴(Strategy Pattern): 상황에 맞는 카드 족보 검사를 수행하도록 다양한 전략 구현         - 유지보수성 강화 불변성(Immutable Object): Card 클래스에 불변 객체 설계 적용2. Spring(프로젝트)    a. 쇼핑몰..

회고 2025.01.10

Vector Database

답변을 생성할 때 필요한 데이터는 사용자가 원하는 정보이다.- 사용자의 질문과 관련있는 데이터여야한다. 관련이 있다는것을 어떻게 판단할까?관련성 파악을 위해 vector를 활용한다.- 단어 또는 문장의 유사도를 파악해서 관련성을 측정한다.  벡터를 어떻게 생성하는가?Embedding 모델을 활용해서 vector를 생성한다.임베딩 모델은 문장에서 비슷한 단어가 자주 붙어있는 것을 학습한다. ex) 왕은 왕자의 아버지다 / 여왕은 왕자의 어머니다=> "왕자의" 라는 단어 앞에 등장하는 "왕"과 "여왕"은 유사할 가능성이 높다벡터 데이터베이스란1. Embedding 모델을 활용해 생성된 vector를 저장- 단순히 vector만 저장하면 안되고 metadata도 같이 저장해야한다 **이 부분이 상당히 중요하다..

RAG란?

1. Retrieval- 데이터를 가져오는것2. Augmented- Retrieval된 데이터를 LLM에 전달하며 마치 정보를 아는것처럼 3. Generation- 답변을 생성 고민할 부분1. 답변 생성은 LLM 역할2. 나는 데이터를 잘 가져와서3. LLM에 잘 전달해야함 데이터를 잘 가져오려면1. 잘 저장해야함2. 잘 저장하는게 어려움 - 제일 중요한 부분임 잘 전달하려면?1. 프롬프트를 잘 활용해야함2. 문맥을 어떻게 제공할 것인가 ***

프로세스의 개념

1. 프로세스의 정의 • 프로세스(Process): 운영체제가 제공하는 핵심 개념 중 하나로, 실행 중인 프로그램을 의미한다. 프로그램은 디스크에 저장된 명령어와 정적 데이터의 집합이며, 운영체제는 이를 메모리에 로드하여 실행 가능하게 만든다. • 실행 중인 프로그램: 사용자들은 웹 브라우저, 메일 프로그램, 게임, 음악 플레이어 등 여러 프로그램을 동시에 실행시킴으로써 시스템을 효율적으로 사용할 수 있다. 운영체제는 이러한 다중 프로세스를 관리하여 사용자에게 원활한 경험을 제공한다. 2. 핵심 질문: CPU가 여러 개 존재한다는 환상을 어떻게 제공하는가? • 가상화(Virtualization): 운영체제는 실제로는 하나 또는 소수의 물리적 CPU를 여러 개의 가상 CPU로 분할하여 다수의 프로세스가 동..

운영체제/OSTEP 2025.01.03