Skip to content

Latest commit

ย 

History

66 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ›๏ธ Capstone BE

LINE ๋Œ€ํ™”๋กœ ์ฐพ๋Š” ์ƒํ’ˆ, AI๋กœ ์ด์–ด์ง€๋Š” ์‡ผํ•‘ ๊ฒฝํ—˜
LINE ๋ฉ”์‹œ์ง€์™€ AI ์ƒํ’ˆ ์ถ”์ฒœ์„ ์—ฐ๊ฒฐํ•˜๋Š” ์‡ผํ•‘ ์„œ๋น„์Šค ๋ฐฑ์—”๋“œ์ž…๋‹ˆ๋‹ค.

Java 17 Spring Boot 3.3.4 PostgreSQL๊ณผ pgvector LINE Messaging API

ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ ยท ์ฃผ์š” ๊ธฐ๋Šฅ ยท ํŒ€์› ยท ๊ธฐ์ˆ  ์Šคํƒ ยท ์•„ํ‚คํ…์ฒ˜

ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ ๐Ÿ“

Capstone BE๋Š” ์ƒํ’ˆยท์ฃผ๋ฌธ ๊ด€๋ฆฌ API์™€ LINE ์ฑ—๋ด‡์„ ํ•จ๊ป˜ ์ œ๊ณตํ•˜๋Š” ์บก์Šคํ†ค ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ LINE์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋ฉด, ์„œ๋ฒ„๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ž„๋ฒ ๋”ฉ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์ €์žฅ๋œ ๋ฌธ์˜ ๋ถ„๋ฅ˜์™€ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์ƒํ’ˆ ์ถ”์ฒœ ์š”์ฒญ์—๋Š” ์œ ์‚ฌํ•œ ์ƒํ’ˆ์„ ์ฐพ์•„ ์ด๋ฏธ์ง€ยท๊ฐ€๊ฒฉยท์ƒ์„ธ ํŽ˜์ด์ง€ ๋งํฌ๊ฐ€ ๋‹ด๊ธด ์นด๋“œ๋ฅผ ์ „์†กํ•˜๊ณ , ๋ฐฐ์†กยทํ™˜๋ถˆ ๋ฌธ์˜์—๋Š” ๊ด€๋ จ ํŽ˜์ด์ง€์™€ ์ƒ๋‹ด์› ์—ฐ๊ฒฐ ๋ฒ„ํŠผ์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

์‡ผํ•‘ ์„œ๋น„์Šค์—์„œ๋Š” ์ƒํ’ˆ๊ณผ ๋งค์žฅ์„ ๋“ฑ๋กํ•˜๊ณ , ์‚ฌ์šฉ์žยท๋ฐฐ์†ก์ง€ยท์ฃผ๋ฌธ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒํ’ˆ ๋“ฑ๋ก ์‹œ์—๋Š” ์ƒํ’ˆ ์ด๋ฆ„์˜ ์ž„๋ฒ ๋”ฉ์„ ํ•จ๊ป˜ ์ €์žฅํ•ด ์ดํ›„ ์ถ”์ฒœ์— ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ โœจ

