์ฃผ์ ์ด๋ ฅ
๊ตญ๊ฐ ํต์ฌ ๋ง ๊ด๋ฆฌ: ๋๋ฒ์ ๋ฐ ์กฐ๋ฌ์ฒญ ์์คํ ์ด์ยท์ต์ ํ ์ ๋ฌธ๊ฐ
์ฐจ์ธ๋ ๊ณต๊ณต ํ๋ซํผ ๊ตฌ์ถ: ์ง๋ฅํ ๋์ด์ค(NEIS) ์์ฉ SW ๊ฐ๋ฐ ๋ฐ ์ํคํ ์ฒ ์ค๊ณ
ํ์คํ ์ ๋ฌธ ๊ต์ก์: K์ฌ ๋ถํธ์บ ํ ๋ฑ ๋ค์์ ๊ฐ์๋ฅผ ํตํ ์ค์ ๊ธฐ์ ์ ์
์ํฐํ๋ผ์ด์ฆ ์๋ฃจ์ ์ ๋ฌธ๊ฐ: ๋๊ท๋ชจ ์์คํ ์ ์ง๋ณด์ ๋ฐ ๊ณ ๋ํ ์ค๊ณ ์ญ๋ ๋ณด์
์๋
ํ์ธ์! ๊ฐ๋ฐ์๋ก ์์ํด ์ง๊ธ์ ๊ต์ก์๋ก ํ๋ํ๊ณ ์๋ JSCODE ์๋์
๋๋ค.
๊ตญ๊ฐ ์ค์ ์์คํ ์ ์ง์ ๋ง๋ค๊ณ ์ด์๋ ํด๋ดค์ง๋ง, ์ฌ์ค ์ ๊ฐ ๊ฐ์ฅ ์ํ๋ ๊ฑด "๊ทธ ์ด๋ ค์ด ๊ฑธ ๋๊ตฌ๋ ์ดํดํ๊ฒ ์ค๋ช ํ๋ ๊ฒ" ์ ๋๋ค.
์ค๋ฌด ํ์ฅ์ ์๋ ๊ฑฐ์น ๊ณ ๋ณต์กํฉ๋๋ค. ๐คฏ
ํ์ง๋ง ๋ฐฐ์ฐ๋ ๊ณผ์ ๊น์ง ๊ทธ๋ด ํ์๋ ์์์์?
์ฌ๋ฌ๋ถ์ด ์ง๊ธ ๋น์ฅ ๋ฐฐ์ฐ๊ณ ์ถ์ ์คํ์ด ๋ฌด์์ด๋ ์๊ด์์ด์.
์ค๋ฌด ํ์ฅ์ ๋ณต์กํ ๊ธฐ์ ๋ค์ ์ฌ๋ฌ๋ถ์ ๋๋์ด์ ๋ง์ถฐ ์์ฃผ ์ฝ๊ฒ ์น์ด์ ๋ ๋จน์ฌ ๋๋ฆด๊ฒ์! ๐
๋จธ๋ฆฟ์์๋ง ์๋ ๋ณต์กํ ์๊ฐ๋ค์ด ์ค์ ๋์๊ฐ๋ ์๋น์ค๋ก ๋ฐ๋๋ ์ ๊ธฐํ ๊ฒฝํ, ์ ๋ ๊ฐ์ด ์ฝ๊ณ ์ฌ๋ฐ๊ฒ ์์ํด ๋ด์!
Courses
Reviews
- Spring AI in Practice: Implementing Chatbots, RAG, and MCP in Spring Services
- Spring AI in Practice: Implementing Chatbots, RAG, and MCP in Spring Services
- Spring AI in Practice: Implementing Chatbots, RAG, and MCP in Spring Services
- Spring AI in Practice: Implementing Chatbots, RAG, and MCP in Spring Services
- Spring AI in Practice: Implementing Chatbots, RAG, and MCP in Spring Services
Posts
Q&A
๋ ธ์ ๋งํฌ๊ฐ ์ ๊ทผ๋์ง ์์ต๋๋ค.
์๋ ํ์ธ์ naje๋! JSCODE ์๋ ์ ๋๋ค~๋ฐฉ๊ธ ํ์ธํด๋ณธ ๊ฒฐ๊ณผ ํฌ๋กฌ๊ณผ ์ฌํ๋ฆฌ์์ ์ ์ ์ ๊ทผ ๋๋๊ฒ์ผ๋ก ํ์ธ๋๋๋ฐ,, ํน์ ์ ๊ทผ์ด ์ ์๋์ค๊น์~?๋ค์ ํ๋ฒ ์ ์ ํด๋ณด์๊ณ , ์ ์๋์ ๋ค๋ฉด 1:1 ์คํ ์ฑํ ๋ฐฉ์ผ๋ก ์บก์ณ๋ณธ ์ฃผ์๋ฉด ํ์ธํด๋๋ฆฌ๋๋ก ํ๊ฒ ์ต๋๋ค!์ ๋ ๊ธฐ์ ์ ์ต๋ํ ๋ '๊ฐ์ฅ ์ ํํ ์ ๋ณด๋ ์ธ์ ๋ ๊ณต์ ๋ฌธ์์ ์๋ค'๋ ์์น์ ๊ฐ์ง๊ณ ๊ณต๋ถํ๋ ํธ์ด์์..! ์ ์ญ์ Spring Batch๋ฅผ ์ฒ์ ์ ํ์ ๋๋ ์ด๋์๋ถํฐ ์ด๋ป๊ฒ ๊ณต๋ถํด์ผํ ์ง ๋ง๋งํด์ ๊ณต์ ๋ ํผ๋ฐ์ค ๋ฌธ์๋ฅผ ์ ๋ ํ๊ณ ์์ค์ ๋์์๋ ์ฑ ๋ ๋ง์ด ์ฐธ๊ณ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค..!๊ณต์ ๋ฌธ์ ์ ๋ ์ฒ์์ ์กฐ๊ธ ๋ง๋งํ๋๋ผ๋ ๊ณต์ ๋ฌธ์์ 'Introduction'๊ณผ ํต์ฌ ๊ฐ๋ (Job, Step, ItemReader/Processor/Writer ๋ฑ)์ ๊ผผ๊ผผํ ์ฝ์ผ๋ฉฐ ์ํคํ ์ฒ๋ฅผ ํ์ ํ๋ ๋ฐ ์๊ฐ์ ๋ง์ด ํฌ์ํ์ด์..! ๊ตฌ๊ธ๋ง๊ณผ ๋ ํผ๋ฐ์ค ํ์ฉ๊ณต์ ๋ฌธ์๋ง์ผ๋ก ์ดํดํ๊ธฐ ์ด๋ ค์ด ์ธ๋ถ ์ค์ ์ด๋ ๋ณต์กํ ์์ ๋ ๊ตฌ๊ธ๋ง์ ํตํด ํด๊ฒฐํ์ต๋๋ค. ํนํ Stack Overflow๋ ํฐ์คํ ๋ฆฌ ๋ฑ์ ๊ธฐ์ ๋ธ๋ก๊ทธ๋ค์ ์ฌ๋ก๋ฅผ ๋ณด๋ฉด์, ๊ณต์ ๋ฌธ์์ ๊ฐ๋ ์ด ์ค์ ์ฝ๋์์ ์ด๋ป๊ฒ ๊ตฌํ๋๋์ง ๋น๊ตํด๋ณด๋ ๊ณผ์ ์ ๊ฑฐ์น๊ธฐ๋ ํ์ต๋๋ค~!์ง์ ๊ตฌํ๊ณผ ๋๋ฒ๊น ๋ฌธ์๋ฅผ ๋ณด๊ณ ์ด๋ก ์ ์ตํ ๋ค์๋ ์์ ๊ธฐ๋ฅ์ด๋ผ๋ ์ง์ ์ฝ๋๋ฅผ ์ง๋ดค์ต๋๋ค! ํนํ ์์๋๋ก ๋ฐฐ์น๊ฐ ๋์ง ์์ ๋, ๋ก๊ทธ๋ฅผ ์ฐ์ด๋ณด๊ฑฐ๋ ์ง์ ๋๋ฒ๊น ํ๋ฉด์ ์ง์ ์ฒด๋ํ๋ ๊ณผ์ ์ด ์ค๋ ฅ์ ๊ฐ์ฅ ๋ง์ด ํค์์ค ๊ฒ ๊ฐ์ต๋๋ค~!์ฒ์๋ถํฐ ๋๋ฌด ์๋ฒฝํ๊ฒ ๋ค ์ดํดํ๋ ค๊ณ ํ๊ธฐ๋ณด๋ค๋, ๊ฐ์์ ๋ณํํ๋ฉฐ ๊ณต์ ๋ฌธ์๋ฅผ ๋ฒ ์ด์ค๋ก ํด์ ๊ณ๊ฐ์ง ์ง๋ฌธ๋ค์ ํ๋์ฉ ์ฐพ์๊ฐ๋ ๋ฐฉ์์ผ๋ก ํ์ตํด ๋ณด์๋๊ฑธ ์ถ์ฒ๋๋ฆด๊ฒ์! ใ ใ ๊ทธ๋ ๊ฒ ํ๋์ฉ ์ ๋ณตํ๋ค ๋ณด๋ฉด ์ด๋์ ๋ฐฐ์น์ ํ๋ฆ์ด ๋์ ๋ค์ด์ค์ค ๊ฑฐ์์!๊ธฐํ ๋ฌธ์์ฌํญ ์์ผ์๋ฉด ์ง๋ฌธ๊ฒ์ํ์ด๋, 1:1 ์คํ ์นดํก๋ฐฉ์ผ๋ก ์ฐ๋ฝ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค!
- Likes
- 0
- Comments
- 1
- Viewcount
- 46
Q&A
spring ai์์ RAG ETL ํ์ดํ๋ผ์ธ ์ฑ๋ฅ ์ต์ ํ์ ๋ํด ์ง๋ฌธ์ด ์์ต๋๋ค!
์๋ ํ์ธ์! jyee๋~ JSCODE ์๋ ์ ๋๋ค~์ง์ ํ๋กํ์ผ๋ง๊น์ง ์งํํ์๊ณ ์ฒญํฌ ์ฌ์ด์ฆ ์กฐ์ ์ ํตํด ์ฑ๋ฅ ํ ์คํธ๊น์ง ํด๋ณด์ ์ , ์ ๋ง ํ๋ฅญํ ์ ๊ทผ์ ๋๋ค!ใ ใ ETL ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๋ค ๋ณด๋ฉด ๋๊ตฌ๋ ๋ง์ฃผํ๊ฒ ๋๋ ๊น์ด ์๋ ๊ณ ๋ฏผ๋ค์ ์ ์ง์ด์ฃผ์ ๊ฒ ๊ฐ์์~!โ์ง๋ฌธํด์ฃผ์ ๋ด์ฉ๋ค์ ๋ํด ํ๋์ฉ ์์ธํ ๋ต๋ณ๋๋ฆฌ๊ฒ ์ต๋๋ค!โ1. keywordMetadataEnricher๊ฐ RAG ์ฑ๋ฅ์ ๋ฏธ์น๋ ์ํฅโ๊ฒฐ๋ก ๋ถํฐ ๋ง์๋๋ฆฌ๋ฉด, ์ด๋ค ๊ฒ์ ๋ฐฉ์์ ์ฌ์ฉํ๋๋์ ๋ฐ๋ผ ์ฒด๊ฐ ์ฑ๋ฅ์ด ํฌ๊ฒ ๋ฌ๋ผ์ง๋๋ค!โข โ์ํฅ์ด ์ ์ ๊ฒฝ์ฐ: ๋จ์ํ '๋ฒกํฐ ์ ์ฌ๋ ๊ฒ์'๋ง ์ฌ์ฉํ ๊ฒฝ์ฐ, ํค์๋ ๋ฉํ๋ฐ์ดํฐ๋ ๊ฒ์ ๊ฒฐ๊ณผ์ ํฐ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค.โข โ์ํฅ์ด ๋งค์ฐ ํฐ ๊ฒฝ์ฐ: ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์์ด๋ ๋ฉํ๋ฐ์ดํฐ ํํฐ๋ง์ ์ฌ์ฉํ ๋ ์ํฅ์ด ํฌ๋ค๊ณ ํ ์ ์์ต๋๋ค.๋ฒกํฐ ๊ฒ์์ ์๋ฏธ๋ก ์ ์ ์ฌ์ฑ์ ์ ์ฐพ์ง๋ง, ๊ณ ์ ๋ช ์ฌ, ํน์ ์ ํ๋ช , ์ฝ์ด ๋ฑ์ '์ ํํ ํค์๋ ๋งค์นญ'์๋ ์ทจ์ฝํ ๋๊ฐ ์์ต๋๋ค..! ์ด๋ ์ถ์ถ๋ ํค์๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํํฐ๋ง์ ๊ฑธ๊ฑฐ๋ BM25 ๊ฐ์ ํค์๋ ๊ฒ์์ ๋ณํํ๋ฉด RAG์ ๊ฒ์ ์ ํ๋๊ฐ ๋น์ฝ์ ์ผ๋ก ์์นํฉ๋๋ค..!โ2. keywordMetadataEnricher ์ต์ ํ ๋ฐฉ๋ฒ (์๊ฐ ๋จ์ถ)โ์ด ์์ ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ์ด์ ๋ ์ฃผ๋ก ๊ฐ ์ฒญํฌ๋ง๋ค ํค์๋ ์ถ์ถ์ ์ํด LLM API๋ฅผ ํธ์ถ(๋คํธ์ํฌ I/O ๋ฐ ์ถ๋ก ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆผ!)ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๋ฅผ ์ต์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.โข โ๋ณ๋ ฌ ์ฒ๋ฆฌ (๋น๋๊ธฐ ์ฒ๋ฆฌ): Spring์ @Async๋ CompletableFuture, ํน์ Project Reactor(WebFlux)๋ฅผ ์ฌ์ฉํ์ฌ ์ฒญํฌ ๋จ์์ Enrich ์์ ์ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ๋ฉด ์๊ฐ์ ํ๊ธฐ์ ์ผ๋ก ์ค์ผ ์ ์์ต๋๋ค!โข ํนํ Java 21 ๋ฒ์ ๋๋ ๊ทธ ์๋ฒ์ ์ ๊ฐ์ ์ค๋ ๋๋ฅผ ์ ๊ทน ํ์ฉํ์๋ฉด I/O ๋ฐ์ด๋ ์์ ์ธ LLM API ํธ์ถ ์ฑ๋ฅ์ ํฌ๊ฒ ๋์ผ ์ ์์ต๋๋ค!โข โ๊ฐ๋ณ๊ณ ๋น ๋ฅธ ๋ชจ๋ธ ์ฌ์ฉ: ํค์๋ ์ถ์ถ์ ๊ณ ๋์ ์ถ๋ก ๋ฅ๋ ฅ์ด ํ์ํ์ง ์์ ๋จ์ ์์ฝ ์์ ์ ๋๋ค. ๋ฐ๋ผ์ GPT-4o ๋ณด๋ค๋ GPT-3.5-turbo, GPT-4o-mini, ํน์ Claude Haiku ๊ฐ์ ๋น ๋ฅด๊ณ ์ ๋ ดํ ๋ชจ๋ธ์ ๋ฉํ๋ฐ์ดํฐ ์ถ์ถ์ฉ์ผ๋ก ๋ฐ๋ก ์ง์ ํด ์ฌ์ฉํ์๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค..! ๊ฒ์ํด๋ณด์๋ฉด ์ด๋ฐ ํค์๋ ์ถ์ถ์ฉ์ผ๋ก ์์ฃผ ์ธ๊ธ๋๋ ๋ชจ๋ธ์ด ์์๊ฑฐ์์!ใ ใ โข โ์๋ฒ ๋ฉ ๋ชจ๋ธ๊ณผ์ ์ฐ๊ด์ฑ: ํค์๋ ์ถ์ถ ์์ฒด๋ ํ ์คํธ ์์ฑ(LLM) ์์ญ์ด๋ผ ํ ์คํธ๋ฅผ ๋ฒกํฐ๋ก ๋ฐ๊พธ๋ ์๋ฒ ๋ฉ ๋ชจ๋ธ์ ์ฑ๋ฅ๊ณผ๋ ์ง์ ์ ์ธ ์ฐ๊ด์ ์๋ค๊ณ ํ ์ ์์ต๋๋ค..!ใ ใ โ3. ์ฒญํฌ ๊ฐ์(ํฌ๊ธฐ)์ ๋ฐ๋ฅธ ์ฅ๋จ์ ๋ฐ ์ค์ ๋ ธํ์ฐ!โ์ฒญํฌ ํฌ๊ธฐ๋ฅผ ํค์์ ๊ฐ์๋ฅผ ์ค์ด๋ฉด ETL ์๋๋ ๋นจ๋ผ์ง์ง๋ง, ๋ช ํํ ํธ๋ ์ด๋์คํ๊ฐ ์กด์ฌํฉ๋๋ค.โข โํฐ ์ฒญํฌ์ ์ฅ์ : ๋ฌธ๋งฅ์ด ๋๊ฒ ์ ์ง๋จ, ํ์ดํ๋ผ์ธ ์ฒ๋ฆฌ ์๋ ํฅ์.โข โํฐ ์ฒญํฌ์ ๋จ์ : ๊ฒ์์ ์ ๋ฐ๋ ํ๋ฝ. ์ฌ๋ฌ ์ฃผ์ ๊ฐ ์์ฌ ์์ด ์ฌ์ฉ์์ ์ง๋ฌธ๊ณผ ์ ํํ ์ผ์นํ๋ ๋ถ๋ถ์ ๋ฒกํฐ๋ก ์ฐพ๊ธฐ ์ด๋ ค์์ง(Lost in the middle ํ์ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ๋์์ ธ์!)โข โ์ค๋ฌด์์์ ๊ฒฐ์ ๋ฐฉ๋ฒ: ์๊ฐ์๋ถ ๋ง์๋๋ก '๋ฐ์ดํฐ์ ํน์ฑ์ ๋ฐ๋ฅธ ๊ฒฝํ์ /๋ฐ๋ณต์ ํ ์คํธ'๊ฐ ์ ๋ต์ ๊ฐ๊น์ต๋๋ค๐ซ ๋ค๋ง ๋ฌด์์ ํ ์คํธํ๊ธฐ๋ณด๋จ ๋ค์ ๊ธฐ์ค์ ์ฐธ๊ณ ํด ๋ณด์๋ฉด ์ข์ ๊ฒ ๊ฐ์์!โฆ โSemantic Chunking (์๋ฏธ ๊ธฐ๋ฐ ๋ถํ ): ๋ง์ฝ ๋งํฌ๋ค์ด์ด๋ html์ ์ฌ์ฉํ์ ๋ค๋ฉด, ๋จ์ํ ๊ธ์ ์(Token)๋ก ์๋ฅด์ง ์๊ณ , ๋งํฌ๋ค์ด์ ํค๋(#), ๋ฌธ๋จ, ํน์ HTML ํ๊ทธ ๋จ์๋ก ๋ ผ๋ฆฌ์ ์ธ ์๊ฒฐ์ฑ์ ๊ฐ์ง๋๋ก ์๋ฅด๋ ๊ฒ์ด ์ค์ํ ๊ฒ ๊ฐ์ต๋๋ค!โฆ โ์ค๋ฒ๋ฉ(Overlap): ๋ณดํต ์ฒญํฌ ์ฌ์ด์ฆ์ 10~20% ์ ๋๋ฅผ ์ค๋๋ค. ๋ฌธ๋งฅ์ด ์ค๊ฐ์ ๋ ๋๊ธฐ๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํจ์ ๋๋ค.โ4. ์ค๋ฌด ๊ด์ ์์์ ETL ํ์ดํ๋ผ์ธ ์ฑ๋ฅ ํฅ์ ๋ ธํ์ฐโETL์ ๋ณธ์ง์ ์ผ๋ก ๋ฌด๊ฑฐ์ด ์์ ์ด ๋ง์ต๋๋ค. ํ์ง๋ง ๊ตฌ์กฐ์ ์ผ๋ก ์ต์ ํํ ๋ฐฉ๋ฒ์ ๋ง์ต๋๋ค..!!โข โ์๊ฐ ์ฑ๋ฅ (ETL ์๋) ํฅ์:โฆ โ๋ฐฐ์น ์ฒ๋ฆฌ(Batching): ์๋ฒ ๋ฉ API๋ฅผ ํธ์ถํ ๋ 1๊ฑด์ฉ ๋ณด๋ด์ง ์๊ณ , API๊ฐ ํ์ฉํ๋ ์ต๋ ๋ฐฐ์น ์ฌ์ด์ฆ(์: OpenAI์ ๊ฒฝ์ฐ ํ ๋ฒ์ ์ฌ๋ฌ ํ ์คํธ ๋ฐฐ์ด ์ ์ก)๋ก ๋ฌถ์ด์ ๋ณด๋ด๋ฉด ๋คํธ์ํฌ ์ค๋ฒํค๋๋ฅผ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค~!โฆ โDelta Update (์ฆ๋ถ ์ ๋ฐ์ดํธ): ์ ์ฒด ๋ฌธ์๋ฅผ ๋งค๋ฒ ๋ค์ ๋ฒกํฐ DB์ ๋ฃ๋ ๊ฒ์ด ์๋๋ผ, ํด์(Hash)๊ฐ์ ๋น๊ตํ์ฌ ๋ณ๊ฒฝ๋๊ฑฐ๋ ์ถ๊ฐ๋ ๋ฌธ์๋ง ์ฒ๋ฆฌํ๋๋ก ํ์ดํ๋ผ์ธ์ ์ค๊ณํ ์๋ ์์ต๋๋ค!โข โ๊ฒ์ ์ฑ๋ฅ (RAG ํ์ง) ํฅ์:โฆ โRe-ranking (์ฌ์ ๋ ฌ): ๋ฒกํฐ ๊ฒ์์ผ๋ก 1์ฐจ ํ๋ณด๊ตฐ(Top K)์ ๋๊ฒ ๋ฝ์ ๋ค, Cross-Encoder ๋ชจ๋ธ ๋ฑ์ ์ฌ์ฉํด ์ง๋ฌธ๊ณผ ๋ฌธ์ ๊ฐ์ ๊ด๋ จ์ฑ์ ๋ค์ ์ ๋ฐํ๊ฒ ์ฑ์ ํ์ฌ ์์๋ฅผ ๋งค๊ธฐ๋ ๋ฐฉ์์ ๋๋ค.โฆ โQuery Transformation: ๊ฐ์์์ ๋ง์๋๋ฆฐ Query Transformation์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ธ๋ฐ์~์ฌ์ฉ์์ ์ง๋ฌธ์ ๊ทธ๋๋ก ๊ฒ์์ ์ฐ์ง ์๊ณ , LLM์ ํ ๋ฒ ๊ฑฐ์ณ ์ง๋ฌธ์ ๋ ๋ช ํํ๊ฒ ์ฌ์์ฑ(Query Rewriting)ํ๊ฑฐ๋, ๊ฐ์์ ๋ต๋ณ์ ๋ง๋ค์ด ๊ทธ ๋ฒกํฐ๋ก ๊ฒ์(HyDE ๊ธฐ๋ฒ)ํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค..!โETL ๊ณผ์ ์์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ ค ๋ต๋ตํ์ จ์ ํ ๋ฐ, ์ด๋ฐ ์ฑ๋ฅ์ ๋ณ๋ชฉ์ ์ง์ ์ฐพ์๋ด๊ณ ๊ฐ์ ํด ๋ณด๋ ค๋ ๊ณผ์ ์์ฒด๊ฐ ์ค๋ฌด ์ญ๋์ ํค์ฐ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค!ใ ใ โ์ ๋ต๋ณ์ด ์ถฉ๋ถํ ๋ต๋ณ์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉฐ, ์ถ๊ฐ๋ก ๊ถ๊ธํ ์ ์ด ์๋ค๋ฉด ์ธ์ ๋ ์ง๋ฌธ ๋จ๊ฒจ์ฃผ์ธ์! ์์ํฉ๋๋ค :)๐ค
- Likes
- 2
- Comments
- 1
- Viewcount
- 74
Q&A
[์ง์ ๊ณต์ ] bge-m3 ๋ชจ๋ธ pull ์๋ํ ๋ EOF ๋จ๋ ํ์ ํด๊ฒฐ
์๋ ํ์ธ์, jyee๋~ JSCODE ์๋์ ๋๋ค!ใ ใ ์ฐ์ ์ข์ ์ง์ ๊ณต์ ์ ๋ง ๊ฐ์ฌ๋๋ฆฝ๋๋ค.ollama pull ๊ณผ์ ์์ Error: EOF (End of File)๊ฐ ๋ฐ์ํ๋ฉฐ ๋ค์ด๋ก๋๊ฐ ์คํจํ๋ ํ์์ ์์ธ๋ก ๋ง์ ๋ถ๋ค์ด ๊ฒช๋ ๋คํธ์ํฌ/๋์์ฑ ๊ด๋ จ ์ด์ ์ค ํ๋์ธ๋ฐ ์ด๋ ๊ฒ ๊ณต์ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!๐ฅน์ฐ์ EOF ์๋ฌ์ ์์ธ์ Ollama ์๋ฒ๊ฐ ๋ชจ๋ธ ๋งค๋ํ์คํธ๋ ๋ ์ด์ด๋ฅผ ๋ค์ด๋ก๋ํ ๋, ๋์ฉ๋ ํ์ผ์ด๊ฑฐ๋ ์ผ์์ ์ธ ๋คํธ์ํฌ ๋ณ๋ชฉ์ผ๋ก ์ธํด ์๋ฒ์์ ์ฐ๊ฒฐ์ด ์๊ธฐ์น ์๊ฒ ๋์ด์ง๋ฉด์(End of File) ๋ฐ์ํ๋๊ฒ์ด ๋๋ถ๋ถ ์ ๋๋ค..!๋๋ OLLAMA_MAX_QUEUE=1 ํ๊ฒฝ ๋ณ์์ ์ญํ ๋๋ฌธ์๋ ๋ฐ์ํ๋๋ฐ์..!Ollama๋ ๋ด๋ถ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋์ ์์ฒญ ํ(Queue)์ ํฌ๊ธฐ๋ฅผ ์ ํํ์ฌ, ๋คํธ์ํฌ ์์ฒญ์ด ๋ถ์ฐ๋๊ฑฐ๋ ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ฆฌ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. ์ฆ, ์ด๋ฅผํตํด ๋ค์ด๋ก๋ ํ์ดํ๋ผ์ธ์ ๋จ์ผํํ์ฌ ์์ ์ฑ์ ๋์ฌ์ฃผ๋ ์ญํ ์ ํ๊ธฐ๋ ํฉ๋๋ค.๋คํธ์ํฌ ํ๊ฒฝ์ด๋ PC ์คํ์ ๋ฐ๋ผ ํน์ ๋์ฉ๋ ๋ชจ๋ธ์ด๋ ์๋ฒ ๋ฉ ๋ชจ๋ธ(bge-m3 ๋ฑ)์์ ์ ๋ ์ด ์ฆ์์ด ์ฆ์๋ฐ, ๋ฉ๋ด๋ฐ์์ ์์ ํ ์ข ๋ฃ ํ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฃผ์ด ์์ ์ฑ์ ๋์ด๋ ์์ฃผ ์ ํํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์๋ด๊ณ ๊ณต์ ํด ์ฃผ์ จ๋ค์!ollama list ๊ฟํ๊น์ง ์ ์ด์ฃผ์ ์ ์ด ์๋ฌ๋ก ๋งํ๋ ๋ค๋ฅธ ์๊ฐ์๋ถ๋ค๊ป ์ ๋ง ํฐ ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค.์๊ฐ๊น์ง ํ์ดํ ์ ๋๋ค! ํน์ ๋ ๊ฐ์ ๋ค์ผ์๋ฉด์ ํฅ๋ฏธ๋ก์ด ์ ์ด๋ ๊ณต์ ํ๊ณ ์ถ์ ๋ด์ฉ์ด ์๋ค๋ฉด ์ธ์ ๋ ๋จ๊ฒจ์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค. ๐
- Likes
- 1
- Comments
- 2
- Viewcount
- 52
Q&A
๋ฌดํ๋ฃจํ ๋ฐ์ ์กฐ๊ฑด์์ ์ค์ ์ค๋ฅ ๋ผ๋ ๊ฒ ์ด๋ค ์ผ์ด์ค์ผ๊น์?
์๋ ํ์ธ์! jyee๋~ JSCODE ์๋ ์ ๋๋ค~์ฐ์ ๊ฐ์๋ฅผ ํฅ๋ฏธ๋กญ๊ฒ ๋ค์ผ์๋ฉด์ ์ฝ๋์ ๋ํ ์ผํ ๋ถ๋ถ๊น์ง ๊น๊ฒ ๊ณ ๋ฏผํ๊ณ ์ง๋ฌธํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!ใ ใ ๋ง์ํ์ LengthTextSplitter์ ๋ฌดํ ๋ฃจํ ๋ฐฉ์ง ๋ก์ง์ ํ ์คํธ ํ์ฑ ๋ฐ ์ฒญํฌ ๋ถํ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณํ ๋ ๋งค์ฐ ์ค์ํ ์์ธ ์ฒ๋ฆฌ ๊ตฌ๊ฐ์ ๋๋ค.โ์ง๋ฌธํ์ ๋๋ก chunkSize๋ณด๋ค chunkOverlap์ด ๋ ํฌ๊ฒ ์ค์ ๋๊ฑฐ๋ ์์๊ฐ ๋ค์ด์ค๋ ๊ฒฝ์ฐ๊ฐ '์ค์ ์ค๋ฅ'์ ๋ํ์ ์ธ ์ผ์ด์ค์ ๋๋ค!โ์กฐ๊ธ ๋ ๊ตฌ์ฒด์ ์ผ๋ก ์ด๋ค ์๋ฆฌ๋ก ์ธํด ์ธ๋ฑ์ค๊ฐ ์ ์๋ฆฌ์ ๋จธ๋ฌผ๊ฑฐ๋ ๋ค๋ก ๋ฐ๋ ค ๋ฌดํ ๋ฃจํ๊ฐ ๋ฐ์ํ๋์ง ๋ช ๊ฐ์ง ์ผ์ด์ค๋ก ๋๋์ด ์ค๋ช ํด ๋๋ฆฌ์๋ฉด,โ1. chunkOverlap์ด chunkSize๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ๊ฒฝ์ฐ (๊ฐ์ฅ ํํ ์ค์ ์ค๋ฅ ์ ๋๋ค!)โ์ฐ๋ฆฌ๊ฐ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ ๋ฐฉ์์ผ๋ก ํ ์คํธ๋ฅผ ์๋ผ๋ผ ๋, ๋ค์ ์ฒญํฌ์ ์์์ (nextStart)์ ๋ณดํต ํ์ฌ ์์์ (chunkStart)์์ chunkSize๋ฅผ ๋ํ ๋ค chunkOverlap๋งํผ ๋นผ์ ๊ฒฐ์ ๋ฉ๋๋ค.โ์์ ํํ: nextStart = chunkStart + chunkSize - chunkOverlapโ์ฐ๋ฆฌ๋ ํ์ฌ chunkSize์ chunkOverlap์ ์ง์ ์ฃผ์ ํด์ฃผ๊ณ ์๋๋ฐ์~ ๋ง์ฝ ์ค์ ์ ์๋ชปํ์ฌ chunkSize = 100, chunkOverlap = 120์ผ๋ก ์ง์ ํ๋ค๊ณ ๊ฐ์ ์ ํด๋ณด๊ฒ ์ต๋๋ค..!โข โnextStart = chunkStart + 100 - 120์ด ๋๋ฏ๋ก, nextStart = chunkStart - 20์ด ๋ฉ๋๋ค.โข โ์ฆ, ๋ค์ ์์์ ์ด ์์ผ๋ก ์ ์งํ์ง ๋ชปํ๊ณ ์คํ๋ ค ๋ค๋ก ๋ฐ๋ฆฌ๋ ํ์์ด ๋ฐ์ํฉ๋๋ค.โข โ์กฐ๊ฑด๋ฌธ(if (nextStart โ2. ๋ง์ํ์ chunkOverlap ๋๋ chunkSize๊ฐ ์์์ธ ๊ฒฝ์ฐโ์์ฑ์๋ ๋น๋์์ ์์ ์ง์ ์ ๋ง๋ ๊ฒ์ฆ(Validation) ๋ก์ง์ด ๋๋ฝ๋์๋ค๋ฉด, ๊ณ์ฐ์ ๋ด์์ ์์ ์ฐ์ฐ์ผ๋ก ์ธํด ์ธ๋ฑ์ค๊ฐ ๊ผฌ์ด๊ฒ ๋ฉ๋๋ค..!โข โ์๋ฅผ ๋ค์ด chunkOverlap์ -50 ๊ฐ์ ์์๊ฐ ๋ค์ด๊ฐ๋ฉด ๋ง์ด๋์ค ๋ง์ด๋์ค๊ฐ ๋์ด ์ค๋ฒ๋ฉ์ด ์๋๋ผ ์คํ๋ ค ๊ณต๋ฐฑ์ด ์๊ธฐ๊ฑฐ๋, ๋ฐ๋๋ก ์ธ๋ฑ์ค ์ญ์ ํ์์ ์ ๋ฐํ๋ ์ฃ์ง ์ผ์ด์ค๊ฐ ์๊ธธ ์ ์์ต๋๋ค.โ๋ง์ํ์ "์์ฑ์ ์ค์ ์ ํฌ๊ธฐ ์ญ์ (overlap > size)์ด๋ ์์ ์ง์ " ์ผ์ด์ค๊ฐ ๋ง์ต๋๋ค!ใ ใ โ์ด๋ฐ ๋ฐฉ์ด์ ์ฝ๋(if (nextStart โ์ ํํ ๊ฐ๋ ์ ์ง๊ณ ๊ณ์๋ ์์ผ๋ก์ ๊ตฌํ ์ค์ต๋ ์์ฃผ ์์ํ๊ฒ ์งํํ์ค ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค~!!์๊ฐ๊น์ง ๊ณ์ ์์ํ๊ฒ ์ต๋๋ค. ์ถ๊ฐ๋ก ๊ถ๊ธํ ์ ์ด ์๊ธฐ๋ฉด ์ธ์ ๋ ์ง๋ฌธ ๋จ๊ฒจ์ฃผ์ธ์!
- Likes
- 1
- Comments
- 1
- Viewcount
- 54
Q&A
์ง์๊ณต์ (์๋์ฐ ์ค์น) [์ค์ต] ์ธ๋ถ MCP Server์ ์ฐ๋ํ ์ค์๊ฐ ๋ ์จ ์กฐํ - MCP Client ๊ฐ๋ฐ
์๋ ํ์ธ์ ์ด์ค์ฝ๋~ JSCODE ์๋ ์ ๋๋ค.ํด๋น ๋ด์ญ ๊ณต์ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ใ ใ ๋ช ๋ น์ด๋ ์ ๋ณด์ด๊ฒ ๊ธ ์จ์ฃผ์ ์ ๋๋ฌด ์ข๋ค์~! ใ ใ ์๊ฐํ์๋ค๊ฐ ๊ถ๊ธํ์ ์์ผ์๋ฉด ์ธ์ ๋ ์ง๋ฌธ ๊ฒ์ํ ์ด์ฉ ๋ถํ๋๋ฆฝ๋๋ค ~~
- Likes
- 0
- Comments
- 1
- Viewcount
- 49
Q&A
์๋ฃ ๋ค์ด๋ก๋๊ฐ ์๋ฉ๋๋ค.
์๋ ํ์ธ์ ํํ์ถ๋~JSCODE ์๋์ ๋๋ค~!๊ฐ์์๋ฃ ์น์ ๋งจ ์๋จ์ ๊ธฐ์ฌํด๋๋ฆฐ ๊ฒ ์ฒ๋ผ ์๋์ฐ OS๋ฅผ ์ฌ์ฉํ์๋ ๋ถ๋ค์ ๊ฒฝ์ฐ, ์๋์ฐ ๊ธฐ๋ณธ ์์ถํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์๋ฉด ์์ถํ์ผ์ด ๋น์ด๋ณด์ ๋๋ค! ๋ฐ๋์ง๊ณผ ๊ฐ์ ์์ถ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ ์ ์์ถ ํด์ ํด๋ณด์๊ธธ ๋ฐ๋ผ๊ณ , ์๋ ํ์๋ ๋์ผ์ฆ์ ์์ผ์๋ฉด 1๋1 ์คํ์ฑํ ๋ฐฉ์ผ๋ก ์ฌ๋ฌธ์ ๋ถํ๋๋ฆฝ๋๋ค~!ใ ใ
- Likes
- 0
- Comments
- 2
- Viewcount
- 69
Q&A
์๋ ํ์ธ์ ์กธ์ ํ๋ก์ ํธ๋ฅผ ์ค๋นํ๋ ํ์์ ๋๋ค.!
์๋ ํ์ธ์! ํ์ธ์ฆ๋~ JSCODE ์๋ ์ ๋๋ค! ใ ใ ๋จผ์ ์๊ฐ ์ ์ ์ด๋ ๊ฒ ๋ฉ์ง ํ๋ก์ ํธ๋ฅผ ๊ธฐํํ์๊ณ ์ง๋ฌธ ๋จ๊ฒจ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.๊ฒฐ๋ก ๋ถํฐ ๋ง์๋๋ฆฌ๋ฉด, ์๊ฐ์๋์ด ๊ธฐํํ์ 'RAG ๊ธฐ๋ฐ ์์ฌ์ํต ํผ๋๋ฐฑ ์ฑ๋ด'์ ๊ฐ์ ์๊ฐํ์๋ฉด ์ถฉ๋ถํ ๊ตฌํ ๊ฐ๋ฅํ๋ฉฐ, ์์ฃผ ํ๋ฅญํ ํ๋ก์ ํธ ์ฃผ์ ์ ๋๋ค!RAG(๊ฒ์ ์ฆ๊ฐ ์์ฑ)๋ฅผ ํ์ฉํ๋ฉด ์ผ๋ฐ์ ์ธ ์ฑ๋ด์ ๋์ด, ํน์ ๋๋ฉ์ธ ์ง์์ด๋ ๋ํ ๊ฐ์ด๋๋ผ์ธ์ ๊ธฐ๋ฐ์ผ๋ก LLM์ด ๋ณด๋ค ์ ํํ๊ณ ์๋ฏธ ์๋ ํผ๋๋ฐฑ์ ์ฃผ๋๋ก ๋ง๋ค ์ ์์ต๋๋ค. ๊ฐ์ ํ๋ฐ๋ถ๋ก ๊ฐ์ค์๋ก RAG์ ํต์ฌ์ธ ์ธ๋ถ ๋ฐ์ดํฐ ๊ฒ์๊ณผ Tool Calling ๋ฑ์ ๊ฒฐํฉํ ํ๋กฌํํธ ์์ง๋์ด๋ง์ ์คํ๋ง ํ๊ฒฝ์์ ์ด๋ป๊ฒ ๋งค๋๋ฝ๊ฒ ์ฐ๊ฒฐํ๋์ง ๊ฐ์ ์ก์ผ์ค ์ ์์ ๊ฑฐ์์.์ฐ์ ์ ๊ฐ์๋ฅผ ๋๊น์ง ์๊ฐํ์๋ฉด์ Spring AI์ ์ ์ฒด์ ์ธ ํ๋ฆ๊ณผ Vector DB ํ์ฉ๋ฒ์ ์ตํ์๋ ๊ฒ์ ์ถ์ฒํด ๋๋ฆฝ๋๋ค. ์ดํ์ ์์ ๊ธฐ๋ฅ(์: ๋จ์ ํ ์คํธ ์ ๋ ฅ์ ๋ํ 1์ฐจ ํผ๋๋ฐฑ)๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์ด์ ๋ถ์ฌ๋๊ฐ์๋ฉด ์ํ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฉ์ง๊ฒ ์์ฑํ์ค ์ ์์ ๊ฒ๋๋ค! ใ ใ ํ์ตํ์๋ค๊ฐ ๊ตฌํ๊ณผ ๊ด๋ จํด ๋งํ๋ ๋ถ๋ถ์ด ์๊ธฐ๋ฉด ์ธ์ ๋ ๋ค์ ์ง๋ฌธ ๋จ๊ฒจ์ฃผ์ธ์. ์๊ฐ๊ณผ ํ๋ก์ ํธ ์์ฑ๊น์ง ์์ํ๊ฒ ์ต๋๋ค! ํ์ดํ ํ์ธ์~!!
- Likes
- 0
- Comments
- 1
- Viewcount
- 76
Q&A
์์ค์ฝ๋ ๋น ํ์ผ ๋ฌธ์๋๋ ค์
์๋ ํ์ธ์! ๋ค์ฐ๋~ JSOCDE ์๋ ์ ๋๋ค!ํด๋น ํ์ผ์ด Mac OS์์ ์์ฑ๋ ํ์ผ์ด๋ผ์๋์ฐ ๊ธฐ๋ณธ ์์ถ ํด์ ํ๋ก๊ทธ๋จ์ผ๋ก ์์ถ ํด์ ์ ๋น ํ์ผ๋ก ๋ณด์ผ ์ ์์ต๋๋ค!์ด๋ฐ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ํ๋ก๊ทธ๋จ์ด ์๋ ๋ฐ๋์ง์ผ๋ก ์์ถํด์ ์๋ ํ์๋ฉด ์ ์์ ์ผ๋ก ํ์ผ ํ์ธํ์ค ์ ์์ต๋๋ค~!์กฐ์น ์งํํด๋ณด์๊ณ , ์ถ๊ฐ์ ์ผ๋ก ๋ฌธ์์ฌํญ ์๊ธฐ์๋ฉด ์ฐ๋ฝ์ฃผ์๊ธธ ๋ฐ๋๋๋ค!์๊ฐ๊น์ง ํ์ดํ ์ ๋๋ค~ +1:1 ์ง๋ฌธ๋ฐฉ์์ ํด๊ฒฐ ์๋ฃ ํ์ธํ์์ต๋๋ค~!
- Likes
- 0
- Comments
- 2
- Viewcount
- 73
Q&A
Docker + Spring Boot CI/CD ๋ฐฉ๋ฒ
์๋ ํ์ธ์, agachansong๋! JSCODE ์๋์ ๋๋ค~โํ์ฌ ์ด ๊ฐ์์์๋ Jenkins์ ์ด์ ์ ๋ง์ถ์ด Node.js ํ๊ฒฝ์ ๊ธฐ๋ฐ์ผ๋ก CI/CD์ ํต์ฌ ์๋ฆฌ์ ํ๋ฆ์ ๋ค๋ฃจ๊ณ ์์ต๋๋ค! ์ง๋ฌธํด ์ฃผ์ Spring Boot์ ๊ฒฝ์ฐ, ๊ธฐ๋ณธ์ ์ธ Docker ๋ฐ Jenkins ํ์ฉ ํ๋ฆ์ ์ ์ฌํ์ง๋ง ๋น๋ ๋๊ตฌ(Gradle/Maven)๋ Dockerfile ์์ฑ ๋ฐฉ์์์ ์ฝ๊ฐ์ ์ฐจ์ด๊ฐ ์์ต๋๋ค.โ์ถํ ์๊ฐ์ด ๋๋ค๋ฉด Spring Boot ํ๋ก์ ํธ๋ฅผ ํ์ฉํ CI/CD ๊ณผ์ ๋ ๋ณ๋ ๊ฐ์๋ก ์ ์ํด ๋ณผ ๊ณํ์ ๊ฐ์ง๊ณ ์์ต๋๋ค! ๐ฅนโ๋ค๋ง, ํ์ฌ ๊ฐ์๋ฅผ ์๊ฐํ์ ๋ถ์ด๋ผ๋ฉด ์ด๋ฏธ CI/CD์ ์ ์ฒด์ ์ธ ๋ฉ์ปค๋์ฆ์ ์ถฉ๋ถํ ์ดํดํ๊ณ ๊ณ์ค ๊ฑฐ์์. ๋ฐ๋ผ์ ๋ค์ ๊ณผ์ ์ ์ฐธ๊ณ ํ์ฌ ์ค์ค๋ก ์๋ฃ๋ฅผ ์ฐพ์๋ณด๋ฉฐ ์ง์ ํ๊ฒฝ์ ๊ตฌ์ถํด ๋ณด์๋ ๊ฒ์ ๊ฐ๋ ฅํ ์ถ์ฒ๋๋ฆฝ๋๋ค!โข โDockerfile ์์ฑ: openjdk ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Gradle/Maven ๋น๋ ๊ฒฐ๊ณผ๋ฌผ(.jar)์ ์คํํ๋ Dockerfile์ ๋ง๋ค์ด ๋ณด์ธ์!โข โJenkins Pipeline ์์ : Node.js ๋น๋ ๋จ๊ณ ๋์ ./gradlew build์ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋๋ก Pipeline ์คํฌ๋ฆฝํธ๋ฅผ ๋ณ๊ฒฝํด ๋ณด์ธ์.โข โ์ปจํ ์ด๋ ๋ฐฐํฌ: ์์ฑ๋ JAR ํ์ผ์ Docker ์ด๋ฏธ์ง๋ก ๋น๋ํ๊ณ ์ปจํ ์ด๋๋ก ๋์ฐ๋ ๊ณผ์ ์ ์ค์ตํด ๋ณด์ธ์.โ์ง์ ๋ถ๋ชํ๋ฉฐ ํด๊ฒฐํ๋ ๊ณผ์ ์ด ๊ฐ์๋ฅผ ๋ค์๋๋ณด๋ค ํจ์ฌ ์ค๋ ฅ ํฅ์์ ๊ฐ์ฅ ํฐ ๋์์ด ๋์ค๊ฑฐ์์! ์ค์ตํ์๋ค๊ฐ ๋งํ๋ ๋ถ๋ถ์ด ์๊ธฐ๋ฉด ์ธ์ ๋ ์ง๋ฌธ ๋จ๊ฒจ์ฃผ์ธ์!agachansong๋์ ์ฑ์ฅ์ ์์ํ๊ฒ ์ต๋๋ค~!
- Likes
- 0
- Comments
- 2
- Viewcount
- 90
Q&A
(๊ฐ์ 6๋ถ 50์ด ๋ถ๋ถ) Workspace ์์ index.html์ด ๋น์ด์์
์๋ ํ์ธ์! ์ฟ ์นด์ด๋ ๋~ JSCODE ์๋์ ๋๋ค!ใ ใ โ์ง๋ฌธํด ์ฃผ์ Playwright ๋ฆฌํฌํธ ๋น ํ๋ฉด ํ์์ ๋ฆฌํฌํธ ๊ตฌ์ฑ ํ์ผ์ด ์ ์์ ์ผ๋ก ๋ก๋๋์ง ์์ ๋ ์ฃผ๋ก ๋ฐ์ํฉ๋๋ค. ์ ํํ ๋ฌธ์ ์์ธ์ ํ์ ํ์ฌ ํด๊ฒฐ์ฑ ์ ๋๋ฆฌ๊ธฐ ์ํด, ๋ฒ๊ฑฐ๋ก์ฐ์๊ฒ ์ง๋ง ์๋ ์ธ๊ฐ์ง ์ ๋ณด๋ฅผ ์ถ๊ฐ๋ก ํ์ธ ๋ถํ๋๋ฆฝ๋๋ค.โ1. ๋ธ๋ผ์ฐ์ ์ฝ์ ์๋ฌ ๋ก๊ทธ ๋น ํ๋ฉด์ด ๋ฌ ์ํ์์ ํค๋ณด๋์ F12(๊ฐ๋ฐ์ ๋๊ตฌ)๋ฅผ ๋๋ฅธ ๋ค, ์๋จ์ [Console] ํญ์ ํด๋ฆญํด ๋ณด์ธ์.โ๊ทธ๊ณณ์ ๋นจ๊ฐ์์ผ๋ก ํ์๋๋ ์๋ฌ ๋ฉ์์ง๋ค์ด ์๋ค๋ฉด ์บก์ฒํ๊ฑฐ๋ ๋ณต์ฌํด์ ๊ณต์ ํด ์ฃผ์ธ์. (๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฐ์ฅ ์ค์ํ ๋จ์๊ฐ ๋ฉ๋๋ค.๐ฅน)โ2. ์๊ฐ ์ค์ธ ๊ฐ์ ์ ๋ณด โํ์ฌ ์๊ฐํ๊ณ ๊ณ์ ๊ฐ์์ ์ ์ฒด ์ ๋ชฉ๊ณผ ๋ช ๊ฐ์ธ์ง ์๋ ค์ฃผ์ค ์ ์์๊น์~?โ์ ํจ์ค ์ค์ ๋จ๊ณ์ ๋ฐ๋ผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ๋ฌ๋ผ์ง ์ ์์ด ํ์ธ์ด ํ์ํฉ๋๋ค. โ3. ์ ํจ์ค ์คํฌ๋ฆฝํธ ์ฝ์ ์ค์ ํ์ธโ[์ ํจ์ค ๊ด๋ฆฌ] > [Script Console]์ ์๋ ์ฝ๋๋ฅผ ์ ๋ ฅํ๊ณ Run์ ์คํํ ๋ค, ๋ค์ ๋ฆฌํฌํธ๋ฅผ ํ์ธํด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค.System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox allow-same-origin allow-scripts; default-src 'self' 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; style-src * 'unsafe-inline'; img-src * data:; font-src *;") (์ฐธ๊ณ : ์ด ์ค์ ์ ์ ํจ์ค ์ฌ์์ ์ ์ด๊ธฐํ๋ ์ ์์ผ๋, ์ฐ์ ์คํ ํ ๋ฆฌํฌํธ๊ฐ ์ ์์ ์ผ๋ก ๋์ค๋์ง ํ์ธ ๋ถํ๋๋ฆฝ๋๋ค.)โ์ ์ ๋ณด๋ค์ ํ์ธํด ์ฃผ์๋ฉด ์ ํํ ์์ธ์ ์ก์๋๋ฆฌ๊ฒ ์ต๋๋ค!ใ ใ
- Likes
- 0
- Comments
- 2
- Viewcount
- 101




