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

MVC18

WebFlux๋Š” ๋ฌด์—‡์ด๊ณ , ์™œ ๋‚˜์™”๊ณ , ์–ธ์ œ ์“ฐ์ด๋Š”๊ฐ€? ์–ด์ œ Cart API ์ฝ”๋“œ ๋ฆฌํŒฉํ„ฐ๋ง์„ ๋งˆ๋ฌด๋ฆฌํ•˜๊ณ , ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด PR์„ ์˜ฌ๋ ธ๋‹ค.ํด๋ฆฐ ํ•œ ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฆฌ๋ทฐ์–ด๋‹˜์ด ์ฃผ์‹  ์˜๊ฒฌ์„ ๋˜๋‡Œ๊ณ , ํด๋ฆฐ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์„ ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด ํ•˜๋ฃจ ์ข…์ผ ๋ชจ๋‹ˆํ„ฐ๋ฅผ ๋…ธ๋ ค๋ณด๋ฉฐ ํด๋ž˜์Šค ๊ฐ„ ์ฑ…์ž„์„ ๋‚˜๋ˆ„์–ด ๋ณด์•˜๋‹ค. ๋นจ๋ฆฌ ์„ฑ์žฅํ•˜๊ณ  ์‹ถ๋‹ค!!๋ฆฌ๋ทฐ๋ฅผ ์•ž๋‘๊ณ , ์นด์นด์˜คํŽ˜์ด๋ฅผ ์ด์šฉํ•œ ๋„๋ฉ”์ธ ์ฝ”๋“œ๋“ค์„ ๋ฆฌํŒฉํ„ฐ๋ง ํ•˜๊ธฐ ์•ž์„œ, ๊ธฐ์กด์— ์™ธ๋ถ€ API์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋˜ ํ…œํ”Œ๋ฆฟ์ธ RestTemplate์˜ ๋Œ€์ฒด ์—ฌ๋ถ€์— ๋Œ€ํ•ด ๋– ์˜ฌ๋ž๋‹ค.RestTemplate์€ deprecated ๋˜์—ˆ์œผ๋ฏ€๋กœ, WebClient์˜ ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•ด๋ณด๋ผ๋Š” ์˜๊ฒฌ์„ ๋ฐ›์•˜๋‹ค.WebClient์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋‹ค๊ฐ€ ๋™๊ธฐ/๋น„๋™๊ธฐ, ๋ธ”๋กœํ‚น/๋…ผ๋ธ”๋กœํ‚น์ด๋ผ๋Š” ๊ฐœ๋…์˜ ์ •์˜์— ๋Œ€ํ•ด ๋‹ค์‹œ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ๋‚˜์•„๊ฐ€ WebFlux.. 2022. 8. 31.
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.04.23 ์˜ ๊ธฐ๋ก โ–ถ ๊ณ„ํš 1. Gradle test ์ฝ”๋“œ ์ˆ˜์ • 2. ์Šคํ”„๋ง PSA ์ถ”์ƒํ™” ์ •๋ฆฌ โ–ท test code ๋ฌธ์ œ : ๊ฒŒ์ž„ ์นด์šดํŠธ ์ฆ๊ฐ€ ํ…Œ์ŠคํŠธ ์‹œ ๊ณ„์† ํ…Œ์ŠคํŠธ ์‹คํŒจ ์›์ธ : ๋””๋ฒ„๊น… ํ•ด๋ดค๋”๋‹ˆ ๊ณ„์† default ๊ฑธ๋ ค์„œ ๋ณด๋‹ˆ๊นŒ switch๋ฌธ break ์ถ”๊ฐ€ ์•ˆํ•จ.. > ์นด์šดํŠธ ๊ฐ’ ์ž์ฒด๋ฅผ ๋น„๊ตํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์ฆ๊ฐ€ ์—ฌ๋ถ€๋งŒ ํŒ๋‹จํ–ˆ๋‹ค. โ–ท ์Šคํ”„๋ง PSA ์ถ”์ƒํ™” > ์Šคํ”„๋ง ๋‚ด๋ถ€ ๊ตฌํ˜„ ํด๋ž˜์Šค๋“ค์ด ์ถ”์ƒํ™” ๋˜์–ด ์žˆ๋Š” ์ด์œ ? > PSA์™€ ์—ฐ๊ด€์ด ์žˆ๋‹ค. > ์„œ๋น„์Šค๋ฅผ ์ถ”์ƒํ™”ํ•จ์œผ๋กœ์จ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹ค์ œ ๊ตฌํ˜„๋ถ€๋ฅผ ์•Œ์ง€ ๋ชปํ•˜๋”๋ผ๋„ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค. ์ฆ‰, ์ถ”์ƒํ™” ๊ณ„์ธต์ธ ์ธํ„ฐํŽ˜์ด์Šค API ์˜ ์ •๋ณด๋ฅผ ํ™œ์šฉํ•ด ํ•ด๋‹น ์„œ๋น„์Šค์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค. > ์ถ”์ƒํ™” ๊ณ„์ธต์„ ์‚ฌ์šฉํ•ด ์–ด๋–ค ๊ธฐ์ˆ ์„ ๋‚ด๋ถ€์— ์ˆจ๊ธฐ๊ณ  ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํŽธ์˜์„ฑ์„ ์ œ๊ณตํ•˜๋Š” .. 2022. 4. 23.
2022.04.22์˜ ๊ธฐ๋ก โ–ถ ํŒŒํŠธ 1 (10์‹œ ~ 7์‹œ) 1. Gradle Test ์ฝ”๋“œ ์ˆ˜์ • (PrintGameResult, ComputerNumber ๋ถ€๋ถ„) 2. ์ž์†Œ์„œ ์ˆ˜์ • 3. Boot project ๊ตฌ์ƒ 4. Spring MVC ๋‚ด๋ถ€ ๊ฐœ๋… ์ •๋ฆฌ 5. ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1๋ฌธ์ œ (2๋ฌธ์ œ) 6. mysql Ch5. ํŠธ๋žœ์žญ์…˜, CH6. ๋ฐ์ดํ„ฐ ์••์ถ• 7. ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ” ์•„์ดํ…œ 1 ์ •๋ฆฌ โ–ท ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ : ์ •์ˆ˜์˜ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ import java.util.Arrays; class Solution { public long solution(long n) { long answer = 0; String number = String.valueOf(n); String stringNum = ""; char[] numArr = new char[num.. 2022. 4. 22.
2022.04.20 ์˜ ๊ธฐ๋ก โ–ถ ์˜ค๋Š˜ ํ•˜๋ฃจ ๊ณ„ํš ํŒŒํŠธ 1 (11์‹œ ~ 2์‹œ) 1. Gradle MVC ํ”„๋กœ์ ํŠธ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง 2. Mysql 3๋‹จ์› ์ •๋ฆฌ ํŒŒํŠธ 2 (3์‹œ ~ 1์‹œ) 1. ์Šคํ”„๋งMVC ๊ฐœ๋… ์ •๋ฆฌ : ํ•ธ๋“ค๋Ÿฌ ์ถ”์ƒํด๋ž˜์Šค๋กœ ์™œ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”์ง€ ๊ณ ๋ฏผํ•ด๋ณด์ž 3๊ฐœ 2. ์Šคํ”„๋ง๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ WIkI ์ •๋ฆฌ 3. ๋…ธ์…˜ ์ด๋ ฅ์„œ ํ…œํ”Œ๋ฆฟ ๋ฐ ์ดˆ์•ˆ ์ž‘์„ฑ 4. ๋„์ปค 2๋ฌธ์„œ 5. ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1๋ฌธ์ œ 2022. 4. 20.
[ํšŒ๊ณ ] ํ”„๋กœ์ ํŠธ (ํŠธ๋ ˆ์ด๋„ˆ ์ค‘๊ณ„ ํ”Œ๋žซํผ) โ–ถ ํ”„๋กœ์ ํŠธ ๋! (2022.3.23 ~ 2022.4.13)๋“œ๋””์–ด ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋์ด ๋‚ฌ๋‹ค! ํšŒ์˜ ์‹œ์ž‘์ผ์ด ๋ฒŒ์จ ์—Š๊ทธ์ œ ๊ฐ™์€๋ฐ.. ๋ˆˆ ๋‚ด๋ฆฌ๋Š” ์ฒซ ํšŒ์˜์ผ์— ์‹œ์ž‘์„ ํ•ด์„œ ๋๋‚˜๊ณ  ๋ณด๋‹ˆ ๋ฒš๊ฝƒ์ด ๋–จ์–ด์งˆ ๋•Œ์ด๋‹ค.์ค‘๊ฐ„์— ์žฅ์—ผ์ด๋‹ˆ, ์ฝ”๋กœ๋‚˜๋‹ˆ ํ•ด์„œ ์•„ํ”„์ง€๋งŒ ์•Š์•˜์–ด๋„ ๋” ๋นจ๋ฆฌ ๋๋‚˜๊ณ  ๋ฒš๊ฝƒ ๋ณด๋Ÿฌ ๊ฐ”์„ ํ…๋ฐ ์ฐธ ์•„์‰ฝ๋‹ค. ๋˜ ์ฝ”๋กœ๋‚˜๋ผ ์ž๊ฐ€ ์น˜๋ฃŒ๋ฅผ ์ผ์ฃผ์ผ ๋™์•ˆ ํ•ด์„œ ๋„ˆ๋ฌด ๋‹ต๋‹ตํ•ด์„œ ๋” ์†๋„๊ฐ€ ๋Š๋ ค์กŒ๋˜ ๊ฐ๋„ ์žˆ๋‹ค. ์—ญ์‹œ ๋‚˜๋Š” ์นดํŽ˜๋ฅผ ๋‚˜๊ฐ€์•ผ ๋˜๋‚˜ ๋ณด๋‹ค!  โ–ถ ํ”„๋กœ์ ํŠธ ์ „ ํšŒ์˜ ์ด์Šˆ ์‚ฌํ•ญ๋“คํ”„๋กœ์ ํŠธ๋ฅผ ์›ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๋ผ๋ฆฌ ์ฒ˜์Œ ์กฐ๋ฅผ ์งœ๊ณ  ์ง„ํ–‰ํ•˜๋ฉด์„œ ํ™•์‹คํžˆ ์ด์ „ ํ”„๋กœ์ ํŠธ ๋•Œ ๋ณด๋‹ค ์›ํ• ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ๋˜ ์ค€๋น„ ๊ณผ์ •์ด์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ํ•œ ๊ฐ€์ง€ ์•„์‰ฌ์šด ์ ์€ UI ๊ด€๋ จ ํšŒ์˜๊ฐ€ ์ข…๋ฃŒ๋˜๊ณ  DB ์„ค๊ณ„ ๋ถ€๋ถ„์— ๋“ค์–ด๊ฐ„ ํ›„๋กœ๋ถ€ํ„ฐ ๊ฑฐ์˜ ํŒ€์žฅํ˜•๊ณผ ๋‚˜๋งŒ ์–˜๊ธฐํ–ˆ๋˜ ์ ์ด.. 2022. 4. 18.
2022.04.16 ์˜ ๊ธฐ๋ก โ–ถ ์ฃผ๋ง ๊ณ„ํš 1. SpringMVC ์™„๊ฐ• 2. Gradle test ํ”„๋กœ์ ํŠธ intellij๋กœ ๊นƒ ์—ฐ๋™ 3. ์Šคํ”„๋ง ๋Œ€๋‹ต ๋ชปํ•œ ์งˆ๋ฌธ ์ •๋ฆฌ 4. ์ž๊ธฐ์†Œ๊ฐœ์„œ ์† ๋ณด๊ธฐ โ–ถ ์˜ค๋Š˜ ํ•  ์ผ 1. SpringMVC 8,90ํผ์„ผํŠธ 2. ๊นƒ ํ—ˆ๋ธŒ ์—ฐ๋™ 3. ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ 3์ฐจ ์ˆ˜์ •๋ณธ war ํŒŒ์ผ ๊ฐ•์‚ฌ๋‹˜๊ป˜ ๋ฉ”์ผ ์ „์†ก 4. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 3๊ฐœ ํ’€๊ธฐ 2022. 4. 16.
2022.03.18~03.20์˜ ๊ธฐ๋ก โ–ถ 3์ผ ๊ณ„ํš => ๊ณต๋ถ€ ๊ด€๋ จ 1) ์ˆ˜์—…(18์ผ ์ˆ˜์—…) ๋‚ด์šฉ ๋ณต์Šต 2) MVC ๊ฐ•์˜ ๊ฒฐ์ œ 3) ์Šคํ”„๋ง ๊ธฐ์ˆ  ์™„๊ฐ• 4) MVC ๊ฐ•์˜ ์ˆ˜๊ฐ• => ์ทจ์ค€ 1) ๋ฆฌํŒฉํ† ๋ง ๋งˆ๋ฌด๋ฆฌ ํ›„ ๊นƒ ํ‘ธ์‰ฌ 2) ๋ฏธํก ์งˆ๋ฌธ ๋‹ต๋ณ€ ์ฑ„์šฐ๊ธฐ(ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์ •๋ฆฌ) 3) ์ˆ˜๊ฐ• ๊ฐ•์˜ ๋‚ด์šฉ ๋…ธ์…˜ ์ •๋ฆฌ โ–ถ ๋ฌธ์ œ ์ •๋ฆฌ 1. JoinPoint & PointCut์˜ ๊ฐœ๋… ํ˜ผ๋™ ์กฐ์ธํฌ์ธํŠธ๊ฐ€ ๋ฉ”ํƒ€์ ์ธ ์ •๋ณด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋˜๊ณ  ํฌ์ธํŠธ์ปท์ด ์ข€ ๋” ๊ตฌ์ฒด์ ์ธ ์ ์šฉ ์ง€์ ์ด๋‹ค! 2. MVC ๋ฆฌํŒฉํ† ๋ง์—์„œ Computer ๊ฐ์ฒด ์ฃผ์ž… ์‹œ์ ์˜ ๋ฌธ์ œ โ–ถ ๊ฐœ์ธ ๊ณต๋ถ€ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ์ถ”์ƒํ™”: Converter์™€ Formatter public class EventConverter { public static class StringToEventConverter implements Co.. 2022. 3. 19.
2022.03.16์˜ ๊ธฐ๋ก โ–ถ ์˜ค๋Š˜ ๊ณ„ํš => ๊ณต๋ถ€ ๊ด€๋ จ 1) ์ˆ˜์—… ๋‚ด์šฉ ๋ณต์Šต 2) ์Šคํ”„๋ง PSA ์ˆ˜๊ฐ• 3) ์ธํ…”๋ฆฌ์ œ์ด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ… 4) ์ค‘๊ธ‰ ๊ฐ•์˜ ๊ฒฐ์ œ ๋ฐ 1,2๊ฐ•? ์ˆ˜๊ฐ• โ–ถ ๋ฌธ์ œ ์ •๋ฆฌ 1. ๋นˆ ๋“ฑ๋ก ๋ฌธ์ œ > ๋กœ๊ทธ๋Œ€๋กœ ์—๋„ˆํ…Œ์ด์…˜์œผ๋กœ ๋นˆ ๋“ฑ๋ก 2. ์ปดํฌ๋„ŒํŠธ ์Šค์บ”์—์„œ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์˜ ํด๋ž˜์Šค๋ฅผ ๋นˆ์œผ๋กœ ๋“ฑ๋ก ๋ฌธ์ œ @SpringBootApplication public class Demospring51Application { @Autowired MyService myService; public static void main(String[] args) { var app = new SpringApplication(Demospring51Application.class); app.addInitializers((ApplicationContextI.. 2022. 3. 16.
2022.03.15์˜ ๊ธฐ๋ก โ–ถ ์˜ค๋Š˜ ๊ณ„ํš => ๊ณต๋ถ€ ๊ด€๋ จ 1) ์ˆ˜์—… ๋‚ด์šฉ ๋ณต์Šต 2) MVC ๊ฐ์ฒด์ง€ํ–ฅ ๋ฆฌํŒฉํ† ๋ง 3) ์Šคํ”„๋ง ๊ฐ•์˜ ์ˆ˜๊ฐ• ๋ชฉํ‘œ 8,9๊ฐ• โ–ถ ๋ฌธ์ œ ์ •๋ฆฌ โ— MVC ๋ฆฌํŒฉํ† ๋ง โ— 1. enum๋„ view์— ์˜์กดํ•˜๋ฉด ์•ˆ๋œ๋‹ค. public class Controller { // ๊ฒŒ์ž„ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ•„๋“œ private Result result; // play ๋ฉ”์„œ๋“œ public void playRsp(Rsp playerRsp) throws RspException { // ์‚ฌ์šฉ์ž ๊ฐ์ฒด ์ƒ์„ฑ final Player player = new Player(playerRsp); // ๊ฒŒ์ž„๊ฒฐ๊ณผ ๋ฐ˜ํ™˜๊ฐ’์„ ํ•„๋“œ์— ์ €์žฅ this.result = player.play(); // ๊ฐ€์œ„๋ฐ”์œ„๋ณด ์ƒํƒœ ๊ฐ’ ์ถœ๋ ฅ ViewOutput.whatYouInput.. 2022. 3. 15.
2022.03.03 ์˜ ๊ธฐ๋ก โ–ถ ํ•˜๋ฃจ => ๊ณต๋ถ€ ๊ด€๋ จ 1) ์Šคํ”„๋ง ๊ฐœ๊ตฌ๋ฆฌ์ฑ… CH4 2) MVC ๊ฐ์ฒด์ง€ํ–ฅ ๋ฆฌํŒฉํ† ๋ง (์—ด๊ฑฐํ˜•, ์ธํ„ฐํŽ˜์ด์Šค ๊ณ ๋ฏผ) 3) ๊ธˆ์ผ ์ˆ˜์—… ๋ณต์Šต => ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ 1) DB ๋งˆ๋ฌด๋ฆฌ ํšŒ์˜ 2) ์ถ”ํ›„ ๋””ํ…Œ์ผ ์—…๋ฌด ์ •๋ฆฌ 3) ๋‹ค์Œ ํšŒ์˜ํ•  ๊ฒƒ git ํ˜‘์—… โ–ถ ๋ฌธ์ œ ์ •๋ฆฌ 1. โ–ถ ๊ฐœ์ธ ๊ณต๋ถ€ public class ViewInput { private static final String RSP_INPUT = "1, 2, 3 ์ค‘์—์„œ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”."; private static final String RESTART_INPUT = "์žฌ์‹œ์ž‘ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? (y:n)"; private static final Scanner SCANNER = new Scanner(System.in); public ViewInput() { }.. 2022. 3. 3.
2022.02.28์˜ ๊ธฐ๋ก โ–ถ ํ•˜๋ฃจ =>  ๊ณต๋ถ€ ๊ด€๋ จ1) ์Šคํ”„๋ง ๊ฐœ๊ตฌ๋ฆฌ์ฑ… CH32) MVC ๊ฐ์ฒด์ง€ํ–ฅ ๋ฆฌํŒฉํ† ๋ง3) ๊ธˆ์ผ ๊ฐ•์˜ ๋ณต์Šต => ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ1) UI ์—…๋ฌด ๋ถ„๋‹ด ํšŒ์˜โ–ถ ๋ฌธ์ œ ์ •๋ฆฌโ–ถ ๊ฐœ์ธ ๊ณต๋ถ€โ–ถ ์ˆ˜์—… ๋‚ด์šฉMyBatisDB⇒ DB ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ” Join ์‹œ ์ค‘๋ณต ์ปฌ๋Ÿผ๋ช…์€ aliasname์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.ํ…Œ์ด๋ธ” ์กฐ์ธ ์‹œ ๋™์ผํ•œ ์ปฌ๋Ÿผ๋ช…์„ ๊ฐ€์ง„ ๊ฒฝ์šฐ ๋‘๋ฒˆ ์งธ ์ด์ƒ์˜ ์ปฌ๋Ÿผ๋ช…์€ ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝDTO๊ฐ์ฒด ์ง๋ ฌํ™” ํด๋ž˜์Šค : Serializable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค⇒ ๊ฐ์ฒด ๋‹จ์œ„๋กœ ์ž…๋ ฅ ๋˜๋Š” ์ถœ๋ ฅ์„ ์œ„ํ•œ ํด๋ž˜์Šค ์„ ์–ธ ๋ฐฉ๋ฒ•mapper.xmlresultMap ์—˜๋ฆฌ๋จผํŠธ์˜ ํ•˜์œ„ ์—˜๋ฆฌ๋จผํŠธ ์„ ์–ธ ์ˆœ์„œconstructor >> id >> result >> association >> collection >> discriminator⇒ ์ˆœ์„œ๋ฅผ ์•ˆ.. 2022. 2. 28.
2022.02.27์˜ ๊ธฐ๋ก โ–ถ ํ•˜๋ฃจ => ๊ณต๋ถ€ ๊ด€๋ จ 1) ๊ธฐ์ˆ  ์งˆ๋ฌธ ์ •๋ฆฌ ๋ฐ ์ค€๋น„ (๋žŒ๋‹ค์‹, ์ŠคํŠธ๋ฆผ, ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ๋„คํŠธ์›Œํฌ) 2) MVC ๊ฐ์ฒด์ง€ํ–ฅ ๋ฆฌํŒฉํ† ๋ง ํ›„ ์ œ์ถœ ํ›„ ํ”ผ๋“œ๋ฐฑ ๋ฐ›๊ธฐ 3) ์Šคํ”„๋ง ์ž…๋ฌธ ์ฑ… ์ฝ๊ธฐ => ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ 1) UI ์—…๋ฌด ๋ถ„๋‹ด ํšŒ์˜ (๊ฐ€๋Šฅํ•˜๋ฉด..?) โ–ถ ๋ฌธ์ œ ์ •๋ฆฌ 1. ์ƒ์ˆ˜ํ™”์˜ ๋ฌธ์ œ > ๋‹จ์ˆœ ๋ฆฌํ„ฐ๋Ÿด ๊ฐ’์€ ์Šค์นผ๋ผ์ด๋‹ค. ๋ฌธ์ œ : ์–ด๋Š ๋ณ€์ˆ˜๋ฅผ ์–ด๋–ค์‹์œผ๋กœ ์ƒ์ˆ˜ํ™”ํ•ด์•ผ ํ• ์ง€ ๊ฐ์ด ์˜ค์ง€ ์•Š์•˜๋‹ค. ํ•ด๊ฒฐ : ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ’, ์ค‘๋ณต๋˜๋Š” ๊ฐ’์„ final๋กœ ์„ ์–ธํ•ด์„œ ํ•ด๊ฒฐํ•˜์˜€๋‹ค. (๋ชจ๋“  ์›์‹œ ๊ฐ’๊ณผ ๋ฌธ์ž์—ด์„ ํฌ์žฅ) 2. ์ปดํ“จํ„ฐ์™€ ์‚ฌ์šฉ์ž ๊ฐ์ฒด์˜ ๋ถ„๋ฆฌ > ๋ชจ๋“  ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ž‘๊ฒŒ ์œ ์ง€ํ•ด์•ผํ•œ๋‹ค ๋ฌธ์ œ : ๊ฐ์ฒด์˜ ์†์„ฑ์ด ์ข…๋ฅ˜๊ฐ€ ์œ ์ง€ ๋˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ–ˆ์—ˆ์Œ ํ•ด๊ฒฐ : ๊ธธ์–ด์ง„๋‹ค๋Š” ๊ฒƒ์€ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ต๊ณ  ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๊ณ  ๋‹จ์ผ ์ฑ…์ž„ ์›์น™์„ .. 2022. 2. 27.
2022.02.21์˜ ๊ธฐ๋ก โ–ถ ์˜ค๋Š˜ ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ ์„ธ๋ถ€ ๋ชฉํ‘œ => ๊ณต๋ถ€ ๊ด€๋ จ 1) ๋žŒ๋‹ค์™€ ์ŠคํŠธ๋ฆผ 2) ๋Œ€๋‹ต ๋ชปํ•œ ์งˆ๋ฌธ ๋‹ต ์ •๋ฆฌ 3) ์ž๋ฐ” ๋ฆฌํŒฉํ† ๋ง 4) ๊ธˆ์ผ ๋ฐฐ์šด ๋‚ด์šฉ ๋ณต์Šต => ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ 1) ํ™”๋ฉด ์„ค๊ณ„์„œ ํšŒ์˜ โ–ถ ๊ณต๋ถ€ ๋‚ด์šฉ EL ํ•จ์ˆ˜ ํ•จ์ˆ˜ : ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๊ฐ’์„ ์ œ๊ณต ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ฐ˜ํ™˜ ๋ฉ”์„œ๋“œ : ํ•„๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•จ ⇒ EL ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ๋Š” ๋ฐ˜๋“œ์‹œ static ๋ฉ”์„œ๋“œ๋กœ ์„ ์–ธ TLDํŒŒ์ผ function EL ํ•จ์ˆ˜๋ฅผ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•œ ์ƒ์œ„ ์—˜๋ฆฌ๋จผํŠธ name EL ํ•จ์ˆ˜๋ช…์„ ์„ค์ •ํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ function-class EL ํ•จ์ˆ˜์— ์˜ํ•ด ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์„ ์–ธ๋œ ํด๋ž˜์Šค๋ฅผ ์„ค์ •ํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ function-signature EL ํ•จ์ˆ˜์— ์˜ํ•ด ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์„ค์ •ํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ short-name TLD ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์„ค์ •ํ•˜๊ธฐ.. 2022. 2. 21.
๋ฐ˜์‘ํ˜•