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

2022.02.25์˜ ๊ธฐ๋ก

by GroovyArea 2022. 2. 25.

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

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

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

3) ๊ธฐ์ˆ  ์งˆ๋ฌธ ์šฉ์ง€์— ๋ชจ๋‘ ์ •๋ฆฌ

 

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

1) UI ํšŒ์˜


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


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

DB

  • DTO ํด๋ž˜์Šค์˜ ํ•„๋“œ๊ฐ’๊ณผ DB ์ปฌ๋Ÿผ๋ช…์˜ ์ด๋ฆ„์ด ๋™์ผํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ œ์•ฝ์กฐ๊ฑด์„ ๊ฑธ์–ด๋‘๋ฉด ์ข‹๋‹ค.
    • ํฌํ•จ ๊ด€๊ณ„๊ฐ€ ์„ฑ๋ฆฝ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ˜๋“œ์‹œ ํ•„๋“œ์— ์ธ์Šคํ„ด์Šค ์ €์žฅ
      1. 1:1 ๊ด€๊ณ„์˜ ์กฐ์ธ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค
      ⇒ ๊ธฐ์กด์— ์ž‘์„ฑ๋œ ํด๋ž˜์Šค๋ฅผ ์žฌ์‚ฌ์šฉ **POJO(Plan Old Java Object)**ํ•˜์—ฌ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•˜์—ฌ ์ƒ์‚ฐ์„ฑ ์ฆ๊ฐ€ ๋ฐ ์œ ์ง€๋ณด์ˆ˜ ํšจ์œจ์„ฑ ์ฆ๊ฐ€
      1. 1:N ๊ด€๊ณ„์˜ ์กฐ์ธ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค
      ⇒ ๋ชฉ๋ก์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด List ์ž๋ฃŒํ˜• ์ด์šฉ
    • ํ…Œ์ด๋ธ”๊ณผ ํ…Œ์ด๋ธ”์˜ ๊ฒ€์ƒ‰๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค
  • DTO

1:N ๊ด€๊ณ„์˜ ์กฐ์ธ์€ Outer Join์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰


mybatis-config.xml

  • DTO ํด๋ž˜์Šค์— ํ•„๋“œ๊ฐ€ ํฌํ•จ ๊ด€๊ณ„๋กœ ์ž‘์„ฑ๋œ ๊ฒฝ์šฐ ํฌํ•จ ๊ด€๊ณ„์˜ ํ•„๋“œ์— ์ธ์Šคํ„ด์Šค๋ฅผ ๋งคํ•‘ํ•˜์—ฌ ์ €์žฅ๋˜๋„๋ก ๋ฐ˜๋“œ์‹œ resultMap ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งคํ•‘ ์ •๋ณด ์ œ๊ณต ํ•„์š”
    • 1:1 ๊ด€๊ณ„์˜ ํ…Œ์ด๋ธ” ์กฐ์ธ ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์„ ํฌํ•จ ๊ด€๊ณ„์˜ ์ธ์Šคํ„ด์Šค๋กœ ์ƒ์„ฑํ•˜์—ฌ DTO ํด๋ž˜์Šค์˜ ํ•„๋“œ์— ๋งคํ•‘ํ•˜์—ฌ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์—˜๋ฆฌ๋จผํŠธ
      • property ์†์„ฑ : DTO ํด๋ž˜์Šค์˜ ํฌํ•จ ๊ด€๊ณ„๋กœ ์„ค์ •๋œํ•„๋“œ๋ช…์„ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •
      • javaType ์†์„ฑ : DTO ํด๋ž˜์Šค์— ํฌํ•จ ๊ด€๊ณ„๋กœ ์„ค์ •๋œ Java ์ž๋ฃŒํ˜•์„ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •
    ⇒ assciation ์—˜๋ฆฌ๋จผํŠธ์˜ ํ•˜์œ„ ์—˜๋ฆฌ๋จผํŠธ (id ์—˜๋ฆฌ๋จผํŠธ์™€ result ์—˜๋ฆฌ๋จผํŠธ)๋กœ ์„ค์ •ํ•˜์—ฌ ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์„ ํฌํ•จ ์ธ์Šคํ„ด์Šค ํ•„๋“œ์— ๋งคํ•‘๋˜์–ด ์ €์žฅ๋˜๋„๋ก ์„ค์ •
  • association

