Inflearn brand logo image
Inflearn brand logo image
์ฑ„๋„ํ†ก ์•„์ด์ฝ˜
BEST

์‹ค์ „! Querydsl

Querydsl์˜ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹ค๋ฌด ํ™œ์šฉ๊นŒ์ง€, ํ•œ๋ฒˆ์— ํ•ด๊ฒฐํ•ด๋ณด์„ธ์š”!

Thumbnail
๊น€์˜ํ•œ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

๏ฝฅ

์ˆ˜์ •๋จ

๊น€์˜ํ•œ์˜ ์‹ค์ „ ์ž๋ฐ” - ๊ณ ๊ธ‰ 1ํŽธ, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์™€ ๋™์‹œ์„ฑ ์˜คํ”ˆ ์ผ์ • ํ™•์ •

์•ˆ๋…•ํ•˜์„ธ์š”. ์—ฌ๋Ÿฌ๋ถ„
๊น€์˜ํ•œ์˜ ์‹ค์ „ ์ž๋ฐ” - ๊ณ ๊ธ‰ 1ํŽธ, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์™€ ๋™์‹œ์„ฑ
์˜คํ”ˆ ์ผ์ •์ด 7์›” 15์ผ(์›”)๋กœ ํ™•์ • ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊น€์˜ํ•œ์˜ ์‹ค์ „ ์ž๋ฐ” - ๊ณ ๊ธ‰ 1ํŽธ, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์™€ ๋™์‹œ์„ฑ
* ๊ฐ•์˜ ์‹œ๊ฐ„: 20์‹œ๊ฐ„ 48๋ถ„
* ๊ฐ•์˜ ์ˆ˜: 118๊ฐ•
* ๊ฐ•์˜ PDF ์ž๋ฃŒ: ์•ฝ 500์žฅ
* ๊ทธ๋ฆผ: 270์žฅ

๊ณ ๊ธ‰1ํŽธ์€ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์™€ ๋™์‹œ์„ฑ์„ CS ๊ธฐ๋ณธ๊ธฐ๋ถ€ํ„ฐ ์‹ค๋ฌด์— ํ•„์š”ํ•œ ํ™œ์šฉ ๊ธฐ์ˆ ๊นŒ์ง€ ์™„์ „ํžˆ ๋งˆ์Šคํ„ฐํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ณต์žกํ•œ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ๋ฅผ ์ตœ๋Œ€ํ•œ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ๋ฌด๋ ค 270์žฅ์˜ ๊ทธ๋ฆผ์ด ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค!

[์•ž์œผ๋กœ์˜ ๊ณ„ํš]
๊ณ ๊ธ‰ํŽธ์€ 1,2,3ํŽธ์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ถœ์‹œ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
* ๊ณ ๊ธ‰ 1ํŽธ: ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์™€ ๋™์‹œ์„ฑ (7/15)
* ๊ณ ๊ธ‰ 2ํŽธ: I/O, ๋„คํŠธ์›Œํฌ, ๋ฆฌํ”Œ๋ ‰์…˜, ์• ๋…ธํ…Œ์ด์…˜ (10์›” ์ค‘ ์˜ˆ์ •)
* ๊ณ ๊ธ‰ 3ํŽธ: ๋žŒ๋‹ค, ์ŠคํŠธ๋ฆผ, ๋ชจ๋˜ ์ž๋ฐ” (12์›” ์ค‘ ์˜ˆ์ •)

[๊ฐ•์˜ ์†Œ๊ฐœ]

๊น€์˜ํ•œ์˜ ์‹ค์ „ ์ž๋ฐ” - ๊ณ ๊ธ‰ 1ํŽธ, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์™€ ๋™์‹œ์„ฑ

๊ฐ•์˜ ๋ชฉํ‘œ

๋‹จ์ˆœํžˆ ์Šค๋ ˆ๋“œ์˜ ๊ธฐ์ดˆ๋ฅผ ์•„๋Š” ๊ฒƒ์„ ๋„˜์–ด์„œ, ์‹ค๋ฌด์— ํ•„์š”ํ•œ ์ž๋ฐ” ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ๊ธฐ์ˆ ๊ณผ ๋™์‹œ์„ฑ ๋ฌธ์ œ๋ฅผ ์ •๋ง ๊นŠ์ด์žˆ๊ฒŒ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๊ณ , ๋˜ ์‹ค๋ฌด์—์„œ ์ œ๋Œ€๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ฐ€๋ฅด์ณ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ•์˜ ๋‚ด์šฉ

๊ธฐ๋ฐ˜์„ ๋‹ค์ง€๋Š” CS ์ด๋ก  ํ•™์Šต
* ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ
* ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น
* ์Šค์ผ€์ค„๋ง2

