전체 글 24

eclipse - git 연동 시 변경된 코드 확인

📝로컬 변경 사항과 마지막 커밋(로컬) 비교하기Eclipse 내부에서 Git 플러그인이 기본 제공하는 기능을 사용변경된 파일 우클릭 > Compare With > HEAD Revision 클릭HEAD Revision은 로컬에서 가장 최근 커밋 상태 이후 창에서 변경된 부분을 확인 가능- 왼쪽이 현재 변경된 로컬 코드 / 오른쪽이 로컬에서 가장 최근 커밋 상태추가된 코드는 초록색, 삭제된 코드는 빨간색으로 표기됨

IDE 설정 2025.07.30

eclipse - jdk 설정

📚Workspace 단위의 기본 jdk 설정상단 메뉴에서 Window > Preferences 클릭이후 Preferences 팝업창에서 Java > Installed JREs 선택하면 아래와 같이 설치된 jdk를 Add할 수 있음우측의 Add 버튼 클릭 > Standard VM 선택 후 Next 이후 JRE home 경로 설정을 위해 Directory... 버튼 클릭 설치되어 있는 JDK 경로로 진입하여 선택 (현재 jdk-13.0.2 추가)기본 Java 설치 경로는 C:\Program Files\Java 폴더 선택 시 jar 파일 인식이 정상적으로 되었다면 Finish 버튼 클릭 jdk-13이 정상적으로 인식 완료되면 workspace 내부의 모든 프로젝트들에 일괄적으로 jdk-13을 적용시킬 수 있..

IDE 설정 2025.07.29

[RAG] SpringBoot + postgreSQL(pgvector) + OpenAI - 4 : PDF를 벡터 DB에 저장

📃코드 작성우선 OpenAI가 읽을 VectorDB 내부에 저장할 PDF를 resources 폴더 안에 넣습니다. 사용할 PDF는 소설 '운수 좋은 날' 입니다. resources 파일 내부에 넣게 되면 다음과 같이 표시됩니다.📚schema.sql이제 SpringApplication이 실행될 때마다 함께 실행되는 sql문을 작성해보겠습니다. pdf와 같은 위치인 resources 폴더 아래에 우클릭 > New > File 을 선택해서 schema.sql 을 생성합니다.DROP TABLE IF EXISTS vector_store;CREATE EXTENSION IF NOT EXISTS vector;CREATE EXTENSION IF NOT EXISTS hstore;CREATE EXTENSION IF NO..

[RAG] SpringBoot + postgreSQL(pgvector) + OpenAI - 3 : SpringBoot 프로젝트 생성 및 pgvector 연결

📝 프로젝트 생성PostgreSQL과 Docker Desktop 설치가 완료되었다면 이제 SpringBoot 프로젝트를 하나 생성합니다. 아래 링크에 접속해서 다음과 같이 Dependencies를 추가합니다.https://start.spring.io/ 기본 Maven, 언어는 Java 선택 후 SpringBoot 버전은 3.4.1 선택한 후 Java 버전은 17로 지정해주었습니다.추가해줄 Dependency들은 아래와 같습니다.DependenciesSpring WebJDBC APIPostgreSQL DriverPGvector Vector DatabaseSpring Data JPADocker compose Support위와 같이 모두 추가한 후 Generate 버튼을 클릭해서 다운로드받은 후, IDE로 ..

[RAG] SpringBoot + postgreSQL(pgvector) + OpenAI - 2 : Docker 설치

Windows 용 Docker 설치 링크https://docs.docker.com/desktop/setup/install/windows-install/ WindowsGet started with Docker for Windows. This guide covers system requirements, where to download, and instructions on how to install and update.docs.docker.com위 링크에서 Docker Desktop for Windows 버튼 선택해서 다운로드 다운로드 후 exe 파일 실행OK 눌러서 설치 후 재부팅 진행설치 완료된 Docker Desktop 실행recommended settings로 선택 후 Finish 버튼 클릭Person..

[RAG] SpringBoot + postgreSQL(pgvector) + OpenAI - 1 : 프로젝트 개요 및 PostgreSQL 설치

프로젝트 개요본 글은 Local 환경에서 구현된 연습용 프로젝트로, SpringBoot와 PostgreSQL(pgvector) 그리고 OpenAI API를 활용하는 것에 중점을 두었습니다. 1. Docker 설치 및 compose.yaml 파일 작성pgvector image를 pull 받도록 접근하는 yaml 파일을 작성한다. 2. pgvector/pgvector image pullDocker Hub에 올라와 있는 pgvector image를 내 PC에 pull 받은 후, docker compose up 과 같은 명령어 입력 시 Docker Container가 생성되고 내부에서 image가 실행된다. (*굳이 compose.yaml 파일을 작성하지 않고, 수동으로 image를 pull 받아도 상관없다.)..

객체 생성과 파괴(3) - Builder 고려하기

💡 점층적 생성자 패턴(telescoptin constructor pattern)정적 팩터리와 생성자에는 똑같은 제약이 하나 있는데, 선택적 매개변수가 많을 때 적절히 대응하기 어렵다는 점이다. 보통 점층적 생성자 패턴(telescoping constructor pattern)을 즐겨 사용하여, 생성자의 형태를 여럿 만들어 사용했다.public class Car { private String model; private String color; private int year; private boolean isElectric; public Car(String model) { this.model = model; } public Car(String model, String color) { this.mode..

이펙티브 자바 2025.01.14

객체 생성과 파괴(2) - 정적 팩터리 메서드 단점

정적 팩터리 메서드 사용 시 단점1. 상속을 하려면 public이나 protected 생성자가 필요하니 정적 팩터리 메서드만 제공하면 하위 클래스를 만들 수 없다.앞서 말한 컬렉션 프레임워크의 유틸리티 구현 클래스들은 상속할 수 없다는 이야기다. 이 제약은 상속보다 컴포지션을 사용하도록 유도하고, 불변 타입으로 만들려면 이 제약을 지켜야 한다는 점에서 오히려 장점으로 받아들일 수도 있다. 2. 정적 팩터리 메서드는 프로그래머가 찾기 어렵다.생성자처럼 API 설명에 명확히 드러나지 않으니 사용자는 정적 팩터리 메서드 방식 클래스를 인스턴스화할 방법을 알아내야 한다. API 문서를 잘 작성하고 메서드 이름도 널리 알려진 규약을 따라 짓는 식으로 문제를 완화해야 한다.아래는 정적 팩터리 메서드에 흔히 사용하는..

이펙티브 자바 2025.01.10