Skip to content
This repository was archived by the owner on Jan 2, 2026. It is now read-only.

Commit ebbc26a

Browse files
thelightway24HaechangLeeCopilotLEELISEchanbyoung
authored
๐Ÿš€ Deploy: Ver1.0.0 ๋ฐฐํฌ
* ๐Ÿ“ฆ๏ธ Chore: build gradle ์ˆ˜์ • * โœจ Feat: Openai Embedding ํ•จ์ˆ˜ ์ถ”๊ฐ€ * ๐Ÿ› Bug: application.yml openai api key ์ถ”๊ฐ€ * โ™ป๏ธ Refactor: ์ฃผ์˜์‚ฌํ•ญ ์œ ํ˜• enum ์‚ญ์ œ * โœจ Feat: Embedding ๊ณตํ†ต ์ธํ„ฐํŽ˜์ด์Šค ๊ฐœ๋ฐœ * โœจ Feat: API ๋ฐ์ดํ„ฐ ์ •์ œ ์ถ”๊ฐ€ * โœจ Feat: ์ „์ฒด ์š”์ฒญ์ˆ˜ ๊ณ„์‚ฐ ํด๋ž˜์Šค ์ƒ์„ฑ * ๐Ÿ“ฆ Chore: ํ…Œ์ŠคํŠธ ์„œ๋ฒ„ ๋ฐฐํฌ ์ถ”๊ฐ€ * ๐Ÿ“ฆ Chore: ํฌํŠธ ๋ฒˆํ˜ธ ๋ณ€๊ฒฝ * ๐Ÿ“ฆ Chore: git-action ํ…Œ์ŠคํŠธ ์„œ๋ฒ„ ์ƒํƒœ URL ๋ณ€๊ฒฝ * ๐Ÿ“ฆ Chore: ์˜คํƒ€ ์ˆ˜์ • * ๐Ÿ› Fix: ์ปดํŒŒ์ผ ์˜ค๋ฅ˜ ์ˆ˜์ • * ๐Ÿ› Fix: API URI ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์˜ค๋ฅ˜ ์ˆ˜์ • (#12) * โœจ Feat: ์ด๋ฏธ์ง€ ์ „์ฒด ์ €์žฅ * โœจ Feat: Embed ๋ชจ๋ธ 2๊ฐœ(KM-BERT,KR-SBERT) ์ถ”๊ฐ€ * โœจ Feat: Embed ๋ชจ๋ธ 2๊ฐœ(KM-BERT,KR-SBERT) ์ถ”๊ฐ€ * โœจ Feat: ์ž„๋ฒ ๋”ฉ ์ฒ˜๋ฆฌ ํด๋ž˜์Šค ์ƒ์„ฑ * โœจ Feat: Api Raw ๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ * โœจ Feat: ํ…Œ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ ์ถ”๊ฐ€ ๋ฐ ์‚ฌ์†Œํ•œ ์˜ค๋ฅ˜ ์ˆ˜์ • * โ™ป๏ธ Refactor: ํ†ตํ•ฉ ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๊ตฌ์กฐ ๋ณ€๊ฒฝ * ๐Ÿ› Fix: ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ ์ฝ”๋“œ ์ฃผ์„์ฒ˜๋ฆฌ * โœจ Feat: ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ์ ์šฉ * โœจ Feat: Embed ๋ชจ๋ธ 2๊ฐœ(KM-BERT,KR-SBERT) ์ถ”๊ฐ€ * โœจ Feat: ์ž„๋ฒ ๋”ฉ ์ฒ˜๋ฆฌ ํด๋ž˜์Šค ์ƒ์„ฑ * โœจ Feat: Api Raw ๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ * โœจ Feat: ํ…Œ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ ์ถ”๊ฐ€ ๋ฐ ์‚ฌ์†Œํ•œ ์˜ค๋ฅ˜ ์ˆ˜์ • * โ™ป๏ธ Refactor: ํ†ตํ•ฉ ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๊ตฌ์กฐ ๋ณ€๊ฒฝ * ๐Ÿ› Fix: ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ ์ฝ”๋“œ ์ฃผ์„์ฒ˜๋ฆฌ * โœจ Feature/#21 ์—˜๋ผ์Šคํ‹ฑ ์„œ์น˜ ์ƒ‰์ธ ์ถ”๊ฐ€ (#33) * ๐Ÿ“ฆ Chore: index ํŒจํ‚ค์ง€ ๋ณ‘ํ•ฉ * โ™ป๏ธ Refactor: ์ž„๋ฒ ๋”ฉ Entity ๊ฐ์ฒด ๋ถ„ํ•  * ๐Ÿ“ฆ Chore: ํŒŒ์ผ๋ช… ์˜ค๋ฅ˜ ์ˆ˜์ • * ๐Ÿ“ฆ Chore: entity ํ…Œ์ด๋ธ” ์ˆ˜์ • * โ™ป๏ธ Refactor: ํŒจํ‚ค์ง€ ๊ตฌ์กฐ ๋ณ€๊ฒฝ ๋ฐ ์ž„๋ฒ ๋”ฉ ์ฒ˜๋ฆฌ * โ™ป๏ธ Refactor: ํŒจํ‚ค์ง€ ๊ตฌ์กฐ ๋ณ€๊ฒฝ ๋ฐ ์ž„๋ฒ ๋”ฉ ์ฒ˜๋ฆฌ * ๐Ÿ› Fix: ๋˜‘๊ฐ™์€ ํŽ˜์ด์ง€๋งŒ ๊ฐ€์ ธ์˜ค๋Š” ์˜ค๋ฅ˜ ์ˆ˜์ • --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * โ™ป๏ธ Refactor: ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋กœ์ง ๊ฐœ์„  * โ™ป๏ธ Refactor: ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋กœ์ง ๊ฐœ์„  * โ™ป๏ธ Refactor: ๋ฉ”์„œ๋“œ๋ช… ๋ณ€๊ฒฝ * โœจ Feature/#16 ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ (#25) * โœจ Feat: ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ ์ถ”๊ฐ€ * ๐Ÿ› Fix: image ์ €์žฅ ๊ณผ์ • ์ค‘ Object Mapper ์˜ค๋ฅ˜ ์ˆ˜์ • * ๐Ÿ› Fix: ์ €์žฅ ๋ฐฉ๋ฒ•์ด ์•ˆ๊ฐ€์ ธ์™€์ง€๋Š” ๋ฌธ์ œ ์ˆ˜์ • * โœจ Feat: ์ž„๋ฒ ๋”ฉ ํฌํŠธ ์–ด๋Œ‘ํ„ฐ ์ถ”๊ฐ€ (#28) * โœจ Feat: ์ž„๋ฒ ๋”ฉ ํฌํŠธ ์–ด๋ށํ„ฐ ์ถ”๊ฐ€ * โ™ป๏ธ Refactor: ๋งตํ•‘ ๊ณตํ†ตํ•จ์ˆ˜ DrugMapper๋กœ ๋ถ„๋ฆฌ * โœจ Feature/#29 ์ƒ‰์ธ ์ฝ”๋“œ ํ†ตํ•ฉ (#30) * โ™ป๏ธ Refactor: EsIndexName์„ GovDrugRawDataPort์—์„œ ๋ฐ›์•„์˜ค๋„๋ก ์ˆ˜์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค. * ๐Ÿ“ Docs: DrugIndexer์™€ ElasticsearchDrugAdapter ํด๋ž˜์Šค์˜ ์ฃผ์„์„ ์ˆ˜์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค. * โ™ป๏ธ Refactor: Elasticsearch์—์„œ ๊ฐœ๋ณ„์ €์žฅํ•˜๋Š” ๋กœ์ง์„ Bulk๋กœ ์ €์žฅํ•˜๋„๋ก ๋ณ€๊ฒฝํ•˜์˜€์Šต๋‹ˆ๋‹ค., ๋กœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค. * โ™ป๏ธ Refactor: ์—๋Ÿฌ ๋กœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค. * ๐Ÿ“ฆ Chore; ์ฃผ์„ ์ถ”๊ฐ€ (#32) --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: HaechangLee <112938092+HaechangLee@users.noreply.github.com> Co-authored-by: JUNG ANSIK <jaszzzzz@naver.com> * โœจ Feature/#35 ์ฆ์ƒ ์ธ๋ฑ์‹ฑ ์ €์žฅ ๋กœ์ง ๊ตฌํ˜„ (#36) * โœจ Feat: ์ฆ์ƒ Document, Repository ์ •์˜ * โœจ Feat: ์ฆ์ƒ ํŒŒ์‹ฑ ๋กœ์ง ๊ตฌํ˜„ * โœจ Feat: ์ฆ์ƒ ์ธ๋ฑ์‹ฑ ๊ธฐ๋Šฅ ๊ตฌํ˜„ * โ™ป๏ธ Refactor: ์ƒ‰์ธํฌํŠธ ํ†ตํ•ฉ (#37) * โœจ Feature/#40 ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ์„ ํƒ ๊ธฐ๋Šฅ (#41) * ๐Ÿ“ฆ Chore: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ ๋ฐ ๋ฐฐํฌ ์ฝ”๋“œ๋กœ ์ˆ˜์ • * ๐Ÿ› Fix: ์‘๋‹ต ๊ฐ์ฒด์—์„œ items ์ถ”์ถœ ์‹คํŒจํ•ด๋„ ์ง„ํ–‰๋˜๋„๋ก ์ˆ˜์ • ๋ฐ ๋กœ๊ทธ ๊ธฐ๋ก * ๐Ÿ“ฆ Chore: ๋ถˆํ•„์š”ํ•œ ๋กœ๊ทธ ์‚ญ์ œ * ๐Ÿ“ฆ ์ปจํŠธ๋กค๋Ÿฌ ์ผ๋ถ€ ์ˆ˜์ • * ๐Ÿ› Fix: ํŠธ๋žœ์žญ์…˜ ์‚ญ์ œ * ๐Ÿ› Fix: ๋ฉ”๋ชจ๋ฆฌ ์˜ค๋ฅ˜ ์ˆ˜์ • * ๐Ÿ“ฆ๏ธ Chore: esIndex๋ช… ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์ˆ˜์ • * ๐Ÿ› Bug: es์ธ๋ฑ์‹ฑ ์ด๋ฏธ์ง€url null ๊ฐ’์ฒ˜๋ฆฌ * ๐Ÿ› Bug: pageable ์ธ์ž 0 ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋„๋ก ๋ณ€๊ฒฝ * โ™ป๏ธ Refactor: ์ž„๋ฒ ๋”ฉ DB ์ ‘๊ทผ port ๋ณ€๊ฒฝ (#48) * โ™ป๏ธ Refactor: ์ž„๋ฒ ๋”ฉ DB ์ ‘๊ทผ port ๋ณ€๊ฒฝ * โ™ป๏ธ Refactor: JPA findAll OrderBy ์‚ญ์ œ * โ™ป๏ธ Refactor: JPA ํ…Œ์ด๋ธ” ํƒ€์ž… ๋ณ€๊ฒฝ * ๐Ÿ“ฆ๏ธ Chore: gptEmbeddingLoadingAdapter ๋กœ๊น… ์ถ”๊ฐ€ (#50) * โ™ป๏ธ Refactor: ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ๋ณ€๊ฒฝ (#51) * โ™ป๏ธ Refactor: ์ž„๋ฒ ๋”ฉ DB ์ ‘๊ทผ port ๋ณ€๊ฒฝ * โ™ป๏ธ Refactor: JPA findAll OrderBy ์‚ญ์ œ * โ™ป๏ธ Refactor: JPA ํ…Œ์ด๋ธ” ํƒ€์ž… ๋ณ€๊ฒฝ * โ™ป๏ธ Refactor: ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ๋ณ€๊ฒฝ * ๐Ÿ› Bug: ํŽ˜์ด์ง€ ์ •๋ ฌ๋ฐฉ์‹ ๋ณ€๊ฒฝ (#53) * ๐Ÿ› Fix: ์•ฝํ’ˆ ํšจ๋Šฅ ํŒŒ์‹ฑ ๋ฌธ์ œ ์ˆ˜์ • (#55) * โœจFeature: ํ•œ์•ฝ ๊ตฌ๋ถ„ ๋ฐ ํ—ˆ๊ฐ€ ๋งŒ๋ฃŒ ์ผ์ž ์ถ”๊ฐ€ (#57) * ๐Ÿ› Fix: DrugDetailEntity ๊ฐ์ฒด์˜ ํ•„๋“œ isHerbal์˜ ๊ธฐ๋ณธ๊ฐ’์„ false๋กœ ์„ค์ •ํ•˜์˜€์œผ๋‚˜ @Builder.Default ์–ด๋…ธํ…Œ์ด์…˜์ด ์—†์–ด ๋นŒ๋”๋กœ ๊ฐ์ฒด ์ƒ์„ฑ์‹œ ๊ธฐ๋ณธ๊ฐ’์ด ์„ค์ •๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€์Šต๋‹ˆ๋‹ค. * ๐Ÿ› Fix: JPA Entity ์ˆ˜์ • (#59) * ๐Ÿ› Fix: #58 jpa entity null ์˜ค๋ฅ˜ (#60) * โœจ Feature: #52 ์•ฝํ’ˆ๋ช… ์ƒ‰์ธ๋กœ์ง ์ถ”๊ฐ€ ๋ฐ ํ‚ค์›Œ๋“œ ํ…Œ์ด๋ธ” ํ†ตํ•ฉ (#61) * โœจ Feat: ์ž„์‹œ ํŒŒ์ผ ์ •์˜ * โœจ Feat: ์ผ๋ฐ˜ ์˜์•ฝํ’ˆ๋งŒ ๊ฐ€์ ธ์˜ค๋„๋ก ๋ณ€๊ฒฝ * โœจ Feat: ์ฆ์ƒ ์‚ฌ์ „ RDB ์ €์žฅ๋กœ์ง ๊ตฌํ˜„ * โœจ Feat: ์ฆ์ƒ ElasticSearch ์ƒ‰์ธ ๋กœ์ง ๊ตฌํ˜„ * โœจ Feat: ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰ ํ…Œ์ด๋ธ” ํ†ตํ•ฉ ๋ฐ ์ƒ‰์ธ ๋กœ์ง ๊ตฌํ˜„ * โ™ป๏ธ Refactor: Document ๊ฐ์ฒด ํ•„๋“œ ์ด๋ฆ„ ๋ณ€๊ฒฝ * โœจ Feat: ์„ฑ๋ถ„๋ช…๋„ ํฌํ•จํ•ด์„œ ์ƒ‰์ธํ•˜๋„๋ก ๋ณ€๊ฒฝ * โœจ Feat: ์ฆ์ƒ ์‚ฌ์ „ ๋กœ๊ทธ ๋ฐ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ์ถ”๊ฐ€ * ๐Ÿ›Fix: ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ์˜ค๋ฅ˜ ์ˆ˜์ • (#62) * โœจ Feat: ์ž„์‹œ ํŒŒ์ผ ์ •์˜ * โœจ Feat: ์ผ๋ฐ˜ ์˜์•ฝํ’ˆ๋งŒ ๊ฐ€์ ธ์˜ค๋„๋ก ๋ณ€๊ฒฝ * โœจ Feat: ์ฆ์ƒ ์‚ฌ์ „ RDB ์ €์žฅ๋กœ์ง ๊ตฌํ˜„ * โœจ Feat: ์ฆ์ƒ ElasticSearch ์ƒ‰์ธ ๋กœ์ง ๊ตฌํ˜„ * โœจ Feat: ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰ ํ…Œ์ด๋ธ” ํ†ตํ•ฉ ๋ฐ ์ƒ‰์ธ ๋กœ์ง ๊ตฌํ˜„ * โ™ป๏ธ Refactor: Document ๊ฐ์ฒด ํ•„๋“œ ์ด๋ฆ„ ๋ณ€๊ฒฝ * โœจ Feat: ์„ฑ๋ถ„๋ช…๋„ ํฌํ•จํ•ด์„œ ์ƒ‰์ธํ•˜๋„๋ก ๋ณ€๊ฒฝ * โœจ Feat: ์ฆ์ƒ ์‚ฌ์ „ ๋กœ๊ทธ ๋ฐ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ์ถ”๊ฐ€ * ๐Ÿ› ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ์˜ค๋ฅ˜ ์ˆ˜์ • --------- Co-authored-by: pcb7893@naver.com <122460524+chanbyoung@users.noreply.github.com> * โœจ Feat: ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ์„ ํƒ ๊ธฐ๋Šฅ * โœจ Feature: ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ์„ ํƒ ๊ธฐ๋Šฅ * โ™ป๏ธ Refactor: ์Šค์œ„์น˜ ๋ชจ๋ธ์„ ๊ตฌ์กฐ์— ๋งž๊ฒŒ ์ˆ˜์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค. (RDB -> ES) * โ™ป๏ธ Refactor: ์ด์ œ RAWDATA๋ฅผ ๊บผ๋‚ด์–ด Embeddingํ•œ ํ›„ Embeddingํ…Œ์ด๋ธ”์— ๋„ฃ์„ ๋•Œ ์Šค์œ„์นญ๋กœ์ง์„ ์ด์šฉํ•˜์—ฌ ํ•œ ๋ชจ๋ธ์”ฉ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. * โ™ป๏ธ Refactor: ์ž„๋ฒ ๋”ฉ ์–ด๋ށํ„ฐ ๋™์ž‘ ์ˆ˜์ • (#65) * โ™ป๏ธ Refactor: ์ž„๋ฒ ๋”ฉ ์ €์žฅ/๋กœ๋”ฉ ํฌํŠธํ†ตํ•ฉ (#67) * โœจ Feature: #68 ์Šคํ”„๋ง ๋ฐฐ์น˜ ์ž‘์—… (#69) * โœจ Feature: ์Šคํ”„๋ง ๋ฐฐ์น˜ ์˜์กด์„ฑ ๋ฐ Job์œผ๋กœ ์ „ํ™˜ * ๏ฟฝโœจFeature: ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ ์‹คํŒจ ๋กœ์ง ์ถ”๊ฐ€ ๋ฐ ๋ถˆํ•„์š” ํŒŒ์ผ ์‚ญ์ œ * โ™ป๏ธ Refactor: ํŒจํ‚ค์ง€ ๊ตฌ์กฐ ์ˆ˜์ • ๋ฐ ๊ธฐํƒ€ ์˜ค๋ฅ˜ ์ˆ˜์ • * ๐Ÿ“ฆ Chore: PRํ…œํ”Œ๋ฆฟ ์œ„์น˜ ๋ณ€๊ฒฝ * ๐Ÿ› Fix: embed Step ์˜ค๋ฅ˜ ์ˆ˜์ • * โœจ Feature: #70 ์ฝ”๋“œ ํ†ตํ•ฉ (#71) * โœจ Feature: yakplus-batch์˜ ์ฝ”๋“œ ํ†ตํ•ฉ ์ดˆ์•ˆ * ๐Ÿ› Fix: ์ปดํŒŒ์ผ ์˜ค๋ฅ˜ ์ˆ˜์ • -1 * ๐Ÿ› Fix: ์ปดํŒŒ์ผ ์˜ค๋ฅ˜ ์ˆ˜์ • -2 * ๐Ÿ› Fix: Job ๋งค๋‹ˆ์ € TaskExecuter ์ด๋ฆ„ ๋ณ€๊ฒฝ์— ๋”ฐ๋ฅธ ์˜ค๋ฅ˜ ์ˆ˜์ • * โ™ป๏ธ Refactor: ํŒจํ‚ค์ง€ ๊ตฌ์กฐ ๋ณ€๊ฒฝ * ๐Ÿ“ฆ Chore: Swagger ์˜์กด์„ฑ ์ถ”๊ฐ€ ๋ฐ ์„ค์ • ์ถ”๊ฐ€ * โœจ Feat: ์Šค์›จ๊ฑฐ ์ ์šฉ * โœจ Feat: `DrugControllerDocs` ์„ค๋ช… ์ถ”๊ฐ€ * โ™ป๏ธ Refactor: ํ‚ค์›Œ๋“œ ์ƒ‰์ธ์‹œ ํ•œ์•ฝ ์ œ์™ธํ•˜๋„๋ก ์ฟผ๋ฆฌ ๋ณ€๊ฒฝ * ๐Ÿ› Fix: ์ž„๋ฒ ๋”ฉ ์˜ค๋ฅ˜ ์ˆ˜์ • ๋ฐ ๋ถˆํ•„์š”ํ•œ ๋กœ๊ทธ ์‚ญ์ œ --------- Co-authored-by: leelise <jaszzzzz@naver.com> Co-authored-by: pcb7893@naver.com <122460524+chanbyoung@users.noreply.github.com> * ๐Ÿ“ฆ Chore: ์ฆ์ƒ ์‚ฌ์ „ ๋นŒ๋“œ ์‹œ ์ถ”๊ฐ€ (#73) * Feature/#72 ์ฆ์ƒ ์‚ฌ์ „ ์ถ”๊ฐ€ (#74) * ๐Ÿ“ฆ Chore: ์ฆ์ƒ ์‚ฌ์ „ ๋นŒ๋“œ ์‹œ ์ถ”๊ฐ€ * ๐Ÿ“ฆ Chore: ์ฆ์ƒ ์‚ฌ์ „ ๋นŒ๋“œ์šฉ ์ˆ˜์ • * ๐Ÿ› Fix: ์ธ๋ฑ์Šค ์ฒญํฌ ์‚ฌ์ด์ฆˆ ์ˆ˜์ • (#76) * ๐Ÿ› Fix: ์ด๋ฏธ์ง€ url ESํ•„๋“œ ํƒ€์ž… ์ˆ˜์ • * ๐Ÿ› Fix: ์ธ๋ฑ์Šค ์ฒญํฌ ์‚ฌ์ด์ฆˆ ์ˆ˜์ • * ๐Ÿ› Fix: ์ด๋ฏธ์ง€ url ESํ•„๋“œ ํƒ€์ž… ์ˆ˜์ • * ๐Ÿ› Fix: ์ƒ‰์ธ์„ ์œ„ํ•œ ์–ด๋Œ‘ํ„ฐ ์ด๋ฆ„ ์˜๋ฌธ ์†Œ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ (#79) --------- Co-authored-by: HaechangLee <112938092+HaechangLee@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: JUNG ANSIK <jaszzzzz@naver.com> Co-authored-by: chanbyeong <122460524+chanbyoung@users.noreply.github.com>
1 parent e98a117 commit ebbc26a

169 files changed

Lines changed: 7885 additions & 1289 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
File renamed without changes.

โ€Ž.github/workflows/dev-deploy.ymlโ€Ž

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ jobs:
2424
- name: Make gradlew executable
2525
run: chmod +x ./gradlew
2626

27+
- name: Copy Dictionary
28+
run: |
29+
mkdir -p src/main/resources
30+
echo '${{ secrets.DICTIONARY }}' > src/main/resources/unique_symptoms.json
31+
2732
- name: Build Spring Boot (JAR)
2833
run: ./gradlew bootJar -Penv=test
2934

@@ -38,7 +43,7 @@ jobs:
3843
3944
- name: Wait for test server to be healthy
4045
run: |
41-
echo "๐Ÿ” Checking https://yakplus-test.techlog.dev/actuator/health ..."
46+
echo "๐Ÿ” Checking https://yakplus-batch.techlog.dev/actuator/health ..."
4247
curl --silent --fail \
4348
--retry 5 --retry-connrefused --retry-delay 5 \
44-
https://yakplus-test.techlog.dev/actuator/health
49+
https://yakplus-batch.techlog.dev/actuator/health

โ€Žbuild.gradleโ€Ž

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ configurations {
2121

2222
repositories {
2323
mavenCentral()
24+
maven { url 'https://repo.spring.io/milestone' }
25+
maven { url 'https://repo.spring.io/snapshot' }
2426
}
2527

2628
dependencies {
@@ -46,6 +48,16 @@ dependencies {
4648
implementation 'org.springframework.boot:spring-boot-starter-data-elasticsearch'
4749
implementation 'org.elasticsearch.client:elasticsearch-rest-high-level-client:7.17.10'
4850

51+
// OpenAi
52+
implementation 'org.springframework.ai:spring-ai-openai-spring-boot-starter:1.0.0-M5'
53+
54+
55+
// Spring-Batch
56+
implementation 'org.springframework.boot:spring-boot-starter-batch'
57+
58+
// Swagger
59+
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0'
60+
4961
// build.gradle
5062
if (project.hasProperty('env') && project.env == 'test') {
5163
dependencies {
Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
package com.likelion.backendplus4.yakplus;
22

3-
import com.likelion.backendplus4.yakplus.common.configuration.LogbackConfig;
43
import org.springframework.boot.SpringApplication;
54
import org.springframework.boot.autoconfigure.SpringBootApplication;
65

76
@SpringBootApplication
87
public class YakplusApplication {
9-
public static void main(String[] args) {
10-
LogbackConfig logbackConfig = new LogbackConfig();
11-
logbackConfig.configure();
12-
SpringApplication.run(YakplusApplication.class, args);
13-
}
8+
public static void main(String[] args) {
9+
SpringApplication.run(YakplusApplication.class, args);
10+
}
1411
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package com.likelion.backendplus4.yakplus.common.configuration;
2+
3+
import lombok.RequiredArgsConstructor;
4+
import org.springframework.batch.core.Job;
5+
import org.springframework.batch.core.Step;
6+
import org.springframework.batch.core.job.builder.JobBuilder;
7+
import org.springframework.batch.core.repository.JobRepository;
8+
import org.springframework.context.annotation.Bean;
9+
import org.springframework.context.annotation.Configuration;
10+
11+
/**
12+
* ๊ณตํ†ต ๋ฐฐ์น˜ Job ์„ค์ •์„ ์œ„ํ•œ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.
13+
* <p>
14+
* ์ด ํด๋ž˜์Šค๋Š” ์˜์•ฝํ’ˆ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐฐ์น˜ Job์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
15+
* <p>
16+
* @field jobName Job ์ด๋ฆ„
17+
* @since 2025-05-02
18+
*/
19+
@Configuration
20+
@RequiredArgsConstructor
21+
public class AllJobConfig {
22+
23+
private final String jobName = "drugScrapJob";
24+
25+
/**
26+
* ์˜์•ฝํ’ˆ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” Batch Job ์ •์˜
27+
*
28+
* @param jobRepository JobRepository ์ธ์Šคํ„ด์Šค
29+
* @param totalPageCheckStep ์ „์ฒด ํŽ˜์ด์ง€ ์ˆ˜ ํ™•์ธ Step
30+
* @param drugDetailStep ์ƒ์„ธ ์ •๋ณด ์ˆ˜์ง‘ Step
31+
* @return ๊ตฌ์„ฑ๋œ Job ์ธ์Šคํ„ด์Šค
32+
* @author ํ•จ์˜ˆ์ •
33+
* @since 2025-05-02
34+
*/
35+
@Bean
36+
public Job drugScrapJob(JobRepository jobRepository,
37+
Step totalPageCheckStep,
38+
Step drugDetailStep,
39+
Step imageTotalPageCheckStep,
40+
Step imageMasterStep,
41+
Step switchModelStepToOpenAi,
42+
Step openAiEmbedStep,
43+
Step switchModelStepToKmBert,
44+
Step kmBertEmbedStep,
45+
Step switchModelStepToKrSBert,
46+
Step krSBertEmbedStep) {
47+
return new JobBuilder(jobName, jobRepository)
48+
.start(totalPageCheckStep)
49+
.next(drugDetailStep)
50+
.next(imageTotalPageCheckStep)
51+
.next(imageMasterStep)
52+
.next(switchModelStepToOpenAi)
53+
.next(openAiEmbedStep)
54+
.next(switchModelStepToKmBert)
55+
.next(kmBertEmbedStep)
56+
.next(switchModelStepToKrSBert)
57+
.next(krSBertEmbedStep)
58+
.build();
59+
}
60+
}

src/main/java/com/likelion/backendplus4/yakplus/drug/infrastructure/config/ApiRestTemplateConfig.java renamed to src/main/java/com/likelion/backendplus4/yakplus/common/configuration/ApiRestTemplateConfig.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.likelion.backendplus4.yakplus.drug.infrastructure.config;
1+
package com.likelion.backendplus4.yakplus.common.configuration;
22

33
import org.springframework.context.annotation.Bean;
44
import org.springframework.context.annotation.Configuration;
@@ -7,11 +7,17 @@
77
/**
88
* Api ์š”์ฒญ์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•œ RestTemplate ๋นˆ ์ƒ์„ฑ
99
*
10-
* @since 2025-04-15
11-
* @author ํ•จ์˜ˆ์ •
1210
*/
1311
@Configuration
1412
public class ApiRestTemplateConfig {
13+
14+
/**
15+
* RestTemplate ๋นˆ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
16+
*
17+
* @return RestTemplate
18+
* @since 2025-04-15
19+
* @author ํ•จ์˜ˆ์ •
20+
*/
1521
@Bean
1622
public RestTemplate restTemplate() {
1723
return new RestTemplate();
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package com.likelion.backendplus4.yakplus.common.configuration;
2+
3+
import com.likelion.backendplus4.yakplus.common.logging.trace.decorator.MdcTaskDecorator;
4+
import lombok.RequiredArgsConstructor;
5+
import org.springframework.context.annotation.Bean;
6+
import org.springframework.context.annotation.Configuration;
7+
import org.springframework.core.task.TaskExecutor;
8+
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
9+
10+
/**
11+
* ์˜์•ฝํ’ˆ ์ƒ์„ธ์ •๋ณด ์ˆ˜์ง‘์„ ์œ„ํ•œ Spring Batch ์„ค์ • ํด๋ž˜์Šค
12+
*/
13+
@Configuration
14+
@RequiredArgsConstructor
15+
public class BatchExecutorConfig {
16+
private final MdcTaskDecorator mdcTaskDecorator;
17+
private final String normalExecutorName = "normalExecutor";
18+
private final String singleItemExecutorName = "singleItemExecutor";
19+
20+
/**
21+
* ์ผ๋ฐ˜์ ์ธ ์ž‘์—…์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ThreadPool ๊ธฐ๋ฐ˜ TaskExecutor ์„ค์ •
22+
*
23+
* @return TaskExecutor ์ธ์Šคํ„ด์Šค
24+
* @author ํ•จ์˜ˆ์ •
25+
* @since 2025-05-02
26+
*/
27+
@Bean(normalExecutorName)
28+
public TaskExecutor taskExecutor() {
29+
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
30+
executor.setCorePoolSize(5);
31+
executor.setMaxPoolSize(10);
32+
executor.setQueueCapacity(10);
33+
executor.setTaskDecorator(mdcTaskDecorator);
34+
executor.setThreadNamePrefix("normalExecutor-");
35+
executor.initialize();
36+
return executor;
37+
}
38+
39+
/**
40+
* ๋‹จ์ผ ์•„์ดํ…œ ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์—…์„ ์œ„ํ•œ
41+
* ThreadPool ๊ธฐ๋ฐ˜ TaskExecutor ์„ค์ •
42+
*
43+
* @return TaskExecutor ์ธ์Šคํ„ด์Šค
44+
* @author ํ•จ์˜ˆ์ •
45+
* @since 2025-05-02
46+
*/
47+
@Bean(singleItemExecutorName)
48+
public TaskExecutor taskExecutorMoreThreads() {
49+
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
50+
executor.setCorePoolSize(10);
51+
executor.setMaxPoolSize(10);
52+
executor.setQueueCapacity(20);
53+
executor.setTaskDecorator(mdcTaskDecorator);
54+
executor.setThreadNamePrefix("singleItemExecutor-");
55+
executor.initialize();
56+
return executor;
57+
}
58+
}

โ€Žsrc/main/java/com/likelion/backendplus4/yakplus/common/configuration/LogbackConfig.javaโ€Ž

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import jakarta.annotation.PostConstruct;
1212
import org.slf4j.Logger;
1313
import org.slf4j.LoggerFactory;
14+
import org.springframework.beans.factory.annotation.Value;
1415
import org.springframework.context.annotation.Configuration;
1516

1617
import java.nio.file.Files;
@@ -25,11 +26,16 @@
2526
*/
2627
@Configuration
2728
public class LogbackConfig {
28-
private static final String LOG_DIRECTORY = "logs";
29-
private static final String LOG_FILE_NAME = "like-lion.log";
30-
private static final String LOG_PATTERN = "%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n";
31-
private static final int MAX_HISTORY = 30;
32-
private static final String TOTAL_SIZE_CAP = "1GB";
29+
@Value("${log.rolling.directory}")
30+
private String LOG_DIRECTORY;
31+
@Value("${log.rolling.file-name}")
32+
private String LOG_FILE_NAME;
33+
@Value("${log.rolling.pattern}")
34+
private String LOG_PATTERN;
35+
@Value("${log.rolling.max-history}")
36+
private int MAX_HISTORY;
37+
@Value("${log.rolling.total-size-cap}")
38+
private String TOTAL_SIZE_CAP;
3339

3440
/**
3541
* ๋กœ๊น… ์„ค์ •์„ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฉ”์„œ๋“œ
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.likelion.backendplus4.yakplus.common.configuration;
2+
3+
import org.springframework.ai.openai.api.OpenAiApi;
4+
import org.springframework.beans.factory.annotation.Value;
5+
import org.springframework.context.annotation.Bean;
6+
import org.springframework.context.annotation.Configuration;
7+
8+
@Configuration
9+
public class OpenaiConfig {
10+
@Value("${spring.ai.openai.api-key}")
11+
private String apiKey;
12+
13+
@Bean
14+
public OpenAiApi openaiApi() {
15+
return new OpenAiApi(apiKey);
16+
}
17+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.likelion.backendplus4.yakplus.common.configuration;
2+
3+
import org.springframework.context.annotation.Bean;
4+
import org.springframework.context.annotation.Configuration;
5+
6+
7+
import io.swagger.v3.oas.models.OpenAPI;
8+
import io.swagger.v3.oas.models.info.Info;
9+
10+
@Configuration
11+
public class SwaggerConfig {
12+
13+
@Bean
14+
public OpenAPI openAPI() {
15+
return new OpenAPI()
16+
.info(new Info()
17+
.title("YakPlus API")
18+
.description("YakPlus ํ”„๋กœ์ ํŠธ์˜ API ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.")
19+
.version("1.0.0"));
20+
}
21+
}

0 commit comments

Comments
ย (0)