๊ธฐ๋Šฅ ์„ค๋ช…
AI ์ƒํ’ˆ ์ถ”์ฒœ ์‚ฌ์šฉ์ž ๋ฉ”์‹œ์ง€์™€ ์ƒํ’ˆ ์ž„๋ฒ ๋”ฉ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๋น„๊ตํ•ด ๊ฐ€๊นŒ์šด ์ƒํ’ˆ ์ตœ๋Œ€ 5๊ฐœ ์กฐํšŒ
LINE ๋Œ€ํ™” ์—ฐ๋™ ์›นํ›…์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  ํ…์ŠคํŠธยท๋ฒ„ํŠผยท์ƒํ’ˆ ์นด๋“œ ๋ฉ”์‹œ์ง€ ์ „์†ก
๋ฌธ์˜ ์œ ํ˜•๋ณ„ ์•ˆ๋‚ด ์ถ”์ฒœยท๋ฐฐ์†กยทํ™˜๋ถˆ ๋ถ„๋ฅ˜์— ๋”ฐ๋ผ ์ƒํ’ˆ ์นด๋“œ ๋˜๋Š” ์•ˆ๋‚ด ๋ฒ„ํŠผ ์ œ๊ณต
์ƒํ’ˆ ๊ด€๋ฆฌ ์ƒํ’ˆ ๋“ฑ๋กยท๋ชฉ๋ก ๋ฐ ๋‹จ๊ฑด ์กฐํšŒยท์ˆ˜์ •ยท์‚ญ์ œ API, ๋ธŒ๋žœ๋“œยท๊ฐ€๊ฒฉยทํŒ๋งค ์ƒํƒœยทํ• ์ธ ์ •๋ณด ๊ด€๋ฆฌ
์ƒํ’ˆ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ์„ ํƒ์ ์œผ๋กœ ์ฒจ๋ถ€ํ•œ ์ด๋ฏธ์ง€๋ฅผ FTP ์„œ๋ฒ„์— ๋น„๋™๊ธฐ๋กœ ์—…๋กœ๋“œํ•˜๊ณ  ์ƒํ’ˆ์— ์ด๋ฏธ์ง€ URL ์ €์žฅ
์ฃผ๋ฌธ ๊ด€๋ฆฌ ์ฃผ๋ฌธ ์ƒ์„ฑยท๋ชฉ๋ก ๋ฐ ๋‹จ๊ฑด ์กฐํšŒยท์ˆ˜์ •ยท์‚ญ์ œ API
์‚ฌ์šฉ์žยท๋ฐฐ์†ก์ง€ ๊ด€๋ฆฌ ์‚ฌ์šฉ์ž ๋“ฑ๋กยท์กฐํšŒยท์‚ญ์ œ ๋ฐ ์‚ฌ์šฉ์ž๋ณ„ ๋ฐฐ์†ก์ง€ ๋“ฑ๋กยท์กฐํšŒ
๋งค์žฅ ๊ด€๋ฆฌ ๋งค์žฅ ๋“ฑ๋กยท์กฐํšŒ ๋ฐ ์ƒํ’ˆ๊ณผ ๋งค์žฅ ์—ฐ๊ฒฐ

ํŒ€์› ๐Ÿ‘ฅ

์ด ๋ฐฑ์—”๋“œ ์ €์žฅ์†Œ์˜ ์ปค๋ฐ‹ ๊ธฐ์—ฌ์ž์ž…๋‹ˆ๋‹ค.

KimRPG Kim-Min-Hyeok SoominYoo
KimRPG Kim-Min-Hyeok SoominYoo
@KimRPG @Kim-Min-Hyeok @SoominYoo

ํ”„๋กœ์ ํŠธ ๊ธฐ์ˆ  ์Šคํƒ ๐Ÿ’ก

๋ฐฑ์—”๋“œ

๊ตฌ๋ถ„ ๊ธฐ์ˆ  ์‚ฌ์šฉ ๋ชฉ์ 
Language Java 17 ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ
Framework Spring Boot 3.3.4, Spring Web REST API ๋ฐ LINE ์›นํ›… ์ฒ˜๋ฆฌ
Persistence Spring Data JPA, JdbcTemplate ๋„๋ฉ”์ธ ๋ฐ์ดํ„ฐ ์ €์žฅยท์กฐํšŒ ๋ฐ ๋ฒกํ„ฐ ๊ฒ€์ƒ‰ SQL ์‹คํ–‰
AI Spring AI 1.0.0-M3, OpenAI ์—ฐ๋™ ํ…์ŠคํŠธ ์ž„๋ฒ ๋”ฉ ์ƒ์„ฑ ๋ฐ ๋ณ„๋„ AI ๋‹ต๋ณ€ API
Messaging LINE Bot SDK 2.1.0, Reactor LINE ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ ยท๋ฐœ์†ก ๋ฐ ๋น„๋™๊ธฐ ์‘๋‹ต ์ฒ˜๋ฆฌ
API Docs springdoc-openapi 2.2.0 OpenAPI ๋ฐ Swagger UI ์„ค์ •
Build Gradle Wrapper 8.5 ์˜์กด์„ฑ ๊ด€๋ฆฌ ๋ฐ ๋นŒ๋“œ

