About ๐Ÿ‘€

Hi๐Ÿ‘‹, I'm gemdoq!๐Ÿค—

I am ๐Ÿ‡ฐ๐Ÿ‡ท junior back-end developer
who loves to think a lot

I believe in the strength
of communication and collaboration
And I also hope that my work
will turn the imagination into reality

์ฃผ์–ด์ง„ ์ƒํ™ฉ์—์„œ ์ตœ์„ ์„ ๋‹คํ•˜๊ณ ,
๊ฒฐ๊ตญ์€ ์‹ค๋งˆ๋ฆฌ์™€ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•„๋‚ด๋Š”,
๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๊ฑท๋‹ค๊ฐ€ ๋Œ๋ถ€๋ฆฌ์— ๊ฑธ๋ ค ๋„˜์–ด์ง€๋ฉด ๋ฉˆ์ถฐ์„œ ์ž ๊น ์‰ฌ์–ด๊ฐ€๋”๋ผ๋„,
๊ธˆ์„ธ ๋”›๊ณ  ์ผ์–ด๋‚˜ ์กฐ๊ธˆ์”ฉ์ด๋‚˜๋งˆ ๊พธ์ค€ํžˆ ๊ฑธ์–ด ๋‚˜๊ฐ€๋Š” ์ค‘์ž…๋‹ˆ๋‹ค.

์ตœ๊ทผ ํฌ์ŠคํŠธ

H2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋น ๋ฅธ ์Šคํ”„๋ง๋ถ€ํŠธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

๐Ÿ“Œ ์šฉ์–ด ํ•œ๋ˆˆ์— H2: ๊ฒฝ๋Ÿ‰ ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๊ฐœ๋ฐœ/ํ…Œ์ŠคํŠธ ํŠนํ™” ์ธ๋ฉ”๋ชจ๋ฆฌ: ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ ์ €์žฅ, ๋น ๋ฅธ ์ฒ˜๋ฆฌ JDBC: ์ž๋ฐ”์™€ DB ์—ฐ๊ฒฐ ํ‘œ์ค€ JPA: ๊ฐ์ฒด์™€ DB ๋งคํ•‘ API Hibernate: JPA ๊ตฌํ˜„์ฒด, ๋งคํ•‘ ์ฒ˜๋ฆฌ EntityManager: ์—”...

์Šคํ”„๋ง๋ถ€ํŠธ JPA Query Methods ํ™œ์šฉ

๐Ÿ“Œ ์šฉ์–ด ํ•œ๋ˆˆ์— JPA Query Methods: ๋ฉ”์„œ๋“œ ์ด๋ฆ„์œผ๋กœ ์ฟผ๋ฆฌ ์ž๋™ ์ƒ์„ฑ Spring Data JPA: JPA ๊ฐ„์†Œํ™” ์Šคํ”„๋ง ๋ชจ๋“ˆ Hibernate: JPA ๊ตฌํ˜„์ฒด, ๋งคํ•‘ ์ฒ˜๋ฆฌ EntityManager: ์—”ํ‹ฐํ‹ฐ ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ Repository: ๋ฐ์ดํ„ฐ...

์Šคํ”„๋ง๋ถ€ํŠธ ๊ฐœ๋ฐœ ํ”ํ•œ ์‹ค์ˆ˜์™€ ํ•ด๊ฒฐ์ฑ…

๐Ÿ“Œ ์šฉ์–ด ํ•œ๋ˆˆ์— DI: ์˜์กด์„ฑ ์ฃผ์ž…, ๊ฐ์ฒด ์˜์กด ๊ด€๊ณ„ ์ž๋™ ๊ด€๋ฆฌ JPA: ๊ฐ์ฒด์™€ DB ๋งคํ•‘ API Hibernate: JPA ๊ตฌํ˜„์ฒด, ๊ฐ์ฒด-ํ…Œ์ด๋ธ” ๋งคํ•‘ EntityManager: ์—”ํ‹ฐํ‹ฐ ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ Transaction: DB ์ž‘์—… ๋…ผ๋ฆฌ์  ๋‹จ์œ„ Entity...

์Šคํ”„๋ง๋ถ€ํŠธ๋กœ MySQL ์—ฐ๋™๊ณผ CRUD ๊ตฌํ˜„

๐Ÿ“Œ ์šฉ์–ด ํ•œ๋ˆˆ์— MySQL: ๊ด€๊ณ„ํ˜• DB, ๋ฐ์ดํ„ฐ ์˜๊ตฌ ์ €์žฅ CRUD: ์ƒ์„ฑ, ์กฐํšŒ, ์ˆ˜์ •, ์‚ญ์ œ ์ž‘์—… JPA: ๊ฐ์ฒด์™€ DB ๋งคํ•‘ API Hibernate: JPA ๊ตฌํ˜„์ฒด, ๋งคํ•‘ ์ฒ˜๋ฆฌ EntityManager: ์—”ํ‹ฐํ‹ฐ ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ JDBC: ์ž๋ฐ”์™€ DB ์—ฐ...

JPA ๊ธฐ์ดˆ์™€ ์—”ํ‹ฐํ‹ฐ ๋งคํ•‘ ์ •๋ฆฌ

๐Ÿ“Œ ์šฉ์–ด ํ•œ๋ˆˆ์— JPA: ์ž๋ฐ” ๊ฐ์ฒด์™€ DB ๋งคํ•‘ ํ‘œ์ค€ API ์—”ํ‹ฐํ‹ฐ: DB ํ…Œ์ด๋ธ”๊ณผ ๋งคํ•‘๋˜๋Š” ์ž๋ฐ” ํด๋ž˜์Šค ORM: ๊ฐ์ฒด์™€ ๊ด€๊ณ„ํ˜• DB ์—ฐ๊ฒฐ ๊ธฐ์ˆ  Hibernate: JPA ๊ตฌํ˜„ ORM ํ”„๋ ˆ์ž„์›Œํฌ EntityManager: ์—”ํ‹ฐํ‹ฐ ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ ๊ฐ์ฒด @Enti...

์Šคํ”„๋ง๋ถ€ํŠธ๋กœ ์ด๋ฉ”์ผ ๋ฐœ์†ก ๊ตฌํ˜„ํ•˜๊ธฐ

๐Ÿ“Œ ์šฉ์–ด ํ•œ๋ˆˆ์— JavaMailSender: ์Šคํ”„๋ง์—์„œ ์ด๋ฉ”์ผ ์ „์†ก ์ฒ˜๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค SMTP: ์ด๋ฉ”์ผ ์ „์†ก ํ”„๋กœํ† ์ฝœ, Gmail, Naver ๋“ฑ ์ œ๊ณต application.yml: ์Šคํ”„๋ง๋ถ€ํŠธ ์„ค์ • ํŒŒ์ผ, SMTP ์ •๋ณด ๊ด€๋ฆฌ MimeMessage: HTML, ์ฒจ๋ถ€ํŒŒ์ผ...

์Šคํ”„๋ง๋ถ€ํŠธ ์ปจํ…์ŠคํŠธ์™€ ์‹œํ๋ฆฌํ‹ฐ ํผ์‹œ์Šคํ„ด์Šค ๋น„๊ต

๐Ÿ“Œ ์šฉ์–ด ํ•œ๋ˆˆ์— ApplicationContext: ์Šคํ”„๋ง IoC ์ปจํ…Œ์ด๋„ˆ, ๋นˆ๊ณผ ์˜์กด์„ฑ ๊ด€๋ฆฌ SecurityContextHolder: ์Šค๋ ˆ๋“œ๋ณ„ ๋ณด์•ˆ ์ •๋ณด ์ €์žฅ์†Œ SecurityContext: ์‚ฌ์šฉ์ž ์ธ์ฆ/์ธ๊ฐ€ ์ •๋ณด, SecurityContextHolder๊ฐ€ ๊ด€๋ฆฌ ...

์Šคํ”„๋ง๋ถ€ํŠธ ์‹ฑ๊ธ€ํ†ค ๋นˆ์œผ๋กœ ๋ฆฌ์†Œ์Šค ์ ˆ์•ฝํ•˜๊ธฐ

๐Ÿ“Œ ์šฉ์–ด ํ•œ๋ˆˆ์— ์‹ฑ๊ธ€ํ†ค ๋นˆ: ApplicationContext๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ๋‹จ์ผ ์ธ์Šคํ„ด์Šค ๋ฆฌ์†Œ์Šค: ๋ฉ”๋ชจ๋ฆฌ, CPU ๋“ฑ ์‹œ์Šคํ…œ ์ž์› ์ƒํƒœ ์—†๋Š” ๋นˆ: ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ ์—†์Œ, ์Šค๋ ˆ๋“œ ์•ˆ์ „ ์ƒํƒœ ์žˆ๋Š” ๋นˆ: ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ ์žˆ์Œ, ๋™์‹œ์„ฑ ์ฃผ์˜ ํ”„๋กœํ† ํƒ€์ž… ์Šค์ฝ”ํ”„: ์š”์ฒญ๋งˆ๋‹ค ์ƒˆ ์ธ์Šค...

๋™๊ธฐ์™€ ๋น„๋™๊ธฐ ๊ตฌ๋ถ„ ์ง“๊ธฐ

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

ํ”„๋กœ์„ธ์Šค ์“ฐ๋ ˆ๋“œ ๋ธ”๋กœํ‚น ๋…ผ๋ธ”๋กœํ‚น ํŒŒ์•…ํ•˜๊ธฐ

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

API์™€ RESTful API ํŒŒํ—ค์น˜๊ธฐ

๐Ÿ“Œ ์šฉ์–ด ํ•œ๋ˆˆ์— API: ํ”„๋กœ๊ทธ๋žจ ๊ฐ„ ์†Œํ†ต์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค, ๊ธฐ๋Šฅ๊ณผ ๋ฐ์ดํ„ฐ ์ฃผ๊ณ ๋ฐ›๊ธฐ REST: ์›น ์‹œ์Šคํ…œ ์„ค๊ณ„๋ฅผ ์œ„ํ•œ ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ RESTful API: REST ์›์น™์„ ๋”ฐ๋ผ ์„ค๊ณ„๋œ API HTTP ๋ฉ”์„œ๋“œ: ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ฐ„ ์š”์ฒญ ๋ฐฉ์‹, GET, POST, ...

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ตฌ๋ถ„ ์ง“๊ธฐ

๐Ÿ“Œ ์šฉ์–ด ํ•œ๋ˆˆ์— ํด๋ผ์ด์–ธํŠธ: ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•˜๋Š” ์ชฝ, ์‚ฌ์šฉ์ž๋‚˜ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ ์„œ๋ฒ„: ์š”์ฒญ์„ ๋ฐ›์•„ ์‘๋‹ต์„ ์ œ๊ณตํ•˜๋Š” ์ชฝ, ์‹œ์Šคํ…œ์ด๋‚˜ ํ”„๋กœ๊ทธ๋žจ ์š”์ฒญ: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ๋ณด๋‚ด๋Š” ๋ฐ์ดํ„ฐ๋‚˜ ์ž‘์—… ์ง€์‹œ ์‘๋‹ต: ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์— ๋Œ๋ ค์ฃผ๋Š” ๊ฒฐ๊ณผ ํ”„๋กœ์„ธ์Šค: ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ...

์œ ์ง€๋ณด์ˆ˜์™€ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์˜ ๊ฐ€์น˜

๐Ÿ“Œ ์šฉ์–ด ํ•œ๋ˆˆ์— ์œ ์ง€๋ณด์ˆ˜: ๋ฐฐํฌ ํ›„ ๋ฌธ์ œ ์ˆ˜์ •, ๊ธฐ๋Šฅ ๊ฐœ์„  ์ž‘์—… ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX): ์†Œํ”„ํŠธ์›จ์–ด ์‚ฌ์šฉ ์ค‘ ๋А๋ผ๋Š” ํŽธ์˜์„ฑ๊ณผ ๋งŒ์กฑ๋„ ํ”ผ๋“œ๋ฐฑ: ์‚ฌ์šฉ์ž๊ฐ€ ์ „ํ•˜๋Š” ๋ถˆํŽธํ•จ์ด๋‚˜ ๊ฐœ์„  ์š”์ฒญ ์•„ํ‚คํ…์ฒ˜: ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ตฌ์กฐ, ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ ์ฒด๊ณ„ ์ถฉ์„ฑ ๊ณ ๊ฐ: ๊พธ์ค€ํžˆ ์„œ๋น„์Šค๋ฅผ...

๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ ์•Œ์•„๋ณด๊ธฐ

๐Ÿ“Œ ์šฉ์–ด ํ•œ๋ˆˆ์— ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ: ๋ฐ˜๋ณต์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ํ˜•์‹์ ์ธ ์ฝ”๋“œ, ํ•ต์‹ฌ ๋กœ์ง๊ณผ๋Š” ๋ฌด๊ด€ ์ถ”์ƒํ™”: ๋ณต์žกํ•œ ์ฝ”๋“œ๋ฅผ ๋‹จ์ˆœํ™”, ํ•ต์‹ฌ๋งŒ ๋‚จ๊น€ ํ…œํ”Œ๋ฆฟ: ๋ฏธ๋ฆฌ ์ •์˜๋œ ์ฝ”๋“œ ๊ตฌ์กฐ, ์ผ๊ด€์„ฑ ์œ ์ง€ ์–ด๋…ธํ…Œ์ด์…˜: ์ž๋ฐ”์—์„œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋กœ ์ฝ”๋“œ ๊ฐ„์†Œํ™” ํ”„๋ ˆ์ž„์›Œํฌ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ผˆ๋Œ€,...

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํ”„๋ ˆ์ž„์›Œํฌ, IDE ์ฐจ์ด์  ์ •๋ฆฌ

๐Ÿ“Œ ์šฉ์–ด ํ•œ๋ˆˆ์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: ํŠน์ • ๊ธฐ๋Šฅ์„ ๋ชจ์•„๋‘” ์ฝ”๋“œ ๋ญ‰์น˜, ๋‚ด๊ฐ€ ํ˜ธ์ถœํ•ด์„œ ์“ฐ๋Š” ๋„๊ตฌ ํ”„๋ ˆ์ž„์›Œํฌ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด ๊ตฌ์กฐ๋ฅผ ์žก์•„์ฃผ๋Š” ๋ผˆ๋Œ€, ํ๋ฆ„์„ ์ฃผ๋„ IDE: ์ฝ”๋“œ ์ž‘์„ฑ๋ถ€ํ„ฐ ๋””๋ฒ„๊น…, ๋ฐฐํฌ๊นŒ์ง€ ๋•๋Š” ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

AWS EC2์—์„œ ์Šคํ”„๋ง๋ถ€ํŠธ ์‹คํ–‰ ์‹คํŒจ ๋ฌธ์ œ

AWS EC2์—์„œ ์Šคํ”„๋ง๋ถ€ํŠธ ์‹คํ–‰ ์‹คํŒจ ๋ฌธ์ œ: โ€œCannot find a Java installationโ€ ๐Ÿ—๏ธ ์ดˆ๊ธฐ ์„ค์ • ์„œ๋ฒ„: Amazon Linux 2023 on AWS EC2 ๋ชฉํ‘œ: ์Šคํ”„๋ง๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ ๋ฐฐํฌ (Java 21 ํ•„์š”) ์ง„ํ–‰: dn...

Docker์— ๋Œ€ํ•˜์—ฌ

Docker์— ๋Œ€ํ•˜์—ฌ Container๊ธฐ์ˆ  Docker ์„ค์น˜์™€ ๋ช…๋ น์–ด ์ •๋ฆฌ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ์˜ ๊ฐ์ฒด ์ ‘๊ทผ๋ฒ• ๋‘ ๊ฐ€์ง€, ์ ํ‘œ๊ธฐ๋ฒ• vs ๊ด„ํ˜ธํ‘œ๊ธฐ๋ฒ•์— ๋Œ€ํ•ด

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ์˜ ๊ฐ์ฒด ์ ‘๊ทผ๋ฒ• ๋‘ ๊ฐ€์ง€, ์ ํ‘œ๊ธฐ๋ฒ• vs ๊ด„ํ˜ธํ‘œ๊ธฐ๋ฒ•์— ๋Œ€ํ•ด ๊ฐ์ฒด ์ ‘๊ทผ๋ฒ•์ด๋ž€ ์  ํ‘œ๊ธฐ๋ฒ• ๊ด„ํ˜ธ ํ‘œ๊ธฐ๋ฒ•

MySQL์—์„œ ์ž ๊ธˆ ์ฟผ๋ฆฌ๋กœ ๋™์‹œ ์ ‘๊ทผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด

MySQL์—์„œ ์ž ๊ธˆ ์ฟผ๋ฆฌ๋กœ ๋™์‹œ ์ ‘๊ทผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณต์œ  ๋ฝ ๋ฐฐํƒ€ ๋ฝ MySQL์—์„œ ๊ณต์œ  ๋ฝ๊ณผ ๋ฐฐํƒ€ ๋ฝ ์ฃผ์˜์ 

Code Review๋ฅผ ์ž˜ํ•˜๋Š” ๋ฐฉ๋ฒ•

Code Review๋ฅผ ์ž˜ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ž€ ์ฝ”๋“œ๋ฆฌ๋ทฐ ํ•ต์‹ฌ ์ž‘์„ฑ์ž ๊ด€์  ๋ฆฌ๋ทฐ์–ด ๊ด€์ 

curl์— ๋Œ€ํ•˜์—ฌ

curl์— ๋Œ€ํ•˜์—ฌ curl์ด๋ž€ ์„ค์น˜ ๋ฐ ์ฃผ์š” ์˜ต์…˜ HTTP/HTTPS ๋‹ค์šด๋กœ๋“œ(GET Method) POST/File ์—…๋กœ๋“œ(POST, PUT) PATCH, DELETE ๋ฉ”์„œ๋“œ HTTP ์ธ์ฆ Cookie HTTP He...

gRPC์— ๋Œ€ํ•ด

gRPC์— ๋Œ€ํ•ด RPC์™€ ์Šคํ…(stub) gRPC gRPC์™€ RESTAPI ๋น„๊ต ์žฅ๋‹จ์ 

Heap์ด๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด

Heap์ด๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด heap ์ •์˜ ํž™์„ ๋ฐฐ์—ด๋กœ ๊ตฌํ˜„ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๋กœ ๊นจ์ง„ ํž™์„ ์žฌ๊ตฌ์กฐํ™”ํ•˜๊ธฐ(heapify) ์ฐธ๊ณ  ์ถœ์ฒ˜

JPA์—์„œ Pageable์— ๋Œ€ํ•ด

JPA์—์„œ Pageable์— ๋Œ€ํ•ด ํŽ˜์ด์ง•์ด๋ž€ Spring Data JPA์—์„œ์˜ ํŽ˜์ด์ง•๊ณผ ์ •๋ ฌ ์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ์—์„œ ํŽ˜์ด์ง• ์‚ฌ์šฉํ•˜๊ธฐ ๋ฐ˜ํ™˜ ํƒ€์ž…์— ๋”ฐ๋ฅธ ํŽ˜์ด์ง• ๊ฒฐ๊ณผ Spring Web MVC์—์„œ ๋” ํŽธํ•˜๊ฒŒ ํŽ˜์ด์ง•ํ•˜๊ธฐ

GitHub credentials ์—…๋ฐ์ดํŠธ(mac)

GitHub credentials ์—…๋ฐ์ดํŠธ(mac) keychain access๋กœ ์ž๊ฒฉ ์ฆ๋ช… ์—…๋ฐ์ดํŠธ ๋ช…๋ น์ค„์„ ํ†ตํ•œ ์ž๊ฒฉ ์ฆ๋ช… ์‚ญ์ œ Git์—์„œ GitHub ์ž๊ฒฉ ์ฆ๋ช… ์บ์‹ฑ

CORS์— ๋Œ€ํ•˜์—ฌ

CORS์— ๋Œ€ํ•˜์—ฌ ์ •์˜ ํ•„์š”์„ฑ request์™€ response Access-Control-Allow-Credentials Access-Control-Allow-Origin

IntelliJ ๋‹จ์ถ•ํ‚ค(Mac)

IntelliJ ๋‹จ์ถ•ํ‚ค(Mac) ์ž์ฃผ์“ฐ๋Š” ๋‹จ์ถ•ํ‚ค ๋ฉ”๋ชจ ๋‹จ์ถ•ํ‚ค Visual Studio Code ๊ธฐํƒ€ ๋‹จ์ถ•ํ‚ค

Log4j2 vs Slf4j

Log4j2 vs Slf4j Log4j2 SLF4j(Simple Logging Facade For Java) Log4j2๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ 

Spring Boot ๋ฆฌํŒฉํ† ๋งํ•˜๊ธฐ

Spring Boot ๋ฆฌํŒฉํ† ๋งํ•˜๊ธฐ Raw ํƒ€์ž…์€ ์‚ฌ์šฉํ•˜์ง€ ๋ง์ž Restful API๋Š” ์ž์›๊ณผ ๋ฉ”์†Œ๋“œ๋กœ ํ‘œํ˜„ํ•˜์ž ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ์—๋Š” DTO๋ฅผ ์ด์šฉํ•˜์ž final๊ณผ ํ•จ๊ป˜ ์ƒ์„ฑ์ž ์ฃผ์ž…์„ ์‚ฌ์šฉํ•˜๋ผ Controller๋Š” ์ตœ๋Œ€ํ•œ ๊ฐ€๋ณ๊ฒŒ ๋งŒ๋“ค์–ด...

Spring ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•˜์—ฌ

Spring ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•˜์—ฌ ์˜ฌ๋ฐ”๋ฅธ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ํ•„์š”ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ…Œ์ŠคํŠธ ํŒจํ„ด ํ…Œ์ŠคํŠธ์šฉ ๋ชจ์˜ ๊ฐ์ฒด ํ”„๋ ˆ์ž„์›Œํฌ

Spring Security: (3)Authorization

Spring Security: (3)Authorization ์ •์˜ ์‚ฌ์ „ ํ˜ธ์ถœ ์ฒ˜๋ฆฌ ๊ณ„์ธต์  ์—ญํ• 

ThreadLocal์— ๋Œ€ํ•ด

ThreadLocal์— ๋Œ€ํ•ด ThreadLocal์ด๋ž€? ์‚ฌ์šฉ๋ฒ• ์ฃผ์˜์‚ฌํ•ญ ํ™œ์šฉ

Spring Boot 3.0 ๋ฒ„์ „ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ •๋ฆฌ

Spring Boot 3.0 ๋ฒ„์ „ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ •๋ฆฌ ์š”๊ตฌ์‚ฌํ•ญ ์—…๊ทธ๋ ˆ์ด๋“œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•ต์‹ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ธํ”„๋ผ ์ธก๋ฉด์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ

Spring์—์„œ Transaction์— ๋Œ€ํ•ด

Transaction์— ๋Œ€ํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜์ด๋ž€ ๋ณด์žฅํ•ด์•ผ ํ•˜๋Š” ACID ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€ Spring์—์„œ ํŠธ๋žœ์žญ์…˜ Spring์—์„œ ํŠธ๋žœ์žญ์…˜ ์‚ฌ์šฉ

Persistent Context์— ๋Œ€ํ•˜์—ฌ

Persistent Context์— ๋Œ€ํ•˜์—ฌ Persistent Context๋ž€ ์—”ํ‹ฐํ‹ฐ์˜ ์ƒ๋ช…์ฃผ๊ธฐ(Entity LifeCycle) ์‚ฌ์šฉ ์ด์œ 

JPA์— ๋Œ€ํ•˜์—ฌ

JPA์— ๋Œ€ํ•˜์—ฌ ORM์ด๋ž€ JPA๋ž€ ๋™์ž‘ ๊ณผ์ • ์‚ฌ์šฉ ์ด์œ  ์ง€์—ฐ ๋กœ๋”ฉ vs ์ฆ‰์‹œ ๋กœ๋”ฉ

Vim์— ๋Œ€ํ•˜์—ฌ

Vim์— ๋Œ€ํ•˜์—ฌ Vim์ด๋ž€ ์‚ฌ์šฉ๋ฒ• ๋‹จ์ถ•ํ‚ค ์œ ์šฉํ•œ ์‚ฌ์ดํŠธ

Web Servlet์ด๋ž€

Servlet์ด๋ž€ Web Service์˜ ๊ธฐ๋ณธ์ ์ธ ๋™์ž‘ ๊ณผ์ • HTML Form Servlet

Web Server์™€ WAS

Web Server์™€ WAS Static Pages์™€ Dynamic Pages Web Server WAS ๊ตฌ๋ถ„ํ•˜๋Š” ์ด์œ 

Spring Framework๋ž€

Spring Framework ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ vs ํ”„๋ ˆ์ž„์›Œํฌ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋ž€

ํ”„๋กœ์„ธ์Šค์™€ ์“ฐ๋ ˆ๋“œ์˜ ์ฐจ์ด

Process์™€ Thread ํ”„๋กœ๊ทธ๋žจ ํ”„๋กœ์„ธ์Šค ์“ฐ๋ ˆ๋“œ ์ž๋ฐ” ์“ฐ๋ ˆ๋“œ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค์™€ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ์ฐจ์ด ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค ๋Œ€์‹  ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

TDD(Test Driven Development)

TDD(Test Driven Development)๋ž€ ๋ฌด์—‡์ผ๊นŒ TDD์˜ ์ •์˜(Definition of Test Driven Development) TDD์˜ ํšจ๊ณผ(The Effect of Test Driven Development) TDD์˜ ์žฅ๋‹จ์ (Adv...

๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ(Daily Scrum)

๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ(Daily Scrum)์ด ๋ฌด์—‡์ผ๊นŒ ๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ ์ •์˜(Daily Scrum Definition) ๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ ์žฅ์ ๊ณผ ๋ชฉ์ (Advantages and Objectives of Daily Scrum)

์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก (Agile Methodology)

์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก (Agile Methodology)์ด ๋ฌด์—‡์ผ๊นŒ ์• ์ž์ผ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ(Appearance Background) ์• ์ž์ผ ์ •์˜(Agile Definition) ์• ์ž์ผ ํ•ต์‹ฌ ๊ฐ€์น˜(Agile Core Value) SW ๊ฐœ๋ฐœ์˜ ๋ถˆํ™•์‹ค์„ฑ๊ณผ ์‚ฌ์—…์  ๊ฐ€...

Git Add, Commit, Push ์ทจ์†Œ

์‹ค์ˆ˜๋กœ Git Add, Commit, Pushํ•œ ๋‚ด์šฉ ์ทจ์†Œ git add ์ทจ์†Œ git commit ์ทจ์†Œ git push ์ทจ์†Œ untracked ํŒŒ์ผ ์‚ญ์ œ

GitHub๋กœ ํ˜‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•

GitHub๋กœ ํ˜‘์—…ํ•  ๋•Œ ์•Œ์•„๋‘ฌ์•ผ ํ•  ๊ฒƒ ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ๊ฐœ๋… GitHub๋กœ ํ˜‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ด์œ 

ํ˜‘์—…ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” Git Branch

ํ˜‘์—…ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” Git Branch์˜ ์ข…๋ฅ˜ Gitflow Workflow์—์„œ ์‚ฌ์šฉํ•˜๋Š” Git Branch ์ข…๋ฅ˜๋ฅผ ์ดํ•ดํ•œ๋‹ค. Gitflow Workflow์—์„œ ์‚ฌ์šฉํ•˜๋Š” Git Branch ์‚ฌ์šฉ๋ฒ•์„ ์ดํ•ดํ•œ๋‹ค.

Github์— ์ž˜๋ชป ์˜ฌ๋ผ๊ฐ„ ํŒŒ์ผ ์‚ญ์ œํ•˜๊ธฐ

GitHub์— ์ž˜๋ชป ์˜ฌ๋ฆฐ ํŒŒ์ผ ์‚ญ์ œํ•˜๊ธฐ GitHub pages๋ฅผ ๋งŒ๋“ค ๋•Œ ์˜ฌ๋ฆด ํ•„์š”๊ฐ€ ์—†๋Š” ํŒŒ์ผ์„ remote origin์— pushํ•œ ๊ฒฝ์šฐ remote origin์— ์ž˜๋ชป ์˜ฌ๋ผ๊ฐ„ ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ณ  .gitignore์— ๋“ฑ๋กํ•ด ๋ฌด์‹œํ•˜๊ณ  ๋‹ค์‹œ pushํ•œ๋‹ค

Bundler ๊ฐœ๋…

Bundler ๊ฐœ๋… ๋ฒˆ๋“ค๋Ÿฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด์กŒ๋‚˜ ๋ฒˆ๋“ค๋Ÿฌ์˜ ์—ญํ•  ๋ฒˆ๋“ค๋Ÿฌ์˜ ์žฅ์ 

๋ธ”๋กœ๊ทธ ํ™œ์šฉ ๋ฐฉ๋ฒ•

๋ธ”๋กœ๊ทธ(GitHub Pages) ํ™œ์šฉ ๋ฐฉ๋ฒ• GitHub pages๋ฅผ ๊พธ๋ฏธ๊ณ  ๊ฐ ์š”์†Œ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๋“ค ์ •๋ฆฌ ํฌ์ŠคํŒ…ํ•  ๋•Œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ์ •๋ฆฌ