Skip to content

Latest commit

ย 

History

History
90 lines (71 loc) ยท 4.29 KB

File metadata and controls

90 lines (71 loc) ยท 4.29 KB
outline deep

๊ฐœ๋… ๋ฐ ์„ค๊ณ„ ๊ตฌ์กฐ

๋ฌธ์ œ

๊ธฐ์กด ์ง์ ‘ ๊ฐœ๋ฐœํ•˜์—ฌ ์–ด๋“œ๋ฏผ์„ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ ๊ฐœ๋ฐœํ™˜๊ฒฝ, ์–ธ์–ด, ORM ์—ฐ๋™, ์„œ๋ฒ„ ํ”„๋ ˆ์ž„์›Œํฌ, UI ํ…œํ”Œ๋ฆฟ ํ”„๋ ˆ์ž„์›Œํฌ, ๋ฐฐํฌํ™˜๊ฒฝ, ํ™”๋ฉด๊ธฐํš, ์–ด๋“œ๋ฏผ์šฉ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋“ฑ์„ ์ค€๋น„ํ•ด์•ผํ•˜๋Š” ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ๋“ฑ ๋น„์šฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ดˆ๊ธฐ ๋น„์šฉ์„ ๋“ค์—ฌ์„œ ํ•œ๋ฒˆ ๋งŒ๋“ค์–ด๋‘” ์–ด๋“œ๋ฏผ์˜ ๊ฒฝ์šฐ ์ดํ›„์— ๋น ๋ฅด๊ฒŒ ๋ฉ”๋‰ด, ํ™”๋ฉด์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹œ๊ฐ„์ด ํ๋ฅผ ์ˆ˜๋ก ์œ ์ง€๋ณด์ˆ˜, ๋ณด์•ˆํŒจ์น˜, ์ธ์ˆ˜์ธ๊ณ„๋“ฑ ์ง€์†์ ์ธ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์–ด๋“œ๋ฏผ์˜ ํŠน์„ฑ์ƒ ์„œ๋น„์Šค ์šด์˜ ๋ฐ์ดํ„ฐ์™€ ๋งค์šฐ ์˜์กด์„ฑ์ด ๋†’์•„ ๋Š์ž„์—†๋Š” ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, ์‹ ๊ทœ ์‚ฌ์—…์œผ๋กœ ์ธํ•ด ์ƒˆ๋กœ์šด ํ™”๋ฉด๊ณผ ๋ฉ”๋‰ด ๋ถ„๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ธฐ์กด ์–ด๋“œ๋ฏผ์ด ๋น„๋Œ€ํ•ด์ง€๊ฑฐ๋‚˜, ๋˜ ๋‹ค์‹œ ์‹ ๊ทœ ์–ด๋“œ๋ฏผ์„ ๋ถ„๋ฆฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์š”๊ตฌ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด ์—ฌ๋Ÿฌ๊ฐœ ์–ด๋“œ๋ฏผ์„ ํ†ตํ•ฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์„œ๋ฒ„์ฝ”๋“œ, ํ”„๋ก ํŠธ์ฝ”๋“œ, ๋กœ์ง๋“ฑ์„ ๋ชจ์œผ๋Š” ์ž‘์—…์ด ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•  ์ˆ˜๋ก ์–ด๋“œ๋ฏผ์„ ์ตœ์†Œํ•œ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์œ ์ง€ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ณ ๋ฏผํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ ‘๊ทผ ๋ฐฉํ–ฅ

์…€๋ ‰ํŠธ ์–ด๋“œ๋ฏผ์€ ๋ฌธ์ œ๋ฅผ ์•„๋ž˜์˜ ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•˜๊ณ  ๋Œ€๋‹ค์ˆ˜์˜ ์ผ€์ด์Šค๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  • ์–ด๋“œ๋ฏผ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋‚ด์žฅ
  • ์–ด๋“œ๋ฏผ ๊ตฌ์„ฑ์š”์†Œ๋Š” ์„ค์ •์œผ๋กœ ์‚ฌ์šฉ
  • ๋ชจ๋“  ์„ค์ •์€ ์ŠคํŽ™ ๊ธฐ๋ฐ˜์œผ๋กœ ์กฐํ•ฉ ๊ฐ€๋Šฅ
  • ์ฝ”๋“œ ๋ถ„ํ• , ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅ (์˜ˆ: ๋ฉ”๋‰ด, ํ™”๋ฉด ๋‹จ์œ„)
  • ๋ฐ์ดํ„ฐ ์กฐ์ž‘์€ ์ถ”์ƒํ™” ์—†์ด ์›๋ณธ ๊ทธ๋Œ€๋กœ (SQL, API, JavaScript)
  • ๋ฐ์ดํ„ฐ ์—ฐ๋™์˜ ๊ธฐ์ˆ ์ ์ธ ์–ด๋ ค์›€์€ ๋‚ด์žฅ (์ปค๋„ฅ์…˜ ๊ด€๋ฆฌ, ์ธ์ฆ, ๋“œ๋ผ์ด๋ฒ„ ๊ด€๋ฆฌ)
  • ๋ฐ์ดํ„ฐ ์—ฐ๋™์˜ ๊ตฌ์„ฑ์€ ์ง์ ‘ ์„ค์ •ํ•˜๊ณ , ์•ˆ์ „ํ•˜๊ฒŒ ์ž…๋ ฅํ•œ ๊ฒƒ๋งŒ ์‹คํ–‰
  • ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ์กฑํ•  ๋ณดํŽธ์ ์ธ UI ์ œ๊ณต (ํ…Œ์ด๋ธ”, ์ž…๋ ฅํผ๋“ฑ)
  • ๋ชจ๋“  ์–ด๋“œ๋ฏผ ๊ตฌ์„ฑ์š”์†Œ๋Š” ๋ณต์ œ, ํ†ตํ•ฉ, ๋ถ„ํ•  ๊ฐ€๋Šฅ
  • ์ตœ์†Œํ•œ์˜ ๋ถ€๋ถ„์„ ๋น ๋ฅด๊ฒŒ ๊ณ ์น˜๊ธฐ ์šฉ์ดํ•œ ํ˜•ํƒœ
  • ์–ด๋“œ๋ฏผ์€ ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ ์ŠคํŽ™์œผ๋กœ ์ฝ๊ธฐ ์‰ฝ๊ณ  ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•˜๊ธฐ ์‰ฌ์›€
  • ์…€๋ ‰ํŠธ ์•ˆ์— ๋‹ค๋ฅธ ์–ด๋“œ๋ฏผ์„ ๊ฐ€์ ธ์™€ ๋„ฃ๊ฑฐ๋‚˜, ๋‹ค๋ฅธ ์–ด๋“œ๋ฏผ ์•ˆ์— ์…€๋ ‰ํŠธ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ์Œ

