Legacy

2022.02.24 ์˜ ๊ธฐ๋ก

GroovyArea 2022. 2. 24. 10:14

=>  ๊ณต๋ถ€ ๊ด€๋ จ

1) ๋ชจ๋˜ ์ž๋ฐ” ์ŠคํŠธ๋ฆผ(Stream) & ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ(IO Stream)

2) ๊ธˆ์ผ ๋ฐฐ์šด ๋‚ด์šฉ ๋ณต์Šต

3) ์Šคํ”„๋ง ๊ฐ์ฒด์ง€ํ–ฅ CH2

 

=> ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ

1) UI ํšŒ์˜


โ–ถ ๋ฌธ์ œ ์ •๋ฆฌ

1. ์ŠคํŠธ๋ฆผ ๊ด€๋ จ ์ •๋ฆฌ

> ๋ฌธ์ œ : ์ŠคํŠธ๋ฆผ์—์„œ Map(), flatMap()์˜ ์ฐจ์ด?

> ์ •๋ฆฌ : ์ŠคํŠธ๋ฆผ์˜ ์ŠคํŠธ๋ฆผ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ค‘๊ฐ„์—ฐ์‚ฐ๊ณผ ์ŠคํŠธ๋ฆผ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ค‘๊ฐ„ ์—ฐ์‚ฐ. ์ŠคํŠธ๋ฆผ์˜ ํ˜•ํƒœ๊ฐ€ ๋ฐฐ์—ด์ธ ๊ฒฝ์šฐ flatMap์ด ์œ ์šฉ


โ–ถ ๊ณต๋ถ€ ๋‚ด์šฉ

Mybatis

mapper ์—˜๋ฆฌ๋จผํŠธ

  • class ์†์„ฑ : Interface ๊ธฐ๋ฐ˜์˜ ๋งตํผ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •
  • ⇒ Interface & XML ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋Š” Java ์ž๋ฃŒํ˜•์œผ๋กœ ํ‘œํ˜„
  • Interface ๋งตํผ์˜ ์žฅ์  : SqlSession ์ธ์Šคํ„ด์Šค๋กœ SQL ๋ช…๋ น์„ XML ๋งตํผ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์ œ๊ณต๋ฐ›์•„ ์‚ฌ์šฉํ•˜๊ธฐ ํŽธ๋ฆฌ
  • Interface ๋งตํผ์˜ ๋‹จ์  : ๋งคํ•‘ ์„ค์ • ๊ธฐ๋Šฅ๊ณผ ๋™์  SLQ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ๋ถˆํŽธ

⇒ XML ๋งตํผ์˜ ์žฅ์  : ๋งคํ•‘ ์„ค์ • ๊ธฐ๋Šฅ(์ˆ˜๋™ ๋งคํ•‘)๊ณผ ๋™์  SQL ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ํŽธ๋ฆฌ

⇒ XML ๋งตํผ์˜ ๋‹จ์  : SqlSession ์ธ์Šคํ„ด์Šค๋กœ SQL ๋ช…๋ น์„ ์ œ๊ณต๋ฐ›์•„ ์‚ฌ์šฉํ•˜๊ธฐ ๋ถˆํŽธ, DAO ๋งŒ๋“ค๊ธฐ ๋ถˆํŽธ (๊ฐ๊ฐ์˜ ๋ช…๋ น์— ๋งž๋Š” ์ฟผ๋ฆฌ๋ฌธ์„ ํ˜ธ์ถœํ•ด์•ผํ•จ)

XML ๋งตํผ ํŒŒ์ผ๊ณผ Interface ๋งตํผ ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ ๋ƒ…ํผ๋กœ ๋™์ž‘๋˜๋„๋ก ์„ค์ •ํ•˜์—ฌ ์‚ฌ์šฉ - ๋งตํผ ๋ฐ”์ธ๋”ฉ(Mapper Binding)

⇒ SQL ๋ช…๋ น์€ XML ๋งตํผ์— ๋“ฑ๋กํ•˜๊ณ  DAO ํด๋ž˜์Šค๋Š” Interface ๋งตํผ๋ฅผ ์ด์šฉํ•ด์„œ ์ž‘์„ฑ

  • mapper ์—˜๋ฆฌ๋จผํŠธ์—๋Š” XML ๋งตํผ ํŒŒ์ผ๋งŒ ๋“ฑ๋กํ•˜์—ฌ ์„ค์ •

