๐ŸŒฑ ์œ„๋‹ˆ Log ๐ŸŒฑ

Stack ์‚ฌ์šฉ์„ ์™œ ์ง€์–‘ํ•ด์•ผ ํ• ๊นŒ?

Stack์„ ์ง€์–‘ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ง์„ ๋“ค์—ˆ์œผ๋‚˜, ๊ทธ ์ด์œ ๋ฅผ ์ •ํ™•ํžˆ ๋ชฐ๋ผ์„œ ํ•™์Šตํ•˜๊ณ ์ž ์ด ๊ธ€์„ ์ž‘์„ฑํ•˜์˜€๋‹ค. ๋“ค์–ด๊ฐ€๊ธฐ ์ „ ์Šคํƒ์˜ ๊ตฌ์กฐ๋Š” ๋ชจ๋‘ ์•Œ๊ณ  ์žˆ๊ฒ ์ง€๋งŒ ํ•œ ๋ฒˆ ๋” ๋ณด์ž! ์Šคํƒ ์Šคํƒ์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ LIFO ํ›„์ž… ์„ ์ถœ๊ตฌ์กฐ๋กœ ๊ฐ€์žฅ ์ตœ๊ทผ(๋งˆ์ง€๋ง‰)์— ๋“ค์–ด๊ฐ„ ๊ฐ’์ด ์ œ์ผ ๋จผ์ € ๋‚˜์˜จ๋‹ค. Stack์„ ์ง€์–‘ํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋กœ๋Š” ์ด 4๊ฐ€์ง€๋กœ ๊ตฌ์„ฑํ•ด ๋ณด์•˜...

Controller, RestController ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅผ๊นŒ?

@Controller, @RestController๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ์•Œ์•„๋ณด์ž~~ @Controller๋Š” ๋ทฐ๋ฅผ ๋ฐ˜ํ™˜ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ModelAndViwe ๊ฐ์ฒด๋‚˜ Model ๊ฐ์ฒด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ณ , ํ…œํ”Œ๋ฆฟ ์—”์ง„์„ ํ†ตํ•ด HTML ๋ทฐ๋ฅผ ๋ Œ๋”๋งํ•œ๋‹ค. ๋งŒ์•ฝ JSON, XML๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ ค๋ฉด @ResponseBody๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ...

Spring๊ณผ Spring Boot ๋™์ž‘์ด ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฑฐ์•ผ~

์›ํ‹ฐ๋“œ ๋ฐฑ์—”๋“œ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด์„œ, ๋‚ด๊ฐ€ ์Šคํ”„๋ง๊ณผ ์Šคํ”„๋ง ๋ถ€ํŠธ์˜ ๋™์ž‘ ํ๋ฆ„์— ๋Œ€ํ•œ ์ฐจ์ด๋ฅผ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฑธ ๊นจ๋‹ฌ์•˜๋‹ค. ์ด์ „ ํšŒ์‚ฌ์—์„œ๋Š” Spring Framework๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ์„ค์ • ๋‹จ๊ณ„์™€ ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ์„ธํŒ…์ด ๊ฝค๋‚˜ ๋ณต์žกํ•ด์„œ ๊ณ ์ƒํ–ˆ๋˜ ๊ธฐ์–ต์ด ์žˆ๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” Spring Boot๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด์„œ ์ดˆ๊ธฐ ์„ค์ •์ด ํ›จ์”ฌ ๊ฐ„ํŽธํ•ด์กŒ๋‹ค๋Š”...

Kafka๋ฅผ ์ด์šฉํ•œ ํ‹ฐ์ผ“ํŒ… ๋Œ€๊ธฐ์—ด ์‹œ์Šคํ…œ ๊ตฌํ˜„ ๋ฐ ์ˆœ๋ฒˆ ์ฒ˜๋ฆฌ

ํ‹ฐ์ผ“ํŒ… ์‹œ์Šคํ…œ์€ ์ˆ˜์ฒœ, ์ˆ˜๋งŒ ๋ช…์ด ๋™์‹œ์— ์ ‘์†ํ•˜๋Š” ์ƒํ™ฉ์„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค. ํŠนํžˆ ํ‹ฐ์ผ“ํŒ… ๋‹น์ผ์—๋Š” ๋ง‰๋Œ€ํ•œ ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€๊ธฐ์—ด ์‹œ์Šคํ…œ์ด ํ•„์š”ํ•˜๋‹ค. ๋˜ํ•œ ์‹ค์‹œ๊ฐ„ ๋Œ€๊ธฐ์—ด ๊ด€๋ฆฌ์™€ ์ˆœ๋ฒˆ ์กฐํšŒ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜๋‹ค. ๋Œ€๊ธฐ์—ด์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์—๋Š” SQS, RabbitMQ, Kafka์™€ ๊ฐ™์€ ํ ์„œ๋น„์Šค๊ฐ€ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ...

CreatedDate, LastModifiedDate ์ด์Šˆ

๋ฌธ์ œ ์‚ฌ์šฉ์ž ํšŒ์›๊ฐ€์ž…์‹œ createdDate, ModifiedDate ๊ฐ’์ด ์ œ๋Œ€๋กœ ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์›์ธ @CreatedDate์™€ @LastModifiedDate๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋Š”๋ฐ, ์œ„์˜ ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” @EnableJpaAuditing, @EntityListeners ์ด ๋‘ ์–ด๋…ธํ…Œ์ด์…˜์„ ์ด์šฉํ•ด ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ํ•ด์•ผ ํ•˜๋Š”๋ฐ ์ด ...