๋ฐ์ดํ„ฐ ๋ฐ ์™ธ๋ถ€ ์—ฐ๋™

๊ตฌ๋ถ„ ๊ธฐ์ˆ  ์‚ฌ์šฉ ๋ชฉ์ 
Database PostgreSQL, pgvector ์‡ผํ•‘ ๋ฐ์ดํ„ฐ์™€ 1,536์ฐจ์› ์ž„๋ฒ ๋”ฉ ์ €์žฅ, ๋ฒกํ„ฐ ๊ฑฐ๋ฆฌ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰
File Storage FTP, Apache Commons Net 3.9.0 ์ƒํ’ˆ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ
Messaging Platform LINE Messaging API ์‚ฌ์šฉ์ž ๋Œ€ํ™” ์ฑ„๋„ ๋ฐ ์ƒํ’ˆ ์นด๋“œ ์ „๋‹ฌ
AI Provider OpenAI API Spring AI๋ฅผ ํ†ตํ•œ ๋ชจ๋ธ ํ˜ธ์ถœ

๊ธฐ์ˆ  ๋ฐ ๋ฒ„์ „์€ build.gradle๊ณผ ํ˜„์žฌ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. S3 ์„ค์ •ยท์—…๋กœ๋“œ ์„œ๋น„์Šค๋„ ๋‚จ์•„ ์žˆ์ง€๋งŒ, ํ˜„์žฌ ์ƒํ’ˆ ๋“ฑ๋ก ๊ฒฝ๋กœ์—์„œ๋Š” FTP๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์•„ํ‚คํ…์ฒ˜ ๐Ÿ›๏ธ

์‚ฌ์šฉ์ž ์š”์ฒญ ํ๋ฆ„

flowchart LR
    User[์‚ฌ์šฉ์ž] -->|๋ฉ”์‹œ์ง€ ์ž…๋ ฅ| LINE[LINE]
    LINE -->|Webhook| Webhook[LineWebhookController]
    Webhook --> AI[AIService]
    AI -->|์ž„๋ฒ ๋”ฉ ์ƒ์„ฑ| OpenAI[OpenAI API]
    AI -->|๋ฌธ์˜ ๋ถ„๋ฅ˜ ๊ฒ€์ƒ‰| DB[(PostgreSQL / pgvector)]
    DB --> Category{๋ฌธ์˜ ์œ ํ˜•}
    Category -->|์ถ”์ฒœ| Search[์œ ์‚ฌ ์ƒํ’ˆ ์ตœ๋Œ€ 5๊ฐœ ์กฐํšŒ]
    Search --> Cards[์ƒํ’ˆ ์นด๋“œ ๊ตฌ์„ฑ]
    Category -->|๋ฐฐ์†ก ยท ํ™˜๋ถˆ ยท ๊ธฐํƒ€| Guide[๊ด€๋ จ ํŽ˜์ด์ง€ ยท ์ƒ๋‹ด์› ๋ฒ„ํŠผ]
    Cards --> API[LINE Messaging API]
    Guide --> API
    API -->|๋ฉ”์‹œ์ง€ ์ „๋‹ฌ| User
Loading

๋ฐฑ์—”๋“œ ๊ตฌ์„ฑ

flowchart TB
    Client[์‡ผํ•‘ ํด๋ผ์ด์–ธํŠธ] --> Controllers[์ƒํ’ˆ ยท ์ฃผ๋ฌธ ยท ์‚ฌ์šฉ์ž ยท ๋งค์žฅ Controller]
    LINE[LINE Webhook] --> LineController[LineWebhookController]

    subgraph Backend[Spring Boot Backend]
        Controllers --> Services[๋„๋ฉ”์ธ Service]
        Services --> Repos[Spring Data JPA Repository]
        Services -->|์ƒํ’ˆ ์ด๋ฆ„ ์ž„๋ฒ ๋”ฉ| AI[AIService]
        Services -->|์ƒํ’ˆ ์ด๋ฏธ์ง€| FTP[FtpServer]
        LineController --> AI
        AI --> JDBC[AiJDBC]
        LineController --> Message[๋ฉ”์‹œ์ง€ ์ƒ์„ฑ ยท ๋ฐœ์†ก]
    end

    Repos --> DB[(PostgreSQL / pgvector)]
    JDBC --> DB
    AI --> OpenAI[OpenAI API]
    FTP --> Storage[FTP ํŒŒ์ผ ์„œ๋ฒ„]
    Message --> Messaging[LINE Messaging API]
