๐ฅ๏ธ ์ต์ข ํ๋ก์ ํธ/โ๏ธ TIL19 [ 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 ] ์ต์ข ํ๋ก์ ํธ_Day 29 ์ค๋ ์งํํ ๋ด์ฉ๋ค ๐ง ์ฐ๋ น๋ ๋ณ ์ธ๊ธฐ ํค์๋ ์์ 10๊ฐ ์กฐํ ์ฑ๋ฅ ๊ฐ์ ํ๊ธฐ์ฑ๋ฅ ๊ฐ์ ๊ณํ์ธ๋ฑ์ค๋ก ์ฑ๋ฅ์ ๊ฐ์ ํ๊ธฐ์๋ธ ์ฟผ๋ฆฌ๋ก ๋จ์ผ ์ฟผ๋ฆฌ๋ก ๋ณ๊ฒฝํ์ฌ ์ฑ๋ฅ์ ๊ฐ์ ํ๊ธฐ๋ ๊ฐ์ง ์ฑ๋ฅ ๊ฐ์ ๊ณํ์ด ์์๋ค.๊ทธ๋์ ํ์ฌ ์ฟผ๋ฆฌ์ ์ํฉ์ด ์ด๋ค์ง ๋จผ์ ํ์ ํด ๋ณด๊ธฐ๋ก ํ๋ค.ํ์ฌ ์ฟผ๋ฆฌ์ ์ํฉ์ฐ๋ น๋๋ฅผ 25์ธ~40์ธ๋ก ๊ณ ์ ํ๋ค. (๊ฐ์ฅ ๋ง์ ์ทจ์ ์ฐ๋ น์ธต์ด๋ผ๊ณ ์๊ฐํ๊ณ ๊ณ ์ ํ๋ค.)๊ทธ๋ค์ Postman์ผ๋ก ๋ฐฐํฌ ์ค์ธ ์๋ฒ์ ๋ก์ปฌ์์ ์ง์ ์กฐํ๋ฅผ ์งํํด ๋ณด์๋ค.[ Local ]ํ๋ฒ ์กฐํํ๋๋ฐ 31.49s๊ฐ ๊ฑธ๋ ธ๋ค… ๋งค์ฐ ๋งค์ฐ.. ์์ฒญ๋๊ฒ ๋๋ฆฐ ์๋์๋ค..[ ๋ฐฐํฌ ์ค์ธ ์๋ฒ ]์ด๋ด ์๊ฐ… ์ฌ์ง์ด ์๋ฒ์์ ์กฐํํ์ ๋๋ ์๊ฐ์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ ค์ 504 Gateway Time-out์ด ๋ฐ์ํ๋ค..ํน์๋ ํ๋ ๋ง์์ ๋ถํ ํ ์คํธ๋ ํจ๊ป .. 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. ์ด์ 1 2 3 4 ๋ค์