yh
@yh
Students
584,614
Reviews
40,754
Course Rating
5.0
Posts
Q&A
๊ณตํต ์ฝ๋์์ Redis Pub/Sub์ ์ต๊ทผ ์ค๋ฌด์์ ์ฐ์ด์ง ์๋์?
์๋ ํ์ธ์. kekim๋AI ์ธํด์ด ์ ๋ต๋ณํด์ฃผ์๋๋ฐ์. ์กฐ๊ธ ๋ ๋ณด์ถฉํ์๋ฉด์ด ๋ถ๋ถ์ ์ค๋ฌด์์ ๊ฒช๊ณ ์๋ ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.๋น์ฆ๋์ค ๋ก์ง์ ์ ํํ ๊ฐฑ์ ์ด ๋๋ฌด ์ค์ํ๋ค๋ฉด Redis Pub/Sub์ ๊ณ ๋ฏผํ์ ๊ฒ ์ฒ๋ผ ๋ฆฌ์คํฌ๊ฐ ์์ต๋๋ค.๋ค๋ง ํ์ฌ ํ์์ Redis๋ฅผ ์ ์ฌ์ฉํ๊ณ ์๊ณ , ๋น์ฆ๋์ค ๋ก์ง์ ๋ง์ฝ์ ๊ฐฑ์ ์ ์ผ๋ถ ์คํจํด๋ ํ์ฉ ๊ฐ๋ฅํ ๋ฒ์์ ๋ฆฌ์คํฌ๋ผ๋ฉด Redis Pub/Sub์ ์ฌ์ฉํด๋ ๊ด์ฐฎ์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 87
Q&A
์บ์๋ฌดํจํ์ ๊ทธ๋ฅ no-store๋ง ๋ฃ์ด๋์ง ์๋์?
์๋ ํ์ธ์. ์บ๋ด๊ธฐ๋๋ค์์ ์ฐธ๊ณ ํด์ฃผ์ธ์ ๐https://inf.run/ucXRb๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 40
Q&A
์ ๋ค๋ฆญ ํ์ ๋งค๊ฐ๋ณ์ ์ ํ๊ณผ ๊ด๋ จํ ๋ฌธ์์ ๋๋ค.
์๋ ํ์ธ์. ์๊ทํ๋AnimalHospitalV3์ฒ๋ผ ์์ ํ์ ์ ํ์ ์ธ์๋ก ์ง์ ์ง์ ํ๋ฉด, Dog๊ณผ Cat์ด ์์ฌ ๋ค์ด์๋ ์ปดํ์ผ๋ฌ๊ฐ ์ก์์ฃผ์ง ๋ชปํ๋ ๊ฒ์ด ๋ง์ต๋๋ค.๊ฒฐ๋ก ๋ถํฐ ๋ง์๋๋ฆฌ๋ฉด, ์ด๊ฒ์ ์ ๋ค๋ฆญ์ ํ๊ณ๊ฐ ์๋๋ผ ์ฌ์ฉํ๋ ์ชฝ์ ์ฑ ์์ ๋๋ค.์ ๋ค๋ฆญ์ ์ค๊ณ ์๋๋ฅผ ๋จผ์ ์๊ฐํด๋ณด๋ฉด์ ๋ค๋ฆญ์ "์ฌ์ฉํ๋ ์์ ์ ํ์ ์ ๊ตฌ์ฒด์ ์ผ๋ก ๊ฒฐ์ ํ๋ผ"๋ ๊ฒ์ด ํต์ฌ์ ๋๋ค. ์ฆ, ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅธ ์ฌ์ฉ๋ฒ์ ๋๋ค.AnimalHospitalV3 dogHospital = new AnimalHospitalV3(); AnimalHospitalV3 catHospital = new AnimalHospitalV3();AnimalHospitalV3๋ก ์ ์ธํ๋ ๊ฒ์, ๊ฐ๋ฐ์๊ฐ ์ค์ค๋ก "๋๋ ๋ชจ๋ Animal์ ๋ค ๋ฐ๊ฒ ๋ค"๊ณ ์ ์ธํ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ์ ๋ค๋ฆญ์ ์ฐ๋ฉด์ ์ผ๋ถ๋ฌ ๋คํ์ฑ ๋ฐฉ์์ผ๋ก ๋์๊ฐ ๊ฒ์ด๊ธฐ ๋๋ฌธ์, ๊ทธ์ ๋ฐ๋ฅด๋ ์ฑ ์(์บ์คํ ๋ฑ)๋ ๊ฐ๋ฐ์๊ฐ ์ง๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ค๋ฌด์์ ์ค์๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ด ์์๊น์?1. ์ฝ๋ ๋ฆฌ๋ทฐ์ ์ปจ๋ฒค์ ์ผ๋ก ๋ฐฉ์ง์ค๋ฌด์์ ๊ฐ์ฅ ํ์ค์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค. "ํ์ ์ธ์๋ก ์์ ํ์ ์ ์ง์ ์ง์ ํ์ง ๋ง ๊ฒ"์ด๋ผ๋ ํ ์ปจ๋ฒค์ ์ ์ ํ๋ ๊ฒ์ ๋๋ค. ์ฌ์ค ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋ก ์ง์ ํ ์ด์ ๊ฐ ์์ต๋๋ค. ๊ตฌ์ฒด์ ์ธ ํ์ ์ผ๋ก ์ง์ ํ๋ ๊ฒ์ด ์ ๋ค๋ฆญ์ ์ฌ๋ฐ๋ฅธ ํ์ฉ๋ฒ์ด๋๊น์.2. ์์ผ๋์นด๋๋ฅผ ํ์ฉํ ์ฝ๊ธฐ ์ ์ฉ ์ ํ๋ง์ฝ ์ฌ๋ฌ Animal ํ์ ์ ํจ๊ป ๋ค๋ค์ผ ํ๋ ์ํฉ์ด๋ผ๋ฉด, ์์ผ๋์นด๋๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค. ์ด ๋ถ๋ถ์ ๋ค์์ ํ์ตํ๊ฒ ๋ฉ๋๋ค.// ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด์ ์ฝ๊ธฐ๋ง ํ๋ ๊ฒฝ์ฐ void printAnimal(AnimalHospitalV3 hospital) { // hospital.set(new Dog(...)); // ์ปดํ์ผ ์ค๋ฅ! ๋ฃ์ ์ ์์ Animal animal = hospital.get(); // ๊บผ๋ด๋ ๊ฒ๋ง ๊ฐ๋ฅ }์ด๋ ๊ฒ ํ๋ฉด ๊บผ๋ด์ ์ฝ๋ ๊ฒ์ ๊ฐ๋ฅํ์ง๋ง, ์๋ชป๋ ํ์ ์ ๋ฃ๋ ์ค์๋ ์ปดํ์ผ ์์ ์ ๋ง์ ์ ์์ต๋๋ค.3. ๊ทผ๋ณธ์ ์ธ ๊ด์ ์๋ฐ์ ํ์ ์์คํ ์์ AnimalHospitalV3์ด๋ผ๋ ์ ์ธ ์์ฒด๋ฅผ ๊ธ์งํ๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค. ์ง๋ฌธ์์ ์ธ๊ธํ์ ๊ฒ์ฒ๋ผ Animal์ ์ถ์ ํด๋์ค๋ ์ธํฐํ์ด์ค๋ก ๋ง๋ค์ด๋, ํ์ ์ธ์๋ก ์ง์ ํ๋ ๊ฒ๊น์ง ๋ง์ง๋ ๋ชปํฉ๋๋ค.ํ์ง๋ง ์ด๊ฒ์ Object obj = new Dog()์ ๋ณธ์ง์ ์ผ๋ก ๊ฐ์ ๋ฌธ์ ์ ๋๋ค. ์๋ฐ์์ ์์ ํ์ ์ผ๋ก ์ฐธ์กฐํ๋ ๊ฒ ์์ฒด๋ฅผ ๊ธ์งํ ์๋ ์๊ณ , ๊ทธ๋ ๊ฒ ํ๋ ์๊ฐ ๋ฐ์ํ๋ ์ฑ ์์ ๊ฐ๋ฐ์์๊ฒ ์๋ ๊ฒ์ ๋๋ค.์ ๋ฆฌํ๋ฉด์ ๋ค๋ฆญ์ ๊ฐ์น๋ , ์ฒ๋ผ ๊ตฌ์ฒด์ ์ธ ํ์ ์ ์ง์ ํ์ ๋ ๋น์ ๋ฐํฉ๋๋ค. ๋ก ์ง์ ํ๋ ๊ฒ์ ์ ๋ค๋ฆญ์ ์ฅ์ ์ ์ค์ค๋ก ํฌ๊ธฐํ๋ ๊ฒ์ด๋ฏ๋ก, "๊ตฌ์ฒด์ ์ธ ํ์ ์ ์ง์ ํด์ ์ฌ์ฉํ๋ ๊ฒ์ด ์์น"์ด๋ผ๊ณ ์ดํดํ์๋ฉด ๋ฉ๋๋ค. ์ค๋ฌด์์๋ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํตํด ์ด๋ฐ ๋ถ๋ถ์ ์ก์๋ด๊ณ , ํ์ํ ๊ฒฝ์ฐ ์์ผ๋์นด๋๋ฅผ ํ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ํ์ค์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค. ํ์ง๋ง ์ฝ๊ฐ์ ๋์๋ ์์ต๋๋ค. 1. ๊ตฌ์ฒด์ ์ธ ํ์ ์ธ์ ์ฌ์ฉ ์์น (๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ด๊ณ ๊ถ์ฅ๋๋ ๋ฐฉ๋ฒ)์ ๋ค๋ฆญ์ ๋ณธ๋ ๋์ ๋ชฉ์ ์ ์ฌ์ฉํ ํ์ ์ ๋ช ํํ ์ง์ ํ์ฌ ์ปดํ์ผ ์์ ์ ์ค๋ฅ๋ฅผ ์ก๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ AnimalHospitalV3 ๋์ , AnimalHospitalV3, AnimalHospitalV3๊ณผ ๊ฐ์ด ๋ช ํํ ํ์ ํ์ ์ ์ง์ ํด์ ์์ฑํ๋ ๊ฒ์ ๊ธฐ๋ณธ ์์น์ผ๋ก ์ผ์์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ๊ตฌ์ฒด ํ์ ์ ๋ช ์ํ๋ฉด, ๊ฐ ๋ณ์์ ๊ณ ์์ด๋ฅผ ๋ฃ์ผ๋ ค๊ณ ํ ๋ ์ปดํ์ผ๋ฌ๊ฐ ์๋ฒฝํ๊ฒ ์ค๋ฅ๋ฅผ ์ก์๋ ๋๋ค.2. ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋๋ฅผ ํ์ฉํ ๊ฐ์ฒด ์์ฑ ์ ํํด๋ผ์ด์ธํธ ๊ฐ๋ฐ์๊ฐ ์ค์๋ก ์ ๋ฃ์ด์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ ์์ ๋ง๊ณ ์ถ๋ค๋ฉด, ์์ฑ์๋ฅผ ๋ง๊ณ ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ ๋ฐฉ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.public class AnimalHospitalV3 { // 1. ์ธ๋ถ์์ ์ง์ ์์ฑ์ ๋ง์ private AnimalHospitalV3() {} // 2. ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋๋ก ํน์ ๊ตฌ์ฒด ํ์ ๋ง ์์ฑํ๋๋ก ์ ๋ public static AnimalHospitalV3 createDogHospital() { return new AnimalHospitalV3(); } public static AnimalHospitalV3 createCatHospital() { return new AnimalHospitalV3(); } // ... } ์ด๋ ๊ฒ ์ค๊ณํ๋ฉด ๊ฐ๋ฐ์๊ฐ ๋ฌด์ฌ์ฝ new AnimalHospitalV3()์ ํธ์ถํ๋ ๊ฒ์ ๊ตฌ์กฐ์ ์ผ๋ก ์ฐจ๋จํ๊ณ , ํ์ฉ๋ ๊ตฌ์ฒด ํ์ ์ ๋ณ์๋ง ์์ฑํ๋๋ก ๊ฐ์ ํ ์ ์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 3
- 51
Q&A
AspectV1 ์์ ๋ฅผ @Configuration ์๋ ๋ฑ๋ก์ผ๋ก๋ ๊ฐ๋ฅํ๊ฐ์?
์๋ ํ์ธ์. ์ด์์ฐ๋์๋ ๋น ๋ฑ๋ก์ ์ฌ์ฉํด๋ ์ ์์ ์ผ๋ก ์๋ํด์ผ ํฉ๋๋ค.ํ์ธ์ ํ๋ ค๋ฉด ์ ์ฒด ์ฝ๋๋ฅผ ๋ด์ผํ ๊ฒ ๊ฐ์์.์ค์ ๋์ํ๋ ์ ์ฒด ํ๋ก์ ํธ๋ฅผZIPํ์ผ๋ก ์์ถํด์ ๊ตฌ๊ธ ๋๋ผ์ด๋ธ๋ก ๊ณต์ ํด์ ๋งํฌ๋ฅผ ๋จ๊ฒจ์ฃผ์ธ์.๊ตฌ๊ธ ๋๋ผ์ด๋ธ ์ ๋ก๋ ๋ฐฉ๋ฒ์ ๋ค์์ ์ฐธ๊ณ ํด์ฃผ์ธ์.https://bit.ly/3fX6ygx์ฃผ์: ์ ๋ก๋์ ๋งํฌ์ ์๋ ๊ถํ ๋ฌธ์ ๊ผญ ํ์ธํด์ฃผ์ธ์์ถ๊ฐ๋ก ๋ค์ ๋ด์ฉ๋ ์ฝ๋ฉํธ ๋ถํ๋๋ฆฝ๋๋ค.1. ๋ฌธ์ ์์ญ์ ์คํํ ์ ์๋ ๋ฐฉ๋ฒ2. ๋ฌธ์ ๊ฐ ์ด๋ป๊ฒ ๋ํ๋๋์ง์ ๋ํ ์์ธํ ์ค๋ช (์ค๋ฅ ํ๋ฉด, ์ค๋ฅ ๋ก๊ทธ ํฌํจ)๋งํฌ: ๊ณต์ ์ํฌํฐ์ฆ๋งํฌ: ์์ฃผํ๋ ์ง๋ฌธ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 58
Q&A
๋ชจ๋ํฐ์ synchronized, ReentrantLock, ์์์ ์ฐ์ฐ CAS๊ด๋ จํด์ ์ถ๊ฐ์ ์ผ๋ก ๋ ๊น๊ฒ ๊ณต๋ถํ๋๋ฐ ์ ๊ฐ ์ดํดํ ๊ฒ์ด ๋ง๋์??
์๋ ํ์ธ์. ์ ์ฌ์ต๋๋ค๋ฅธ ๋ถ๋ถ์ ๋ง๋๋ฐ์. ๋ค์ ๋ถ๋ถ์ ์ ์ ์ด ํ์ํฉ๋๋ค.synchronized๋ ์๋ฐ๊ฐ ๊ตฌํํ ๋ชจ๋ํฐ์ธ๋ฐ ์กฐ๊ฑด๋ณ์์ ์ถ๊ฐ๊ฐ ๋ถ๊ฐ๋ฅํด์ ์์ฐ์ ์๋น์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.์ด ๋ถ๋ถ์ ๋ฐ์ ๋ง๊ณ ๋ฐ์ ํ๋ ธ์ต๋๋ค. synchronized ์ญ์ ์๋ฐ์ ๋ชจ๋ ๊ฐ์ฒด๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ง๊ณ ์๋ ๋ชจ๋ํฐ ๋ฝ๊ณผ '์ค๋ ๋ ๋๊ธฐ ์งํฉ(wait set)'์ด๋ผ๋ ์กฐ๊ฑด ๋ณ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ Object.wait()์ Object.notify()๋ฅผ ์ฌ์ฉํ๋ฉด ์์ฐ์ ์๋น์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์๋ ์์ต๋๋ค.์ง์ง ๋ฌธ์ ๋ '์กฐ๊ฑด ๋ณ์์ ์ถ๊ฐ๊ฐ ๋ถ๊ฐ๋ฅํ๋ค'๋ ์ ์ ๋๋ค. synchronized๋ ๋ด๋ถ์ ์ผ๋ก ๋จ 1๊ฐ์ ์ค๋ ๋ ๋๊ธฐ ์งํฉ๋ง ๊ฐ์ง๋๋ค. ๋ฐ๋ผ์ ์์ฐ์ ์ค๋ ๋์ ์๋น์ ์ค๋ ๋๊ฐ ๊ฐ์ ๋๊ธฐ ๊ณต๊ฐ์ ์์ฌ์ ๋๊ธฐํ๊ฒ ๋ฉ๋๋ค. ์ด๋ก ์ธํด ์์ฐ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ ํ ์๋น์๋ฅผ ๊นจ์ฐ๊ณ ์ถ์๋ฐ ์ค์๋ก ๋๊ธฐ ์ค์ธ ๋ค๋ฅธ ์์ฐ์๋ฅผ ๊นจ์ฐ๊ฑฐ๋(๋นํจ์จ), ๋ฐ๋๋ก ์๋น์๊ฐ ๋ค๋ฅธ ์๋น์๋ฅผ ๊นจ์ฐ๋ ๋นํจ์จ์ ์ธ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.(๊ฒฐ๊ณผ์ ์ผ๋ก ๋ก์ง์ ๋์ํ์ง๋ง, ํ๋๋ ์ค๋ ๋๊ฐ ์๊ฒจ ๋นํจ์จ์ ์ ๋๋ค.)๊ฐ์ฌํฉ๋๋ค ๐
- 0
- 1
- 63
Q&A
comment ์ฑ๋ฒ์ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ์ ๋ํ ์ค๋ช ์ด ํ์ํฉ๋๋ค.
์๋ ํ์ธ์. ๋ณํ์ง๋ ๐AUTO_INCREMENT๋ ํ ์ด๋ธ ์ ์ฒด๋ฅผ ๊ธฐ์ค์ผ๋ก 1์ฉ ์์ฐจ์ ์ผ๋ก ์ฆ๊ฐํ๋ ๊ณ ์ ํ ๊ฐ์ ๋ง๋ค์ด๋ ๋๋ค. ํ์ง๋ง ์๋ณ ๊ด๊ณ์ธ (board_id, comment_no) ๊ตฌ์กฐ์์ ์ฐ๋ฆฌ๊ฐ ๊ธฐ๋ํ๋ comment_no๋ ๋ค์๊ณผ ๊ฐ์ด ๋์ํด์ผ ํฉ๋๋ค.1๋ฒ ๊ฒ์๊ธ์ ๋๊ธ: (1, 1), (1, 2), (1, 3)2๋ฒ ๊ฒ์๊ธ์ ๋๊ธ: (2, 1), (2, 2)์ฆ, board_id๊ฐ ๋ฌ๋ผ์ง๋ฉด comment_no๋ ๋ค์ 1๋ถํฐ ์์ํด์ผ ํฉ๋๋ค.๋ฐ๋ผ์ AUTO_INCREMENT๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค.
- 0
- 3
- 79
Q&A
์ถํ ๊ฐ์ ์ง๋ฌธ์์ต๋๋ค
์น์ฆ์ด์ฝ์ฐ์ ๋ ์๋ ํ์ธ์.๋ง์ํ์ ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ ๋ถ๋ถ์ด ์ ๊ฐ ๊ฐ์ฅ ์ข์ํ๊ณ ๋ ๊ฐ์ฅ ์์ ์๋ ๋ถ์ผ์ธ๋ฐ์.์ ๋ ์ด์ ๊ทธ๋ฐ ๊ฐ์๋ฅผ ํ๊ณ ์ถ์๋ฐ, ๊ทธ๋ฐ๋ฐ ์ด๋ฐ ๋ถ๋ถ์ ์ ๋ง ์ ๋๋ก ์ค๋ช ํ๋ ค๋ฉด ๋ฃ๋ ๋ถ๋ค๊ป์ ์ฐ์ ์ ๋ง์ ๊ธฐ์ด๋ค์ด ๋ค ์ ๋ฆฌ๊ฐ ๋์ด์ผ ๊ฒ ๋๋ผ๊ตฌ์.์๋ฅผ ๋ค์ด์ ์๋ฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์คํ๋ง, JPA ๋ฑ๋ฑ ๋ชจ๋ ๊ธฐ๋ฐ์ด ์์ด์ผ ์ง์ง ๊น์ด์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ์ ๋ํ ์ดํด๊ฐ ๊ฐ๋ฅํ๋ค ์๊ฐํฉ๋๋ค.์ง๊ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๋๋งต์ ์์ฑํ๋๋ฐ ์ง์คํ๊ณ ์์ง๋ง, ์ดํ ๊ฐ์ ์งํ ๋ฐฉํฅ์ค ํ๋์ ํฐ ์ถ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ๊ฐ ๋ค์ด๊ฐ ์๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค ๐๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 105
Q&A
์๋ฐ ๊ธฐ๋ณธํธ - .(dot)์ ๊ดํ ์ง๋ฌธ์ ๋๋ค!
์๋ ํ์ธ์. 7580750๋์๊ฐํ์ ๋ด์ฉ์ด ๋ง์ต๋๋ค^^!๊ฐ์ฌํฉ๋๋ค.
- 0
- 1
- 72
Q&A
setVlaue์ง๋ฌธ
์๋ ํ์ธ์. ์ฌ๋น๋์ง๋ฌธํ์ ๋ถ๋ถ์ ๊ฐ์์์ ๊ฐ๋ณ ๊ฐ์ฒด(Mutable)์ ๋ถ๋ณ ๊ฐ์ฒด(Immutable)๋ฅผ ๋น๊ตํด์ ์ค๋ช ํ๊ธฐ ์ํด ์๋ก ๋ค๋ฅธ ๋ ๊ฐ์ ํด๋์ค๋ฅผ ๋ฒ๊ฐ์ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ ํผ๋์ ๋๋ค.๊ฒฐ๋ก ๋ถํฐ ๋ง์๋๋ฆฌ๋ฉด, setValue()๋ฅผ ๋ค์ ๋ง๋ ๊ฒ์ด ์๋๋ผ ๊ฐ๋ณ ๊ฐ์ฒด์ธ Address ํด๋์ค๋ฅผ ์ฌ์ฉํ ์์ ๋ฅผ ๋จผ์ ๋ณด์ฌ์ฃผ์๊ธฐ ๋๋ฌธ์ ๋๋ค,.๋ค์์ ImmutableAddress๋ฅผ ๋ณด์ฌ๋๋ฆฌ๋๋ฐ์. ImmutableAddress๋ ๋ถ๋ณ์ด๊ณ , Address๋ ๊ฐ๋ณ์ ๋๋ค.๊ฐ์ฌํฉ๋๋ค.
- 0
- 3
- 72
Q&A
์ค๋ฌด ํต๊ณ ์ง๋ฌธ(๊ณ ๋ฏผ) ๋๋ฆฝ๋๋ค..!
์๋ ํ์ธ์. ๊ฐ์ฌํฉ๋๋ ~๋์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅธ ํต๊ณ๋ฅผ ์ ๊ณตํด์ผ ํด์ ๊ณ ๋ฏผ์ด ๋ง์ผ์๊ฒ ๋ค์. 1. ๋น์ฆ๋์ค ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ง๋ง, ์ต๋ํ ๋ง์ ๋ถ๋ถ์์ ์ค๋ณต๊ณผ ์ฝ๋ฉ์ ์์ ์ค์ด๊ธฐ ์ํด์ ์ฐจํธ์ ๋ํ ๋ฉํ๋ฐ์ดํฐ ํ ์ด๋ธ"์ ๋ณ๋๋ก ์ค๊ณํ์ฌ ๋งคํํ๋ ๋ฐฉ์์ ๊ถ์ฅํฉ๋๋ค.๋ฉํ๋ฐ์ดํฐ์ ์ ๋ณด๋ง์ผ๋ก ๋ง์ ๊ฒ์ ์๋ํ ํ์ค ์ ์์๊ฑฐ์์.์ถ๊ฐ๋ก ๊ณผ๊ฑฐ RDB๋ฅผ ์๋ํ์ จ๋ค๊ฐ ์ ๊ฐ๊ฐ์ธ Raw Data ๊ตฌ์กฐ ๋๋ฌธ์ ํฌ๊ธฐํ์ ๊ฒ์ ์ด์ฉ๋ฉด ๋น์ฐํ ๊ฒฐ์ ์ ๋๋ค. ์ฐจํธ๋ง๋ค ์๊ตฌํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์์ ํ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋๋ค.์ด๋ฅผ ํด๊ฒฐํ๋ ํ์ค์ ์ธ ๋ฐฉ๋ฒ์ ์ ๊ทํ๋ ์ปฌ๋ผ์ ํฌ๊ธฐํ๊ณ "๊ณ ์ ๋ฉํ ์ปฌ๋ผ + ์ ์ฐํ ๋ฐ์ดํฐ ์ปฌ๋ผ(JSON)"์ ์กฐํฉ์ผ๋ก ๊ฐ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. (๊ฐ์ ๋ง์ง๋ง์ ๊ด๊ณํ DB์์ JSON ๋ฐฉ๋ฒ ์ค๋ช ) 2. ์ด๋ฏธ ์์ค ๊ฒ ๊ฐ๊ธฐ๋ ํ๋ฐ, ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ (ETL)์ ๋ช ํํ ์ญํ ๋ถ๋ฆฌํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.๋งค์ผ ์๋ฒฝ 3์์ ๋๋ ๋ฐฐ์น๋ฅผ ๋ ผ๋ฆฌ์ ์ผ๋ก 3๋จ๊ณ๋ก ๋ถ๋ฆฌํ๋ฉด ๊ด๋ฆฌ์ ์ฌ์ฒ๋ฆฌ๊ฐ ํจ์ฌ ์ฌ์์ง๋๋ค.1. Extract & Load (์์ง): 30๋ง ๋ฒ์ ์ธ๋ถ API๋ฅผ ์ต๋ํ ๋น ๋ฅด๊ฒ ๊ธ์ด์์ ์๋ณธ ๊ทธ๋๋ก MongoDB(Raw)์ ๋คํํฉ๋๋ค.2. Transform (๊ฐ๊ณต): ๋ฉํ๋ฐ์ดํฐ ํ ์ด๋ธ์ ๊ท์น์ ์ฝ์ด, MongoDB์ Raw Data๋ฅผ ์ฐจํธ ๋ชจ์์ ๋ง๊ฒ ์ง๊ณํ ๋ค Data Mart (๊ณ ์ ๋ฉํ ์ปฌ๋ผ + JSON ํ ์ด๋ธ)์ ์๊ตฌ ์ ์ฅํฉ๋๋ค.3. Cache Warming (์บ์ ์ ์ฌ): Data Mart์ ๊ฒฐ๊ณผ๋ฅผ Redis์ ๋ฏธ๋ฆฌ ์ฌ๋ ค๋ก๋๋ค.๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 79