XML ๋งตํผ ํŒŒ์ผ๊ณผ Interface ๋งตํผ ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ ๋งตํผ๋กœ ๋™์ž‘๋˜๋„๋ก ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ⇒ XML ๋งตํผ์˜ mapper ์—˜๋ฆฌ๋จผํŠธ์˜ namespace ์†์„ฑ๊ฐ’์œผ๋กœ ๊ฐ™์€ ์ด๋ฆ„์˜ Interface ๋งตํผ ํŒŒ์ผ์„ ์ž‘์„ฑ
  • ⇒ XML ๋งตํผ์—์„œ SQL ๋ช…๋ น์ด ๋“ฑ๋ก๋œ ์—˜๋ฆฌ๋จผํŠธ์™€ Interface ๋งตํผ์˜ ์ถ”์ƒ ๋ฉ”์„œ๋“œ๊ฐ€ ๋™์ผํ•œ ํ˜•ํƒœ๋กœ ์ž‘์„ฑ → DAO ํด๋ž˜์Šค์—์„œ ์ถ”์ƒ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ ๊ฒฝ์šฐ ๊ฐ™์€ ์ด๋ฆ„์˜ ์—˜๋ฆฌ๋จผํŠธ์˜ SQL ๋ช…๋ น์„ ์ œ๊ณต๋ฐ›์•„ ์‚ฌ์šฉ
  • ์ผ๋ฐ˜์ ์œผ๋กœ parameterType ์†์„ฑ๊ฐ’์€ ์ถ”์ƒ ๋ฉ”์„œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์„ค์ •ํ•˜๊ณ  resultType ์†์„ฑ๊ฐ’์€ ์ถ”์ƒ๋ฉ”์„œ๋“œ์˜ ๋ฐ˜ํ™˜ํ˜•์œผ๋กœ ์„ค์ •
  • ⇒ ๋งตํผ ๋ฐ”์ธ๋”ฉํ•œ ๊ฒฝ์šฐ ์—˜๋ฆฌ๋จผํŠธ์˜ parameterType ์†์„ฑ์€ ์ƒ๋žต ๊ฐ€๋Šฅ (ํ˜„์—…์—์„œ๋Š” ์ƒ๋žต)

mapper ์ธํ„ฐํŽ˜์ด์Šค

  • mybatis ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ๋งตํผ ์„ค์ • ๊ฐ€๋Šฅ
  • ⇒ ์ถ”์ƒ ๋ฉ”์„œ๋“œ์— ๋งตํผ ์–ด๋…ธํ…Œ์ด์…˜ (Mapper Annotation)์„ ์‚ฌ์šฉํ•˜์—ฌ SQL ๋ช…๋ น ๋“ฑ๋ก

@insert : INSERT ๋ช…๋ น์„ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•œ ์–ด๋…ธํ…Œ์ด์…˜

  • value ์†์„ฑ : ์ถ”์ƒ๋ฉ”์„œ๋“œ์— ๋“ฑ๋กํ•œ SQL ๋ช…๋ น์„ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •
  • ⇒ ์–ด๋…ธํ…Œ์ด์…˜์— value ๋‹ค๋ฅธ ์†์„ฑ์ด ์—†๋Š” ๊ฒฝ์šฐ ์†์„ฑ๊ฐ’๋งŒ ์„ค์ • ๊ฐ€๋Šฅ

@update: UPDATE ๋ช…๋ น์„ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•œ ์–ด๋…ธํ…Œ์ด์…˜

@delete : DELETE ๋ช…๋ น์„ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•œ ์–ด๋…ธํ…Œ์ด์…˜