Loading

์œ„ ๋‹ค์ด์–ด๊ทธ๋žจ์€ ์ฝ”๋“œ์˜ ํ˜ธ์ถœ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋ฐฐํฌ ์„œ๋ฒ„ ๊ตฌ์„ฑ์ด๋‚˜ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์€ ์ด ์ €์žฅ์†Œ์— ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

AI ์ถ”์ฒœ ๋ฐฉ์‹

  1. ์ƒํ’ˆ ๋“ฑ๋ก โ€” ์ƒํ’ˆ ์ด๋ฆ„์„ ์ž„๋ฒ ๋”ฉ์œผ๋กœ ๋ณ€ํ™˜ํ•ด product.embedding์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฌธ์˜ ๋ถ„๋ฅ˜ โ€” ์‚ฌ์šฉ์ž ๋ฉ”์‹œ์ง€์˜ ์ž„๋ฒ ๋”ฉ๊ณผ recommend ํ…Œ์ด๋ธ”์„ ๋น„๊ตํ•ด ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ถ„๋ฅ˜ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  3. ์ƒํ’ˆ ๊ฒ€์ƒ‰ โ€” ๋ถ„๋ฅ˜๊ฐ€ ์ถ”์ฒœ์ด๋ฉด ๊ฐ™์€ ๋ฉ”์‹œ์ง€ ์ž„๋ฒ ๋”ฉ์œผ๋กœ ์ƒํ’ˆ์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. pgvector์˜ <-> ๊ฑฐ๋ฆฌ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ณ  ์ตœ๋Œ€ 5๊ฐœ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  4. ์นด๋“œ ์ „์†ก โ€” ์กฐํšŒํ•œ ์ƒํ’ˆ์„ ์ด๋ฏธ์ง€ยท์ด๋ฆ„ยท์„ค๋ช…ยท๊ฐ€๊ฒฉยท์ƒ์„ธ ๋งํฌ๊ฐ€ ์žˆ๋Š” LINE ์ƒํ’ˆ ์นด๋“œ๋กœ ๋ณ€ํ™˜ํ•ด ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

๊ตฌํ˜„: AIService ยท AiJDBC ยท LineWebhookController

์ฃผ์š” API ๐Ÿ”Œ

์˜์—ญ Method Path ๊ธฐ๋Šฅ
์ƒํ’ˆ POST ยท GET ยท PATCH ยท DELETE /product ์ƒํ’ˆ ๋“ฑ๋กยท์กฐํšŒยท์ˆ˜์ •ยท์‚ญ์ œ
์ฃผ๋ฌธ POST ยท GET ยท PATCH ยท DELETE /order ์ฃผ๋ฌธ ์ƒ์„ฑยท์กฐํšŒยท์ˆ˜์ •ยท์‚ญ์ œ
์‚ฌ์šฉ์ž POST ยท GET ยท DELETE /user ์‚ฌ์šฉ์ž ๋“ฑ๋กยท์กฐํšŒยท์‚ญ์ œ
๋ฐฐ์†ก์ง€ POST ยท GET /user/address ์‚ฌ์šฉ์ž๋ณ„ ๋ฐฐ์†ก์ง€ ๋“ฑ๋กยท์กฐํšŒ
๋งค์žฅ POST ยท GET /store ๋งค์žฅ ๋“ฑ๋กยท์กฐํšŒ
AI GET /ai/answer AI ํ…์ŠคํŠธ ๋‹ต๋ณ€
AI GET /ai/recommend ๋ฌธ์˜ ์œ ํ˜• ๋ถ„๋ฅ˜
AI GET /ai/recommend/product ์œ ์‚ฌ ์ƒํ’ˆ ์ถ”์ฒœ
LINE POST /channel/line ์›นํ›… ์ด๋ฒคํŠธ ์ˆ˜์‹ 
LINE POST /channel/line/text ํ…์ŠคํŠธ ๋ฉ”์‹œ์ง€ ์ „์†ก
LINE POST /channel/line/question ๋ฒ„ํŠผ์„ ํฌํ•จํ•œ ๋ฉ”์‹œ์ง€ ์ „์†ก
LINE POST /channel/line/product-card ์ƒํ’ˆ ์นด๋“œ ๋ฉ”์‹œ์ง€ ์ „์†ก