Mapper.xml

  • ์—˜๋ฆฌ๋จผํŠธ์— ๋“ฑ๋ก๋œ SQL ๋ช…๋ น์—์„œ๋Š” ๊ด€๊ณ„์—ฐ์‚ฐ์ž(> ๋˜๋Š” <)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—˜๋ฆฌ๋จผํŠธ ๊ธฐํ˜ธ๋กœ ์‚ฌ์šฉ ๋ถˆ๊ฐ€
  • ⇒ SQL ๋ช…๋ น์— XML ๋ฌธ์„œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ž๊ฐ€ ์กด์žฌํ•  ๊ฒฝ์šฐ ์—”ํ‹ฐํ‹ฐ ๋ ˆํผ๋Ÿฐ์Šค๋กœ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ CDATA ์„ธ์…˜์— SQL ๋ช…๋ น์„ ๋“ฑ๋กํ•˜์—ฌ ์‚ฌ์šฉresultMap ์†์„ฑ
    • resultMap ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ์‹๋ณ„์ž๋ฅผ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •
    • ⇒ ๊ธฐ์กด ๋งคํ•‘์ •๋ณด๋ฅผ ์ œ๊ณต๋ฐ›์•„ ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์„ ํฌํ•จ ์ธ์Šคํ„ด์Šค ํ•„๋“œ์— ๋งคํŒฝ ์ฒ˜๋ฆฌ - resultMap ์—˜๋ฆฌ๋จผํŠธ ์žฌ์‚ฌ์šฉ
    column ์†์„ฑ
    • select ์†์„ฑ๊ฐ’์œผ๋กœ ๋“ฑ๋ก๋œ ์—˜๋ฆฌ๋จผํŠธ์˜ SELECT ๋ช…๋ น์—์„œ ์‚ฌ์šฉ๋  ์ปฌ๋Ÿผ๊ฐ’์„ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ์ปฌ๋Ÿผ๊ฐ’์ด ์ €์žฅ๋œ ์ปฌ๋Ÿผ๋ช…์„ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •
    select ์†์„ฑ
    • select ๋ช…๋ น์ด ๋“ฑ๋ก๋œ select ์—˜๋ฆฌ๋จผํŠธ์˜ ์‹๋ณ„์ž๋ฅผ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •
    • ⇒ select ์—˜๋ฆฌ๋จผํŠธ๋กœ ๋“ฑ๋ก๋œ SELECT ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์ œ๊ณต๋œ ๊ฒฐ๊ณผ๊ฐ’(DTO ์ธ์Šคํ„ด์Šค)๋ฅผ ํฌํ•จ ์ธ์Šคํ„ด์Šค ํ•„๋“œ์— ๋งคํ•‘ํ•˜์—ฌ ์ €์žฅ
    • ⇒ column ์†์„ฑ๊ฐ’์œผ๋กœ ์ œ๊ณต๋œ ์ปฌ๋Ÿผ๊ฐ’์„ SELECT ๋ช…๋ น์— ์ „๋‹ฌํ•˜์—ฌ ์กฐ๊ฑด์— ๋งž๋Š” ํ–‰๋งŒ ๊ฒ€์ƒ‰
    collection ์—˜๋ฆฌ๋จผํŠธ
    • ๋‚ด๋ถ€ ๋ฐ˜๋ณต์„ ๊ฐ€์ง.
    • 1:N ๊ด€๊ณ„์˜ ํ…Œ์ด๋ธ” ์กฐ์ธ์—์„œ ๋‹ค์ˆ˜์˜ ๊ฒ€์ƒ‰๊ฒฐ๊ณผ๋ฅผ List ์ธ์Šคํ„ด์Šค์— ์ƒ์„ฑํ•ด ํ•„๋“œ์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์—˜๋ฆฌ๋จผํŠธ
      • property ์†์„ฑ : List ์ธ์Šคํ„ด์Šค๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ํ•„๋“œ๋ช…์„ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •
      • ofType ์†์„ฑ : List ์ธ์Šคํ„ด์Šค์˜ ์š”์†Œ๋กœ ์ €์žฅ๋  Java ์ž๋ฃŒํ˜•์„ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •
    association ์—˜๋ฆฌ๋จผํŠธ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ SELECT ๋ช…๋ น ๋“ฑ๋ก⇒ WHERE ๊ตฌ๋ฌธ์œผ๋กœ ์กฐ์ธ์„ ์œ„ํ•œ ์ปฌ๋Ÿผ๊ฐ’์„ ์ „๋‹ฌ๋ฐ›์•„ ์กฐ์ธ์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉ
  • ⇒ DAO ํด๋ž˜์Šค์—์„œ ์‚ฌ์šฉํ•  SQL ๋ช…๋ น์ด ์•„๋‹ˆ๋ฏ€๋กœ Interface ๋งตํผ์— ์ถ”์ƒ๋ฉ”์„œ๋“œ๋กœ ๋ฏธ์„ ์–ธ
  • resultMap ์—˜๋ฆฌ๋จผํŠธ

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

> 7์‹œ UI ํšŒ์˜ ์˜ˆ์ •

๋ฐ˜์‘ํ˜•

'Legacy' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

2022.02.28์˜ ๊ธฐ๋ก  (0) 2022.02.28
2022.02.27์˜ ๊ธฐ๋ก  (0) 2022.02.27
2022.02.24 ์˜ ๊ธฐ๋ก  (0) 2022.02.24
2022.02.23์˜ ๊ธฐ๋ก  (0) 2022.02.23
2022.02.22์˜ ๊ธฐ๋ก  (0) 2022.02.22