@select : SELECT ๋ช…๋ น์„ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•œ ์–ด๋…ธํ…Œ์ด์…˜

  • ๋ฌธ์ œ์  : ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๋ช…๊ณผ DTO ํด๋ž˜์Šค์˜ ํ•„๋“œ๋ช…์ด ๋ชจ๋‘ ๋‹ค๋ฅด๋ฉด ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์ด DTO ํด๋ž˜์Šค์˜ ํ•„๋“œ์— ํ•˜๋‚˜๋„ ์ €์žฅ๋˜์ง€ ์•Š์•„ DTO ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ œ๊ณตํ•˜์ง€ ์•Š๊ณ  NULL ์ œ๊ณต
  • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ 1) : ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๋ช…์„ DTO ํด๋ž˜์Šค์˜ ํ•„๋“œ๋ช…๊ณผ ๊ฐ™๋„๋ก ๊ฒ€์ƒ‰ํ•œ๋‹ค.
  • ⇒ SELECT ๋ช…๋ น์—์„œ Column Alias ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰๋Œ€์ƒ์— ๋ณ„์นญ์„ ์„ค์ •ํ•˜์—ฌ ๊ฒ€์ƒ‰ (SQL as ์ด์šฉ ๋ณ„์นญ)
    • SQL ๋ช…๋ น์„ ๊ตฌ์„ฑํ•˜๋Š” ์ผ๋ถ€๋ถ„์˜ ๋ฌธ์žฅ์„ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•œ ์—˜๋ฆฌ๋จผํŠธ
    include
    • sql ์—˜๋ฆฌ๋จผํŠธ์— ๋“ฑ๋ก๋œ SQL ๋ฌธ์žฅ์„ SQL ๋ช…๋ น์— ํฌํ•จํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ
    • refid ์†์„ฑ : sql ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ์‹๋ณ„์ž๋ฅผ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •
  • sql
  • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ 2) : mybatis ํ™˜๊ฒฝ์„ค์ •ํŒŒ์ผ์—์„œ setting ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ [mapUnderscoreToCamelCase] ์ด๋ฆ„์œผ๋กœ ์ ์šฉ๋œ ์‹คํ–‰ ๊ด€๋ จ ๊ฐ’์„ [true]๋กœ ๋ณ€๊ฒฝ
  • ⇒ SQL ๋ช…๋ น์—์„œ ์‚ฌ์šฉ๋œ ์Šคํ…Œ์ดํฌ ํ‘œ๊ธฐ๋ฒ•์˜ ์‹๋ณ„์ž๊ฐ€ ์ž๋™์œผ๋กœ ์นด๋ฉœ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ๋ณ€๊ฒฝ๋˜์–ด ๊ฒ€์ƒ‰
  • resultMap ์†์„ฑ : ๋งคํ•‘์ •๋ณด๊ฐ€ ์ €์žฅ๋œ resultMap ์—˜๋ฆฌ๋จผํŠธ์˜ ์‹๋ณ„์ž๋ฅผ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ • - ์ˆ˜๋™ ๋งคํ•‘ ์ฒ˜๋ฆฌ

resultMap

  • ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์„ ํด๋ž˜์Šค์˜ ํ•„๋“œ์— ๋งคํ•‘๋˜์–ด ์ €์žฅ๋˜๋„๋ก ์„ค์ •ํ•˜๋Š” ์ƒ์œ„ ์—˜๋ฆฌ๋จผํŠธ
  • type ์†์„ฑ : ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ํ•„๋“œ๊ฐ€ ์„ ์–ธ๋œ DTO ํด๋ž˜์Šค๋ฅผ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •
  • ⇒ ํด๋ž˜์Šค๋ช… ๋Œ€์‹  ๋ณ„์นญ ์‚ฌ์šฉ ๊ฐ€๋Šฅ⇒ PK ์ œ์•ฝ์กฐ๊ฑด์ด ๋ถ€์—ฌ๋œ ์ปฌ๋Ÿผ๊ฐ’์„ ๋งคํ•‘ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ
    • ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์„ ํด๋ž˜์Šค์˜ ํ•„๋“œ์— ์ €์žฅ๋˜๋„๋ก ๋งคํ•‘ ์„ค์ •ํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ
    • column ์†์„ฑ : ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์ด ์ €์žฅ๋œ ์ปฌ๋Ÿผ๋ช…์„ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •
    • property ์†์„ฑ : ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์ด ์ €์žฅ๋  ํด๋ž˜์Šค์˜ ํ•„๋“œ๋ช…์„ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •
    result
    • ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์„ ํด๋ž˜์Šค์˜ ํ•„๋“œ์— ์ €์žฅ๋˜๋„๋ก ๋งคํ•‘ ์„ค์ •ํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ
  • id