์Šค๋ ˆ๋“œ์˜ ๊ธฐ๋ณธ๊ธฐ
* ์Šค๋ ˆ๋“œ ์ œ์–ด
* ์Šค๋ ˆ๋“œ ์ƒ๋ช… ์ฃผ๊ธฐ
* ๋ฉ”๋ชจ๋ฆฌ ๊ฐ€์‹œ์„ฑ, volatile
* synchronized ๋™๊ธฐํ™”
* ReentrantLock - ๊ณ ๊ธ‰ ๋™๊ธฐํ™”
* ์Šค๋ ˆ๋“œ ์ œ์–ด - ๋‹ค์–‘ํ•œ ์˜ˆ์ œ

์Šค๋ ˆ๋“œ์˜ ๊ณ ๊ธ‰ ๊ธฐ์ˆ ๋“ค
* ์ƒ์‚ฐ์ž ์†Œ๋น„์ž ๋ฌธ์ œ
* CAS
* ๋™๊ธฐํ™” ์ปฌ๋ ‰์…˜

์‹ค๋ฌด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ์‹ค์ „ ๊ธฐ์ˆ ๋“ค
* Future์˜ ์ž‘๋™ ์›๋ฆฌ
* ์Šค๋ ˆ๋“œ ํ’€๊ณผ Executor ํ”„๋ ˆ์ž„์›Œํฌ - ์›๋ฆฌ
* ์Šค๋ ˆ๋“œ ํ’€๊ณผ Executor ํ”„๋ ˆ์ž„์›Œํฌ - ์‹ค์ „ ํ™œ์šฉ


[๊ฐ•์˜ ์ „์ฒด ๋ชฉ์ฐจ]

1. ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ ์†Œ๊ฐœ
* ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น๊ณผ ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ
* ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ
* ์Šค๋ ˆ๋“œ์™€ ์Šค์ผ€์ค„๋ง
* ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ

2. ์Šค๋ ˆ๋“œ ์ƒ์„ฑ๊ณผ ์‹คํ–‰
* ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ ๊ตฌ์„ฑ
* ์Šค๋ ˆ๋“œ ์‹œ์ž‘1
* ์Šค๋ ˆ๋“œ ์‹œ์ž‘2
* ๋ฐ๋ชฌ ์Šค๋ ˆ๋“œ
* ์Šค๋ ˆ๋“œ ์ƒ์„ฑ - Runnable
* ๋กœ๊ฑฐ ๋งŒ๋“ค๊ธฐ
* ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ ๋งŒ๋“ค๊ธฐ
* Runnable์„ ๋งŒ๋“œ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•
* ๋ฌธ์ œ์™€ ํ’€์ด
* ์ •๋ฆฌ

3. ์Šค๋ ˆ๋“œ ์ œ์–ด์™€ ์ƒ๋ช… ์ฃผ๊ธฐ1
* ์Šค๋ ˆ๋“œ ๊ธฐ๋ณธ ์ •๋ณด
* ์Šค๋ ˆ๋“œ์˜ ์ƒ๋ช… ์ฃผ๊ธฐ - ์„ค๋ช…
* ์Šค๋ ˆ๋“œ์˜ ์ƒ๋ช… ์ฃผ๊ธฐ - ์ฝ”๋“œ
* ์ฒดํฌ ์˜ˆ์™ธ ์žฌ์ •์˜
* join - ์‹œ์ž‘
* join - ํ•„์š”ํ•œ ์ƒํ™ฉ
* join - sleep ์‚ฌ์šฉ
* join - join ์‚ฌ์šฉ
* join - ํŠน์ • ์‹œ๊ฐ„ ๋งŒํผ๋งŒ ๋Œ€๊ธฐ
* ๋ฌธ์ œ์™€ ํ’€์ด

4. ์Šค๋ ˆ๋“œ ์ œ์–ด์™€ ์ƒ๋ช… ์ฃผ๊ธฐ2
* ์ธํ„ฐ๋ŸฝํŠธ - ์‹œ์ž‘1
* ์ธํ„ฐ๋ŸฝํŠธ - ์‹œ์ž‘2
* ์ธํ„ฐ๋ŸฝํŠธ - ์‹œ์ž‘3
* ์ธํ„ฐ๋ŸฝํŠธ - ์‹œ์ž‘4
* ํ”„๋ฆฐํ„ฐ ์˜ˆ์ œ1 - ์‹œ์ž‘
* ํ”„๋ฆฐํ„ฐ ์˜ˆ์ œ2 - ์ธํ„ฐ๋ŸฝํŠธ ๋„์ž…
* ํ”„๋ฆฐํ„ฐ ์˜ˆ์ œ3 - ์ธํ„ฐ๋ŸฝํŠธ ์ฝ”๋“œ ๊ฐœ์„ 
* yield - ์–‘๋ณดํ•˜๊ธฐ
* ํ”„๋ฆฐํ„ฐ ์˜ˆ์ œ4 - yield ๋„์ž…
* ์ •๋ฆฌ

