๋ด์ผ๋ฐฐ์์บ ํ91 [ TIL ] ์ต์ข ํ๋ก์ ํธ_Day 33 ์ค๋ ์งํํ ๋ด์ฉ๋ค ๐ง ํํฐ๋๊ป ์๋ฃ ํ ์ด๋ป๊ฒ ์ค๋นํ๋ฉด ์ข์์ง ๋ฌผ์ด๋ณด๊ธฐ์๋ฃ ํ์ ํผ์ ๊ณต๋ถ๋ฅผ ์งํํ ์๊ฐ์ ํ๋ ์์ฒญ ๋ง๋งํ๋ค๊ณ ์๊ฐํ๋ค. ๋ญ๋ฅผ ์ค๋นํด์ผ ํ๊ณ , ์ด๋ป๊ฒ ์๊ฐ์ ์ ๋ณด๋ด์ผ ํ ์ง ๊ณ ๋ฏผ์ด ๋ง์ด ๋์๋คํผ์ ์๊ฐํ๋ ๊ฒ๋ณด๋ค๋ ํํฐ๋๊ป ์ฐพ์๊ฐ์ ๋ฌผ์ด๋ณด๊ณ ๋ต๋ณ์ ์ป๋ ๊ฒ์ด ๋ ๋ซ๋ค๊ณ ์๊ฐํ๋ค.๊ทธ๋ ๊ฒ ํํฐ๋๊ป ์ป์ ๊ฟํ(?)๋ค์ ์ฌ๊ธฐ์ ์ ๋ฆฌํด๋ ์๊ฐ์ด๋ค!์ฐ์ ํํฐ๋๊ป์ ๋ฉด์ ์ ์์ฃผ๋ก ์ค๋นํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ค์ํ๋ค๊ณ ํ์ จ๋ค!์ง๊ธ์ ํ์ ๊ฒฝํ๋ ์๊ณ , ์์ง ๋ชจ๋ฅด๋ ๊ฒ๋ ๋ง๊ธฐ ๋๋ฌธ์ ์ด๋ ฅ์๋ฅผ ๋ง์ด ๋ด๊ณ ๋ฉด์ ์ ๋ง์ด ๋ณด๋ฌ๋ค๋๋ ๊ฒ์ด ์ค์ํ๋ค.๋ฉด์ ์ ๊ณ์ ๊ฒฝํํ๋ค ๋ณด๋ฉด ๋ง์ด ๋ฐฐ์ธ ์ ์๋ค.๋ฉด์ ์์ ์ด๋ค ์ง๋ฌธ๋ค์ด ๋์๊ฒ ์ค๋์ง, ๋ด๊ฐ ๋ชฐ๋๋ ๋ถ๋ถ์ ์ด๋์ธ์ง๋ฅผ ์ฒดํฌํ ์ ์๊ณ ์ค๋นํ ์ ์๋ค!๊ทธ๋ ๋ค๋ฉด ๊ธฐ๋ณธ์ ์ธ ๋ฉด.. 2025. 3. 15. [ TIL ] ์ต์ข ํ๋ก์ ํธ_Day 30 ์ค๋ ์งํํ ๋ด์ฉ๋ค ๐ง ํ ์คํธ ์ฝ๋ ์์ฑํ๊ธฐsearchHistoryTaskHendler๋๋ณด๊ธฐpackage com.project.cheerha.domain.searchhistory.scheduler;import com.project.cheerha.domain.searchhistory.entity.SearchHistory;import com.project.cheerha.domain.searchhistory.repository.SearchHistoryRepository;import com.project.cheerha.domain.user.entity.User;import com.project.cheerha.domain.user.service.UserFindByService;import org.junit.ju.. 2025. 3. 11. [ TIL ] ์ต์ข ํ๋ก์ ํธ_Day26 ์ค๋ ์งํํ ๋ด์ฉ๋ค ๐ง ํ๊ธ ํํ์ ๋ถ์์ ํ์ฉํ ์กฐํ ๊ฐ์ + ์๋ ์์ฑ API ๋ถ๋ฆฌํ๊ธฐNori ๋ถ์๊ธฐ & Nori Tokenizer๊ฐ๋ ๊ฐ๋ Nori ๋ถ์๊ธฐNori Tokenizer์ค๋ช Elasticsearch์์ ์ ๊ณตํ๋ ํ๊ธ ์ ์ฉ ํํ์ ๋ถ์๊ธฐํ๊ธ์ ํํ์ ๋จ์๋ก ๋ถ๋ฆฌํ๋ Tokenizer์์ฝํ๊ธ์ ๋ถ์ํ๋ ์์ฑ๋ ๋ถ์๊ธฐ (Analyzer)ํํ์ ๋จ์๋ก ๋จ์ด๋ฅผ ๋๋๋ Tokenizer์ค์ ๋ฐฉ์analyzer: "nori"tokenizer: "nori_tokenizer"Nori ๋ถ์๊ธฐํ๊ธ ํ ์คํธ๋ฅผ ํํ์ ๋จ์๋ก ๋ถ๋ฆฌํ๋ค."๋ฐฑ์๋ ๊ฐ๋ฐ์" → ["๋ฐฑ์๋", "๊ฐ๋ฐ", "์"]์ด๋ฏธ, ์กฐ์ฌ๋ฅผ ์ ๊ฑฐํ ์ ์๋ค."๊ฐ๋ฐ์๊ฐ" → ["๊ฐ๋ฐ", "์"]์ฌ์ฉ์ ์ฌ์ ์ถ๊ฐ๊ฐ ๊ฐ๋ฅํ๋ค.ex) "AI๊ฐ๋ฐ์" → "AI", .. 2025. 3. 8. [ TIL ] ์ต์ข ํ๋ก์ ํธ_Day 25 ์ค๋ ์งํํ ๋ด์ฉ๋ค ๐ง Elasticsearch ๋ถ๋ถ ๊ฒ์ + ์๋ ์์ฑ ๊ณต๋ถํ๊ธฐ & ๊ตฌํํ๊ธฐNori ๋ถ์๊ธฐ๋ ํ๊ธ์ ํํ์ ๋จ์๋ก ๋ถ์ํ๋ค.n-gram ๋ถ์๊ธฐ๋ฅผ ํตํด ํ ์คํธ๋ฅผ ์ผ์ ํ ๊ธธ์ด์ ๋ถ๋ถ ๋ฌธ์์ด๋ก ๋๋์ด ์ธ๋ฑ์ฑํ ์ ์๋ค.min_gram - ์ต์max_gram - ์ต๋→ ๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ ํ๋ก์ ํธ์์๋ tokenizer๋ฅผ ํ์ฉํด์ ๋ถ๋ถ ๊ฒ์ + ์๋ ์์ฑ ๊ธฐ๋ฅ์ ์จ๋ณผ ์ ์์ง ์์๊น? ๊ณ ๋ฏผ ์ฌํญQ. Nori-๋ถ์๊ธฐ๋ ํ๊ธ ํํ์๋ก ๋ถ์ํ๊ธฐ ๋๋ฌธ์ ๋ง์ฝ ํํ์๊ฐ ์๋ ๋จ์ด๋ฅผ ์ ๋ ฅํ๊ฒ ๋๋ฉด ์ํ๋ ๊ฒฐ๊ด๊ฐ์ ์ป์ง ๋ชปํ๋ ๊ฑธ๊น?A.Nori ๋ถ์๊ธฐ๋ ํํ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ถ๋ฆฌํ๊ธฐ ๋๋ฌธ์, ํํ์๊ฐ ์๋ ๋จ์ด๋ ์ํ๋ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์์ ์ ์๋ค!์ฌ์ฉ์ ์ฌ์ ๋ฑ๋ก์ด๋ ngram ๋ถ์๊ธฐ๋ฅผ ํ์ฉํ์ฌ ํด๊ฒฐ ๊ฐ๋ฅํ๋ค... 2025. 3. 6. [ TIL ] ์ต์ข ํ๋ก์ ํธ_Day 24 ์ค๋ ์งํํ ๋ด์ฉ๋ค ๐ง ์ฝ๋ ๋ฆฌํฉํ ๋งํ๊ธฐRedis์ MySQL ๋๊ธฐํ ๋ก์ง ๋ฆฌํฉํ ๋ง๋๋ณด๊ธฐ์์ ํ๊ธฐ ์ ๋ก์ง@Component@RequiredArgsConstructorpublic class HistoryScheduler { private final UserFindByService userFindByService; private final HistoryRepository historyRepository; private final RedisTemplate redisTemplate; /** * Redis์ ์ ์ฅ๋ ๊ฒ์๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก DB์ ์ ์ฅํ๋ ์ค์ผ์ค๋ฌ ๋ฉ์๋์ ๋๋ค. * * 30๋ถ๋ง๋ค ์คํ์ด ๋๋ฉฐ, ๊ฐ ์ฌ์ฉ์์ ๊ฒ์์ด๋ฅผ Redis์์ ๊ฐ์ ธ์์ DB์ ์ ์ฅํฉ๋๋ค. .. 2025. 3. 5. [ TIL ] ์ต์ข ํ๋ก์ ํธ_Day 19 ์ค๋ ์งํํ ๋ด์ฉ๋ค ๐ง ๊ฐ์ธ ๋ฐํ ์์ ๋ฌธ์ ์ค๋นํ๊ธฐ1. ์์ฌ๊ฒฐ์ _์ ์ฒด ์ฑ์ฉ ๊ณต๊ณ ์กฐํ API (ํํฐ๋ง, ๊ฒ์์ด ํฌํจ)์ Elasticsearch ์ ์ฉ[ ๋ด๊ฐ ๊ตฌํํ ๊ธฐ๋ฅ ]์ฌ์ฉ์๊ฐ ์กฐ๊ฑด ์ ํ ๋ฐ ๊ฒ์์ด๋ฅผ ํ์ฉํ์ฌ ์ํ๋ ์ฑ์ฉ ๊ณต๊ณ ๋ฅผ ์กฐํํ๋ API๋ฅผ ๊ตฌํํ์ต๋๋ค.Elasticsearch๋ฅผ ํ์ฉํ์ฌ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์กฐํํ ์ ์๋๋ก ์ฑ๋ฅ์ ๊ฐ์ ํ์ต๋๋ค.[ ์ฃผ์ ๋ก์ง ]์ฃผ์ ๋ก์ง์ ์ด ์ธ ๋ถ๋ถ์ผ๋ก ๋๋ ์ง๋๋ค.์ฒซ์งธ, ์ง์ญ, ๊ฒฝ๋ ฅ ๋ฑ๊ณผ ๊ฐ์ ์กฐ๊ฑด ๋ฐ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฒ์์ด๊ฐ ์๋ค๋ฉด ์ ์ฒด ์ฑ์ฉ ๊ณต๊ณ ๋ฅผ ์กฐํํฉ๋๋ค.๋์งธ, ์ง์ญ, ํ๋ ฅ, ๊ฒฝ๋ ฅ, ์ฑ์ฉ ๊ธฐ๊ฐ ๋ฑ ์ฌ์ฉ์๊ฐ ์ํ๋ ์กฐ๊ฑด์ ์ ํํ์ฌ ์ฑ์ฉ ๊ณต๊ณ ๋ฅผ ์กฐํํ ์ ์์ต๋๋ค.์ ์งธ, ์ฌ์ฉ์๊ฐ ๊ฒ์์ด๋ฅผ ์ ๋ ฅํ๋ฉด ํด๋น ๊ฒ์์ด๊ฐ ํฌํจ๋ ์ฑ์ฉ ๊ณต๊ณ ์ ๋ชฉ์ ๊ธฐ์ค์ผ๋ก ๊ด๋ จ.. 2025. 3. 1. ์ด์ 1 2 3 4 ยทยทยท 16 ๋ค์