DTO ํด๋ž˜์Šค์˜ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ํ›„ Setter ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์„ ์ „๋‹ฌ๋ฐ›์•„ ์ธ์Šคํ„ด์Šค์˜ ํ•„๋“œ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ → ์ƒ์„ฑ์ž๋กœ ํ•˜๋Š” ๋ฐฉ๋ฒ• ์žˆ์ง€ ์•Š์„๊นŒ?

constructor

  • ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ DTO ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ƒ์„ฑ์ž์˜ ํ•„๋“œ ์ดˆ๊ธฐํ™” ๋ช…๋ น์„ ์ด์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ ๊ฐ’์„ ํ•„๋“œ ๊ฐ’์œผ๋กœ ์ €์žฅ๋˜๋„๋ก ๋งคํ•‘ ์ฒ˜๋ฆฌ
  • ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ๋งคํ•‘ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ƒ์œ„ ์—˜๋ฆฌ๋จผํŠธ
  • ⇒ idArg ์—˜๋ฆฌ๋จผํŠธ์™€ arg ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ํ•˜์œ„ ์—˜๋ฆฌ๋จผํŠธ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋งคํ•‘ ์ •๋ณด ์ œ๊ณต
  • ⇒ ์ƒ์„ฑ์ž ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ํ•˜์œ„ ์—˜๋ฆฌ๋จผํŠธ์˜ ๊ฐฏ์ˆ˜์™€ Java ์ž๋ฃŒํ˜•์ด ๋ฐ˜๋“œ์‹œ ์ผ์น˜ํ•ด์•ผ๋งŒ ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ๋งคํ•‘ ์ฒ˜๋ฆฌ
    • idArg : ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์„ ์ƒ์„ฑ์ž ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ „๋‹ฌํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ
    • ⇒ PK ์ œ์•ฝ ์กฐ๊ฑด์ด ๋ถ€์—ฌ๋œ ์ปฌ๋Ÿผ๊ฐ’์„ ๋งคํ•‘ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ
    • arg : ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์„ ์ƒ์„ฑ์ž ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ „๋‹ฌํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ
    • javaType ์†์„ฑ : ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์ด ์ €์žฅ๋  ๋งค๊ฐœ๋ณ€์ˆ˜์˜ Java ์ž๋ฃŒํ˜•์„ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ ์–ธ

selectKey ์—˜๋ฆฌ๋จผํŠธ ⇒ ๋‹ต๋ณ€ํ˜• ๊ฒŒ์‹œํŒ์— ์ข‹๋‹ค. (์‹œํ€€์Šค)

  • SELECT ๋ช…๋ น์˜ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ’์„ ์ธ์Šคํ„ด์Šค์˜ ํ•„๋“œ๊ฐ’์œผ๋กœ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์—˜๋ฆฌ๋จผํŠธ
  • ⇒ insert ์—˜๋ฆฌ๋จผํŠธ์˜ ์ข…์†๋œ ํ•˜์œ„ ์—˜๋ฆฌ๋จผํŠธ
  • ⇒ ์ž๋™ ์ฆ๊ฐ€๊ฐ’ ๋˜๋Š” ๋‚œ์ˆ˜๊ฐ’์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์ธ์Šคํ„ด์Šค์˜ ํ•„๋“œ์— ์ €์žฅ
  • resultType ์†์„ฑ : SELECT ๋ช…๋ น์˜ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ’์„ ๋งคํ•‘ํ•˜์—ฌ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ Java ์ž๋ฃŒํ˜•์„ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •
  • keyProperty ์†์„ฑ : SELECT ๋ช…๋ น์˜ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ธ์Šคํ„ด์Šค์˜ ํ•„๋“œ๋ช…์„ ์†์„ฑ ๊ฐ’์œผ๋กœ ์„ค์ •
  • order ์†์„ฑ : [BEFORE] & [AFTER] ์ค‘ ํ•˜๋‚˜๋ฅผ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •

DAO

SqlSession.getMapper(Class<T> clazz)

  • ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ์ธํ„ฐํŽ˜์ด์Šค(Clazz - ์ธํ„ฐํŽ˜์ด์Šค ๋งตํผ) ์ „๋‹ฌ๋ฐ›์•„ Mapper ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ
  • ⇒ ๋งค๊ฐœ๋ณ€์ˆ˜์— xxx.class ํ˜•์‹์œผ๋กœ Class ๊ฐ์ฒด(Clazz)๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ์ €์žฅ
  • Class.forname()์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

