7๋ ์ฐจ ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ก, ์์ ์ ์ธ ๊ฒฐ์ ์์คํ ๊ณผ ๊ณ ์ฑ๋ฅ ์๋น์ค ์ํคํ ์ฒ ์ค๊ณ์ ํนํ๋์ด ์์ต๋๋ค.
์ฃผ์ ๊ฒฝํ์ผ๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
17๋ถ ๋ง์ ์ ์ฌ์นฉ์ ๋ฐฐ๋ฌํ๋ ๋ฐฐ์ก ์๋ฒ ์ค๊ณ
300๊ฑด์ ํ ์คํธ ์ผ์ด์ค์ k6 ๋ถํ ํ ์คํธ๋ฅผ ๊ฑฐ์น ์ ๊ธฐ/๋จ๊ฑด ๊ฒฐ์ ์๋ฒ ์ค๊ณ
3.5์ต๊ฑด์ ์ ์ ์ฑ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ๊ทํ๋ฅผ ํตํด ์ต์ ํ
Kotlin, Spring, Django, Python, Node, TypeScript, AWS, Docker ๋ฑ์ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ํ๋ก๋์ ์๋น์ค๋ฅผ ๊ฐ๋ฐ ๋ฐ ์ด์ํ ๊ฒฝํ์ด ์์ต๋๋ค. ์๋ก์ด ๊ธฐ์ ์ ๋ฐฐ์ฐ๊ณ ์๋น์ค์ ์ ์ฉํ๋ ๊ฒ์ ์ฆ๊ฑฐ์ํฉ๋๋ค.
๋ํ ๊ฐ๋ฐ ์ง์์ ๊ณต์ ํ๊ณ ์ YouTube ์ฑ๋์ ์ด์ํ๊ณ ์์ผ๋ฉฐ, 19,100๋ช ์ด์์ ๊ตฌ๋ ์์ ํจ๊ป ์ฑ์ฅํ๊ณ ์์ต๋๋ค. ๋ฐฐ์์จ ์ง์์ ์ ๊ฒ์ผ๋ก ๋ง๋ค๊ธฐ์ ๋์์ด ๋๊ณ ์์ต๋๋ค.
์๋น์ค๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํด์๋ ์ปค๋ฎค๋์ผ์ด์ ์ด ๊ฐ์ฅ ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ๊ทน์ ์ธ ์ปค๋ฎค๋์ผ์ด์ ์ผ๋ก ๋ฌธ์ ํด๊ฒฐ๊ณผ ๋น์ฆ๋์ค ๋ฐ์ ์ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ์ด๋ฌํ ์ ์ ๋ฐํ์ผ๋ก ๋ ์ข์ ๊ฐ๋ฐ์๋ก์ ์ฑ์ฅํ๊ธฐ ์ํด ๋ ์น์ดํ๊ฒ ํ์ตํ๊ณ , ๊ฒฝํํ๊ณ , ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
์ฌ๋ฌ๋ถ๊ณผ ํจ๊ป ์ฑ์ฅํ๋ ๊ฐ์๋ฅผ ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
Courses
Reviews
bebe
ยท
6-Week Complete! 4 Backend Resume Differentiation Strategies - How to Stand Out Among Identical Resumes6-Week Complete! 4 Backend Resume Differentiation Strategies - How to Stand Out Among Identical Resumesskrmskdl38182
ยท
6-Week Complete! 4 Backend Resume Differentiation Strategies - How to Stand Out Among Identical Resumes6-Week Complete! 4 Backend Resume Differentiation Strategies - How to Stand Out Among Identical Resumessond5510
ยท
6-Week Complete! 4 Backend Resume Differentiation Strategies - How to Stand Out Among Identical Resumes6-Week Complete! 4 Backend Resume Differentiation Strategies - How to Stand Out Among Identical Resumes- 38 Company Pass Secrets, 2025 Coding Test Essential Algorithms
kukaeden
ยท
Only 60 minutes! Python core concepts super-compressed lecture - Focus on understanding rather than theoryOnly 60 minutes! Python core concepts super-compressed lecture - Focus on understanding rather than theory
Posts
Q&A
ํ๋ก๋ฉํ ์ฐ์ค์์ ์ฟผ๋ฆฌ ์นด์ดํฐ ๊ฒ์์ด ์๋จ
๋ฏผ์ฐ๋ ์๋ ํ์ธ์!! ์ค๋๋ ์ข์ ์ง๋ฌธ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!!executor_thread ๊ฐ์ ๊ธฐ๋ณธ ๋ฉํธ๋ฆญ์ ์ ๊ฐ์ ธ์จ๋ค๋ ๊ฑด ๋ง์ํด์ฃผ์ ๋๋ก ํ๋ก๋ฉํ ์ฐ์ค์ EC2 ์ฐ๊ฒฐ ์์ฒด๋ ๋ฌธ์ ์๋ค๋ ๊ฒ ๊ฐ์ต๋๋ค! EC2์์๋ ์์ง API ํธ์ถ์ด ์์ด์ ๋ฉํธ๋ฆญ์ด ์์ฑ๋์ง ์์์ ์ ์์ต๋๋ค. ๋ก์ปฌ์์๋ ํ ์คํธํ๋ฉด์ ์ฌ๋ฌ ์์ฒญ์ ๋ณด๋์ง๋ง, EC2์์๋ ์์ง ์์ฒญ์ด ์์ด์ Timer ๋ฉํธ๋ฆญ์ด ์์ฑ๋์ง ์์ ๊ฒ ๊ฐ์๋ฐ, ํด๋น ๋ฉํธ๋ฆญ์ ์์ฑํ๋ API ๋ฅผ ํธ์ถํ ๋ค์ ํ ๋ฒ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํด๋ณด์ค ์ ์์๊น์?
- 0
- 1
- 32
Q&A
์คํ๊ฐ ์์ต๋๋ค.
์๋ ํ์ธ์ qkrwlsn102109๋!!! ํ ๊ทธ๋ ๋ค์!!! ๊ต์ฌ ์์ ํ๋ฉด์ ์คํ๊ฐ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค ๐ข๐ข๐ข๐ข์ ๋ณดํด์ฃผ์ ์ ๋๋ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!!!! ๊ณง๋ฐ๋ก ์์ ํด๋๊ฒ ์ต๋๋ค ๋๋ฌด๋๋ฌด ๊ฐ์ฌ๋๋ฆฝ๋๋ค!! ๐๐๐
- 0
- 2
- 14
Q&A
9. 1-6 ์๊ฐ๋ณต์ก๋ ๊ณ์ฐํ๊ธฐ
์๋ ํ์ธ์ ์ปค๋๋์ค๋! ์ข์ ์ง๋ฌธ ๊ฐ์ฌํฉ๋๋ค!! ๊ต์ฌ์ ๋ฐ์๋์ง ๋ชปํ ์ค๋ฅ๊ฐ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค ์ ๋ณด ๊ฐ์ฌ๋๋ฆฝ๋๋ค!!! ํด๋น ๋ถ๋ถ ๊ต์ฌ์ ์ค๋ช ์ถ๊ฐํด๋๊ฒ ์ต๋๋ค ์ง๋ฌธํด์ฃผ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!!! ์ดํดํ๋๋ฐ ๋ถํธ์ ๋๋ ธ๋ค๋ฉด ๋ ์ฃ์กํฉ๋๋ค ๐๐
- 0
- 2
- 25
Q&A
colab ํ๋ก๊ทธ๋จ ์ค์ ๊ด๋ จ ์๋ด
์๋ ํ์ธ์ ์ ์๋! ์ข์ ์ง๋ฌธ ๊ฐ์ฌํฉ๋๋ค 7๋ฒ์งธ ๊ฐ์์ธ 2-1. colab ๊ธฐ์ด์ค์ ํธ์์ ํ์ธํ์ค ์ ์์ต๋๋ค https://inf.run/ZpWpg
- 0
- 2
- 27
Q&A
RedisTemplate<String, String>
์๋ ํ์ธ์ kongminoo๋! ์ข์ ์ง๋ฌธ ๊ฐ์ฌํฉ๋๋ค!!๋ค, ์คํ๋ง๋ถํธ์์๋ spring-boot-starter-data-redis ์์กด์ฑ์ ์ถ๊ฐํ๋ฉด ์๋ ์ค์ (auto-configuration)์ ํตํด StringRedisTemplate์ด ์๋์ผ๋ก ๋น์ผ๋ก ๋ฑ๋ก๋ฉ๋๋ค.์คํ๋ง๋ถํธ์ RedisTemplate ์๋ ์ค์ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค!RedisAutoConfiguration์์ ์๋์ผ๋ก StringRedisTemplate ๋น์ ์์ฑํฉ๋๋คStringRedisTemplate์ RedisTemplate์ ์์ํ ํด๋์ค์ ๋๋ค๋ฐ๋ผ์ ๋ณ๋๋ก ๋น ๋ฑ๋ก ์์ด๋ ์์ฑ์ ์ฃผ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค // RedisAutoConfiguration ๋ด๋ถ ์ฝ๋ @Bean @ConditionalOnMissingBean @ConditionalOnSingleCandidate(RedisConnectionFactory.class) public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) { return new StringRedisTemplate(redisConnectionFactory); }์ค๋๋ ์ข์ ํ๋ฃจ ๋์ธ์!!
- 0
- 2
- 29
Q&A
๋ ธ์ ์ ์คํ๊ฐ ์์์
์๋ ํ์ธ์ kongminoo ๋!!!์ ๋ง๋ค์!!! ์ ๋ณด ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ๋ณ๊ฒฝํด๋๊ฒ ์ต๋๋ค!! ใ ใ ใ ์ฃผ์๊น๊ฒ ๋ด์ฃผ์ ์ ๋๋ ๊ฐ์ฌ๋๋ ค์ฉ ๐๐๐
- 0
- 2
- 30
Q&A
@Async ์ฌ๋ถ์ ์ฐจ์ด๊ฐ ๊ถ๊ธํฉ๋๋ค.
์๋ ํ์ธ์ kongminoo๋, ์ข์ ์ง๋ฌธ ๊ฐ์ฌํฉ๋๋ค!๋ง์ต๋๋ค! ๋ฏผ์ฐ๋์ด ์ค์ค๋ก ์ฐพ์ผ์ ๋ต๋ณ์ด ์ ํํฉ๋๋ค!!@Async ์์ด @TransactionalEventListener๋ง ์ฌ์ฉํด๋ผ์ด์ธํธ โ (์ฐ๋ ๋ A) ๋ฉ์ธ๋ก์ง ์ํ โ (์ฐ๋ ๋ A) ์ด๋ฒคํธ ์ฒ๋ฆฌ โ (์ฐ๋ ๋ A ๋ฐํ) ํด๋ผ์ด์ธํธ์๊ฒ ์๋ต๋ฌธ์ ์ : ์นด์นด์คํก API ํธ์ถ์ด 2์ด ๊ฑธ๋ฆฐ๋ค๋ฉด, ์ฌ์ฉ์๋ ์ด๋ฒคํธ ์ฐธ๊ฐ ํ 2์ด๋ฅผ ๋ ๊ธฐ๋ค๋ ค์ผ ํจ์ค์ ์๋ต ์๊ฐ: ๋ฉ์ธ ๋ก์ง + ์๋ฆผ ๋ฐ์ก ์๊ฐ@Async์ @TransactionalEventListener ํจ๊ป ์ฌ์ฉํด๋ผ์ด์ธํธ โ (์ฐ๋ ๋ A) ๋ฉ์ธ๋ก์ง ์ํ โ (์ฐ๋ ๋ A ๋ฐํ) ํด๋ผ์ด์ธํธ์๊ฒ ์ฆ์ ์๋ต โ (์ฐ๋ ๋ B) ์ด๋ฒคํธ ์ฒ๋ฆฌ์ฅ์ : ์ฌ์ฉ์๋ ์ด๋ฒคํธ ์ฐธ๊ฐ ์๋ฃ ํ ์ฆ์ ์๋ต์ ๋ฐ์์ค์ ์๋ต ์๊ฐ: ๋ฉ์ธ ๋ก์ง ์๊ฐ๋ง์ค๋ฌด์์๋ ์ด๋ฐ ๋ถ๋ถ๋ ๊ณ ๋ คํด์ผ ํด๋ณด์๋ ๊ฑธ ์ถ์ฒ๋๋ฆฝ๋๋ค!๋น๋๊ธฐ ์ฒ๋ฆฌ ์คํจ ์ ์ฌ์๋ ๋ก์ง์ค๋ ๋ ํ ์ค์ (๊ธฐ๋ณธ SimpleAsyncTaskExecutor๋ ์ํ)์๋ฆผ ๋ฐ์ก ์คํจ์ ๋ํ ๋ชจ๋ํฐ๋ง์ด๋ฐ ๊ฒฝํ์ ์์์ ์ด๋ ฅ์์ ์จ๋ณด์๋ ๊ฑธ ์ถ์ฒ๋๋ฆฌ๋น๋ค!! ํญ์ ์ข์ ์ง๋ฌธ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!์ข์ ์ฃผ๋ง ๋ณด๋ด์ธ์~~~
- 0
- 2
- 39
Q&A
๊ฐ์ ์ ๊ตฌํ ํ๋ ๋ด์ฉ๊ณผ ๊ฐ์ ์ฑ ๊ตฌํ ์๊ตฌ ๋ด์ฉ์ด ์กฐ๊ธ ๋ฌ๋ผ์
์๋ ํ์ธ์ Sooin ๋!! ์ข์ ์ง๋ฌธ ๊ฐ์ฌํฉ๋๋ค!!๋ง์์ฃผ์ ๋๋ก, ๊ต์ฌ์ ๋ฌธ๊ตฌ๊ฐ ์๋ชป๋์์์ ํ์ธํ์ต๋๋ค! ๋๋ถ์ ํด๋น ๋ด์ฉ์ ๋ณ๊ฒฝํ ์ ์์์ต๋๋ค ๊ฐ์ฌ๋๋ฆฝ๋๋ค!! ๊ฐ์์ ๊ธฐ์ฌํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!! ์ธ์ ๋ ํธํ๊ฒ ์ง๋ฌธํด์ฃผ์ธ์ ใ ใ ใ ์ข์ ํ๋ฃจ ๋ณด๋ด์ธ์!!
- 0
- 1
- 26
Q&A
[2์ฃผ์ฐจ] ๊ณ๋ค๋ฆฌ ์ง๋ฌธ
์๋ ํ์ธ์ ์ํ๋!! ์ข์ ์ง๋ฌธ ๋๋ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!!ํ๋ฒ ์ง๋ฌธ ์ฃผ์ ๋ด์ฉ์ ๋ํด ๋ต๋ณ๋๋ ค๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํํ์ ๋ํด์๋ ๋ฏธ๋ฆฌ ๋ง์ ์ฃผ์ ์ ์ ํ ์ ํ ์ ํ!!! ๋ถ์พํ์ง ์์์ต๋๋ค!! ๊ตฌ์กฐ์ ์ธ ๊ณ ๋ฏผ์ ๊น์ด ํ์๋ ๊ฒ ๊ฐ์ ์คํ๋ ค ์ธ์์ ์ด์์ต๋๋ค!! ๋ ๋ง๊ป ์ง๋ฌธํด์ฃผ์ธ์ ใ ใ ใ ์๋น์ค์์ ์ฌ๋ฌ Repository๋ฅผ ์ฃผ์ ๋ฐ๋ ๊ตฌ์กฐ ๋ง์ํ์ ๊ฒ์ฒ๋ผ ๋๋ฉ์ธ ๊ธฐ๋ฐ ๊ตฌ์กฐ์์๋ ์์ ์ ๋๋ฉ์ธ์ด ์๋ ๋ค๋ฅธ ๋๋ฉ์ธ์ ๋ด๋ถ ๊ตฌํ(์: ๋ค๋ฅธ ๋๋ฉ์ธ์ Repository)์ ์ง์ ์ ๊ทผํ๋ ๊ฒ์ด ๋ฐ๋์งํ์ง ์๋ค๊ณ ๋ณด๋ ์๊ฐ์ด ๋ง์ต๋๋ค. ์ด ๊ด์ ์์๋ ๊ฐ ๋๋ฉ์ธ์ Service๋ผ๋ฆฌ ํ๋ ฅํ๋ ๊ตฌ์กฐ๊ฐ ๋ ๋์จํ ๊ฒฐํฉ์ ์ ์งํ ์ ์๋ ๋ฐฉํฅ์ ๋๋ค.๋ค๋ง, ์ค์ ์ด์๋๋ ์๋น์ค์์๋ ์๋์ ๊ฐ์ ์ด์ ๋ก Repository๋ฅผ ์ฌ๋ฌ ๊ฐ ์ง์ ์ฃผ์ ํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค ๋ณต์กํ ๋น์ฆ๋์ค ๋ก์ง ์์ด ๊ฐ๋จํ ์ฟผ๋ฆฌ ์กฐํฉ๋ง ํ์ํ ๊ฒฝ์ฐ ๊ทธ๋ฌํฉ๋๋ค. (์ ํฌ ์๋น์ค์ ๊ฒฝ์ฐ์๋ ๊ทธ๋ฌํ์ค๋น๋ค)์ฆ, ์ด ๊ตฌ์กฐ๊ฐ ์ ๋์ ์ผ๋ก ์๋ชป๋์๋ค๊ธฐ๋ณด๋ค๋ ์ํฉ์ ๋ฐ๋ผ ํํํ๋ ๋ถ๋ถ์ด ๋ง์ต๋๋ค. ๋ค๋ง, ๋ฆฌํฉํ ๋ง ๊ฐ๋ฅ์ฑ์ด๋ ํ ์คํธ ์ฉ์ด์ฑ์ ์๊ฐํ๋ฉด, ์๋น์ค ๊ฐ ์์กด์ ํตํด ํ๋ ฅํ๋๋ก ๊ตฌ์ฑํ๋ ๊ฒ์ด ๋ ์ผ๋ฐ์ ์ธ ๋ฐฉํฅ์ด๊ณ , ๊ทธ๋ ๊ฒ ๊ตฌ์ฑํ๋ ๊ฒ์ด ๋ ์ข๋ค๊ณ ํ๋จ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค!!์ด๋ฒ ํ๋ก์ ํธ์์๋ DDD ๊ด์ ์ ์ํคํ ์ณ ๋ณด๋ค๋, ์ฝ๋ ์์ฒด์ ํ๋ฆ์ ์ดํดํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค๊ธฐ ์ํด์ ์ด๋์ ๋์ ์ค๋ณต์ ํ์ฉํ ์ํ๋ก ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ์ ์ถฉ๋ถํ ์ํ๋๊ณผ ๊ฐ์ ์๊ฐ์ ํ์ค ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค!! ๋ง์ํด์ฃผ์ ๊ฒ์ฒ๋ผ DTO/Entity ๊ธฐ์ค์ผ๋ก ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ๋ถํ๊ณ , ์๋น์ค ๊ฐ ํ๋ ฅ์ ์ฌ์ ๋นํ๊ฑฐ๋, ์ญํ ๋ถ๋ฆฌ๋ฅผ ๋ค์ ์ ๊ฒํด๋ณด๋ ํธ์ด ๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค ์ข์ ์ง๋ฌธ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!!TPS ๊ธฐ์ค์ ๋ํดTPS๋ฅผ ์ด์ผ๊ธฐํ ๋ ๊ธฐ์ค์ด ๋ชจํธํ ์ ์๋๋ฐ, ๋ณดํต์ ์๋น์ค์์ ๊ฐ์ฅ ์ค์ํ๊ฑฐ๋ ๋ณ๋ชฉ์ด ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ ๊ฒฝ๋ก(์ฃผ์ API๋ ๋น์ฆ๋์ค ๋ก์ง ๊ธฐ์ค)๋ก ์ธก์ ํฉ๋๋ค.์๋ฅผ ๋ค์ด, ์ฟ ํฐ ์์คํ ์ด๋ผ๋ฉด "์ฟ ํฐ ๋ฐ๊ธ"์ด๋ "์ฟ ํฐ ์ฌ์ฉ ์ฒ๋ฆฌ"์ ๊ฐ์ด Insert ๋๋ Update๊ฐ ๋ฐ์ํ๊ณ ๋์์ฑ์ด ์ค์ํ ์์ ์ ๊ธฐ์ค์ผ๋ก ์ผ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋จ์ ์กฐํ API ๊ธฐ์ค TPS๋ ์ฐธ๊ณ ๋ก ๋ณด๋, ๊ธฐ์ค์ ์ผ๋ก ์ก์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์ผ๋ฐ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค!!๊ทธ๋ฆฌ๊ณ TPS๊ฐ ์ด๋ ์ ๋๋ฉด โ์ ์ง ์์ ์์คโ์ธ์ง์ ๋ํด ์ ์ฃผ๊ด์ ์ธ ๊ธฐ์ค์ ๋ง์๋๋ ค๋ณผ๊ฒ์!! ์ผ๋ฐ์ ์ธ CRUD ๊ธฐ๋ฐ ์น์๋น์ค์์๋ Insert/Update ํฌํจ 100~200 TPS๋ง ๋์ด๋ ๊ฝค ๋ง์ ๋์ ์ฒ๋ฆฌ๋ฅผ ์๋ฏธํฉ๋๋ค. ๋๊ท๋ชจ ํ๋ซํผ ์๋น์ค๋ผ๋ฉด 300~500 TPS ์ด์, ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์์ฒ TPS ์ด์๋ ์๊ตฌ๋์ง๋ง, ์ด๋ ์ฃผ๋ก ๊ณ ๋ํ๋ ์์คํ ์ด๋ ์บ์, ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฑ์ ํตํด ๋ฌ์ฑ๋๋ ๊ฒ ๊ฐ์ต๋๋ค!!์ํ๋ ์ข์ ์ง๋ฌธ ๊ฐ์ฌํฉ๋๋ค!! ์ธ์ ๋ ํธํ๊ฒ ์ง๋ฌธํด์ฃผ์ธ์ ใ .ใ
- 0
- 2
- 36
Q&A
์คํ๊ณํ์์ ๋๋ผ์ด๋น ํ ์ด๋ธ๊ณผ ๋๋ฆฌ๋ธ ํ ์ด๋ธ์ ํ๋จํ๋ ๊ธฐ์ค
์๋ ํ์ธ์ cho766๋!! ์ข์ ์ง๋ฌธ ๋๋ฌด๋๋ฌด ๊ฐ์ฌํฉ๋๋ค!!์ฐ์ , ์คํ๊ณํ์์ ๋๋ผ์ด๋น ํ ์ด๋ธ๊ณผ ๋๋ฆฌ๋ธ ํ ์ด๋ธ ๊ตฌ๋ถ ๊ธฐ์ค์ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ๋ง์๋๋ ค๋ณด๊ฒ ์ต๋๋ค!๊ฐ์์์ ๋งํ๋ "์คํ๊ณํ ๊ฒฐ๊ณผ์์ ๋ฉค๋ฒ ํ ์ด๋ธ์ด ๋จผ์ ๋์๊ธฐ ๋๋ฌธ์ ๋๋ผ์ด๋น ํ ์ด๋ธ"์ด๋ผ๋ ์ค๋ช ์ EXPLAIN๋ช ๋ น์ผ๋ก ์ถ๋ ฅ๋ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ํ ๊ฒ์ ๋๋ค! EXPLAIN ๊ฒฐ๊ณผ์์ table ์ปฌ๋ผ์ ๋์ด๋ ์์๊ฐ, MySQL์ Nested Loop Join์์ outer loop (๋๋ผ์ด๋น ํ ์ด๋ธ) โ inner loop (๋๋ฆฌ๋ธ ํ ์ด๋ธ) ์์๋ฅผ ๋ณด์ฌ์ค๋๋ค. ๋ฐ๋ผ์ EXPLAIN ๊ฒฐ๊ณผ์์ m ํ ์ด๋ธ์ด ๋จผ์ ๋์ค๊ณ , o ํ ์ด๋ธ์ด ๋ ๋ฒ์งธ๋ก ๋์๋ค๋ฉด, m์ด ๋๋ผ์ด๋น ํ ์ด๋ธ์ ๋๋ค! ์ง๋ฌธ์ ์ธ๊ธํ์ ๋ค์ด์ด๊ทธ๋จ์ ์กฐ์ธ์ ํ๋ฆ์ ์๊ฐ์ ์ผ๋ก ํํํ ๊ฒ์ด์ง๋ง, ํ ์ด๋ธ ์์(outer/inner)๋ ๋ช ์์ ์ผ๋ก ๋ณด์ด์ง ์์ต๋๋ค. ๋ฐ๋ผ์ EXPLAIN์ผ๋ก ์ถ๋ ฅํ ํ ์คํธ ๊ฒฐ๊ณผํ ๊ธฐ์ค์ผ๋ก ์ค์ ๋ก ๋๋ผ์ด๋น/๋๋ฆฌ๋ธ ํ ์ด๋ธ์ ์์๋ฅผ ํ์ ํด์ผ ํฉ๋๋ค! ๊ทธ๋ผ ์ฌ๊ธฐ์ ๋ ๋์๊ฐ์ ์ถ๊ฐ์ ์ผ๋ก ์ ๋ฉค๋ฒ ํ ์ด๋ธ์ ๋จผ์ ์ฝ์๊น? ๋ผ๋ ๊ถ๊ธ์ฆ์ด ์๊ธธ ์ ์์ต๋๋ค! MySQL ์ตํฐ๋ง์ด์ ์กฐ์ธ ์์๋ฅผ ๊ฒฐ์ ํ ๋ ๋ค์๊ณผ ๊ฐ์ ์์๋ค์ ๊ณ ๋ คํฉ๋๋ค.ํ ์ด๋ธ ํฌ๊ธฐ (row ์) : ์ผ๋ฐ์ ์ผ๋ก ๋ ์์ ํ ์ด๋ธ์ ๋๋ผ์ด๋น ํ ์ด๋ธ๋ก ์ ํํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ๋ฉค๋ฒ ํ ์ด๋ธ์ ๋ณดํต ํ์ ์(์: ๋ช ์ฒ ~ ๋ช ๋ง)๋ก ์ ํ์ ์ด์ง๋ง, ์ฃผ๋ฌธ ํ ์ด๋ธ์ ํ์๋น ์ฌ๋ฌ ๊ฑด์ด ์์ด๊ธฐ ๋๋ฌธ์ ํจ์ฌ ํด ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ๋ฐ๋ผ์ ์์ ํ ์ด๋ธ์ธ ๋ฉค๋ฒ(m) ํ ์ด๋ธ์ ๋จผ์ ์ฝ๊ณ , ๊ทธ์ ํด๋นํ๋ ์ฃผ๋ฌธ๋ง ์ฐพ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ ๋๋ค.์กฐ๊ฑด์ ๋ฐ ์ธ๋ฑ์ค ์ฌ์ฉ ๊ฐ๋ฅ์ฑ : ์ตํฐ๋ง์ด์ ๋ WHERE, ON ์กฐ๊ฑด์ ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ธ๋ฑ์ค ์ ๋ฌด๋ ๊ณ ๋ คํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฉค๋ฒ ID๋ก ์กฐ์ธ์ ๊ฑธ๊ณ ์ด ID์ ์ธ๋ฑ์ค๊ฐ ์๋ค๋ฉด, ๋ฉค๋ฒ ํ ์ด๋ธ์์ ํ ํ์ ๊ฐ์ ธ์์ ์ฃผ๋ฌธ ํ ์ด๋ธ์์ ์ธ๋ฑ์ค๋ฅผ ํตํด ๋น ๋ฅด๊ฒ ์กฐํํ ์ ์์ต๋๋ค! ์ฆ, ๋ฉค๋ฒ ํ ์ด๋ธ ํ ๊ฑด โ ์ฃผ๋ฌธ ํ ์ด๋ธ์์ ๋งค์นญ๋๋ ๊ฑด๋ง ์ฐพ์๊ฐ๋ Nested Loop ๋ฐฉ์์ ์ต์ ํ๋์ด ์๋ค๊ณ ํ ์ ์์ต๋๋ค์ข์ ์ง๋ฌธ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค ์ด๋!! ํด๋น ๋ด์ฉ์ ๊ต์ฌ์๋ ์ถ๊ฐ๋ก ์์ ํด๋๋๋ก ํ๊ฒ ์ต๋๋ค ๊ธฐ์ฌํด์ฃผ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!!
- 1
- 2
- 37