5. ๋ฉ”๋ชจ๋ฆฌ ๊ฐ€์‹œ์„ฑ
* volatile, ๋ฉ”๋ชจ๋ฆฌ ๊ฐ€์‹œ์„ฑ1
* volatile, ๋ฉ”๋ชจ๋ฆฌ ๊ฐ€์‹œ์„ฑ2
* volatile, ๋ฉ”๋ชจ๋ฆฌ ๊ฐ€์‹œ์„ฑ3
* volatile, ๋ฉ”๋ชจ๋ฆฌ ๊ฐ€์‹œ์„ฑ4
* ์ž๋ฐ” ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ(Java Memory Model)
* ์ •๋ฆฌ

6. ๋™๊ธฐํ™” - synchronized
* ์ถœ๊ธˆ ์˜ˆ์ œ - ์‹œ์ž‘
* ๋™์‹œ์„ฑ ๋ฌธ์ œ
* ์ž„๊ณ„ ์˜์—ญ
* synchronized ๋ฉ”์„œ๋“œ
* synchronized ์ฝ”๋“œ ๋ธ”๋Ÿญ
* ๋ฌธ์ œ์™€ ํ’€์ด
* ์ •๋ฆฌ

7. ๊ณ ๊ธ‰ ๋™๊ธฐํ™” - concurrent.Lock
* LockSupport1
* LockSupport2
* ReentrantLock - ์ด๋ก 
* ReentrantLock - ํ™œ์šฉ
* ReentrantLock - ๋Œ€๊ธฐ ์ค‘๋‹จ
* ์ •๋ฆฌ

8. ์ƒ์‚ฐ์ž ์†Œ๋น„์ž ๋ฌธ์ œ1
* ์ƒ์‚ฐ์ž ์†Œ๋น„์ž ๋ฌธ์ œ - ์†Œ๊ฐœ
* ์ƒ์‚ฐ์ž ์†Œ๋น„์ž ๋ฌธ์ œ - ์˜ˆ์ œ1 ์ฝ”๋“œ
* ์ƒ์‚ฐ์ž ์†Œ๋น„์ž ๋ฌธ์ œ - ์˜ˆ์ œ1 ๋ถ„์„ - ์ƒ์‚ฐ์ž ์šฐ์„ 
* ์ƒ์‚ฐ์ž ์†Œ๋น„์ž ๋ฌธ์ œ - ์˜ˆ์ œ1 ๋ถ„์„ - ์†Œ๋น„์ž ์šฐ์„ 
* ์ƒ์‚ฐ์ž ์†Œ๋น„์ž ๋ฌธ์ œ - ์˜ˆ์ œ2 ์ฝ”๋“œ
* ์ƒ์‚ฐ์ž ์†Œ๋น„์ž ๋ฌธ์ œ - ์˜ˆ์ œ2 ๋ถ„์„
* Object - wait, notify - ์˜ˆ์ œ3 ์ฝ”๋“œ
* Object - wait, notify - ์˜ˆ์ œ3 ๋ถ„์„ - ์ƒ์‚ฐ์ž ์šฐ์„ 
* Object - wait, notify - ์˜ˆ์ œ3 ๋ถ„์„ - ์†Œ๋น„์ž ์šฐ์„ 
* Object - wait, notify - ํ•œ๊ณ„
* ์ •๋ฆฌ

9. ์ƒ์‚ฐ์ž ์†Œ๋น„์ž ๋ฌธ์ œ2
* Lock Condition - ์˜ˆ์ œ4
* ์ƒ์‚ฐ์ž ์†Œ๋น„์ž ๋Œ€๊ธฐ ๊ณต๊ฐ„ ๋ถ„๋ฆฌ - ์˜ˆ์ œ5 ์ฝ”๋“œ
* ์ƒ์‚ฐ์ž ์†Œ๋น„์ž ๋Œ€๊ธฐ ๊ณต๊ฐ„ ๋ถ„๋ฆฌ - ์˜ˆ์ œ5 ๋ถ„์„
* ์Šค๋ ˆ๋“œ์˜ ๋Œ€๊ธฐ
* ์ค‘๊ฐ„ ์ •๋ฆฌ - ์ƒ์‚ฐ์ž ์†Œ๋น„์ž ๋ฌธ์ œ
* BlockingQueue - ์˜ˆ์ œ6
* BlockingQueue - ๊ธฐ๋Šฅ ์„ค๋ช…
* BlockingQueue - ๊ธฐ๋Šฅ ํ™•์ธ
* ์ •๋ฆฌ