์„ค์ •

  • YAML (YML, ์•ผ๋ฏˆ, ์™€์ด์— ์—˜) ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. (๊ตฌ๊ธ€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค, ๊นƒํ—ˆ๋ธŒ ์•ก์…˜๋“ฑ ์‚ฌ์šฉ)
    • ์‚ฌ๋žŒ์ด ์ฝ๊ณ  ์“ฐ๊ธฐ ์‰ฌ์›€
    • ๋ช…ํ™•ํ•œ ๊ณ„์ธต ๊ตฌ์กฐ
    • ์ฝ”๋ฉ˜ํŠธ ๊ฐ€๋Šฅ
    • JSON ์ƒ์œ„ ํ˜ธํ™˜
  • menu, page, block๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ฐœ๋…์„ ์ˆœ์„œ์— ๋งž๊ฒŒ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ต์…˜์— ๋งž๋Š” key: value๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • ํ•„์š”์— ๋”ฐ๋ผ ํ•œ๊ฐœ ํŒŒ์ผ์— ๋ชจ์œผ๊ฑฐ๋‚˜, ์—ฌ๋Ÿฌ๊ฐœ ํŒŒ์ผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. (๋ฉ”๋‰ด ๋‹จ์œ„, ์ž‘์—… ๋‹จ์œ„)
  • ์ž…๋ ฅํ•œ ์„ค์ •์ด ํ‹€๋ฆฐ YAML ๋ฌธ๋ฒ•์ด๋ฉด ์—๋Ÿฌ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ์ž…๋ ฅํ•œ ์„ค์ •์ด ์—†๊ฑฐ๋‚˜ ํ‹€๋ฆฐ ๊ฒฝ์šฐ ๊ธฐ๋Šฅ์€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

YAML ์‚ดํŽด๋ณด๊ธฐ

YAML ๋ฏธ๋ฆฌ๋ณด๊ธฐ

์›๋ณธ๋ณด๊ธฐ

pages:
  - path: search-user-id
  	blocks:
  	  - type: query
  	  	resource: mysql.qa
        sql: >
          SELECT * FROM customer
          WHERE (!LENGTH(:name) OR fullname LIKE CONCAT('%', :name, '%'))
            AND (!LENGTH(:phone) OR phone_primary LIKE CONCAT('%', REPLACE(:phone, '-', ''), '%'))
          ORDER BY id DESC
          LIMIT 10

        params:
          - key: name
          - key: phone
        columns:
          phone_primary:
            formatFn: maskCenter4
key ์„ค๋ช…
pages 1๊ฐœ์˜ ํŽ˜์ด์ง€๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
- ๋ฐฐ์—ด array(list) ํ‘œํ˜„
path /search-user-id ๋กœ ์ ‘์†ํ•˜๋ฉด ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.
blocks 1๊ฐœ์˜ ๋ธ”๋ก์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
type ์ฟผ๋ฆฌ ๋ธ”๋ก ์ž…๋‹ˆ๋‹ค.
resource mysql.qa ์ด๋ฆ„์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
sql SQL ์ฟผ๋ฆฌ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
> ์—ฌ๋Ÿฌ์ค„ ํ‘œํ˜„
params 2๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
key ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ณ ์œ  key ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ํ‚ค๋กœ SQL ์ฟผ๋ฆฌ์— ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
columns 1๊ฐœ์˜ ์ปฌ๋Ÿผ ์˜ต์…˜์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
phone_primary SQL ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฌผ ์ค‘ phone_primary ํ•„๋“œ์— ๋Œ€ํ•ด์„œ ์˜ต์…˜์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
formatFn maskCenter4 ์˜ต์…˜์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. (๊ฐ€์šด๋ฐ 4์ž๋ฆฌ ๋งˆ์Šคํ‚น)