์ขŒ์„ ์„ ์  ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์‹œ ๋™์‹œ์„ฑ ์ฒ˜๋ฆฌํ•˜๊ธฐ

๊ธฐ์กด์˜ ์ด์ปค๋จธ์Šค ์‹œ์Šคํ…œ์€ ๊ฒฐ์ œ ์š”์ฒญ ์ง์ „์— ์žฌ๊ณ  ํ™•์ธ ํ›„ ๋ฝ์„ ๊ฑธ๊ณ  ๊ฒฐ์ œ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ์— ๋ฝ์„ ์งง๊ฒŒ ์žก๋Š”๋‹ค. ํ•˜์ž๋งŒ ํ‹ฐ์ผ“ ์˜ˆ๋งค์˜ ๊ฒฝ์šฐ ์ขŒ์„์„ ์žก๊ณ  ์žˆ๋Š” ์‹œ๊ฐ„์ด ์กด์žฌํ•œ๋‹ค. 7๋ถ„ ๊ฐ€๋Ÿ‰ ์ขŒ์„์„ ์žก๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ทธ ์‹œ๊ฐ„ ์ด๋‚ด์— ๊ฒฐ์ œ๋ฅผ ์™„๋ฃŒํ•ด์•ผ ํ•œ๋‹ค. ๋‘ ์‹œ์Šคํ…œ์˜ ์ฐจ์ด๋Š” ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‹ฌ๋ผ์„œ ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ...

GC(Garbage Collection)๋ž€?

์ž๋ฐ”์—์„œ ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๋“ค์„ ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ œ๊ฑฐํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•œ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ, ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜์™€ ์ด์ค‘ ํ•ด์ œ ๋“ฑ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ จ ๋ฒ„๊ทธ๋ฅผ ์ค„์—ฌ ํ”„๋กœ๊ทธ๋žจ์˜ ์•ˆ์ •์„ฑ์„ ๋†’์ด๋ฉฐ, ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. GC์˜ ๋Œ€์ƒ ๋„๋‹ฌ์„ฑ(Reachability...

JIT ์ปดํŒŒ์ผ๋Ÿฌ?

์ž๋ฐ” ํŒŒ์ผ(.java)์„ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ†ตํ•ด ํด๋ž˜์Šค ํŒŒ์ผ(.class/๋ฐ”์ดํŠธ์ฝ”๋“œ)๋กœ ๋งŒ๋“ ๋‹ค. ์ดํ›„ ์ž๋ฐ” ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ JVM์ด ์ฝ๊ณ  ์‹คํ–‰ํ•œ๋‹ค. ์ž๋ฐ” ๋ฐ”์ดํŠธ ์ฝ”๋“œ JVM์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๋กœ ๋ณ€ํ™”๋‚˜๋œ ์ž๋ฐ” ์†Œ์Šค ์ฝ”๋“œ ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ๋ณ€ํ™˜๋˜๋Š” ์ฝ”๋“œ์˜ ๋ช…๋ น์–ด ํฌ๊ธฐ๊ฐ€ 1 ๋ฐ”์ดํŠธ์—ฌ์„œ ์ž๋ฐ” ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ผ ํ•œ๋‹ค. ์ž๋ฐ” ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋Š” ์ž๋ฐ” ๊ฐ€์ƒ...

HTTP (Hyper Text Transfer Protocol)

์›น์—์„œ ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)์™€ ์„œ๋ฒ„ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ. ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์›น ๋ฆฌ์†Œ์Šค๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค. ๋น„์—ฐ๊ฒฐํ˜•์ด๋ฉฐ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๊ณ , ์š”์ฒญ๊ณผ ์‘๋‹ต์— ์˜ํ•ด ํ†ต์‹ ์ด ์ด๋ฃจ์–ด์ง„๋‹ค. ํŠน์ง• ๋น„์—ฐ๊ฒฐ์„ฑ : ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ์š”์ฒญ, ์‘๋‹ต์ด ์™„๋ฃŒ๋˜๋ฉด ์—ฐ๊ฒฐ์„ ๋Š๋Š”๋‹ค. ๊ฐ ์š”์ฒญ์€ ๋…๋ฆฝ์ ์ด๋ฉด ์ด์ „ ์š”์ฒญ์˜ ์ •๋ณด๋Š” ๋‹ค์Œ ์š”์ฒญ์— ์ „๋‹ฌ๋˜...

๋ฒ„๋ธ” ์ •๋ ฌ Bubble Sort ์•Œ๊ณ ๋ฆฌ์ฆ˜

์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜๋กœ, ์ธ์ ‘ํ•œ ๋‘ ์š”์†Œ๋ฅผ ๋น„๊ตํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ์ž๋ฆฌ๋ฅผ ๊ตํ™˜ํ•˜๋ฉด์„œ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๋™์ž‘ ๋ฐฉ์‹ ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ์™€ ๋‘ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๋น„๊ตํ•œ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๊ฐ€ ๋” ํฌ๋ฉด ๋‘ ์š”์†Œ์™€ ์ž๋ฆฌ๋ฅผ ๋ฐ”๊พผ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‘ ๋ฒˆ์งธ ์š”์†Œ์™€ ์„ธ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๋น„๊ตํ•œ๋‹ค. ์ด ๊ณผ์ •์„ ๋ฐฐ์—ด ๋๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. ํ•œ ๋ฒˆ์˜ ๋ฐ˜๋ณต์ด ...