10. CAS - ๋™๊ธฐํ™”์™€ ์›์ž์  ์—ฐ์‚ฐ
* ์›์ž์  ์—ฐ์‚ฐ - ์†Œ๊ฐœ
* ์›์ž์  ์—ฐ์‚ฐ - ์‹œ์ž‘
* ์›์ž์  ์—ฐ์‚ฐ - volatile, synchronized
* ์›์ž์  ์—ฐ์‚ฐ - AtomicInteger
* ์›์ž์  ์—ฐ์‚ฐ - ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ
* CAS ์—ฐ์‚ฐ1
* CAS ์—ฐ์‚ฐ2
* CAS ์—ฐ์‚ฐ3
* CAS ๋ฝ ๊ตฌํ˜„1
* CAS ๋ฝ ๊ตฌํ˜„2
* ์ •๋ฆฌ

11. ๋™์‹œ์„ฑ ์ปฌ๋ ‰์…˜
* ๋™์‹œ์„ฑ ์ปฌ๋ ‰์…˜์ด ํ•„์š”ํ•œ ์ด์œ 1 - ์‹œ์ž‘
* ๋™์‹œ์„ฑ ์ปฌ๋ ‰์…˜์ด ํ•„์š”ํ•œ ์ด์œ 2 - ๋™์‹œ์„ฑ ๋ฌธ์ œ
* ๋™์‹œ์„ฑ ์ปฌ๋ ‰์…˜์ด ํ•„์š”ํ•œ ์ด์œ 3 - ๋™๊ธฐํ™”
* ๋™์‹œ์„ฑ ์ปฌ๋ ‰์…˜์ด ํ•„์š”ํ•œ ์ด์œ 4 - ํ”„๋ก์‹œ ๋„์ž…
* ์ž๋ฐ” ๋™์‹œ์„ฑ ์ปฌ๋ ‰์…˜1 - synchronized
* ์ž๋ฐ” ๋™์‹œ์„ฑ ์ปฌ๋ ‰์…˜2 - ๋™์‹œ์„ฑ ์ปฌ๋ ‰์…˜
* ์ •๋ฆฌ

12. ์Šค๋ ˆ๋“œ ํ’€๊ณผ Executor ํ”„๋ ˆ์ž„์›Œํฌ1
* ์Šค๋ ˆ๋“œ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•  ๋•Œ์˜ ๋ฌธ์ œ์ 
* Executor ํ”„๋ ˆ์ž„์›Œํฌ ์†Œ๊ฐœ
* ExecutorService ์ฝ”๋“œ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ
* Runnable์˜ ๋ถˆํŽธํ•จ
* Future1 - ์†Œ๊ฐœ
* Future2 - ๋ถ„์„
* Future3 - ํ™œ์šฉ
* Future4 - ์ด์œ 
* Future5 - ์ •๋ฆฌ
* Future6 - ์ทจ์†Œ
* Future7 - ์˜ˆ์™ธ
* ExecutorService - ์ž‘์—… ์ปฌ๋ ‰์…˜ ์ฒ˜๋ฆฌ
* ๋ฌธ์ œ์™€ ํ’€์ด
* ์ •๋ฆฌ

13. ์Šค๋ ˆ๋“œ ํ’€๊ณผ Executor ํ”„๋ ˆ์ž„์›Œํฌ2
* ExecutorService ์šฐ์•„ํ•œ ์ข…๋ฃŒ - ์†Œ๊ฐœ
* ExecutorService ์šฐ์•„ํ•œ ์ข…๋ฃŒ - ๊ตฌํ˜„
* Executor ์Šค๋ ˆ๋“œ ํ’€ ๊ด€๋ฆฌ - ์ฝ”๋“œ
* Executor ์Šค๋ ˆ๋“œ ํ’€ ๊ด€๋ฆฌ - ๋ถ„์„
* Executor ์ „๋žต - ๊ณ ์ • ํ’€ ์ „๋žต
* Executor ์ „๋žต - ์บ์‹œ ํ’€ ์ „๋žต
* Executor ์ „๋žต - ์‚ฌ์šฉ์ž ์ •์˜ ํ’€ ์ „๋žต
* Executor ์˜ˆ์™ธ ์ •์ฑ…
* ์ •๋ฆฌ

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€