๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

Spring45

Spring Batch (3) DB ์Šคํ‚ค๋งˆ ๐Ÿ“Œ ํ•ด๋‹น ํฌ์ŠคํŒ…์˜ ๋ชฉํ‘œ Spring Batch DB ์Šคํ‚ค๋งˆ ๋ถ„์„ ๐Ÿ“Œ Spring Batch DB ์Šคํ‚ค๋งˆ ์ง€๋‚œ ์‹œ๊ฐ„์—๋Š” Spring Batch์˜ ๊ฐœ์š” ๋ฐ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ, ์„ธํŒ… ๋ฐ ๊ฐ„๋‹จํ•œ Job ์‹คํ–‰์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” Spring Batch์˜ Meta Data Schema์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Meta Data Schema ์Šคํ”„๋ง ๋ฐฐ์น˜์˜ ์‹คํ–‰ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ๋“ค(Job, Step, JobParameters ๋“ฑ)์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅ, ์—…๋ฐ์ดํŠธ, ์กฐํšŒ ๋“ฑ์˜ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํ‚ค๋งˆ ์ œ๊ณต ๊ณผ๊ฑฐ ๋ฐ ํ˜„์žฌ์˜ Batch ์‹คํ–‰์— ๋Œ€ํ•œ ์ •๋ณด(์„ฑ๊ณต, ์‹คํŒจ ์—ฌ๋ถ€)๋ฅผ ๊ด€๋ฆฌํ•จ์œผ๋กœ์„œ ๋ฐฐ์น˜์šด์˜ ๋ฐ ์žฅ์• ์™€ ๊ด€๋ จ๋œ ๋Œ€์ฒ˜ ๊ฐ€๋Šฅ DB์™€ ์—ฐ๋™ํ•  ๊ฒฝ์šฐ ํ•„์ˆ˜์ ์œผ๋กœ ๋ฉ”ํƒ€ ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋˜์–ด์•ผ ํ•จ DB ์Šคํ‚ค.. 2022. 10. 30.
Spring Batch (2) ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ ๋ฐ ์˜์กด์„ฑ ์„ค์ •, Hello World ๐Ÿ“Œ ํ•ด๋‹น ํฌ์ŠคํŒ…์˜ ๋ชฉํ‘œ Spring Batch ํ”„๋กœ์ ํŠธ ์„ค์ • Spring Batch ์„ค์ • ๋‚ด๋ถ€ Spring Batch Hello World ๐Ÿ“Œ Spring Batch ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ์€ IntelliJ, Java 11, Gradle, MySQL(Docker), H2, Spring Boot, Batch ๋“ฑ์„ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. (ํ”„๋กœ์ ํŠธ ์„ค์ • ๊ด€๋ จ ์„ค๋ช…์€ ์—†์œผ๋‹ˆ GitHub๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.) ๐Ÿ“Œ Spring Batch ์˜์กด์„ฑ ์„ค์ • ์Šคํ”„๋ง ๋ฐฐ์น˜๋ฅผ ์ž‘๋™์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋ฉ”์ธ ํด๋ž˜์Šค์— @EnableBatchProcessing ์–ด๋…ธํ…Œ์ด์…˜์„ ์„ ์–ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;.. 2022. 10. 29.
Spring Batch (1) ๊ฐœ์š” ํšŒ์‚ฌ์—์„œ Spring Batch ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๊ฐ€ ์•„๋‹Œ, ๋‹จ์ˆœ 1ํšŒ์„ฑ ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ ˆ๊ฑฐ์‹œ ํ”„๋กœ์ ํŠธ๋ฅผ Spring Batch ํ”„๋กœ์ ํŠธ๋กœ ์กฐ๊ธˆ์”ฉ ์ด๊ด€ํ•˜๊ณ  ์žˆ๋Š”๋ฐ์š”, ๊ธฐ์กด์— ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ํŒŒ์•…ํ•œ ํ›„ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋‹ค๋ณด๋‹ˆ Spring Batch์˜ ์‚ฌ์ƒ์ด๋‚˜ ๊ฐœ๋…, ์œ ์šฉํ•œ ๊ธฐ๋Šฅ(skip, retry, chunk, listener ๋“ฑ๋“ฑ)๋“ค์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์ง€ ๋ชปํ•œ์ฑ„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Spring Batch ํ”„๋กœ์ ํŠธ์˜ ๋ฐฐ๊ฒฝ๋ถ€ํ„ฐ ๊ฐœ๋…, ์šฉ์–ด, ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ ๋“ฑ๋“ฑ์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜์—ฌ ํ•™์Šตํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ํฌ์ŠคํŒ…์˜ ๋ชฉํ‘œ Spring Batch ์†Œ๊ฐœ Spring Batch ๋ฐฐ๊ฒฝ Spring Batch ์•„ํ‚คํ…์ฒ˜ Spring Batch ๊ตฌ.. 2022. 10. 28.
Spring + MyBatis์—์„œ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ์™€ ๊ฐ์ฒด๊ฐ€ ๋งคํ•‘์ด ๋˜๋Š” ๊ณผ์ • ๐Ÿงท Spring + MyBatis์—์„œ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ์™€ ๊ฐ์ฒด๊ฐ€ ๋งคํ•‘์ด ๋˜๋Š” ๊ณผ์ • ์Šคํ”„๋ง์—์„œ ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, Select ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ์™€ ๊ฐ์ฒด(Dto)๊ฐ€ ์–ด๋– ํ•œ ์ž‘์—…์„ ํ†ตํ•ด ๋งคํ•‘์ด ๋˜๋Š”์ง€ ์ •ํ™•ํ•˜๊ฒŒ ํŒŒ์•…ํ•˜๊ณ  ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•ด ๋งคํ•‘ ๊ณผ์ •์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. (๋‹น์—ฐํžˆ ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ํ”ผ๋“œ๋ฐฑ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜‚) ๐ŸŒˆ ๊ฐœ์š” Spring๊ณผ MyBatis์—์„œ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์™€ ๊ฐ์ฒด์˜ ๋งคํ•‘์ด ์ด๋ฃจ์–ด์ง€๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด ์‚ดํŽด๋ด…๋‹ˆ๋‹ค. ์ด์™€ ๊ด€๋ จํ•˜์—ฌ ์–ด๋– ํ•œ ๋ฐฉ์‹์œผ๋กœ ๋งคํ•‘์„ ์ง„ํ–‰ํ•˜๋Š”์ง€, ์ข‹์€ ๋ฐฉ๋ฒ•์ด ๋ฌด์—‡์ธ์ง€ ๋“ฑ์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ”– ๊ฒฐ๋ก  ํฌ์ŠคํŒ…์ด ๊ฝค๋‚˜ ์žฅ๋ฌธ์ด๊ธฐ์—,, ๋งคํ•‘ ๊ณผ์ •์— ๋Œ€ํ•ด ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋ง์”€๋“œ๋ฆฌ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์ƒ์„ฑ์ž(NoArgs)๋งŒ ์กด์žฌํ•  ๊ฒฝ์šฐ, ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์™€ ๊ฐ์ฒด์˜ ๋งคํ•‘์ด ์ •์ƒ์ ์œผ๋กœ ์ง„.. 2022. 10. 3.
JUnit5 assertThat vs assertAll vs assertSoftly ๐Ÿ“Ž JUnit5 assertThat vs assertAll vs assertSoftly ํ‰์†Œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ assertThat ํ˜น์€ assertAll ๋‚ด๋ถ€์— assertThat์„ ์ž‘์„ฑํ–ˆ์—ˆ๋Š”๋ฐ์š”, ์ด๋ฒˆ์— SoftAssertions์˜ assertSoftly๋ผ๋Š” ๊ฒ€์ฆ ๋ฉ”์†Œ๋“œ๋ฅผ ์•Œ๊ฒŒ๋˜์–ด ๊ฐ„๋žตํžˆ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ˜€ โœ๏ธ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.SoftAssertions.assertSoftly; import static org.junit.jupiter.api.Assertions.ass.. 2022. 9. 17.
Spring Boot profiles ์„ค์ •ํ•˜๊ธฐ ๐Ÿ“Ž Spring Boot profiles ์„ค์ •ํ•˜๊ธฐ ์•ˆ๋…•ํ•˜์„ธ์š”, ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ์—์„œ ์—ฌ๋Ÿฌ profile์„ ์„ค์ •ํ•˜๊ณ , ์„ค์ • ๊ฐ’๋“ค์„ ๊ฐ์ฒด์— ๋ฐ”์ธ๋”ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๊ณ  ์šด์˜์„ ํ•˜๋‹ค๋ณด๋ฉด ๊ฐœ๋ฐœ(dev), ํ…Œ์ŠคํŠธ(stage), ์•ŒํŒŒ(alpha), ์ƒ์šฉ(prod) ๋“ฑ ์šด์˜ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ์„œ๋ฒ„๋‚˜ ์„ค์ • ๊ฐ’๋“ค์ด ์—ฌ๋Ÿฌ๊ฐœ๋กœ ๋‚˜๋‰  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”, ์Šคํ”„๋ง ๋ถ€ํŠธ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์„ค์ •์„ ๊ฐ„๋‹จํžˆ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํฌ์ŠคํŒ…์—์„œ๋Š” yml ํŒŒ์ผ์„ ๊ธฐ์ค€์œผ๋กœ ์„ค์ •์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿคฏ ๐Ÿ“Ž yml ํŒŒ์ผ ์ž‘์„ฑํ•˜๊ธฐ resource ํ•˜์œ„ ํด๋”์— ์ž‘์„ฑํ•  yml ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๐Ÿ“ application.yml spring: profiles: active: - local group: local: - site.. 2022. 9. 5.
Spring Thread, Transaction, Connection ๊ด€๊ณ„ ๐Ÿ“Ž Spring Thread, Transaction, Connection ๊ด€๊ณ„ ์•ˆ๋…•ํ•˜์„ธ์š”, ์ตœ๊ทผ ํ† ๋น„์˜ ์Šคํ”„๋ง ๋„์„œ๋กœ ์Šคํ„ฐ๋”” ์ค‘ ์•„๋ž˜์™€ ๋น„์Šทํ•œ ์งˆ๋ฌธ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. "ํŠธ๋žœ์žญ์…˜์ด ์ƒˆ๋กœ ์ƒ์„ฑ๋  ๋•Œ ์Šค๋ ˆ๋“œ๊ฐ€ ์ƒˆ๋กœ ์ƒ์„ฑ๋ ๊นŒ์š”?" ์ด์™€ ๊ด€๋ จํ•˜์—ฌ ์•„๋ž˜์˜ ๊ด€๊ณ„๋“ค์— ๋Œ€ํ•ด ๊ฐ„๋žตํžˆ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. (๊ด€๋ จ ์ฝ”๋“œ๋Š” GitHub์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ ) Thread per transaction vs One thread for serveral transaction Thread per connection vs One thread for all connections ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์—์„œ๋Š” ํ”ผ๋“œ๋ฐฑ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜‚ (โ€ป ํ•ด๋‹น ํฌ์ŠคํŒ…์€ https://truehong.tistory.com/14.. 2022. 9. 3.
Spring Data MongoDB Array field $elemMatch(MongoRepository Custom) ๐Ÿ“Ž MongoRepository Custom ๋ฐ $elemMatch ์‚ฌ์šฉํ•˜๊ธฐ ์ตœ๊ทผ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ MongoDB๋ฅผ ์ฒ˜์Œ์œผ๋กœ ์‚ฌ์šฉํ•ด๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ๋กœ์ง์€ Query Method๋‚˜ @Query ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ๊ฐ„๋‹จํ•œ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€์œผ๋‚˜, MongoDB์˜ ๊ฒฝ์šฐ ๋ฌธ๋ฒ•์— ์ต์ˆ™์น˜ ์•Š๋‹ค๋ณด๋‹ˆ ์ง์ ‘ Repository๋ฅผ ์ปค์Šคํ…€์œผ๋กœ ์ƒ์„ฑํ•ด์„œ ๊ด€๋ฆฌํ•˜๋Š”๊ฒŒ ๋ณด๋‹ค ํŽธ๋ฆฌํ•  ๋“ฏ ํ•˜์—ฌ ์ปค์Šคํ…€ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ ์•ฝ๊ฐ„ ์‚ฝ์งˆ์„ํ–ˆ๋˜ Query ๋ฐ Criteria, $elemMatch๋ฅผ ํ†ตํ•ด MongoDB์—์„œ Array field๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋„ ์ถ”๊ฐ€์ ์œผ๋กœ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  QueryDSL์„ ์ ์šฉํ•˜๋ฉด ์ข€ ๋” ํŽธํ•˜๊ฒŒ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ ๊ฐ™์œผ๋‚˜, ์ถ”ํ›„ ๋ณ€๊ฒฝ.. 2022. 8. 20.
Spring Boot SQL ์„ค์ •(hibernate, logging) ๐Ÿ“Ž Spring Boot SQL ์„ค์ •(hibernate, logging) ์•ˆ๋…•ํ•˜์„ธ์š”, Spring Boot์˜ hibernate SQL ์„ค์ •์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ์šด์˜์„ ํ•˜๋‹ค๋ณด๋ฉด ์ˆ˜ํ–‰๋œ ์ฟผ๋ฆฌ๋ฌธ์— ๋Œ€ํ•ด ํŒŒ์•…ํ•˜๊ณ , DB์—์„œ ๊ฒฐ๊ณผ๊ฐ’์„ ํ™•์ธํ•˜๊ณ  ์‹ถ์„๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ, ๋กœ๊ทธ ํŒŒ์ผ์— ์ฟผ๋ฆฌ๋ฌธ์ด ์ €์žฅ์ด ๋˜์–ด์žˆ๋‹ค๋ฉด, ํ•ด๋‹น ์ฟผ๋ฆฌ๋ฌธ์„ ๋ณต๋ถ™ํ•˜์—ฌ ๊ฐ„๋‹จํžˆ ๊ฒฐ๊ณผ๊ฐ’์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋ชจ๋“  ์ฟผ๋ฆฌ๋ฌธ์— ๋Œ€ํ•ด ๋กœ๊ทธ ํŒŒ์ผ์— ์ €์žฅํ•œ๋‹ค๋ฉด ์šฉ๋Ÿ‰ ๋“ฑ์˜ ์ด์Šˆ๊ฐ€ ์žˆ์„์ˆ˜๋„ ์žˆ๊ฒ ์ฃ ? ํŠนํžˆ ๋ณต์žกํ•˜๊ฒŒ ์ˆ˜ํ–‰๋˜๋Š” ์ฟผ๋ฆฌ๋ฌธ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ์— ์กด์žฌํ•  ๋•Œ, ์ด๋ฅผ ํ•˜๋‚˜์”ฉ ๋ถ„์„ํ•˜์—ฌ DB์—์„œ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ๊ฒฐ๊ณผ๊ฐ’์„ ํ™•์ธํ•˜๊ธฐ์—๋Š” ๊ฝค๋‚˜ ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—…์ด ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ์š” ์ด๋Ÿด๋•Œ ๊ต‰์žฅํžˆ ํŽธํ•˜๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. StringBuilder sb.. 2022. 3. 12.
Spring AOP - (2) AOP ๊ฐœ๋… ๋ฐ ์‹ค์Šต ๐Ÿ“Ž ๊ธ€๋˜ 6๊ธฐ ํฌ์ŠคํŒ… 1. ๋ฏธ์น˜๋„๋ก ๋”์› ๋˜ 7์›”์˜ ํšŒ๊ณ  2. ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒŒ์‹œ๋ฌผ์„ ์ž‘์„ฑํ•  ๋•Œ์˜ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ 3. Spring AOP - (1) ํ”„๋ก์‹œ ํŒจํ„ด, ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด 4. [MySQL] - ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(Isolation level) 5. Spring AOP - (2) AOP ๊ฐœ๋… ๋ฐ ์‹ค์Šต 6. ์ธํ…”๋ฆฌ์ œ์ด(IntelliJ) - ๋””๋ฒ„๊น…(Debugging) ํ•˜๊ธฐ 7. [Java, ๋””์ž์ธํŒจํ„ด] - ์‹ฑ๊ธ€ํ„ด ํŒจํ„ด(Singleton Pattern) 8. ์›”๊ฐ„ ์ฝ”๋“œ๋ฆฌ๋ทฐ Ver_0.1: ์ปค๋ฆฌ์–ด ์„ฑ์žฅ CODE ์„ธ๋ฏธ๋‚˜ ์ •๋ฆฌ 9. ํฌ์ŠคํŠธ๋งจ(API ํ…Œ์ŠคํŠธ) ํ™œ์šฉํ•˜๊ธฐ 10. ๋œป๊นŠ์€ 2021๋…„ ํšŒ๊ณ  ๐Ÿ“Ž Spring AOP(Aspect Oriented Programming) ํฌ์ŠคํŒ…์— ์ž‘์„ฑํ•œ ์˜ˆ์ œ ์ฝ”๋“œ๋Š” ๊นƒํ—ˆ๋ธŒ์—์„œ ํ™•์ธ.. 2021. 9. 24.
๋ฐ˜์‘ํ˜•