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

๊ฐ์ฒด์ง€ํ–ฅ14

[์ด๋ฒคํŠธ ์†Œ์‹ฑ๊ณผ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜] CH.2 ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™ ๊ฐ์ฒด ์ง€ํ–ฅ์˜ ๋Œ€๋ช…์‚ฌ์ธ Java๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ๊ฐœ๋ฐœ์ž๋“ค, ์ฆ‰ ์šฐ๋ฆฌ๋“ค์€ ์ ˆ์ฐจ ์ง€ํ–ฅ์ ์ธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๊ฐ€ ๋งŽ๋‹ค.์ฒ˜์Œ ๊ฐ์ฒด ์ง€ํ–ฅ์„ ๊ณต๋ถ€ํ•˜๋˜ ๋•Œ, ๊ฐ์ฒด๋ผ๋Š” ๊ฐœ๋…์ด ๊ทธ๋ฆฌ๋„ ๋‚ฏ์„ค์—ˆ๋‹ค.C์–ธ์–ด๋กœ ์ฝ”๋”ฉ ์ž…๋ฌธ์„ ํ–ˆ๊ธฐ์—, ์ ˆ์ฐจ์ ์ธ ์ฝ”๋“œ์™€ ๋ช…๋ น์—๋งŒ ์ต์ˆ™ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.๊ฐ์ฒด ์ง€ํ–ฅ ๊ธฐ๋ฒ•์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ, ํด๋ž˜์Šค๋ฅผ ์‚ฌ๋žŒ์œผ๋กœ ๋ฐ”๋ผ๋ณด๋ ค ๋…ธ๋ ฅํ–ˆ๊ณ  ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ฑ…๊ณผ ๊ฐ์ฒด ์ง€ํ–ฅ ์ƒํ™œ ์ฒด์กฐ ์›์น™ ๋“ฑ์˜ ๊ฐœ๋…์„ ์ˆ™์ง€ํ•˜๋‹ˆ,์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉฐ ํ›จ์”ฌ Java์Šค๋Ÿฝ๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ ๊ฒƒ ๊ฐ™๋‹ค. ํ•˜์ง€๋งŒ, ์•„์ง๋„ ๊ฐ์ฒด ์ฆ‰ ํด๋ž˜์Šค๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ๋‚˜๋ˆ„๋Š” ๊ฑด ํž˜๋“  ์ผ์ด๋ผ ์ƒ๊ฐํ•œ๋‹ค.๊ทธ๊ฒƒ์€ ๊ณง ์„ค๊ณ„์— ๋Œ€ํ•œ ์˜์—ญ์ด๋ผ ์ƒ๊ฐ์ด ๋“œ๋Š”๋ฐ, ์ตœ๊ทผ์— LinkedIn ์—์„œ ๋ณธ ํ† ๋น„ ๋‹˜์˜ ๊ธ€์ฒ˜๋Ÿผ ๊ฐœ๋ฐœ์ž๋“ค์€ ์„ค๊ณ„๋ฅผ ์ง์ ‘ ๋‹ค๋ฃจ๋ฉฐ ๊ณต๋ถ€ํ•  ์ผ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๋Š” ์ƒ๊ฐ๋„ ๋“ ๋‹ค. ์ •๋ง ๊ธฐ๋ณธ์ด ๋˜๋Š” ๋‚ด์šฉ์ด์ง€๋งŒ .. 2025. 2. 24.
[Effective kotlin] ์•„์ดํ…œ 27. ๋ณ€ํ™”๋กœ๋ถ€ํ„ฐ ์ฝ”๋“œ๋ฅผ ๋ณดํ˜ธํ•˜๋ ค๋ฉด ์ถ”์ƒํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋ผ ์ž๋ฐ”๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉฐ ๊ฐ์ฒด์ง€ํ–ฅ์„ ์ œ๋Œ€๋กœ ๊ณต๋ถ€ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ , ๊ฐ์ฒด์ง€ํ–ฅ์˜ 4๋Œ€ ํŠน์„ฑ ์ค‘ '์ถ”์ƒํ™”'์˜ ์ฐธ๋œ ์˜๋ฏธ๋ฅผ ์•Œ๊ธฐ๊นŒ์ง€ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๋‹ค. ๊ฒฐ๋ก ์€ ๋งŽ์ด ๊ณต๋ถ€ํ•˜๊ณ  ์ƒ๊ฐํ•˜๋ฉฐ ํ™•์žฅํ•˜๊ณ  ์ ์šฉํ•ด ๋ด์•ผ ๊ทธ ์˜๋ฏธ๋ฅผ ๋น„๋กœ์†Œ ์ดํ•ดํ•˜๋ฆฌ๋ผ ์ƒ๊ฐํ•œ๋‹ค. ์ƒ์ˆ˜ const val NAME_PREFIX = "prefix" fun getName() : String = NAME_PREFIX + this.name ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์ถ”์ƒํ™” ๋ฐฉ๋ฒ•์ด๋‹ค. ๋ณธ ์ฝ”๋“œ์—์„œ String ๋ฆฌํ„ฐ๋Ÿด ๊ฐ’์„ ๋”ฐ๋กœ ๋นผ์„œ ์ƒ์ˆ˜ํ™”๋ฅผ ์‹œํ‚ค๋ฉด ์ดํ•ด๋„ ์‰ฌ์šธ ๋ฟ ์•„๋‹ˆ๋ผ. ๋ณ€๊ฒฝํ•˜๊ธฐ๋„ ํ›จ์”ฌ ์ˆ˜์›”ํ•˜๋‹ค. ๋ฆฌํ„ฐ๋Ÿด ๊ฐ’์— ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„์„ ๋ถ™์ผ ์ˆ˜ ์žˆ๊ณ , ๋ณ€๊ฒฝ์ด ์‰ฝ๋‹ค. ํ•จ์ˆ˜ ํŠน์ • ํ–‰์œ„๋ฅผ ํ•จ์ˆ˜๋กœ ์„ ์–ธํ•˜๋ฉด, ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ฝ”ํ‹€๋ฆฐ์—์„œ๋Š” ๊ฐ„๋‹จํžˆ ํ™•์žฅ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด, ์ถ”์ƒ.. 2023. 1. 29.
[๊ฐ์ƒ๋ฌธ] ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„ ์ฒ ์ € ์ž…๋ฌธ์„ ์ฝ๊ณ  ๋‚˜์„œ ์ด ์ฑ…์„ ์ฝ์€ ์ด์œ ๋Š” ์ฐธ ์›ƒํ”„๋‹ค. โ€‹ ์‚ฌ์•ผ ํ•  ์ฑ…์„ ์ฐฉ๊ฐํ–ˆ๋‹ค.. ใ…Žใ…Ž ์ฐฉ๊ฐํ•˜๊ณ  ์ž˜๋ชป ๊ตฌ๋งคํ•œ ์ฑ…์ด๋‹ค. ๋‹น๊ทผ๋Ÿฌ์—๊ฒŒ ๊ตฌ๋งคํ•œ ์ฑ…์ด๋ผ ํ™˜๋ถˆ์€ ์–ด๋ ต๊ณ  ๋‹ค์‹œ ๋ฌผ์–ด๋ณด๊ธฐ ๊ท€์ฐฎ์•„์„œ ๊ทธ๋ƒฅ ์ฝ๊ธฐ๋กœ ํ–ˆ๋‹ค. โ€‹ ์ฝ”๋“œ๊ฐ€ C# ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ๊ณ , ์ €์ž๋„ ์ผ๋ณธ ์‚ฌ๋žŒ์ด๋ผ์„œ ์•ˆ ์ฝํž ๊ฒƒ ๊ฐ™์•˜๋‹ค. ๋Œ€์ถฉ ๋ณด๋‹ค๊ฐ€ ์•ˆ ์ฝํžˆ๋ฉด ๋‹น๊ทผ์— ํŒ๋งคํ•˜๋ ค๊ณ  ํ–ˆ์—ˆ๋‹ค. โ€‹ ๋‹คํ–‰ํžˆ C#์„ ์ข€ ํ•ด์„œ ๊ทธ๋Ÿฐ์ง€ (์˜ˆ์ œ ์ฝ”๋“œ๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์ง€ ์•Š์•˜๋‹ค) ๊ทธ๋Ÿญ์ €๋Ÿญ ์ดํ•ดํ•ด๊ฐ€๋ฉฐ ์™„๋…ํ–ˆ๋‹ค. โ€‹ โ€‹ ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„๋‹ˆ ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜, ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜๋‹ˆ ์„ค๋ช…ํ•˜๋Š” ๊ฐœ๋…๋“ค์€ ๋‹ค ์˜ค๊ฐ€๋‹ค๊ฐ€ ๋ฐฐ์šฐ๊ณ  ๋ด์™”๋˜ ์ฝ”๋“œ ๊ตฌ์„ฑ์ด ์งฌ์งฌ์ด ์žˆ์—ˆ๋‹ค. ๊ทธ๋• ๊ทธ๋ ‡๊ฒŒ ์จ์•ผ ๋˜๋‚˜ ๋ณด๋‹ค ํ•˜๊ณ  ์•ต๋ฌด์ƒˆ์ฒ˜๋Ÿผ ์™ธ์›Œ์„œ ์ผ๋˜ ๊ธฐ์–ต์ด ์žˆ๋‹ค. โ€‹ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉฐ ์ดํ•ด๊ฐ€ ๋’ท๋ฐ›์นจ๋˜์ง€ ๋ชปํ•œ ํ‹€์„ ๊นจ๊ณ  ๊ทธ๋ƒฅ ์ •์„๋Œ€๋กœ ์ฝ”๋“œ ์ž‘์„ฑ์„ ํ–ˆ์—ˆ.. 2022. 11. 27.
[ํšŒ๊ณ ] ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜ ์ฑ… ์Šคํ„ฐ๋”” ๋ฐ ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ์น˜๋ฉฐ ์ตœ๊ทผ ์‹ ์ž… ๊ฐœ๋ฐœ์ž๋กœ์˜ ์—ฌ์ •์„ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ์ฑ„์šฉ ์—ฐ๊ณ„ํ˜• ์ธํ„ด์‹ญ, ์‹ ์ž… ๊ณต์ฑ„๋ฅผ ๋ณด๊ณ  ํ™•์ธํ•˜๋ฉฐ ์„œ๋ฅ˜ ์ง€์›์„ ํ•˜๊ณ  ์žˆ๋‹ค. ์—ฌ์ „ํžˆ ํ•  ์ผ์€ ์‚ฐ๋”๋ฏธ์ง€๋งŒ, ์กฐ๊ธˆ ๋” ์‹œ๊ฐ„์„ ํšจ์œจ์ ์œผ๋กœ ์จ๊ฐ€๋ฉฐ ๋ฐœ์ „ํ•˜๊ณ  ์‹ถ๊ธฐ์— ์ฝ๊ณ  ์‹ถ์—ˆ๋˜ ์ฑ…์„ ๊ฐ€์ง€๊ณ  ์Šคํ„ฐ๋””๋ฅผ ํ•˜๋ฉด ์–ด๋–จ๊นŒ๋ผ๋Š” ์ƒ๊ฐ์„ ํ–ˆ์—ˆ๋‹ค. ๋งˆ์นจ ๊ฐ™์€ ์—ฌ์ • ๊ธธ์— ์˜ฌ๋ผ์žˆ๋Š” ์นœ๊ตฌ๊ฐ€ ๋– ์˜ฌ๋ž๊ณ , ์ œ์•ˆ์„ ์ˆ˜๋ฝํ•˜์—ฌ ๋งŒ๋“ค๋ฉด์„œ ๋ฐฐ์šฐ๋Š” ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜๋ผ๋Š” ์ฑ…์„ ๊ฐ€์ง€๊ณ  2์ฃผ ๊ฐ„์˜ ์Šคํ„ฐ๋””๋ฅผ ๋งˆ์ณค๋‹ค. ์ด ์ฑ…์„ ์ฝ๊ณ  ์†Œํ”„ํŠธ์›จ์–ด์˜ ์„ค๊ณ„์  ๊ณ ๋ฏผ์— ํ•œ์ธต ๋” ๊นŠ์ด ๋น ์ง€๊ฒŒ ๋จ๊ณผ ๋™์‹œ์— ์ƒˆ๋กœ์šด ์„ธ์ƒ์œผ๋กœ์˜ ๋ฐœ์„ ๋””๋”˜ ๋Š๋‚Œ์ด ๋“ค์—ˆ๋‹ค. ์„ค๊ณ„ ๋‚ด์šฉ์€ ํ‰์†Œ์— ๊ฐ€์žฅ ๋งŽ์ด ๊ณ ๋ฏผํ–ˆ๋˜ ๋ถ€๋ถ„์ธ์ง€๋ผ ์ฑ…์ด ์ดํ•ด๊ฐ€ ์ž˜ ๋˜์—ˆ์—ˆ๊ณ , ์• ๋งคํ–ˆ๋˜ ๋ถ€๋ถ„์„ 2ํšŒ๋…, ๋‹ค๋ฅธ ๊ด€์ ์œผ๋กœ ์ฝ์–ด๋ณด๋ ค 3 ํšŒ๋…ํ•˜๋ฉฐ ์™„๋…์„ ํ–ˆ๋‹ค. ์ฃผ๊ด€์ ์ด์ง€๋งŒ ๊ฐœ๋ฐœ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉฐ ๋“œ๋Š” ์ƒ๊ฐ.. 2022. 11. 20.
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.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.03.08~03.10 ์˜ ๊ธฐ๋ก โ–ถ 3์ผ ๊ณ„ํš=>  ๊ณต๋ถ€ ๊ด€๋ จ1) ์Šคํ”„๋ง ๊ฐœ๊ตฌ๋ฆฌ์ฑ… ์™„๋… ํ›„ ๋…ธ์…˜ ๋ฐ ๋ธ”๋กœ๊ทธ ์ •๋ฆฌ2) MVC ๊ฐ์ฒด์ง€ํ–ฅ ๋ฆฌํŒฉํ† ๋ง ํ•˜๋ฃจ์ข…์ผ (9์ผ ์˜ค๋Š˜)3) ๊ธฐ์ˆ  ์งˆ๋ฌธ ๋‹ต๋ณ€ ๋…ธ์…˜ ์ •๋ฆฌ ๋ฐ SOLID ์˜ˆ์ œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ => ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ1) DB ํ…Œ์ด๋ธ” ์™„์„ฑ ๋ฐ select JOIN ๋Œ€๋žต์ ์ธ ์ฟผ๋ฆฌ๋ฌธ ์ž‘์„ฑ2) git ํ˜‘์—…โ–ถ ๋ฌธ์ œ ์ •๋ฆฌ1. ๊ฐ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„> ๋‹จ์ผ ์ฑ…์ž„ ์›์น™์œผ๋กœ ํด๋ž˜์Šค๋ฅผ ๋ถ„๋ฆฌ2. ๋‚ด๋ถ€ ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ Model์—์„œ ์ผ์–ด๋‚˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค> ์ƒ์ˆ˜์˜ ๋‚˜์—ด์ธ enum ํด๋ž˜์Šค์—์„œ ํ•ด๊ฒฐ3. setter ๋ฉ”์„œ๋“œ์˜ ์ƒ๋žต (๋ถˆ๋ณ€์„ฑ์„ ์ง€์ผœ๋ผ)> ์ƒ์„ฑ์ž์˜ ์ฃผ์ž…์œผ๋กœ ํ•ด๊ฒฐ4. ๊ฐ’ ์ž์ฒด์˜ ๋น„๊ต๋ณด๋‹ค ํƒ€์ž…์˜ ์˜๋ฏธ๋ฅผ ๋” ์‚ด๋ ค์„œ ๋น„๊ต> ํƒ€์ž…์„ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ™์€ ํƒ€์ž…๋ผ๋ฆฌ์˜ ๋น„๊ต๊ฐ€ ์ฝ”๋“œ ์ž‘์„ฑ์˜ ๊ฐ€๋…์„ฑ์ด ์ข‹๋‹ค. 5. ๋ชจ๋ธ์—์„œ ๋ทฐ ์˜์กด์„.. 2022. 3. 9.
2022.02.27์˜ ๊ธฐ๋ก โ–ถ ํ•˜๋ฃจ => ๊ณต๋ถ€ ๊ด€๋ จ 1) ๊ธฐ์ˆ  ์งˆ๋ฌธ ์ •๋ฆฌ ๋ฐ ์ค€๋น„ (๋žŒ๋‹ค์‹, ์ŠคํŠธ๋ฆผ, ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ๋„คํŠธ์›Œํฌ) 2) MVC ๊ฐ์ฒด์ง€ํ–ฅ ๋ฆฌํŒฉํ† ๋ง ํ›„ ์ œ์ถœ ํ›„ ํ”ผ๋“œ๋ฐฑ ๋ฐ›๊ธฐ 3) ์Šคํ”„๋ง ์ž…๋ฌธ ์ฑ… ์ฝ๊ธฐ => ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ 1) UI ์—…๋ฌด ๋ถ„๋‹ด ํšŒ์˜ (๊ฐ€๋Šฅํ•˜๋ฉด..?) โ–ถ ๋ฌธ์ œ ์ •๋ฆฌ 1. ์ƒ์ˆ˜ํ™”์˜ ๋ฌธ์ œ > ๋‹จ์ˆœ ๋ฆฌํ„ฐ๋Ÿด ๊ฐ’์€ ์Šค์นผ๋ผ์ด๋‹ค. ๋ฌธ์ œ : ์–ด๋Š ๋ณ€์ˆ˜๋ฅผ ์–ด๋–ค์‹์œผ๋กœ ์ƒ์ˆ˜ํ™”ํ•ด์•ผ ํ• ์ง€ ๊ฐ์ด ์˜ค์ง€ ์•Š์•˜๋‹ค. ํ•ด๊ฒฐ : ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ’, ์ค‘๋ณต๋˜๋Š” ๊ฐ’์„ final๋กœ ์„ ์–ธํ•ด์„œ ํ•ด๊ฒฐํ•˜์˜€๋‹ค. (๋ชจ๋“  ์›์‹œ ๊ฐ’๊ณผ ๋ฌธ์ž์—ด์„ ํฌ์žฅ) 2. ์ปดํ“จํ„ฐ์™€ ์‚ฌ์šฉ์ž ๊ฐ์ฒด์˜ ๋ถ„๋ฆฌ > ๋ชจ๋“  ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ž‘๊ฒŒ ์œ ์ง€ํ•ด์•ผํ•œ๋‹ค ๋ฌธ์ œ : ๊ฐ์ฒด์˜ ์†์„ฑ์ด ์ข…๋ฅ˜๊ฐ€ ์œ ์ง€ ๋˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ–ˆ์—ˆ์Œ ํ•ด๊ฒฐ : ๊ธธ์–ด์ง„๋‹ค๋Š” ๊ฒƒ์€ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ต๊ณ  ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๊ณ  ๋‹จ์ผ ์ฑ…์ž„ ์›์น™์„ .. 2022. 2. 27.
2022.02.23์˜ ๊ธฐ๋ก โ–ถ ์˜ค๋Š˜ ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ ์„ธ๋ถ€ ๋ชฉํ‘œ => ๊ณต๋ถ€ ๊ด€๋ จ 1) ์ŠคํŠธ๋ฆผ Stream / ๋ชจ๋˜ ์ž๋ฐ” 8 ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ 2) ์ž๋ฐ” ๋ฆฌํŒฉํ† ๋ง 3) ๊ธˆ์ผ ๋ฐฐ์šด ๋‚ด์šฉ ๋ณต์Šต 4) ์Šคํ”„๋ง ๊ฐ์ฒด์ง€ํ–ฅ ์ฑ… 1๋‹จ์› => ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ 1) ํ™”๋ฉด ๋ชฉ๋ก ๋ฐ ๊ฒ€์‚ฌ์„œ ํšŒ์˜ โ–ถ ๋ฌธ์ œ ์ •๋ฆฌ 1. ์šฉ์–ด ๊ด€๋ จ ๋ฌธ์ œ ๋ฌธ์ œ : ๊ตฌ๊ธ€๋ง ๊ฒ€์ƒ‰์„ ํ•˜๋ฉฐ ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค๋ณด๋‹ˆ ๋ชจ๋ฅด๋Š” ์šฉ์–ด ํˆฌ์„ฑ์ด๋‹ค. ํ•ด๋‹ต : ๊ณ„์† ๊ฒ€์ƒ‰ํ•˜๋ฉฐ ์•Œ์•„๋ณด๊ณ  ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด ์ดํ•ดํ•˜์ž. โ–ถ ๊ณต๋ถ€ ๋‚ด์šฉ MyBatis (Framework) SqlSessionFactory ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™˜๊ฒฝ ์„ค์ • ํŒŒ์ผ properties : property ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ์ƒ์œ„ ์—˜๋ฆฌ๋จผํŠธ resource ์†์„ฑ : Properties ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ • ⇒ p.. 2022. 2. 23.
2022.02.22์˜ ๊ธฐ๋ก โ–ถ ์˜ค๋Š˜ ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ ์„ธ๋ถ€ ๋ชฉํ‘œ => ๊ณต๋ถ€ ๊ด€๋ จ 1) ์ŠคํŠธ๋ฆผ 2) ์ž๋ฐ” ๋ฆฌํŒฉํ† ๋ง 3) ๊ธˆ์ผ ๋ฐฐ์šด ๋‚ด์šฉ ๋ณต์Šต 4) ์Šคํ”„๋ง ๊ฐ์ฒด์ง€ํ–ฅ ์ฑ… 1๋‹จ์› => ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ 1) ํ™”๋ฉด ์„ค๊ณ„์„œ ํšŒ์˜ (ํŠธ๋ ˆ์ด๋„ˆ ๊ด€๋ฆฌ ๋ถ€๋ถ„) โ–ถ ๋ฌธ์ œ ์ •๋ฆฌ 1. ์ต๋ช… ๊ฐ์ฒด์˜ ๊ฐœ๋… ์ •์˜๊ฐ€ ํ™•์‹ค์น˜ ์•Š์•„์„œ ๋žŒ๋‹ค์‹์˜ ์ดํ•ด๊ฐ€ ์–ด๋ ค์› ๋‹ค. => ์ต๋ช… ๊ฐ์ฒด(ํด๋ž˜์Šค)์˜ ๊ฐœ๋… ํ™•์‹คํžˆ ์ •๋ฆฌ => ์ผํšŒ์„ฑ์˜ ์ด๋ฒคํŠธ์ด๋ฏ€๋กœ ๊ฐ์ฒด์— ๋”ฐ๋กœ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ž„. โ–ถ ๊ณต๋ถ€ ๋‚ด์šฉ JSTL (Java Standard Tag Library) foreach ํƒœ๊ทธ ํƒœ๊ทธ๋‚ด์šฉ์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ํฌํ•จํ•˜์—ฌ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•œ ํƒœ๊ทธ var ์†์„ฑ : ์Šค์ฝ”ํ”„ ๊ฐ์ฒด์— ์ €์žฅ๋œ ์†์„ฑ๊ฐ’ begin ์†์„ฑ : ์Šค์ฝ”ํ”„ ๊ฐ์ฒด์— ์ €์žฅ๋  ์‹œ์ž‘๊ฐ’(Integer)์„ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ • end ์†์„ฑ : ์Šค์ฝ”ํ”„ ๊ฐ์ฒด์— ์ €์žฅ๋  ์ข…๋ฃŒ๊ฐ’.. 2022. 2. 22.
2022.02.14 (๊ฐœ๋… ์ •๋ฆฌ) โ–ถ ๊ฐœ์ธ ๊ณต๋ถ€ ๊ด€๋ จ 7. Garbage Collection(๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜)์˜ ๋™์ž‘ ๋ฐฉ์‹Young ์˜์—ญ๊ณผ Old ์˜์—ญ์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋กœ ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์„ธ๋ถ€์ ์ธ ๋™์ž‘ ๋ฐฉ์‹์€ ๋‹ค๋ฅด๋‹ค. ํ•˜์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด ์‹คํ–‰๋œ๋‹ค๊ณ  ํ•˜๋ฉด ๋‹ค์Œ์˜ 2๊ฐ€์ง€ ๊ณตํ†ต์ ์ธ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด๊ฒŒ ๋œ๋‹ค.Stop The World : JVM์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹คํ–‰์„ ๋ฉˆ์ถ”๋Š” ์ž‘์—…์ด๋‹ค. GC๊ฐ€ ์‹คํ–‰๋  ๋•Œ๋Š” GC๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์“ฐ๋ ˆ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ์“ฐ๋ ˆ๋“œ๋“ค์˜ ์ž‘์—…์ด ์ค‘๋‹จ๋œ๋‹ค. ๋‹น์—ฐํžˆ ๋ชจ๋“  ์“ฐ๋ ˆ๋“œ๋“ค์˜ ์ž‘์—…์ด ์ค‘๋‹จ๋˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฉˆ์ถ”๊ธฐ ๋•Œ๋ฌธ์—, GC์˜ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ์œ„ํ•ด ํŠœ๋‹์„ ํ•œ๋‹ค๊ณ  ํ•˜๋ฉด ๋ณดํ†ต stop-the-world์˜ ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ์ž‘์—…์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.Mark and Sweep :Mark: ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์™€ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ.. 2022. 2. 15.
2022-02-14์˜ ๊ธฐ๋ก โ–ถ ์˜ค๋Š˜ ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ ์„ธ๋ถ€ ๋ชฉํ‘œ => ๊ณต๋ถ€ ๊ด€๋ จ 1) ๋ฐฐ์šด ๋‚ด์šฉ ๋ณต์Šต 2) G.C ๋ฐ JVM ๋™์ž‘ ์›๋ฆฌ ์™„์ „ ์ดํ•ด 3) primitive type & reference type ์ฐจ์ด์  ํ™•์‹คํžˆ ์™ธ์šฐ๊ธฐ (ํƒ€์ž…์˜ ๋Œ€ํ•œ ์ฐจ์ด) 4) ๊ฐ์ฒด์ง€ํ–ฅ์ด ํ™•์‹คํžˆ ๋ญ”์ง€ (๋ง๋กœ ์„ค๋ช… ๊ฐ€๋Šฅํ•ด์•ผํ•จ.) 5) ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์š”์†Œ(4๊ฐ€์ง€) => ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด ์„ค๋ช… ๊ฐ€๋Šฅํ•˜๊ฒŒ 6) ์ž๋ฐ”์˜ ์ •์„ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ 1 โ–ถ ์ˆ˜์—… ๊ณต๋ถ€ ๊ด€๋ จ => AJAX๋ฅผ ์ด์šฉํ•˜์—ฌ db์— ๋ฐ”๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. => ๊ฒ€์ƒ‰์ฐฝ ์œ ์‚ฌ ๊ฒ€์ƒ‰์–ด ๊ธฐ๋Šฅ์€ suggest ๊ธฐ๋Šฅ๋„ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. => ajax ์ œ์ด์ฟผ๋ฆฌ ์†์„ฑ์—์„œ dataType : "json"์ผ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด๋กœ ๋งŒ๋“ ๋‹ค ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ํŒŒ์ผ(xml)์„ ๋ถˆ๋Ÿฌ์˜ฌ ์‹œ ์—๋Ÿฌ์ฝ”๋“œ 200 ๋ฐœ์ƒ. (์š”์ฒญ.. 2022. 2. 14.
2022.02.10์˜ ๊ธฐ๋ก โ–ถ ์˜ค๋Š˜ ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ ์„ธ๋ถ€ ๋ชฉํ‘œ =>  ๊ณต๋ถ€ ๊ด€๋ จ1) AJAX ๊ฐœ๋… ์ •๋ฆฌ2) ๊ฐ์ฒด์ง€ํ–ฅ ์ฑ… 3๋‹จ์› ์ฝ๊ณ  ์ •๋ฆฌ โ–ถ ๊ณต๋ถ€ ๋‚ด์šฉAJAX(Asynchronous JavaScript And XML)๋™๊ธฐ์‹ VS ๋น„๋™๊ธฐ์‹⇒ ๋™๊ธฐ ๋ฐฉ์‹์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์ „๊นŒ์ง€ ๋‹ค๋ฅธ ์ž‘์—… ์ˆ˜ํ–‰ ๋ถˆ๊ฐ€ ๋น„๋™๊ธฐ๋Š” ๊ฐ€๋Šฅ.GET ๋ฐฉ์‹ ์š”์ฒญ ์‹œ ๋ฌธ์ œ์ (์ „๋‹ฌ ๊ฐ’์ด ์ ์€ ๊ฒฝ์šฐ/๊ฐ„๋‹จํ•˜๊ฒŒ ์ „๋‹ฌํ•  ๊ฒฝ์šฐ)⇒ ์ธํ„ฐ๋„ท ์ต์Šคํ”Œ๋กœ๋Ÿฌ๋Š” URL์— ํ•œ๊ธ€ ์ „๋‹ฌ์ด ์•ˆ๋˜๋ฏ€๋กœ(๋ธŒ๋ผ์šฐ์ € ์ž์ฒด๊ฐ€ ์ž๋™ ํŒŒ์‹ฑ์ด ์•ˆ๋จ) ํ•œ๊ธ€ ๊ฐ’ ์ „๋‹ฌ ์‹œ ๋ถ€ํ˜ธํ™” ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผ ํ•จ.POST ๋ฐฉ์‹์œผ๋กœ ์›น ํ”„๋กœ๊ทธ๋žจ์„ ์š”์ฒญ(์ „๋‹ฌ ๊ฐ’์ด ๋งŽ์€ ๊ฒฝ์šฐ/๋ณด์•ˆ์„ ์š”ํ•จ)⇒ send ๋ฉ”์†Œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’ ์ „๋‹ฌ⇒ ๊ธฐ๋ณธ์€ ์›์‹œ ๋ฐ์ดํ„ฐ๋กœ ์ „๋‹ฌ(ํ…์ŠคํŠธ, multipart/form data → ์›์‹œ๋ฐ์ดํ„ฐ)⇒ ํ•ด๊ฒฐ๋ฒ•) “ap.. 2022. 2. 10.
2022.1.13์˜ ๊ธฐ๋ก - ํ•˜๋ฃจ ์ •๋ฆฌ - DB ์ •์˜ DRD ๊ด€๊ณ„์„  ๋ฐ ์—‘์…€์ •๋ฆฌJSP ๋ณต์Šต ์ฝ”๋”ฉ- ์˜ค๋Š˜ ๊ณต๋ถ€ ๋‚ด์šฉ - JSP์‘๋‹ต๋ฐฉ์‹์€ json, xml๋กœ๋„ ์‘๋‹ต๊ฐ€๋Šฅํ•œ๋ฐ ์ด๊ฑด restWAS์— ์˜ํ•ด jsp ์›น ๋ฌธ์„œ๊ฐ€ ์„œ๋ธ”๋ฆฟ ํด๋ž˜์Šค๋กœ ์ปดํŒŒ์ผ ๋  ๋•Œ 9๊ฐœ์˜ ๋‚ด์žฅ ๊ฐ์ฒด๊ฐ€ ์ž๋™์œผ๋กœ ์„ ์–ธ๋œ๋‹ค. ์ ค ๋งŽ์ด ์“ฐ๋Š”๊ฒŒ request, response, session ๊ฐ์ฒดjoin_form.jsp๋น„์ •์ƒ์ ์ธ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต ์ฒ˜๋ฆฌresponse.sendRedirect(String url) : ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ 301 ์ƒํƒœ์ฝ”๋“œ์™€ URL ์ฃผ์†Œ๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ ๋ธŒ๋ผ์šฐ์ €์˜ ์š”์ฒญ URL ์ฃผ์†Œ๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ์žฌ์š”์ฒญํ•˜๋„๋ก ์ง€์‹œํ•˜๋Š” ๋ฉ”์†Œ๋“œ - ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์ด๋™ (๊ฒฝ๋กœ๋Š” ์ตœ์ƒ์œ„ ๋ฃจํŠธ \ ๋กœ ์žก์Œ , ์›๋ž˜๋Š” contextroot๊ฐ€ ๊ธฐ๋ณธ์ด์ง€๋งŒ(์ž๋ฐ”์ผ๊ฒฝ์šฐ) )⇒ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์ด๋™์€.. 2022. 1. 13.
๋ฐ˜์‘ํ˜•