Mapper

  • ์ธํ„ฐํŽ˜์ด์Šค ๋งตํผ์˜ ์ถ”์ƒ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋“ฑ๋ก๋œ SQL ๋ช…๋ น์„ ์ œ๊ณต๋ฐ›๊ธฐ ์œ„ํ•œ ์ธ์Šคํ„ด์Šค

mybatis-config.XML

package (๊ณ„์† ๋งคํ•‘ ์•ˆํ•ด๋„ ๋จ) ⇒ ๋Œ€์‹  ํŒจํ‚ค์ง€ ์•ˆ์— ๋‹ค ๋งŒ๋“ค์ž

  • ํŠน์ • ํŒจํ‚ค์ง€์— ์ž‘์„ฑ๋œ ๋ชจ๋“  Interface ๋งตํผ ํŒŒ์ผ์„ ์ž๋™์œผ๋กœ ๋งตํผ๋กœ ๋“ฑ๋ก๋˜๋„๋กํ•จ.
  • name ์†์„ฑ : ๋งตํผ๋กœ ๋“ฑ๋ก๋  Interface ๋งตํผ ํŒŒ์ผ์˜ ํŒจํ‚ค์ง€๋ฅผ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •

DTO

  • SQL ๋ช…๋ น์€ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์•„ ์‹๋ณ„์ž๋ฅผ ์„ ์–ธํ•  ๋•Œ ์Šค๋„ค์ดํฌ ํ‘œ๊ธฐ๋ฒ• ์‚ฌ์šฉ
  • ์Šค๋„ค์ดํฌ ํ‘œ๊ธฐ๋ฒ•(Snake Case) : ์‹๋ณ„์ž ์„ ์–ธ์‹œ ๋‹จ์–ด์™€ ๋‹จ์–ด๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด _ ๊ธฐํ˜ธ ์‚ฌ์šฉ
  • Java ์ž๋ฃŒํ˜• (Class, Interface, Enum)์€ ํŒŒ์Šค์นผ ํ‘œ๊ธฐ๋ฒ• ์‚ฌ์šฉ
  • ⇒ ํŒŒ์Šค์นผ ํ‘œ๊ธฐ๋ฒ•(Pascal Case) : ๋ชจ๋“  ๋‹จ์–ด์˜ ์ฒซ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ํ‘œํ˜„ํ•˜์—ฌ ์‹๋ณ„์ž ์„ ์–ธ
  • Java ์ž๋ฃŒํ˜•์„ ์ œ๋˜ํ•œ ์‹๋ณ„์ž๋Š” ์นด๋ฉœ ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธ

DAO์— ๋“ค์–ด๊ฐ€๋Š” ๋‚ด์šฉ์ด ๋ฐ˜๋ณต๋œ๋‹ค?

⇒ ๋ฐ˜๋ณต๋˜๋Š” ๋‚ด์šฉ์„ ๋”ฐ๋กœ ๋นผ์„œ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์ž (์œ ์ง€๋ณด์ˆ˜)

  • SqlSessionFactory ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค ์ƒ์„ฑ
  • ⇒ ๋งตํผ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” DAO ํด๋ž˜์Šค๊ฐ€ ์ƒ์†๋ฐ›๊ธฐ ์œ„ํ•œ ๋ถ€๋ชจํด๋ž˜์Šค
  • ⇒ ์ƒ์†์„ ๋ชฉ์ ์œผ๋กœ ์ž‘์„ฑ๋œ ํด๋ž˜์Šค์ด๋ฏ€๋กœ ์ถ”์ƒํด๋ž˜์Šค๋กœ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ

 


โ–ถ ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ

> ์˜คํ›„ 9์‹œ UI ๊ด€๋ จํšŒ์˜

> ์ •๊ธฐ ๋ฐฐ์†ก ๋ฐ ๊ธ€ ์ž‘์„ฑ ํ†ต์ผ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ๊ฒฐ์ •

> ์ •๊ธฐ ๋ฐฐ์†ก ์ถ”๊ฐ€ ๋ฐ ์ƒ์„ธ ์—ฌ๋ถ€ ๊ฒฐ์ • 

> ๋Œ€๋žต์ ์ธ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์ค‘๊ฐ„ ํ™•์ธ

> ๋‚ด์ผ ui ํšŒ์˜

๋ฐ˜์‘ํ˜•