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

๐Ÿ“• Spring Framework/Spring Project45

2022.05.20 ใ€Š์Šคํ”„๋ง ๋ถ€ํŠธ ๊ถŒํ•œ ์ฒ˜๋ฆฌใ€‹ ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ ์ค‘์ด๋‹ค. jwt๋ฅผ ์ด์šฉํ•œ ์ธ์ฆ์€ ๋‹ค ๋๋‚ฌ๊ณ  ์ธ๊ฐ€ ์ž‘์—…๋งŒ ๋‚จ์•˜๋‹ค. ๋Œ€๋ถ€๋ถ„ ์Šคํ”„๋ง ์„œํ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ถŒํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š”๋“ฏํ•˜๋‹ค. ๋‚˜๋Š” ์ผ๋‹จ ์„œํ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์งœ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ๋ฏผ์„ ์ข€ ๋งŽ์ด ํ•ด๋ดค๋‹ค. ๊ฒฐ๋ก ์„ ๋‚ด๋ฆฌ์ž๋ฉด ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ์ด์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์‹ฌํ–ˆ๋‹ค. ๊ด€๋ฆฌ์ž์ธ์ง€ ํšŒ์›์ธ์ง€ ์ธ์ฆ์ด ํ•„์š”ํ•œ ์ž‘์—…์ด๋“ ์ง€ ์ค‘๋ณต๋˜๋Š” ๋กœ์ง์ด ๋„ˆ๋ฌด ๋งŽ์•„์ง€๋ฏ€๋กœ ์ด๊ฒƒ์€ ์ธํ„ฐ์…‰ํ„ฐ์—์„œ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „์— ์ธ๊ฐ€ ์ž‘์—…์„ ํ•ด์ค˜์•ผ ํ•˜๋Š” ๊ฒƒ์ด ์ฃผ๋œ ์ด์œ ๋‹ค. ํ•œ๋ฒˆ ํ•ด๋ณด์ž~ => ์ „๋ฐ˜์ ์ธ ๊ณ„ํš ์ž‘์„ฑ ์ค‘๊ฐ„ ์ •๋ฆฌ ํ˜ผ์ž ํ”„๋กœ์ ํŠธ๋ฅผ ํ•ด์„œ ์ธ์ง€ ์†๋„๊ฐ€ ๋„ˆ๋ฌด ๋‚˜์งˆ ์•Š๋Š”๋‹ค. ์ƒ๊ฐ์„ ํ•ด๋ณด์•˜๋‹ค. ์–ด๋А ํ•œ ๊ธฐ๋Šฅ์ด๋“  ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•˜๊ฒŒ ์„ค๊ณ„ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ฐ€์žฅ ์‹œ๊ฐ„์„ ๋งŽ์ด ์Ÿ์€ ๋ถ€๋ถ„์€ Restful ํ•œ ์„ค๊ณ„ ๋ฐฉ์‹๊ณผ ์ธ์ฆ ์ธ๊ฐ€ ๋ถ€๋ถ„์ด๋‹ค.. 2022. 5. 20.
2022.05.18 ใ€ŒRedis DB ์ ์šฉใ€ ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉฐ ๋กœ๊ทธ์ธ API๊นŒ์ง€๋Š” jwt ํ† ํฐ์„ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„์„ ์ž˜ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋Š” ๋กœ๊ทธ์•„์›ƒ์ด๋‹ค. jwt ํ† ํฐ ์ž์ฒด๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ณด๊ด€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๊ฐ€ ์ž์ฒด์ ์œผ๋กœ ์‚ญ์ œ์‹œํ‚ฌ ์ˆ˜ ์—†๋‹ค. ์„ธ์…˜์„ ์‚ฌ์šฉ ์‹œ ์„œ๋ฒ„๊ฐ€ ์„ธ์…˜ DB์— ์ €์žฅํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์„ธ์…˜์„ ์‚ญ์ œํ•˜๋ฉด ๊ทธ๋งŒ์ด์ง€๋งŒ ํ† ํฐ์€ ๊ทธ๋ ‡๊ฒŒ ๋ชป ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ Redis DB๋ผ๋Š” ์ธ๋ฉ”๋ชจ๋ฆฌ DB๋ฅผ ์ด์šฉํ•ด ๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ฒ˜์Œ ๋“ค์–ด๋ณด๋Š”๋ฐ DB๋„ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋Š”๋ฐ ์ด ์ธ๋ฉ”๋ชจ๋ฆฌ DB๋Š” ๋‹ค๋ฅธ DBMS์™€ ๋น„๊ตํ•˜์—ฌ ์–ด๋–ค ์„ฑ๊ฒฉ์„ ๊ฐ€์ง€๋Š”์ง€ ๊ทธ๊ฑธ ์ •๋ฆฌํ•˜๊ณ  ์ ์šฉํ•ด๋ณด๋Š” ํ•˜๋ฃจ๋ฅผ ๋ณด๋‚ด๊ฒŒ ๋  ๊ฒƒ ๊ฐ™๋‹ค. Redis DB Key & Value ๊ตฌ์กฐ์˜ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค ๊ธฐ๋ฐ˜์˜ ๋น„ ๊ด€๊ณ„ํ˜• DBMS ์บ์‹œ, DB ๋“ฑ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ ์ธ๋ฉ”๋ชจ๋ฆฌ.. 2022. 5. 18.
2022.05.16 ใ€Œ๋ฆฌํŒฉํ† ๋งใ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ์ค‘์ด๋‹ค. ์ œ๋Œ€๋กœ ์‹ ๊ฒฝ ์จ์„œ ํ•˜๋‹ค ๋ณด๋‹ˆ ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๋˜ ์ œ๋Œ€๋กœ ์งฐ๋‹ค๊ณ  ์ƒ๊ฐํ•œ ์ฝ”๋“œ๋„ ๋ฆฌํŒฉํ„ฐ๋ง ํ•  ์˜์—ญ ํˆฌ์„ฑ์ด๋‹ค. ์ด๋Ÿฌ๋ฉด์„œ ์‹ค๋ ฅ์ด ๋А๋Š” ๊ฑฐ๊ฒ ์ง€..? ์ง„์งœ ์ œ๋Œ€๋กœ ๋œ ํ”„๋กœ์ ํŠธ ํ•œ๋ฒˆ ๋งŒ๋“ค์–ด๋ณด์ž ๋ฆฌํŒฉํ† ๋ง ๋ชฉ๋ก ๋ถˆ๋ณ€ ๊ฐ์ฒด ์ด์Šˆ => setter๋ฅผ ํ—ˆ์šฉํ•œ ๊ฐ์ฒด ๋ฌธ์ œ : ๋ถˆ๋ณ€์„ฑ์„ ๋„์งˆ ๋ชปํ•œ๋‹ค. ํ•ด๊ฒฐ : loginDTO ๊ฐ์ฒด๋Š” ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š”๊ฒŒ ๋ชฉ์ ์ด๋ฏ€๋กœ ํ™•์‹คํ•˜๊ฒŒ ๋ถˆ๋ณ€์„ฑ์„ ์ง€๋…€์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ถˆ๋ณ€๊ฐ์ฒด๋กœ ๋‹ค์‹œ ๋งŒ๋“ค์ž public class UserLoginDTO { private final String userId; private final String userPw; public UserLoginDTO(String userId, String userPw) { this.userId = use.. 2022. 5. 16.
2022.05.14 ใ€ŒJWT ์ธ์ฆใ€ ์ธ์ฆ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋˜ Session ๋กœ๊ทธ์ธ์ด ์•„๋‹Œ JWT๋ฅผ ์ด์šฉํ•˜์—ฌ ์ธ์ฆ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค. ํ† ํฐ์„ ์ฒ˜์Œ ์‚ฌ์šฉํ–ˆ๋‹ค ๋ณด๋‹ˆ ์•Œ์•„๊ฐ€๋Š”๋ฐ ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค. ๋ฌด์—‡๋ณด๋‹ค ๋‚˜๋Š” ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์„œ๋ธ”๋ฆฟ ํ•„ํ„ฐ๋‚˜ ์Šคํ”„๋ง ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ์ด์šฉํ•ด ํ† ํฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ•˜๋ ค๊ณ  ํ–ˆ์–ด์„œ ๋” ์‰ฝ์ง€ ์•Š์•˜๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ ์ธ์ฆ์—์„œ Session์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ์ด์œ ๋Š” ์„œ๋ฒ„์˜ ๊ทœ๋ชจ๊ฐ€ ํ™•์žฅ๋  ๋•Œ์˜ ์ธ์ฆ ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์ธ๋ฐ JWT๋ฅผ ์ด์šฉํ•œ ์ธ์ฆ๋„ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜์˜ ํ”„๋กœ์ ํŠธ์— ๋งž๋Š” ๋‹จ๊ณ„๊ฐ€ ์–ด๋””์ธ์ง€์— ์ƒ๋‹นํžˆ ํ—ท๊ฐˆ๋ ธ๋˜ ํ•œ ์ฃผ์˜€๋‹ค. ์ธ์ฆ ์ž‘์—…์„ ํ•˜๋ฉฐ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋˜ ๋ถ€๋ถ„์ด๋‚˜ ๊ตฌํ˜„ํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๊ฒ ๋‹ค. Rest API๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ ์ธ์ฆ์€ session ๊ธฐ๋ฐ˜์ด ์•„๋‹Œ ํ† ํฐ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์ด ๋” restf.. 2022. 5. 14.
2022.05.12 ใ€ŒResponseEntity body & BuilderPattern & Joinใ€ Restful ํ•œ api๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์€ ์ฐธ ๊นŒ๋‹ค๋กœ์šด ๊ฒƒ ๊ฐ™๋‹ค. ํ•™์›์—์„œ ์™„์ „ ๊ธฐ์ดˆ์ ์ธ ๋‚ด์šฉ๋งŒ ๋ฐฐ์šด ๊ฒƒ๋„ ์žˆ์—ˆ๊ณ  ๊ทธ ๋ถ€๋ถ„๋งŒ ๋จธ๋ฆฟ์†์— ๊นŠ์ด ์ €์žฅ๋˜์–ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ œ๋Œ€๋กœ ๋œ rest ๋ฐฉ์‹์€ ๋‹ค๋ฅธ ๊ฒƒ์ž„์„ ์ดํ•ดํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค. ํšŒ์› ๊ฐ€์ž…, ๋กœ๊ทธ์ธ๋งŒ ํ•˜๋”๋ผ๋„ ์–ด๋–ป๊ฒŒ ๋ณด๋ฉด ๋ˆ„๊ตฐ๊ฐ€์—๊ฒ ๋ณ„๊ฒŒ ์•„๋‹ํ…Œ์ง€๋งŒ ์–ด๋–ค ์‹์œผ๋กœ ์ƒ๊ฐ์„ ํ•˜๋ฉฐ ์„ค๊ณ„๋ฅผ ํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์–ด์ œ ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™”๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. ํŠนํžˆ restfulํ•œ ๋ฐฉ์‹์œผ๋กœ ์„ค๊ณ„๋ฅผ ํ•˜๋Š” ๊ฒƒ์€ ์ฒ˜์Œ ํ•ด๋ณด๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋‚ฏ์„ค๊ณ  ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ ๋˜์—ˆ๋‹ค. ๋ณดํ†ต Return Type์ธ ResponseEntity๋ฅผ ์‚ฌ์šฉํ•ด ์‘๋‹ต ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋Œ๋ ค์ฃผ๋Š”๋ฐ ํ—ค๋”์™€ ๋ฐ”๋””์— ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ๊ฑธ ๊ณ ๋ฅด๋Š” ๊ฒŒ ์‰ฝ์ง€ ์•Š์•˜๋‹ค. ์˜ค๋Š˜๋„ ์•„์นจ๋ถ€ํ„ฐ ์ง€๊ธˆ ์˜คํ›„.. 2022. 5. 12.
2022.05.11 ใ€ŒSHA-256 + Salt & ์ธ์ฆใ€ ์ธ์ฆ ๊ด€๋ จํ•ด์„œ ์‚ฌ์‹ค ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๊ดœ์ฐฎ์ง€๋งŒ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฐ€๊ธฐ ์œ„ํ•ด์„œ ์ˆœ์ˆ˜ํ•˜๊ฒŒ SHA-256 ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•ด ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™”์™€ ๋กœ๊ทธ์ธ์„ ์›์‹œ์ ์œผ๋กœ ๊ตฌํ˜„ํ•œ ํ•˜๋ฃจ๋‹ค.. ๊ฑฐ์ง„ 12์‹œ๊ฐ„์„ ์‚ฝ์งˆํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด์šฉ๊ณผ, Mybatis ๋งคํ•‘ ๋ฌธ์ œ๋„ ์žˆ๊ณ , ModelMapper๋ฅผ ์‚ฌ์šฉํ•ด DTO VO ๋งคํ•‘์ด ๊ณ„์† ์•ˆ๋˜์–ด์„œ ํ•˜๋ฃจ ์ข…์ผ ๋ฉ˜ํ„ธ์ด ๋‚˜๊ฐ”์—ˆ๋‹ค. ๋‹ค๋ฅธ ๊ณต๋ถ€๋„ ํ• ๊ฒŒ ๋„ˆ๋ฌด ๋งŽ์€๋ฐ ํ”„๋กœ์ ํŠธ๋งŒ ๋น„์ค‘์ด ๋งŽ์•˜๋˜ ํ•˜๋ฃจ๋ผ ๋„ˆ๋ฌด ์•„์‰ฝ๋‹ค. ํ•˜์ง€๋งŒ ์‚ฝ์งˆํ•œ ๋งŒํผ ๋‚ด ๊ฒƒ์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค. ์˜ค๋Š˜์€ ํ•˜๋ฃจ์ข…์ผ ์‚ฝ์งˆํ•œ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋ฒˆ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์—ฌ๋‹ด์œผ๋กœ ๋‹ค์ด์–ดํŠธ์ค‘์ธ๋ฐ ์š”์ƒˆ ์ƒ์ฃผํ•˜๋Š” ๊ณต๋ถ€ ํ™˜๊ฒฝ์—์„œ ์˜คํŠธ๋ฐ€ ๋ฏธ๋‹ˆ ๋ฐ”์ดํŠธ๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š”๋ฐ ์ด๊ฑฐ ์ง„์งœ ๋„ˆ๋ฌด ๋ง›์žˆ๋‹ค.. ์˜ˆ์ „์—” ์ง„์งœ ๋‹จ ๊ฑฐ ์ž˜ ์ฐธ์•˜๋Š”๋ฐ ๋Š™์—ˆ๋‚˜ .. 2022. 5. 11.
2022.05.10 ใ€ŒRest Ful Api & DTO,VO mapping & Mysql Index & ์ƒ์ˆ˜ํ™”ใ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ์ค‘์— ์ˆ˜์ •์‚ฌํ•ญ์ด ๋„ˆ๋ฌด๋„ ๋งŽ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ์˜ˆ์ „์— ํ•™์›์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•  ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค๋“  ๊ธฐํ•œ์ด ์ •ํ•ด์ ธ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์™„์„ฑ๋„๊ฐ€ ์šฐ์„ ์ด์—ˆ๊ณ , ์œ ์ง€๋ณด์ˆ˜์— ๋Œ€ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์‹ ๊ฒฝ์„ ์“ฐ์ง€ ์•Š์•˜์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์ œ๋Œ€๋กœ ๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋‹ค ๋ณด๋‹ˆ ์˜ˆ์ „ ๋ฒ„๋ฆ‡์ด ๋‚˜์˜ค๊ฒŒ ๋˜์—ˆ๊ณ , ์ด๋ฒˆ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์€ ๊น€์— ๋ฆฌํŒฉํ„ฐ๋ง์„ ๋น ๋ฅด๊ฒŒ ํ•˜๋ฉฐ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณผ ์ƒ๊ฐ์ด๋‹ค. RestFul Api ์˜ return ๊ฐ’ 1. ๋˜๋„๋ก ์ฒด์ด๋‹ ํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉ 2. response์— ํ•ด๋‹น๋˜๋Š” ํ—ค๋” ๋ฉ”์‹œ์ง€(์ƒํƒœ ์ฝ”๋“œ, ๋ฉ”์‹œ์ง€ ๋“ฑ๋“ฑ), ๋ฐ”๋”” ๊ฐ’์„ ๋‹ค ๋„ฃ๋„๋ก ๋…ธ๋ ฅํ•˜์ž DTO, VO ๊ฐ„์˜ ๋งคํ•‘ ํ˜„์žฌ Mybatis๋ฅผ ์‚ฌ์šฉ์ค‘์ด๋ฏ€๋กœ ํ…Œ์ด๋ธ” ์ž์ฒด์˜ Entity๋Š” VO service mapper ๊ณ„์ธต ์ด๋™ ์‹œ VO๋ฅผ ์ด์šฉํ•ด์•ผ ํ•จ .. 2022. 5. 10.
2022.05.06 ใ€ŒGit Flow ์ด์Šˆใ€ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰์ค‘์ด๋‹ค. ๋‹จ์ˆœํžˆ Master ๋ธŒ๋žœ์น˜๋งŒ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด Pull Request๋ฅผ ์˜ฌ๋ ค์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ธŒ๋žœ์น˜๋ฅผ ๋‚˜๋ˆ„์–ด ์ž‘์—…ํ•˜๋Š” ๋„์ค‘ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. pr์„ ์˜ฌ๋ฆฌ๊ธฐ ์œ„ํ•œ ๋ธŒ๋žœ์น˜๊ฐ„์˜ ๋ถ„์—…์ด ์ ์ ˆํžˆ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•˜๋Š”๋ฐ ํ˜ผ์ž ํ•˜๋‹ค ๋ณด๋‹ˆ ์ด๊ฒƒ ์ €๊ฒƒ์„ ๊ฑด๋“ค์–ด์„œ ๋‹ค์–‘ํ•˜๊ฒŒ ๊ฑด๋“  ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์•Œ๋งž์€ ํ•ด๊ฒฐ๋ฐฉ์•ˆ์„ ๋ชจ์ƒ‰ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. ์ธํ…”๋ฆฌ์ œ์ด Branch ์ฒดํฌ์•„์›ƒ ํ•˜๋Š” ๋ฐฉ๋ฒ• ํ˜น์—ฌ๋‚˜ ์ž˜๋ชป git push๋ฅผ ํ–ˆ๋‹ค๋ฉด 2022. 5. 6.
2022.05.03 ใ€Œ์ฃผ์„์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• & Back ์ค‘์‹ฌ ๊ฐœ๋ฐœ ์ˆ˜์ • ๋ฐ ์‹œ์ž‘ใ€ ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•œ ์ง€ ์ผ์ฃผ์ผ์ด ์ข€ ๋˜์–ด๊ฐ„๋‹ค. ์ž˜ ๋˜์–ด๊ฐ€๊ณ  ์žˆ๋‚˜ ์ƒ๊ฐ์„ ํ•ด๋ณด์•˜๋‹ค. ํ•˜์ง€๋งŒ ์•„๋ฌด๋ฆฌ ์ƒ๊ฐํ•ด๋„ ์ด์ƒํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๊ณ„์† ๋“ค์—ˆ๋‹ค. 1. ๋ถ„๋ช… Backend ๊ฐœ๋ฐœ์ด ๋ชฉ์ ์ธ๋ฐ ์™œ ๋‚˜๋Š” Front(Thymeleaf, CSS ๋“ฑ๋“ฑ)์— ์‹œ๊ฐ„์„ ๋” ์Ÿ๊ณ  ์žˆ๋Š” ๊ฒƒ์ธ๊ฐ€? 2. ์ฃผ์„ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์ด ๋‚œ์žกํ•˜๋‹ค? ์ด๋ฅผ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ๊ฒฐ๊ตญ ๊ฐœ๋ฐœ์ž๋ถ„์˜ ์กฐ์–ธ์„ ๋“ฃ๊ณ  ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ ๋‹จ์œ„์˜ ์ฃผ์„์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•, Back ์ค‘์‹ฌ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๊ธฐ๋กœ ์ƒ๊ฐํ–ˆ๋‹ค. ์ฃผ์„์„ ๋‹ค๋Š” ๋ฐฉ๋ฒ•? ๊ธฐ์กด์— ๋‚˜๋Š” ๊ธฐ์ค€ ์—†์ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ด ์ •๋„๋ฉด ์•Œ์•„๋ณด๊ฒ ์ง€๋ผ๋Š” ์ƒ๊ฐ์œผ๋กœ ๋‚˜๋ฆ„ ์ฃผ์„์„ ์ž˜ ์ž‘์„ฑํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๊ฑด ๋‚˜๋งŒ์˜ ์ฐฉ๊ฐ์ด์—ˆ๋‹ค. ์•„๋ฌด๋ฆฌ ์ž˜ ์ž‘์„ฑํ–ˆ๋‹ค ์ƒ๊ฐํ•œ ์ฃผ์„๋„ ๋‚จ์ด ๋ณผ ๋• ๊ทธ์ € ๋‚œ์žกํ•˜๊ณ  ์˜๋ฏธ ์—†์ด ๋‹ฌ๋ฆฐ ์ฃผ์„์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ•˜์ง€ ๋ชปํ–ˆ๋˜ ๊ฒƒ.. 2022. 5. 3.
2022.05.01 ใ€ŒView ๋งŒ๋“ค๊ธฐ, Insert, Select ์ž‘์—…ใ€ โ–ถ ์ฃผ๊ฐ„ ์ •๋ฆฌ 1. ํ•ญ์ƒ ๊ตฌ์ƒํ–ˆ๋˜ ๊ณ„ํš๋ณด๋‹ค ๋Šฆ์–ด์ง„๋‹ค๋Š” ์  (์ฃผ๊ด€์ ์ธ ํ‰๊ฐ€๋กœ ์„ฑ๊ณผ๊ฐ€ ๊ธฐ๋Œ€๋ณด๋‹ค ๋–จ์–ด์ง„๋‹ค)? > ์š•์‹ฌ์ด ๋งŽ์€ ๊ฑด๊ฐ€ ์ƒ๊ฐ์ด ๋“ ๋‹ค. > ๋‹ค๋ฅธ ์ƒ๊ฐ์„ ํ•˜์ง€ ๋ง๊ณ  ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์„ ๋•Œ ๋” ํ•ด๋ณด๋Š” ๊ฒƒ์œผ๋กœ! 2. mysql์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ์–ด๋ ค์› ๋˜ ์  > ์ฑ…๋งŒ ๋ณด๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์˜ˆ์ œ๋ฅผ ๊ฒ€์ƒ‰ํ•ด๋ณด๊ฑฐ๋‚˜ ์ง์ ‘ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ํ•จ > ์ฝ๋Š” ๊ฑฐ๋ณด๋‹ค ํ™•์‹คํžˆ ๊ฒฝํ—˜ํ•˜๋Š” ๊ฒŒ ๋จธ๋ฆฌ์— ์ž˜ ๋‚จ๋Š”๋‹ค. 3. ์‰ฌ๊ณ  ์‹ถ์€ ์š•๊ตฌ > ์†”์งํžˆ 7์ผ ๋‚ด๋‚ด ํ•˜๋ฃจ์ข…์ผ ์‹ค๋‚ด์— ๋ฐ•ํ˜€ ๋ชจ๋‹ˆํ„ฐ๋งŒ ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋ž€ ์‰ฝ์ง€ ์•Š๋‹ค.. (ํ•‘๊ณ„๋‹ค) > ์ ์ ˆํ•œ ๋•Œ์— ์ข€ ์‰ฌ๋Š” ๊ฒƒ์œผ๋กœ (์ž  ๋” ์ž๊ธฐ, 2์‹œ๊ฐ„ ์ •๋„ ์นœ๊ตฌ์™€ ๋ฐฅ ์•ฝ์†์ด๋ผ๋˜์ง€ ๋“ฑ) 4. ํ”„๋ก ํŠธ ๊ด€๋ จ > ๋‚œ ์ •๋ง front์™€ ์•ˆ ๋งž๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ํƒœ๊ทธ๋“ค์„ ๋ณด๊ธฐ๋งŒ ํ•ด๋„ ์šธ๋ ๊ฑฐ๋ฆฐ๋‹ค. > ๊ทธ๋ž˜๋„ ํ•ด์•ผ ํ•˜๋‹ˆ ์ด๋ฒˆ ํ”„๋กœ.. 2022. 5. 1.
2022.04.30 ใ€Œlogback, lombok, mysqlใ€ โ–ถ ํŒŒํŠธ 1 (12์‹œ ~ 2์‹œ ๋ฐ˜?) 1. ํŽ˜์ด์ง• ๋กœ์ง 2. ๋”๋ฏธ ์ด๋ฏธ์ง€ ๊ตฌํ•˜๊ธฐ 3. mysql ์‹œํ€€์Šค ๊ด€๋ จ ์ฐพ๊ธฐ 4. logback (jdbc๋„) ์„ค์ • โ–ถ ํŒŒํŠธ 2 (3์‹œ ๋ฐ˜ ~ 12์‹œ) 1. ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1๋ฌธ์ œ ๋‘ ๊ฐœ ๋ฝ‘์•„์„œ ๋”ํ•˜๊ธฐ 2. ์ถ”ํ›„ ๊ณ„ํš ์ˆ˜๋ฆฝ ์˜ˆ์ • โ–ถ Logback ์„ค์ • - Spring boot์—์„œ๋Š” log4j ๋ง๊ณ  logback์„ ์‚ฌ์šฉํ•œ๋‹ค. - spring boot web starter ์˜์กด์„ฑ์— ์ž๋™์œผ๋กœ logback์ด ์ถ”๊ฐ€๋˜์–ด ์žˆ๋‹ค. - ๊ธฐ๋ณธ ์„ค์ •์„ ํ•˜๋ ค๋ฉด gradle์ด๋‚˜ xml๋กœ ์„ค์ • ๊ฐ€๋Šฅํ•˜๋‹ค. - log ํŒŒ์ผ๋“ค์„ ์ €์žฅํ•˜๋ ค๋ฉด ์„ค์ • xmlํŒŒ์ผ์— ๊ฒฝ๋กœ ์ง€์ • - properties ํŒŒ์ผ์— xml ๊ฒฝ๋กœ ์ง€์ • - jdbc log๋ฅผ ๋‚จ๊ธฐ๊ณ  ์‹ถ๋‹ค๋ฉด ์ถ”๊ฐ€๋กœ ์„ค์ • - spring์—์„œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ spy๋ฅผ.. 2022. 4. 30.
2022.04.29 ใ€Œ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ๊ด€๋ จใ€ โ–ถํŒŒํŠธ 1 (10์‹œ ~ 2์‹œ) 1. mysql Ch.10 ์‹คํ–‰ ๊ณ„ํš (2. ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ๊ด€๋ จ ๋ฌธ์˜) => ๋˜๋ฉด 3. ํ”„๋กœ์ ํŠธ html ์ •๋ฆฌ โ–ถํŒŒํŠธ 2 (3์‹œ ~ 6์‹œ) 1. ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํด๋” ์ถ”๊ฐ€(๋А๋ ค์ง€๋‹ˆ ๋‚˜์ค‘์— ํ•˜์ž) 2. ์ž์†Œ์„œ ์ˆ˜์ • 3. Controller ์ •์˜ โ–ถํ”„๋กœ์ ํŠธ ๊ด€๋ จ 1. ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ ์‹œ DB ์š”์ฒญ => mysql ์ด๋ฏ€๋กœ oracle์˜ rownum์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชป ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋น„์Šทํ•˜๊ฒŒ ๋”ฐ๋ผํ•  ์ˆ˜๋Š” ์žˆ๋‹ค. ๊ทธ๋ž˜๋„ mysql์„ ๋ฐฐ์› ๊ธฐ ๋•Œ๋ฌธ์— ์ฐจ๋ณ„ํ™”๋œ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ๊ฒƒ. => ๋ฐฉ์‹์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€์ด์ง€๋งŒ limit ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. (๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ๋น ๋ฆ„) 2022. 4. 29.
2022.04.28 ใ€ŒThymeleaf ์„ค์ •ใ€ โ–ถ ํŒŒํŠธ 1 (10์‹œ30๋ถ„ ~ 5์‹œ30๋ถ„) 1. ๋กœ์ง€ํ… ๋งˆ์šฐ์Šค ๊ตฌ๋งค 2. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ ฌ Level2 3. mysql CH.9 4. ์œ„ํ‚ค ์ˆ˜์ • 5. ์Šคํ”„๋ง๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ โ–ถ ํŒŒํŠธ 2 (9์‹œ30๋ถ„ ~ 12์‹œ) 1. ์Šคํ”„๋ง๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ => ์•Œ๋ฐ” ๊ฐ”๋‹ค ์™€์„œ ๊ฒฝ๋กœ ์ข€ ์† ๋ณด๊ณ  html๋„ ์ข€ ๋„ฃ๊ณ  ํ•˜์ž โ–ถ ๋ฌธ์ œ 1. view ๋””์ž์ธ ๋ฌธ์ œ ๋ฌธ์ œ์ : Thymeleaf ์—”์ง„์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์—ฌ๊ธฐ๋Š” jsp์—์„œ ์‚ฌ์šฉํ•˜๋Š” tiles๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•œ๋‹ค. ํ•ด๊ฒฐ : - Thymeleaf๊ฐ€ ์ œ๊ณตํ•˜๋Š” layout ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. - Thymeleaf ๊ด€๋ จ resolver properties ํŒŒ์ผ ์ •์˜ํ•จ 2. resources ํด๋” ์•„ํ‚คํ…์ณ ๊ด€๋ จ ๋ฌธ์ œ์  : ์Šคํ”„๋ง๋ถ€ํŠธ์—์„œ view ๊ด€๋ จ ์•„ํ‚คํ…์ณ ์„ค๊ณ„๊ฐ€ ์ฒ˜์Œ์ด.. 2022. 4. 28.
04.27 ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ [๋‹ญ๊ฐ€์Šด์‚ด ๊ตฌ๋งค ์‚ฌ์ดํŠธ] [DB ๊ตฌ์ƒ] Spring boot๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ๊ธฐ์กด ์ง„ํ–‰ํ–ˆ๋˜ ํ”„๋กœ์ ํŠธ : https://sweeeetgoguma.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EB%84%90-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%ED%8A%B8%EB%A0%88%EC%9D%B4%EB%84%88-%EB%A7%A4%EC%B9%AD-%EC%82%AC%EC%9D%B4%ED%8A%B8 [ํšŒ๊ณ ] ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ (ํŠธ๋ ˆ์ด๋„ˆ ์ค‘๊ณ„ ํ”Œ๋žซํผ) โ–ถ ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๋! (2022.3.23 ~ 2022.4.13) ๋“œ๋””์–ด ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋์ด ๋‚ฌ๋‹ค! ํšŒ์˜ ์‹œ์ž‘์ผ์ด ๋ฒŒ์จ ์—Š๊ทธ์ œ ๊ฐ™์€๋ฐ.. ๋ˆˆ ๋‚ด๋ฆฌ๋Š” ์ฒซ ํšŒ์˜์ผ์— ์‹œ์ž‘์„ ํ•ด์„œ ๋๋‚˜๊ณ  ๋ณด๋‹ˆ ๋ฒš๊ฝƒ์ด ๋–จ์–ด์งˆ ๋•Œ์ด๋‹ค. ์ค‘ sweeeet.. 2022. 4. 27.
[ํšŒ๊ณ ] ํ”„๋กœ์ ํŠธ (ํŠธ๋ ˆ์ด๋„ˆ ์ค‘๊ณ„ ํ”Œ๋žซํผ) โ–ถ ํ”„๋กœ์ ํŠธ ๋! (2022.3.23 ~ 2022.4.13)๋“œ๋””์–ด ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋์ด ๋‚ฌ๋‹ค! ํšŒ์˜ ์‹œ์ž‘์ผ์ด ๋ฒŒ์จ ์—Š๊ทธ์ œ ๊ฐ™์€๋ฐ.. ๋ˆˆ ๋‚ด๋ฆฌ๋Š” ์ฒซ ํšŒ์˜์ผ์— ์‹œ์ž‘์„ ํ•ด์„œ ๋๋‚˜๊ณ  ๋ณด๋‹ˆ ๋ฒš๊ฝƒ์ด ๋–จ์–ด์งˆ ๋•Œ์ด๋‹ค.์ค‘๊ฐ„์— ์žฅ์—ผ์ด๋‹ˆ, ์ฝ”๋กœ๋‚˜๋‹ˆ ํ•ด์„œ ์•„ํ”„์ง€๋งŒ ์•Š์•˜์–ด๋„ ๋” ๋นจ๋ฆฌ ๋๋‚˜๊ณ  ๋ฒš๊ฝƒ ๋ณด๋Ÿฌ ๊ฐ”์„ ํ…๋ฐ ์ฐธ ์•„์‰ฝ๋‹ค. ๋˜ ์ฝ”๋กœ๋‚˜๋ผ ์ž๊ฐ€ ์น˜๋ฃŒ๋ฅผ ์ผ์ฃผ์ผ ๋™์•ˆ ํ•ด์„œ ๋„ˆ๋ฌด ๋‹ต๋‹ตํ•ด์„œ ๋” ์†๋„๊ฐ€ ๋А๋ ค์กŒ๋˜ ๊ฐ๋„ ์žˆ๋‹ค. ์—ญ์‹œ ๋‚˜๋Š” ์นดํŽ˜๋ฅผ ๋‚˜๊ฐ€์•ผ ๋˜๋‚˜ ๋ณด๋‹ค!  โ–ถ ํ”„๋กœ์ ํŠธ ์ „ ํšŒ์˜ ์ด์Šˆ ์‚ฌํ•ญ๋“คํ”„๋กœ์ ํŠธ๋ฅผ ์›ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๋ผ๋ฆฌ ์ฒ˜์Œ ์กฐ๋ฅผ ์งœ๊ณ  ์ง„ํ–‰ํ•˜๋ฉด์„œ ํ™•์‹คํžˆ ์ด์ „ ํ”„๋กœ์ ํŠธ ๋•Œ ๋ณด๋‹ค ์›ํ• ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ๋˜ ์ค€๋น„ ๊ณผ์ •์ด์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ํ•œ ๊ฐ€์ง€ ์•„์‰ฌ์šด ์ ์€ UI ๊ด€๋ จ ํšŒ์˜๊ฐ€ ์ข…๋ฃŒ๋˜๊ณ  DB ์„ค๊ณ„ ๋ถ€๋ถ„์— ๋“ค์–ด๊ฐ„ ํ›„๋กœ๋ถ€ํ„ฐ ๊ฑฐ์˜ ํŒ€์žฅํ˜•๊ณผ ๋‚˜๋งŒ ์–˜๊ธฐํ–ˆ๋˜ ์ ์ด.. 2022. 4. 18.
๋ฐ˜์‘ํ˜•