
실습 목표 (문서 기준)
PostgreSQL + pgvector가 돌아가는 컨테이너 1개 띄우기
1.도커 설치

2.Dbeaver 설치

brew install --cask dbeaver-community
터미널 접속해서 다음과 같은 명령어을 입력하시오
docker run -p 5432:5432 -d \
-e POSTGRES_USER=edu \
-e POSTGRES_PASSWORD=1234 \
-e POSTGRES_DB=edudb \
-v vpg:/var/lib/postgresql/data \
--name edupgvector \
ankane/pgvector
docker run
(Docker로 컨테이너 실행)
-p 5432:5432
(내 PC 5432 포트 ←→ 컨테이너 PostgreSQL 5432 포트)
Spring Boot
DBeaver
pgAdmin
전부 localhost:5432 로 접속 가능
🔹 -d
백그라운드에서 설명 실행
환경변수 3종 (PostgreSQL 계정 생성)
-e POSTGRES_USER=edu
-e POSTGRES_PASSWORD=1234
-e POSTGRES_DB=edudb
-v vpg:/var/lib/postgresql/data
DB 데이터 저장소 연결
WHY?
컨테이너 삭제해도 DB 데이터는 남아있게하기위함
(실습 중 DB 날아가는 거 방지용)
그래서 나중에:
이렇게 관리 가능
ankane/pgvector
실행할 이미지
(PostgreSQL + pgvector 내장)

설치완료

Dbeaver로 edu 디비만듬

거리식 계산 <=> = 코사인 거리 계산
SELECT tpt.*, tpt.embedding <=> '[0.2, 0.3, 0.4]' AS cosine_distance
FROM tb_pg_test tpt

코사인 기반 inner product 계산
SELECT tpt.*, embedding <#> '[0.2, 0.3, 0.4]' AS inner_product
FROM tb_pg_test tpt

spring12번
리액트와 스프링을 연결해봄
apple@apples-MacBook-Air springai13 % chmod +x gradlew
apple@apples-MacBook-Air springai13 % ./gradlew bootRun
포트찾아 죽이기:lsof -i :8080
spirng 13번
리액트와 스프링을 연결해봄



왜 WebConfig를 만들어서 CORS 설정을 해야 하나?
1. 프론트와 백엔드는 “출처(origin)”가 다르다
서버가 “와도 된다”고 명시하지 않으면
브라우저가 요청 자체를 보내지 않음
브라우저가 먼저 묻는다
“이 요청 보내도 됨?”
서버가 OPTIONS 응답에
Access-Control-Allow-Origin 없으면
본 요청(GET/POST) 아예 안 감
WebConfig는 서버에게 이렇게 말하는 역할:
localhost:5173에서 오는 요청은
GET/POST/OPTIONS 전부 허용한다
CORS는 웹 계층 설정
Spring은 웹 설정을
WebFluxConfigurer에서만 읽음
Springai13Application은
서버 시작용이라 설정 무시됨
한 줄 요약
WebConfig는 브라우저에게
이 서버는 저 출처의 요청을 신뢰한다라고 알려주는 설정이다.