์ƒํ’ˆยท์ฃผ๋ฌธยท์‚ฌ์šฉ์žยท๋งค์žฅ ์กฐํšŒ๋Š” id ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ ์œ ๋ฌด์— ๋”ฐ๋ผ ๋‹จ๊ฑด ๋˜๋Š” ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์†ก์ง€๋Š” ๋“ฑ๋ก ์‹œ userId, ์กฐํšŒ ์‹œ id๋กœ ์‚ฌ์šฉ์ž ID๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ AI ์กฐํšŒ API๋Š” GET ์š”์ฒญ์˜ JSON ๋ณธ๋ฌธ์œผ๋กœ {"request":"๋ฉ”์‹œ์ง€"}๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ๐Ÿ“‚

src/main/java/com/capstonexjapan/line_backend
โ”œโ”€โ”€ ai                  # ์ž„๋ฒ ๋”ฉ ์ƒ์„ฑ, ๋ฌธ์˜ ๋ถ„๋ฅ˜, ์ƒํ’ˆ ์ถ”์ฒœ
โ”œโ”€โ”€ config              # AI, LINE, CORS, S3, OpenAPI ์„ค์ •
โ”œโ”€โ”€ ftp                 # FTP ์—…๋กœ๋“œ ๋ฐ ํŒŒ์ผ ๋ณ€ํ™˜
โ”œโ”€โ”€ global/exception    # ๊ณตํ†ต ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
โ”œโ”€โ”€ line_message        # LINE ์›นํ›…, ๋ฉ”์‹œ์ง€ ์ƒ์„ฑ ๋ฐ ๋ฐœ์†ก
โ””โ”€โ”€ shop
    โ”œโ”€โ”€ product         # ์ƒํ’ˆ ๋ฐ ์ด๋ฏธ์ง€ ๊ด€๋ฆฌ
    โ”œโ”€โ”€ order           # ์ฃผ๋ฌธ ๋ฐ ์ฃผ๋ฌธ ์ด๋ ฅ ๊ด€๋ จ ์ฝ”๋“œ
    โ”œโ”€โ”€ user            # ์‚ฌ์šฉ์ž ๋ฐ ๋ฐฐ์†ก์ง€ ๊ด€๋ฆฌ
    โ”œโ”€โ”€ store           # ๋งค์žฅ ๊ด€๋ฆฌ
    โ””โ”€โ”€ square          # ๊ฒฐ์ œ ์—ฐ๋™์šฉ ๊ธฐ๋ณธ ๊ตฌ์กฐ

๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ค€๋น„ โš™๏ธ

