๐ฅ๏ธ ์ต์ข ํ๋ก์ ํธ28 [ 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. [ TIL ] ์ต์ข ํ๋ก์ ํธ_Day 18 ์ค๋ ์งํํ ๋ด์ฉ๋ค ๐ง ์ค๊ฐ ๋ฐํ ์๋ฃ ๋ง๋ค๊ธฐ์ด๋ฒ ์ค๊ฐ ๋ฐํ๋ฅผ ๋ด๊ฐ ํ๊ฒ ๋์๋ค! ์ต์ข ๋ฐํ๋ ํ ์์ ์ด ์์ด์....PPT์ ๋ค์ด๊ฐ์ผ ํ ๋ด์ฉ ์ ๋ฆฌํ๊ณ ๋ด์ฉ๋ค ์ดํดํ๋ฉด์ ๋ฐํ ๋๋ณธ ์์ฑํ๊ณ ํ๋ค ๋ณด๋ ํ๋ฃจ๊ฐ ์ง๋๊ฐ ๊ฒ ๊ฐ๋ค..๊ฐ์ธ ๊ตฌํ์ฌํญ ๋ด์ฉ ์ ๋ฆฌํ๊ธฐ๊ธฐ์ ๋ฉด์ ์ค๋น๋ฅผ ์ํด ๊ฐ์ธ์ด ์งํํ ๊ตฌํ์ฌํญ๋ค์ ์ ๋ฆฌํ๋ค. ๊ธฐ์ ์ ์์ฌ๊ฒฐ์ ํ๋ฆ์ ๋์ถฉ ์ ๋ฆฌํด๋จ๊ณ ๋ด์ผ ์์นจ๋ถํฐ ํด์ ํ ํ๋ฆฟ ์์ฑ ํ ์์ ์ดฌ์ํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค! ๋ด์ผ ๊ณํ โฐ๊ฐ์ธ ์์ ์ค๋นํ๊ธฐ๋ฐํ ์๋ฃ ๋ง๋ค๊ธฐ+ ์ถ๊ฐ ๊ณํ์ด ์๊ธธ ์๋ ์์ต๋๋ค ~_~ 2025. 2. 27. [ TIL ] ์ต์ข ํ๋ก์ ํธ_Day 17 ์ค๋ ์งํํ ๋ด์ฉ๋ค ๐ง ์ง๊ธ๊น์ง ์งํํ ๋ด์ฉ๋ค ์ ๋ฆฌV1 (MVP ๊ตฌํ)1. ์ ์ฒด ์ฑ์ฉ ๊ณต๊ณ ์กฐํ API๊ธฐ๋ฅ์ฌ์ฉ์๊ฐ ์ ์ฒด ์ฑ์ฉ ๊ณต๊ณ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ์ ์๊ณ ํํฐ๋ง ๋ฐ ๊ฒ์์ด๋ฅผ ํตํด ํจ์จ์ ์ผ๋ก ์กฐํํ ์ ์๋๋ก ๊ตฌํํ์ต๋๋ค.์ธ๋ถ ์ฌํญ๊ธฐ๋ฅ์ค๋ช ์ ์ฒด ๋ฐ์ดํฐ ์กฐํ๋ณ๋์ ๊ฒ์์ด๋ ํํฐ ์กฐ๊ฑด ์์ด ๋ชจ๋ ์ฑ์ฉ ๊ณต๊ณ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ์ ์์ต๋๋ค.ํํฐ๋ง์ ํตํ ๋ฐ์ดํฐ ์กฐํ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ์กฐ๊ฑด์ ๋ฐ๋ผ ์กฐ๊ฑด์ ์ค์ ํ์ฌ ์ฑ์ฉ ๊ณต๊ณ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ์ ์์ต๋๋ค.- ํํฐ ์กฐ๊ฑด: ์ง์ญ, ๊ณ ์ฉ ํํ, ํ๋ ฅ, ์ต์/์ต๋ ๊ฒฝ๋ ฅ, ์ฑ์ฉ ์์/๋ง๊ฐ ๊ธฐ๊ฐ, ์๊ฒฉ ์๊ฑด๊ฒ์์ด๋ฅผ ํตํ ๋ฐ์ดํฐ ์กฐํํน์ ๊ฒ์์ด๋ฅผ ์ ๋ ฅํ๋ฉด ์ฑ์ฉ ๊ณต๊ณ ์ ๋ชฉ์ ๊ธฐ์ค์ผ๋ก ๊ฒ์ํ์ฌ ๊ด๋ จ ์ฑ์ฉ ๊ณต๊ณ ๋ฅผ ์กฐํํ ์ ์์ต๋๋ค.๋ฐ์ดํฐ ์ ๋ ฌ์ฑ์ฉ ๊ณต๊ณ ๋ ์ต์ ๋ฑ๋ก์(createdAt D.. 2025. 2. 27. [ TIL ] ์ต์ข ํ๋ก์ ํธ_Day 16 ์ค๋ ์งํํ ๋ด์ฉ๋ค ๐ง Elasticsearch ๋์ ์ฟผ๋ฆฌ ์์ฑํ๊ธฐํํฐ๋ง์ด ํ์ํ ์กฐ๊ฑด๋ค์ ๋์ ์ฟผ๋ฆฌ๋ก ์์ฑํ๋ค. ํํฐ๋ง์ ๋ค์ด๊ฐ๋ ์กฐ๊ฑด๋ค์ด ์๊ฐ๋ณด๋ค ๋ง์์ Elasticsearch์ ๋์ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋๋ฐ ์๊ฐ๋ณด๋ค ์ด๋ ค์ ๋ค. Bool ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด์ must์ filter ์ค์์ ์ ํํด์ผ ํ๊ณ , ์ ์ฅํ๋ ํ๋๋ keyword์ text ์ค์์ ์ ํํด์ผ ํ๋ค. ๊ฐ๊ฐ์ ํน์ง์ ์ฐพ์๋ณด๋ฉด์ ๋ญ๊ฐ ๋ ์ ํฉํ์ง ์๊ฐํด๋ณด๊ณ ์ต์ข ์ ์ผ๋ก ์ ํํ๊ฒ ๋์๋ค.ํ์ง๋ง filter ์์์๋ term ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ง ์๋๋ฉด ๋ค๋ฅธ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ง ์ ํํด์ผ ํ๊ณ , ๋ง์ ์ ํ์ฌํญ์ด ์กด์ฌํ๋ค. ํํฐ๋์ ํํธ๋ฅผ ํตํด ๋์ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๊ณ ์ต์ข ์ ์ผ๋ก ์ ๋์ํ๋ ๊ฒ๋ ํ์ธํ๋ค.API์ ์ฐ๋ํ ํ ์ฑ๋ฅ ํ์ธํ๊ธฐAPI๋ฅผ ์ฐ๋ํ ํ Po.. 2025. 2. 25. [ ํธ๋ฌ๋ธ ์ํ ] Elasticsearch ์ธ๋ฑ์ค ์ฝ์ ๋ฐ ์กฐํ ์คํจ ๋ฌธ์ ํด๊ฒฐ๊ธฐ (์ธ๋ฑ์ค, ๋งคํ, ID ์ค๋ณต) Elasticsearch ๋ฐ์ดํฐ ์ฝ์ ๋ฐ ์กฐํ ๋ฌธ์ ํด๊ฒฐ ๊ณผ์ Elasticsearch์ CSV ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๊ณ ์กฐํํ๋ ๊ณผ์ ์์ ๋ฐ์ดํฐ๊ฐ ์กฐํ๋์ง ์์ ์์ธ์ ๋ถ์ํ๊ณ ํด๊ฒฐํ๋ ๊ณผ์ ์ ์ ๋ฆฌํด ๋ดค๋ค.๋ฐ์ํ ๋ฌธ์ ์ ์์ธ ๋ถ์1. ์ธ๋ฑ์ค ๋ค์ด๋ฐ ๋ถ์ผ์น ๋ฌธ์ ๋ฌธ์ ์ํฉElasticsearch์์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ ๋๋ "job-opening"์ผ๋ก ์ค์ ํ์ง๋ง, ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋๋ "job_opening"์ผ๋ก ์กฐํํ๋ ์ค์๋ฅผ ๋ฒํ๋ค.Kibana์์ ์กฐํ ์ ๋ฐ์ดํฐ๊ฐ ๋ํ๋์ง ์์๋ค.ํด๊ฒฐ ๋ฐฉ๋ฒ ์ธ๋ฑ์ค๋ช ์ ์์(static final)๋ก ์ ์ํ์ฌ, ์์ฑ๊ณผ ์กฐํ ์ ์ผ๊ด์ฑ์ ์ ์งํ๋ค.public static final String INDEX_NAME = "job-opening"; 2. ๋์ ๋งคํ(@Postconstr.. 2025. 2. 25. ์ด์ 1 2 3 4 5 ๋ค์