Posts
Q&A
suspend function์ ์ผ์ ์ค๋จ ์ฌ๋ถ๋ ์ด๋ป๊ฒ ๊ฒฐ์ ๋๋์?
์ ๋ Coroutine์ ๋ฐฐ์ฐ๋ ์ ์ฅ์์ ์ด ๋ถ๋ถ์ด ์กฐ๊ธ ํท๊ฐ๋ ธ์ด์ ์ถ๊ฐ์ ์ผ๋ก ๊ธ ์์ฑํด๋ณด๊ฒ ์ต๋๋ค! Kotlin docs์ coroutines ๊ธฐ๋ณธ์ ๋ณด๋ค๋ณด๋ฉด launch์ ๋ํ ์ค๋ช ์ด ๋์ต๋๋ค.https://kotlinlang.org/docs/coroutines-basics.html#your-first-coroutine์ฆ, launch๋ ์๋ก์ด Coroutine ๋ง๋ค์ด๋ ๋๋ค.Coroutine์ ๋๊ฒ ๊ฒฝ๋ ์ฐ๋ ๋๋ผ๊ณ ๋ ํํํ๋๊น ์ฐ๋ ๋๋ก ์์๋ฅผ ๋ค๋ฉด ์ฐ๋ ๋ t1, t2๊ฐ ๊ฒฝํฉํ๋ฉด ์ด๋ค๊ฒ์ด ๋จผ์ ์คํ๋ ๊น์? ์๋ง ํํ๋์ด ๋ง์ํ์ ๊ฒ์ฒ๋ผ OS๋ ๋ด๋ถ ๊ตฌํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ๊ฒ ๊ฐ์ต๋๋ค. ์ ๋ Spring ํ๊ฒฝ์์ ํ ์คํธ๋ฅผ ํด๋ณด๊ณ ์์ด์ ๋ค์๊ณผ ๊ฐ์ ํ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋๋ฐ ์์๋ก delay() ๋ฉ์๋๋ yield()๋ก ์๋ฆฌ์กฐ๋ฆฌ ํด๋ณด๋ฉด ๋ค์ํ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ ์ ์์ด์ ์ดํด๊ฐ ์กฐ๊ธ ํธํ๋๊ฒ ๊ฐ์ต๋๋ค.@Component class CoroutinesLecture1: ApplicationRunner { override fun run(args: ApplicationArguments?) { runBlocking { println("START") launch { newRoutine() } yield() println("END") } } suspend fun newRoutine(){ val num1 = 1 val num2 = 2 println("${num1 + num2}") } }yield๋ก ์์ํ๊ธฐ ๋๋ฌธ์ START -> 3 -> END ๊ฒฐ๊ณผ @Component class CoroutinesLecture1: ApplicationRunner { override fun run(args: ApplicationArguments?) { runBlocking { println("START") launch { newRoutine() } yield() println("END") } } suspend fun newRoutine(){ val num1 = 1 val num2 = 2 delay(50) println("${num1 + num2}") } }yield๋ก ์์ํ์ง๋ง delay ๋ฉ์๋๋ฅผ ๋ง๋ฌ๊ธฐ ๋๋ฌธ์ ์ผ์์ค๋จ๋์ด START -> END -> 3 ๊ฒฐ๊ณผ ๊ธ์ ์์ฑํ๋ค๋ณด๋ ์ ๋ ํ๊ฐ์ง ๊ถ๊ธํ์ ์ด ์๊ฒผ์ ์ง๋ฌธ๋๋ฆฝ๋๋ค!ํ์ฌ๋ ์ฝ๋ฃจํด์ด 2๊ฐ์ฌ์ ์ค๋จ๊ณผ ์ฌ๊ฐ๊ฐ ๋์ ์ ๋ณด์ด๋ ํธ์ด์ง๋ง ๋ง์ฝ ํ์ ์์ ์ฝ๋ฃจํด์ด N๊ฐ ์ด์์ธ ๊ฒฝ์ฐ์์๋ ์ด๋ฐ ๊ณผ์ ๋ค์ด ํ์ ํ๊ธฐ ํ๋ค ๊ฒ ๊ฐ์๋ฐ ์ฝ๋ฃจํด๋ผ๋ฆฌ๋ ํญ์ ๋์์ ์คํ๋ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๊ณ ์ฝ๋๋ฅผ ์์ฑํ๋๋ก ์ปจ๋ฒค์ ๋ฑ์ด ์๋์ง ๊ถ๊ธํฉ๋๋ค! ํ๋ฆฐ์ ๋ณด์ด๊ฑฐ๋ ํท๊ฐ๋ฆฌ๋ ๋ถ๋ถ์์ผ์๋ฉด ๋ง์ํด์ฃผ์ธ์!๋ ์ง์ข์ ๊ฐ์ ์ ๊ณตํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋คใ ใ
- 0
- 2
- 472
Q&A
@RequestMapping ํ์ฉ
์ญ์๋ ์น์ ํ ๋ต๋ณ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด ์ค๋ณต์ ์ ๊ฑฐํ๋๊ฒ์ด ์คํ๋ ค ๋จ์ ์ด ๋ ์ ์๋ ์ํฉ๋ ์กด์ฌํ๋๊ตฐ์ ๋ํ version control diff๋ฅผ ๋ง์ด ๊ณ ๋ คํ์ ๋ค๋๊ฒ ๋๊ปด์ง์๋ค์ ใ ใ ๊ทธ ์ด์ ๊ฐ ํน์ ์ฝ๋๋ฆฌ๋ทฐ๋ฑ์ ์ํํ ๋ ๋ณ๊ฒฝ์ง์ ์ ํ๋์ ์์๋ณด๊ธฐ ์ฝ๊ฒ ํ๋ ค๋ ์๋์ ๊ฐ์?
- 1
- 2
- 592
Q&A
build.gradle๊ณผ ํจํค์ง ๊ด๋ จ ๋ฌธ์
์น์ ํ ๋ต๋ณ๋๋ถ์ ์ดํด๊ฐ ์ ๋์์ต๋๋ค ๋๋ฌด ๊ฐ์ฌ๋๋ฆฝ๋๋คใ ใ
- 2
- 2
- 359
Q&A
constructor ํ๋ ๋ฌธ์
9๊ฐ์์ ์ค๋ช ํด์ฃผ์๋ ๋ด์ฉ์ด์๋๋ฐ ํ๋ฒ ๋ ์ค๋ช ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!!
- 0
- 2
- 434
Q&A
AppConfig์ ์์ฑ์ ๊ด๋ จ ์ง๋ฌธ๋๋ฆฝ๋๋ค
์ํ ๊ทธ๋ ๋ค์ AppConfig๋ด์์ ์์ฑ์๊ฐ ์ฌ์ฉ๋์ด ์์กด์ฑ์ด ์ฃผ์ ๋๋ค์ ๊ฐ์ฌํฉ๋๋ค!!!!
- 1
- 2
- 247
Q&A
HTTP API vs REST API
https://www.youtube.com/watch?v=RP_f5dMoHFc ์์ ์์์ ๋ณด์๋ฉด REST API์ ๋ํด ์ ๋ง ์์ธํ๊ฒ ์ค๋ช ํด์ฃผ์ญ๋๋ค.
- 45
- 7
- 17K