์‹คํ–‰์—๋Š” JDK 17, pgvector๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” PostgreSQL, OpenAI ๋ฐ LINE ์—ฐ๊ฒฐ ์ •๋ณด, FTP ์„œ๋ฒ„ ์„ค์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ์„ค์ • ํŒŒ์ผ(*.yml, *.properties)์€ Git ๊ด€๋ฆฌ ๋Œ€์ƒ์—์„œ ์ œ์™ธ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์ • ์˜์—ญ ์ค€๋น„ํ•  ํ•ญ๋ชฉ
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค Spring datasource ์—ฐ๊ฒฐ ์ •๋ณด, vector ํ™•์žฅ ๋ฐ ์ž„๋ฒ ๋”ฉ ์ปฌ๋Ÿผ ๊ตฌ์„ฑ
AI Spring AI OpenAI ์ธ์ฆยท๋ชจ๋ธ ์„ค์ •, ์ €์žฅ๋œ ์ž„๋ฒ ๋”ฉ๊ณผ ๋™์ผํ•œ ๋ชจ๋ธ ๋ฐ 1,536์ฐจ์› ์ถœ๋ ฅ
๋ฌธ์˜ ๋ถ„๋ฅ˜ recommend ํ…Œ์ด๋ธ”์— ๋ฌธ์˜ ์œ ํ˜•๊ณผ ํ•ด๋‹น ์ž„๋ฒ ๋”ฉ ์‚ฌ์ „ ์ €์žฅ
LINE line.channel.token, ๊ณต๊ฐœ ์›นํ›… ์ฃผ์†Œ /channel/line
FTP ftp.server, ftp.username, ftp.password ๋ฐ ์—…๋กœ๋“œ ๋””๋ ‰ํ„ฐ๋ฆฌ /A
์ž”์กด S3 ์„ค์ • cloud.aws.credentials.access-key, cloud.aws.credentials.secret-key, cloud.aws.region.static, cloud.aws.s3.bucket
ํ˜„์žฌ ์ฝ”๋“œ ๊ธฐ์ค€ ์‹คํ–‰ ์ „ ํ™•์ธ ์‚ฌํ•ญ
  • LINE ํด๋ผ์ด์–ธํŠธ ์„ค์ •์˜ @Value(".${line.channel.token}")์—๋Š” ํ† ํฐ ์•ž์— ๋งˆ์นจํ‘œ๊ฐ€ ๋ถ™์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ์—ฐ๋™ ์ „ ํ† ํฐ ์ฃผ์ž…์‹์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • CORS ํ—ˆ์šฉ ์ฃผ์†Œ, ์ƒํ’ˆ ์ƒ์„ธยท๋ฐฐ์†กยท์ฃผ๋ฌธ ํŽ˜์ด์ง€ ๋งํฌ์™€ ์ด๋ฏธ์ง€ ๊ธฐ๋ณธ URL์€ ์‹œ์—ฐ ํ™˜๊ฒฝ ๊ฐ’์ด ์ฝ”๋“œ์— ์ง€์ •๋˜์–ด ์žˆ์–ด ์‹คํ–‰ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์กฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • S3๋Š” ํ˜„์žฌ ์ƒํ’ˆ ์—…๋กœ๋“œ ๊ฒฝ๋กœ์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ ์„ค์ • ๋นˆ์ด ๋‚จ์•„ ์žˆ์œผ๋ฏ€๋กœ ๊ด€๋ จ ์„ค์ •์„ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜ ๋นˆ ๊ตฌ์„ฑ์„ ์ •๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฌธ์˜ ๋ถ„๋ฅ˜ ๋ฐ์ดํ„ฐ์˜ ์ž๋™ ์ดˆ๊ธฐํ™” ์ ˆ์ฐจ๋Š” ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉฐ, /ai/embedding ๋งคํ•‘๋„ ์ฃผ์„ ์ฒ˜๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • shop/square์˜ ๊ฒฐ์ œ ํด๋ž˜์Šค๋Š” ๊ธฐ๋ณธ ๊ตฌ์กฐ๋งŒ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ๋ฌธ ์ด๋ ฅ ์ €์žฅ ์„œ๋น„์Šค๋„ ํ˜„์žฌ ์ฃผ๋ฌธ ์ƒ์„ฑ ํ๋ฆ„์—์„œ๋Š” ํ˜ธ์ถœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑํ–ˆ์œผ๋ฉฐ, ์™ธ๋ถ€ ์„œ๋น„์Šค ์—ฐ๊ฒฐ์„ ํฌํ•จํ•œ ์‹คํ–‰ ๊ฒ€์ฆ ๊ฒฐ๊ณผ๋ฅผ ์˜๋ฏธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages