๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€250

JPA ๊ฐœ๋… ์ •๋ฆฌ JPA ์ฑ…์„ ์ด์ œ ๋ง‰ ๋‹ค ์ฝ์—ˆ๋‹ค. ORM์„ ์ฒ˜์Œ ๊ณต๋ถ€ํ•œ๋‹ค๋Š” ์ƒ๊ฐ์— ๊ธด์žฅ์ด ๋งŽ์ด ๋์ง€๋งŒ, DB ๊ณต๋ถ€๋„ ํ•˜๊ณ , ๊ฐ์ฒด์ง€ํ–ฅ์— ๋Œ€ํ•œ ๊ณต๋ถ€๋ฅผ ์ถฉ๋ถ„ํžˆ ํ•œ ์ƒํƒœ์—ฌ์„œ ๊ทธ๋Ÿฐ์ง€ ์ƒ๊ฐ๋ณด๋‹ค ๊ธฐ์กด์— ์ฝ์—ˆ๋˜ real mysql, ํ† ๋น„์˜ ์Šคํ”„๋ง 3.1๋ณด๋‹ค ์ž˜ ์ฝํ˜”๋‹ค. ๊ธฐ์กด์— database layer๋Š” Mybatis ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ด์šฉํ•ด ๊ตฌํ˜„ํ–ˆ์ง€๋งŒ, ์ด๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. SQL ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์•ž์œผ๋กœ ํ•  ์ผ์ด ๋งŽ์ด ๋‚จ์•˜์œผ๋ฏ€๋กœ, JPA๋กœ์˜ ๋ฆฌํŒฉํ„ฐ๋ง์„ ์Šฌ์Šฌ ์‹œ์ž‘ํ•ด๋ณด์ž. JPA Java Persistence API ์ž๋ฐ” ์ง„์˜์˜ ORM ํ‘œ์ค€ ๊ธฐ์ˆ  ORM Object Relational Mapping ๊ฐ์ฒด์™€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ๋งคํ•‘ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. Hibernate ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ORM ํ”„๋ ˆ์ž„์›Œํฌ JPA ์ธํ„ฐํŽ˜.. 2022. 7. 15.
๋ฆฌํŒฉํ„ฐ๋ง ใ€ŒAuthentication(์ธ์ฆ)ใ€ ํƒœ์–ด๋‚˜์„œ ์ฒ˜์Œ ํšŒ์‚ฌ์— ์ง€์›ํ–ˆ๋‹ค. ์„œ๋ฅ˜๋ฅผ ์—ฌ๋Ÿฌ ๊ตฐ๋ฐ ๋„ฃ์—ˆ๋‹ค. ๋ฒŒ์จ ์„œ๋ฅ˜ ํƒˆ๋ฝ๋งŒ 3๋ฒˆ์งธ์ด๋‹ค. ์„œ๋ฅ˜ ํƒˆ๋ฝ์ด ์ด๋Ÿฐ ๊ธฐ๋ถ„์ด๊ตฌ๋‚˜...ใ…Žใ…Ž ํšŒ์‚ฌ ๊ธฐ์ค€์— ๋ถ€ํ•ฉํ•˜์ง€ ์•Š๋Š” ๋‚ด ์‹ค๋ ฅ๊ณผ ๊ฒฐ๊ณผ๋ฌผ ํƒ“์ด์ง€ ๋ญ. ๋” ์—ด์‹ฌํžˆ ๋‹ค๋“ฌ์–ด์•ผ๊ฒ ๋‹ค. ์„œ๋ฅ˜๋ฅผ ๋‹ค๋“ฌ๋‹ค๊ฐ€ ์ธ์ฆ๊ณผ ์ธ๊ฐ€ ๊ตฌํ˜„ ์ค‘ ์ด์Šˆ๋ฅผ ์ž‘์„ฑํ–ˆ๋˜ ๋ถ€๋ถ„์ด ๋ˆˆ์— ๋„์—ˆ๋‹ค. ์ธ์ฆ๊ณผ ์ธ๊ฐ€... ์Œ... ์ธ๊ฐ€๋Š” ์• ๋…ธํ…Œ์ด์…˜์„ ์ด์šฉํ•ด ์ธํ„ฐ์…‰ํ„ฐ๋กœ ๊ตฌํ˜„ํ•œ ๋ช…ํ™•ํ•œ ๊ทผ๊ฑฐ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ธ์ฆ์€ ์ข€ ์• ๋งคํ–ˆ๋‹ค. JWT ํ† ํฐ์„ ์ธ์ฆํ•˜๋Š” ๋ถ€๋ถ„์€ ๊ตณ์ด ์ธํ„ฐ์…‰ํ„ฐ๊นŒ์ง€ ๋„๋‹ฌํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ์ธ์ฆ ์ž‘์—…์„ ์ธํ„ฐ์…‰ํ„ฐ์—์„œ ํ•„ํ„ฐ๋กœ ๋ฆฌํŒฉํ† ๋ง์„ ์ง„ํ–‰ํ–ˆ๋‹ค. ํ•„ํ„ฐ(Filter)๋ž€? HTTP ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ๊ฑฐ๋ฅธ ๋’ค ์ •์ œํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. Servlet Container ๋‹จ์—์„œ ๋™์ž‘ํ•œ๋‹ค. ์Šคํ”„๋ง ๋ฒ”์œ„ ๋ฐ–์—์„œ ์ฒ˜๋ฆฌ๋œ๋‹ค. Dispathcer.. 2022. 7. 11.
[AWS]๋ž€ ๋ฌด์—‡์ธ๊ฐ€ ์ฝ”๋“œ ์งœ๋˜ ์‹œ์ ˆ๋กœ ๋Œ์•„๊ฐ€๊ณ  ์‹ถ๋‹ค. ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๋Š” ์†Œ๋‚˜ ํ๋ธŒ๋ฅผ ์ ์šฉํ•ด์„œ ์‹ฌ๊ฐํ•œ ์ฝ”๋“œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ํ•˜๋ฃจํ•˜๋ฃจ ์ค„์—ฌ๋‚˜๊ฐ€๊ณ  ์žˆ๋‹ค. ๋ƒ„์ƒˆ๋‚˜๋Š” ์ฝ”๋“œ๋ฅผ ์‹ค์ œ๋กœ ๋งˆ์ฃผํ•˜๋ฉฐ ์†Œ๋‚˜ํ๋ธŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ œ๊ณตํ•ด์ค€ ๊ฐœ์„ ๋œ ์ฝ”๋“œ ์˜ˆ์‹œ๋“ค์„ ๋ณด๋ฉด์„œ ์ข€ ๋” ํด๋ฆฐ ํ•ด์ง€๋Š” ์ฝ”๋“œ๋“ค์„ ๋ณด๋‹ˆ ๋ฆฌํŒฉํ„ฐ๋ง ์š•๊ตฌ๊ฐ€ ํ™œํ™œ ํƒ€์˜ค๋ฅธ๋‹ค. ์ด์ œ ์ธํ”„๋ผ ๊ด€๋ จ๋œ ๋ฐฐํฌ๋ฅผ ํ•ด๋ณผ๊นŒ ์ƒ๊ฐ์ค‘์ด๋‹ค. AWS ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์€ ๋“ค์–ด๋งŒ ๋ณด๊ณ  ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ๋Š” ์•„์˜ˆ ๋ฌธ์™ธํ•œ์ธ๋ฐ, ์ž…๋ฌธํ•˜๊ธฐ๊ฐ€ ์ข€ ์–ด๋ ค์šด ๋ถ„์•ผ์ธ ๊ฒƒ ๊ฐ™๋‹ค. ๋˜ ์„œ๋น„์Šค ์ƒํ’ˆ ์ค‘ ๊ฐ€์žฅ Low ๋ฒ„์ „์ธ lightsail๊ณผ EC2 ์ค‘์— ๊ณ ๋ฏผ์„ ๊ธธ๊ฒŒ ํ–ˆ์—ˆ๋Š”๋ฐ, EC2๋กœ ๋ฐฐํฌํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. AWS (Amazon Web Service)? ์•„๋งˆ์กด์—์„œ ์šด์˜ํ•˜๋Š” Cloud Computing Platform ์•„๋งˆ์กด์ด ์ œ๊ณตํ•˜๋Š” ํด.. 2022. 7. 8.
2022.07.07 [Lv.2 ๊ด„ํ˜ธ ๋ณ€ํ™˜] https://school.programmers.co.kr/learn/courses/30/lessons/60058 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๋ฌธ์ œ ์„ค๋ช… ์นด์นด์˜ค์— ์‹ ์ž… ๊ฐœ๋ฐœ์ž๋กœ ์ž…์‚ฌํ•œ "์ฝ˜"์€ ์„ ๋ฐฐ ๊ฐœ๋ฐœ์ž๋กœ๋ถ€ํ„ฐ ๊ฐœ๋ฐœ์—ญ๋Ÿ‰ ๊ฐ•ํ™”๋ฅผ ์œ„ํ•ด ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ๋ฌธ์ œ์ ์„ ๋ฐœ๊ฒฌํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋ผ๋Š” ์—…๋ฌด ๊ณผ์ œ๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์†Œ์Šค๋ฅผ ์ปดํŒŒ์ผํ•˜์—ฌ ๋กœ๊ทธ๋ฅผ ๋ณด๋‹ˆ ๋Œ€๋ถ€๋ถ„ ์†Œ์Šค ์ฝ”๋“œ ๋‚ด ์ž‘์„ฑ๋œ ๊ด„ํ˜ธ๊ฐ€ ๊ฐœ์ˆ˜๋Š” ๋งž์ง€๋งŒ ์ง์ด ๋งž์ง€ ์•Š์€ ํ˜•ํƒœ๋กœ ์ž‘์„ฑ๋˜์–ด ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ •ํ•ด์•ผ ํ•  ์†Œ์Šค ํŒŒ์ผ์ด ๋„ˆ๋ฌด ๋งŽ์•„์„œ ๊ณ ๋ฏผํ•˜๋˜ "์ฝ˜"์€ ์†Œ์Šค ์ฝ”๋“œ.. 2022. 7. 7.
์Šคํ”„๋ง ๋ถ€ํŠธ ์†Œ๋‚˜ํ๋ธŒ(SonarQube) ์ ์šฉ + PostgreSql ๊ฐˆ์ˆ˜๋ก ์‰ฝ์ง€ ์•Š๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๊ฐ€๋Š” ๊ณผ์ •์—์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ถ€๋ถ„์€ ๊ทนํžˆ ์ผ๋ถ€ ๊ณผ์ •์ž„์„ ๊นจ๋‹ฌ์•˜๋‹ค. ์˜คํžˆ๋ ค ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์‹œ๊ฐ„์ด ๋” ๊ทธ๋ฆฝ๋‹ค. ๋ฆฌํŒฉํ„ฐ๋ง๊ณผ ๊ธฐ์ˆ  ์ ์šฉ ๋ฐ ๋ฒ„์ „ ๋งž์ถค ์ˆ˜์ •์— ์‹œ๊ฐ„์„ ๋” ์Ÿ๋Š” ์š”์ฆ˜์ด๋‹ค. ํด๋ฆฐ ํ•œ ์ฝ”๋“œ๋ฅผ ์œ„ํ•ด ์†์ˆ˜ ๋ฆฌํŒฉํ„ฐ๋ง์„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ •์  ์ฝ”๋“œ ๋ถ„์„ ๋„๊ตฌ๋ž€ ๊ฒƒ์ด ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ SonarQube๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ ์ด๋ฅผ ์ ์šฉํ•ด ๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. ์ •๋ง ์˜ค๋ž˜ ๊ฑธ๋ ธ๊ณ , ์ •ํ™•ํ•˜์ง„ ์•Š์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๋‚˜๋ฆ„๋Œ€๋กœ ์ ์šฉํ–ˆ๋˜ ๊ณผ์ •์„ ์ •๋ฆฌํ•ด๋ณด๊ฒ ๋‹ค. (ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด ๋ฌดํ•œํ•œ ๋Œ“๊ธ€ ๊ฐ์‚ฌํžˆ ๋ฐ›๊ฒ ์Šต๋‹ˆ๋‹ค!) ์ด๊ฒƒ์ด ์™„๋ฃŒ๋œ ํ›„ AWS lightsales, ec2 ์ ์šฉ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•ด๋ณด์•„์•ผ๊ฒ ๋‹ค. ์ •์  ๋ถ„์„ ๋„๊ตฌ ์ฝ”๋“œ์˜ ํ’ˆ์งˆ์— ๋Œ€ํ•ด ๊ณ ๋ คํ•  ๋•Œ ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ์ด๋‹ค. ์ง€์†์ ์ธ .. 2022. 7. 5.
ใ€ŒํŒŒ์ผ ์—…๋กœ๋“œ/๋‹ค์šด๋กœ๋“œ ๋ฐ ํ…Œ์ŠคํŠธใ€ ์ด๋ฒˆ ์ฃผ์— Sonarqube๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ  ์ ์šฉํ•˜๊ธฐ ์ „ ์ „์ฒด์ ์ธ ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ๊ฒ€ํ†  ์ค‘์ด์—ˆ๋‹ค. ๋นผ๋†“์€ ํ•„์ˆ˜์ ์ธ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ์ƒํ’ˆ ํ…Œ์ด๋ธ”์—๋Š” ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ด๋ฆ„ ์นผ๋Ÿผ์ด ์กด์žฌํ•˜๋Š”๋ฐ ์ด๋ฅผ ๊นœ๋ฐ•ํ–ˆ๋˜ ๊ฒƒ์ด๋‹ค. ํŒŒ์ผ ์—…๋กœ๋“œ, ๋‹ค์šด๋กœ๋“œ ๊ธฐ๋Šฅ์„ ๊ธ‰ํ•˜๊ฒŒ ์ ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ์ด ๊ณผ์ •์„ ๊ธฐ๋ก์œผ๋กœ ์ž‘์„ฑํ•˜๊ฒ ๋‹ค. ํŒŒ์ผ ์—…๋กœ๋“œ ํŒŒ์ผ์„ ๋“ฑ๋กํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ํƒ€์ž…์œผ๋กœ ์Šคํ”„๋ง์—์„œ๋Š” MultipartFile ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํŒŒ์ผ ์—…๋กœ๋“œ ๋ฐ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ํŒŒ์ผ ์—…๋กœ๋“œ๋ฅผ ์ด์šฉํ•˜๋Š” ๋‚ด API๋Š” ์ƒํ’ˆ ์ถ”๊ฐ€์™€ ์ˆ˜์ •์ด๋‹ค. ๋จผ์ € ํŒŒ์ผ ์—…๋กœ๋“œํ•  ์œ„์น˜๋ฅผ ๋‚ด๋ถ€ ๊ฒฝ๋กœ์™€ ์™ธ๋ถ€ ๊ฒฝ๋กœ์ค‘ ๊ณ ๋ฏผ์„ ํ–ˆ๋‹ค. ์ €๋ฒˆ ํ”„๋กœ์ ํŠธ ๋•Œ๋Š” ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€๋กœ ์ง€์ •ํ–ˆ์ง€๋งŒ, ์ด๋ ‡๊ฒŒ ํ•˜๊ฒŒ ๋˜๋ฉด ๋ฐฐํฌ ์‹œ ์ด๋ฏธ์ง€ ๊ฒฝ๋กœ๋ฅผ ๋ชป ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. .. 2022. 7. 1.
2022.06.27 ใ€ŒLV.2 ํ•˜๋…ธ์ด์˜ ํƒ‘ใ€ ์—ฌ๋Š ๋•Œ์™€ ๊ฐ™์ด ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ ๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ์žˆ์—ˆ๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณ ๋“์  kit๋ฅผ ์–ด๋Š ์ •๋„ ํ’€์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ํŠน๋ณ„ํ•œ ๊ธฐ์ค€์„ ๋‘๊ณ  ๋ฌธ์ œ๋ฅผ ๊ณ ๋ฅด์ง„ ์•Š๋Š”๋‹ค. ๋ฌธ์ œ๋“ค์„ ๋ณด๋‹ค๊ฐ€ ํ•˜๋…ธ์ด์˜ ํƒ‘์ด๋ผ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ˆˆ์— ๋„์—ˆ๋‹ค. ์›Œ๋‚™์— ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ํ’€์ด๋กœ ์œ ๋ช…ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ํ•œ ๋ฒˆ๋„ ํ’€์–ด๋ณธ ๊ฒฝํ—˜์ด ์—†์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•œ๋ฒˆ ํ’€์–ด๋ณด๊ธฐ๋กœ ๊ฒฐ์‹ฌํ–ˆ๋‹ค. ๊ทผ๋ฐ ์ด๊ฒŒ ์›ฌ๊ฑธ. ์ƒ๊ฐ๋ณด๋‹ค ๋‚ด๊ฐ€ ์žฌ๊ท€์— ๋Œ€ํ•œ ๊ฐœ๋…์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ๊ฑธ ๋Š๋ผ๋ฉด์„œ ํ‘ธ๋Š” ์‹œ๊ฐ„๊ณผ ์ดํ•ดํ•˜๋Š” ์‹œ๊ฐ„์ด ๊ฑฐ์˜ 3์ผ์€ ๊ฑธ๋ ธ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ ๊ฐ™์€ ๋ ˆ๋ฒจ์ด๋ผ๋„ ๋‚œ์ด๋„๋Š” ์ฒœ์ฐจ๋งŒ๋ณ„์ธ๋“ฏํ•˜๋‹ค. ๋‹น์žฅ์— ์นด์นด์˜ค ๊ธฐ์ถœ๋งŒ ๋ณด๋”๋ผ๋„...(๊ธฐ์ค€์ด ๋ญ˜๊นŒ..) ์–ด์ฐŒ ๋๋“  ๊ฒจ์šฐ ์ดํ•ดํ•ด์„œ ๊ทธ ํ’€์ด๊ณผ์ •์„ ๊ธฐ์ˆ ํ•ด๋ณผ ์ƒ๊ฐ์ด๋‹ค. https://programmers.co.kr/learn/courses/3.. 2022. 6. 27.
ใ€Œ์ปจํŠธ๋กค๋Ÿฌ ๋‹จ์œ„ ํ…Œ์ŠคํŠธใ€ https://github.com/GroovyArea/MyChickenBreastShop GitHub - GroovyArea/MyChickenBreastShop: ChikenBreastShop API with Spring boot ChikenBreastShop API with Spring boot. Contribute to GroovyArea/MyChickenBreastShop development by creating an account on GitHub. github.com ์ €๋ฒˆ ์ฃผ์— ์ฒ˜์Œ์œผ๋กœ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ  ์ ์šฉ์‹œํ‚ค๋ฉฐ Spring REST Docs๋ฅผ ์ด์šฉํ•ด ์ ์šฉ์‹œ์ผฐ๋‹ค. ์ฒ˜์Œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋‹ค ๋ณด๋‹ˆ ๋ฏธํกํ•œ ๋ถ€๋ถ„์ด ์ข€ ์žˆ์—ˆ๋‹ค. ๊ทธ ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•ด๊ฐ€๋ฉฐ ๋‹ค๋ฅธ ์ปจํŠธ๋กค๋Ÿฌ์˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€๋กœ ์ž‘์„ฑ.. 2022. 6. 23.
2022.06.22 ใ€ŒLv.2 Jadan Caseใ€ https://programmers.co.kr/learn/courses/30/lessons/12951 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - JadenCase ๋ฌธ์ž์—ด ๋งŒ๋“ค๊ธฐ JadenCase๋ž€ ๋ชจ๋“  ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๊ฐ€ ๋Œ€๋ฌธ์ž์ด๊ณ , ๊ทธ ์™ธ์˜ ์•ŒํŒŒ๋ฒณ์€ ์†Œ๋ฌธ์ž์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ๋‹จ, ์ฒซ ๋ฌธ์ž๊ฐ€ ์•ŒํŒŒ๋ฒณ์ด ์•„๋‹ ๋•Œ์—๋Š” ์ด์–ด์ง€๋Š” ์•ŒํŒŒ๋ฒณ์€ ์†Œ๋ฌธ์ž๋กœ ์“ฐ๋ฉด ๋ฉ๋‹ˆ๋‹ค. (์ฒซ ๋ฒˆ์งธ ์ž…์ถœ๋ ฅ ์˜ˆ ์ฐธ๊ณ  programmers.co.kr ๋ฌธ์ œ ์„ค๋ช… JadenCase๋ž€ ๋ชจ๋“  ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๊ฐ€ ๋Œ€๋ฌธ์ž์ด๊ณ , ๊ทธ ์™ธ์˜ ์•ŒํŒŒ๋ฒณ์€ ์†Œ๋ฌธ์ž์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ๋‹จ, ์ฒซ ๋ฌธ์ž๊ฐ€ ์•ŒํŒŒ๋ฒณ์ด ์•„๋‹ ๋•Œ์—๋Š” ์ด์–ด์ง€๋Š” ์•ŒํŒŒ๋ฒณ์€ ์†Œ๋ฌธ์ž๋กœ ์“ฐ๋ฉด ๋ฉ๋‹ˆ๋‹ค. (์ฒซ ๋ฒˆ์งธ ์ž…์ถœ๋ ฅ ์˜ˆ ์ฐธ๊ณ ) ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, s๋ฅผ JadenCase๋กœ ๋ฐ”๊พผ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ.. 2022. 6. 22.
2022.06.22 ใ€ŒLv.2 N-Queenใ€ ์ด๋ฒˆ ์ฃผ๋Š” ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต์— ๋” ๋ฐ•์ฐจ๋ฅผ ๊ฐ€ํ•ด๋ณผ ๊ณ„ํš์„ ์งฐ๋‹ค. ๋‹ค์Œ ์ฃผ์— ๋ชจ์˜ ํ…Œ์ŠคํŠธ๋ฅผ ๋ณผ ๊ณ„ํš์ด๋ฏ€๋กœ ๋น„์ค‘์„ ์ข€ ๋” ๋‘ฌ๋ด์•ผ๊ฒ ๋‹ค. ์ด๋ฒˆ ๊ธฐํšŒ์— ์ž๋ฃŒ๊ตฌ์กฐ ํ•œ๋ฒˆ ๋” ์ •๋ฆฌํ•ด๋ณผ ๊ณ„ํš๋„ ๊ตฌ์ƒํ–ˆ๋‹ค. https://programmers.co.kr/learn/courses/30/lessons/12952 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - N-Queen ๊ฐ€๋กœ, ์„ธ๋กœ ๊ธธ์ด๊ฐ€ n์ธ ์ •์‚ฌ๊ฐํ˜•์œผ๋กœ๋œ ์ฒด์ŠคํŒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒด์ŠคํŒ ์œ„์˜ n๊ฐœ์˜ ํ€ธ์ด ์„œ๋กœ๋ฅผ ๊ณต๊ฒฉํ•  ์ˆ˜ ์—†๋„๋ก ๋ฐฐ์น˜ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ n์ด 4์ธ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ€ธ์„ ๋ฐฐ์น˜ํ•˜๋ฉด n๊ฐœ์˜ ํ€ธ์€ programmers.co.kr ๋ฌธ์ œ ์„ค๋ช… ๊ฐ€๋กœ, ์„ธ๋กœ ๊ธธ์ด๊ฐ€ n์ธ ์ •์‚ฌ๊ฐํ˜•์œผ๋กœ๋œ ์ฒด์ŠคํŒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒด์ŠคํŒ ์œ„์˜ n๊ฐœ์˜ ํ€ธ์ด ์„œ๋กœ๋ฅผ ๊ณต๊ฒฉํ•  ์ˆ˜ ์—†๋„๋ก ๋ฐฐ์น˜ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ n์ด 4์ธ๊ฒฝ.. 2022. 6. 22.
ใ€Œํ…Œ์ŠคํŠธ ์ฝ”๋“œ & Spring REST Docsใ€ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋Š” ์™„์„ฑ์ด ๋˜์—ˆ๋‹ค. ์ด์ œ๋Š” ์„ธ๋ถ€์ ์ธ ๋””ํ…Œ์ผ์— ์‹ ๊ฒฝ์„ ์“ฐ๋ฉฐ ๋ฆฌํŒฉํ„ฐ๋ง๊ณผ ๊ทธ์— ํ•„์š”ํ•œ ๊ฐœ๋… ์ •๋ฆฌ๋ฅผ ํ•˜๋ฉฐ ํ”„๋กœ์ ํŠธ์— ์ ์šฉ์‹œํ‚ค๊ณ  ์žˆ๋‹ค. REST API๋ฅผ ์ฒ˜์Œ ์„ค๊ณ„ํ•ด ๋ณด์•˜๋Š”๋ฐ, ๋ถ€์กฑํ•œ ์ ์ด ๋งŽ์•˜์ง€๋งŒ ์‹ ์„ ํ•œ ๊ฒฝํ—˜์ด๊ณ  ์งง์€ ๊ธฐ๊ฐ„ ๋‚ด์— ๋ฐฐ์šด ๊ฒƒ์ด ๋งŽ์€ ์„ค๊ณ„ ๊ณผ์ •์ด์—ˆ๋‹ค. API๋ฅผ ์„ค๊ณ„ํ•˜๋ฉด ๊ทธ์— ๋งž๋Š” ๋ช…์„ธ๊ฐ€ ํ•„์š”ํ•œ๋ฐ, ๋ณดํ†ต Swagger๋‚˜ Spring REST Docs ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ด์šฉํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. Swagger๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์• ๋…ธํ…Œ์ด์…˜์„ ์ด์šฉํ•ด ํŽธํ•˜๊ฒŒ ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•  ์ˆœ ์žˆ์ง€๋งŒ, ํ”„๋กœ์ ํŠธ์˜ ํ™•์‹ค์„ฑ๊ณผ ์ •ํ™•์„ฑ์„ ๋’ท๋ฐ›์นจํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ์ด ํ•„์ˆ˜๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— Spring REST Docs๋ฅผ ์ด์šฉํ•˜๊ธฐ๋กœ ์ƒ๊ฐํ•˜๋ฉฐ ์ ์šฉํ•ด๋ณด์•˜๋‹ค. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ํฌ๊ฒŒ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์™€ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ๋‹ค. ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ.. 2022. 6. 20.
2022.06.15 ใ€ŒLv.2 ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉใ€ https://programmers.co.kr/learn/courses/30/lessons/42888 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ ์นด์นด์˜คํ†ก ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ์—์„œ๋Š” ์นœ๊ตฌ๊ฐ€ ์•„๋‹Œ ์‚ฌ๋žŒ๋“ค๊ณผ ๋Œ€ํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋ณธ๋ž˜ ๋‹‰๋„ค์ž„์ด ์•„๋‹Œ ๊ฐ€์ƒ์˜ ๋‹‰๋„ค์ž„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฑ„ํŒ…๋ฐฉ์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ์‹ ์ž…์‚ฌ์›์ธ ๊น€ํฌ๋ฃจ๋Š” ์นด์นด์˜คํ†ก ์˜ค programmers.co.kr ์˜คํ”ˆ ์ฑ„ํŒ…๋ฐฉ ์นด์นด์˜คํ†ก ์˜คํ”ˆ ์ฑ„ํŒ…๋ฐฉ์—์„œ๋Š” ์นœ๊ตฌ๊ฐ€ ์•„๋‹Œ ์‚ฌ๋žŒ๋“ค๊ณผ ๋Œ€ํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋ณธ๋ž˜ ๋‹‰๋„ค์ž„์ด ์•„๋‹Œ ๊ฐ€์ƒ์˜ ๋‹‰๋„ค์ž„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฑ„ํŒ…๋ฐฉ์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ์‹ ์ž…์‚ฌ์›์ธ ๊น€ ํฌ๋ฃจ๋Š” ์นด์นด์˜คํ†ก ์˜คํ”ˆ ์ฑ„ํŒ…๋ฐฉ์„ ๊ฐœ์„คํ•œ ์‚ฌ๋žŒ์„ ์œ„ํ•ด, ๋‹ค์–‘ํ•œ ์‚ฌ๋žŒ๋“ค์ด ๋“ค์–ด์˜ค๊ณ , ๋‚˜๊ฐ€๋Š” ๊ฒƒ์„ ์ง€์ผœ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ด€๋ฆฌ ์ž์ฐฝ์„ ๋งŒ๋“ค๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ฑ„ํŒ…๋ฐฉ์— ๋ˆ„๊ตฐ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ๋‹ค์Œ ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค. "[๋‹‰๋„ค.. 2022. 6. 15.
2022.06.14 ใ€ŒLv.2 ๋ฉ€์ฉกํ•œ ์‚ฌ๊ฐํ˜•ใ€ ๋ฌธ์ œ ์„ค๋ช… ๊ฐ€๋กœ๊ธธ์ด๊ฐ€ Wcm, ์„ธ๋กœ ๊ธธ์ด๊ฐ€ Hcm์ธ ์ง์‚ฌ๊ฐํ˜• ์ข…์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข…์ด์—๋Š” ๊ฐ€๋กœ, ์„ธ๋กœ ๋ฐฉํ–ฅ๊ณผ ํ‰ํ–‰ํ•˜๊ฒŒ ๊ฒฉ์ž ํ˜•ํƒœ๋กœ ์„ ์ด ๊ทธ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๋ชจ๋“  ๊ฒฉ์ž ์นธ์€ 1cm x 1cm ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค. ์ด ์ข…์ด๋ฅผ ๊ฒฉ์ž ์„ ์„ ๋”ฐ๋ผ 1cm × 1cm์˜ ์ •์‚ฌ๊ฐํ˜•์œผ๋กœ ์ž˜๋ผ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ด์—ˆ๋Š”๋ฐ, ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด ์ข…์ด๋ฅผ ๋Œ€๊ฐ์„  ๊ผญ์ง“์  2๊ฐœ๋ฅผ ์ž‡๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ž˜๋ผ ๋†“์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ˜„์žฌ ์ง์‚ฌ๊ฐํ˜• ์ข…์ด๋Š” ํฌ๊ธฐ๊ฐ€ ๊ฐ™์€ ์ง๊ฐ์‚ผ๊ฐํ˜• 2๊ฐœ๋กœ ๋‚˜๋ˆ„์–ด์ง„ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ข…์ด๋ฅผ ๊ตฌํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ด ์ข…์ด์—์„œ ์›๋ž˜ ์ข…์ด์˜ ๊ฐ€๋กœ, ์„ธ๋กœ ๋ฐฉํ–ฅ๊ณผ ํ‰ํ–‰ํ•˜๊ฒŒ 1cm × 1cm๋กœ ์ž˜๋ผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋งŒํผ๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ฐ€๋กœ์˜ ๊ธธ์ด W์™€ ์„ธ๋กœ์˜ ๊ธธ์ด H๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ •์‚ฌ๊ฐํ˜•์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” solutio.. 2022. 6. 14.
OutBox Pattern & Saga Pattern & Transaction ์ง€๋‚œ๋ฒˆ ํฌ์ŠคํŒ…์„ ์ดํ›„๋กœ 3์ผ๊ฐ„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์— ๊ด€ํ•œ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉฐ ๋ฆฌํŒฉํ„ฐ๋ง์„ ์ง„ํ–‰ํ–ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ์˜ ํŠธ๋žœ์žญ์…˜์˜ ๊ณ ๋ ค๋„ ์ถฉ๋ถ„ํžˆ ์ค‘์š”ํ•œ ์„ค๊ณ„ ๊ฐ™๋‹ค. ๊ทธ ๋ฆฌํŒฉํ„ฐ๋ง ๊ณผ์ •์„ ์ •๋ฆฌํ•ด๋ณด๊ฒ ๋‹ค. https://sweeeetgoguma.tistory.com/entry/%E3%80%8COutBox-Pattern%E3%80%8D-%ED%99%9C%EC%9A%A9 ใ€ŒOutBox Patternใ€ ํ™œ์šฉ https://github.com/GroovyArea/MyChickenBreastShop/wiki/Version-1 GitHub - GroovyArea/MyChickenBreastShop: ChikenBreastShop API with Spring boot ChikenBreastShop API with Spring boot... 2022. 6. 13.
ใ€ŒOutBox Patternใ€ ํ™œ์šฉ https://github.com/GroovyArea/MyChickenBreastShop/wiki/Version-1 GitHub - GroovyArea/MyChickenBreastShop: ChikenBreastShop API with Spring boot ChikenBreastShop API with Spring boot. Contribute to GroovyArea/MyChickenBreastShop development by creating an account on GitHub. github.com ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ์ž‘์„ฑํ•œ Wiki ๋ฌธ์„œ์—์„œ ๊ณ„ํšํ•œ ๊ธฐ๋Šฅ์€ ๋‹ค ๊ตฌํ˜„์ด ๋˜์—ˆ๋‹ค. ๊ฒŒ์‹œํŒ, ๋ฐฐ์†ก, ์ฑ„ํŒ… ๊ธฐ๋Šฅ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๋ถ€์ˆ˜์ ์ด๋ฏ€๋กœ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์–•๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๊ธฐ๋Šฅ ํ•˜๋‚˜๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ๊ณ ๋ คํ•˜๋ฉฐ ๊ตฌํ˜„ํ•˜๋Š” .. 2022. 6. 10.
๋ฐ˜์‘ํ˜•