์ „์ฒด ๊ธ€ 86

[SI Story] IT ๊ธฐ์—… ํŠน์ง•(si? ํ”Œ๋žซํผ? ๊ธˆ์œต? ๊ฒŒ์ž„? ์†”๋ฃจ์…˜?)

์ฝ”๋”ฉ์„ ๋ฐฐ์› ๋‹ค.์ด์ œ ์–ด๋””๋กœ ์ทจ์—…ํ•ด์•ผ๋˜๋Š”๊ฐ€?๋ง‰์—ฐํ•˜๊ธฐ๋งŒ ํ–ˆ๋˜ ์ทจ์—…๊ณผ ์ง„๋กœ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๋ ค๋ฉด ์–ด๋–ค ๊ธฐ์—…์˜ ์œ ํ˜•์ด ์žˆ๋Š”์ง€ ์•Œ์•„์•ผํ•˜๊ณ ๊ทธ ์ฐจ์ด๋ฅผ ๊ตฌ๋ถ„ํ•  ์ค„ ์•Œ์•„์•ผํ•œ๋‹ค.SIํšŒ์‚ฌ (System Integrator) ์‰ฝ๊ฒŒ ๋งํ•ด ํ”„๋กœ์ ํŠธ ์™ธ์ฃผ์—…์ฒด๋ฅผ ๋งํ•œ๋‹ค. ํฐ ๊ทœ๋ชจ์˜ ์‹œ์Šคํ…œ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ์™„์„ฑ๋‹จ๊ณ„๊นŒ์ง€ ์ง์ ‘ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์„ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋‹ค์–‘ํ•œ ์ง‘๋‹จ์˜ ์‚ฌ๋žŒ๋“ค๊ณผ ํ˜‘์—…ํ•˜๊ฒŒ ๋˜์–ด ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ ๋ฐ ํ˜‘์—…, ๊ฐˆ๋“ฑ ํ•ด๊ฒฐ ๋“ฑ ์—…๋ฌด๋Šฅ๋ ฅ์„ ํ–ฅ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ๋‹ค์–‘ํ•œ ๋„๋ฉ”์ธ์„ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๋ฐœ์ฃผ์‚ฌ(๊ณ ๊ฐ์‚ฌ)์— ๋”ฐ๋ผ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๋ฉ”์ธ๊ณผ ๊ฐœ๋ฐœํ™˜๊ฒฝ์ด ์ƒ์ดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์–•๊ณ  ๊นŠ์€ ์—…๋ฌด๋ฅผ ๋ฐฐ์šฐ๊ฒŒ ๋œ๋‹ค.์—…๋ฌด๋Š” ์ฃผ๋กœ Waterfall ๊ตฌ์กฐ๋กœ ํ•˜๊ฒŒ ๋˜๋ฉฐ ๊ฐœ๋ฐœ์ž์˜ ์—ญํ• ์ด ๋‹ค์†Œ ์ œํ•œ์ ์ผ ์ˆ˜ ์žˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ๊ธฐ์—…์œผ๋กœ๋Š” ๋Œ€๊ธฐ์—…์˜ ์žํšŒ์‚ฌ๊ฐ€ ์žˆ์œผ๋ฉฐ ์‚ผ..

SI Story 2022.12.20

[ORACLE] PL/SQL(Procedural Language/SQL)์ด๋ž€?

DataBase ํ•˜๋ฉด Oracle. ๊ฑฐ์˜ ์ˆ˜์‹์–ด์ฒ˜๋Ÿผ ๋งํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์—ฌ๋Š ๋•Œ์™€ ๋‹ค๋ฆ„์—†์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋˜ ์ค‘ Oracle์ด๋ผ๋Š” PL/SQL์„ ์ฒ˜์Œ ๋“ฃ๊ฒŒ ๋˜์—ˆ๋‹ค. PL/SQL ์ด๋ž€? SQL์„ ํ™•์žฅํ•œ ์ ˆ์ฐจ์  ์–ธ์–ด(Procedural Language) ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ์šฉ๋˜๋Š” Oracle์˜ ํ‘œ์ค€ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ์–ธ์–ด์ด๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด SQL์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•œ SQL์˜ ํ™•์žฅํŒ์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋‹ค. PL/SQL์€ ๋ธ”๋กํ˜• ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์Šค์Šค๋กœ๊ฐ€ ์ปดํŒŒ์ผ ์—”์ง„์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. ๋˜ํ•œ DML๊ณผ Query๋ฌธ, ์ ˆ์ฐจํ˜• ์–ธ์–ด(IF๋ฌธ, LOOP) ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ ˆ์ฐจ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๊ฐ€๋Šฅํ•œ ๊ฐ•๋ ฅํ•œ ํŠธ๋žœ์žญ์…˜ ์–ธ์–ด์ด๋‹ค. ์žฅ์  ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  PL/SQL์˜ ํŠน์ง• ์ค‘ ํ•˜๋‚˜์ธ ๋ธ”๋กํ˜• ๊ตฌ์กฐ๊ฐ€ ์ฃผ๋ชฉ๋ฐ›๋Š” ์ด์œ ๋Š” ๋‹ค์ˆ˜์˜..

์„ฑ์ ์ฒ˜๋ฆฌ ํ”„๋กœ๊ทธ๋žจ - index ๊ฐ’์œผ๋กœ ํ‰๊ท , ์„์ฐจ ๊ตฌํ•˜๊ธฐ

ํŒŒ์ด์ฌ์„ ์ด์šฉํ•œ ์„ฑ์ ์ฒ˜๋ฆฌ ํ”„๋กœ๊ทธ๋žจ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐฐ๊ฒฝ 3๋ช…์˜ ํ•™์ƒ๋“ค์€ ๊ฐ๊ฐ ์ค‘๊ฐ„๊ณ ์‚ฌ์™€ ๊ธฐ๋ง๊ณ ์‚ฌ ์ ์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด ๋‘ ๊ฐœ์˜ ์ ์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ๊ฐœ์ธ์˜ ์„์ฐจ๋ฅผ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์„์ฐจ๋Š” ๋‘ ๊ฐ€์ง€ ์‹œํ—˜ ์ ์ˆ˜(์ค‘๊ฐ„๊ณ ์‚ฌ, ๊ธฐ๋ง๊ณ ์‚ฌ)์˜ ํ‰๊ท ์œผ๋กœ ๊ณ„์‚ฐํ•œ๋‹ค. ํ•„์ˆ˜ ์กฐ๊ฑด * ํ•™๋ฒˆ, ์ด๋ฆ„, ์ค‘๊ฐ„๊ณ ์‚ฌ ์ ์ˆ˜, ๊ธฐ๋ง๊ณ ์‚ฌ ์ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. * Score ํด๋ž˜์Šคํ˜• ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. * ์ƒ์„ฑ์ž ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๊ตฌํ˜„ ํฌ์ธํŠธ ์ตœ๋Œ€ํ•œ ์„์ฐจ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์ž์ฒด ์ธ๋ฑ์Šค ๊ฐ’์„ ์„์ฐจ๋กœ ํ™œ์šฉํ•œ ์˜ˆ์ œ์ด๋‹ค. ํ•ต์‹ฌ์€ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ key์™€ value๋กœ ์ด๋ฆ„๊ณผ ์ ์ˆ˜๋ฅผ mapping ํ•ด์ฃผ์–ด index๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋•Œ, ์ƒ๊ฐํ•ด๋ด์•ผ ํ•  ๋ฌธ์ œ๋กœ๋Š” ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋ฆฌ์ŠคํŠธํ™” ํ•˜์—ฌ์•ผ index์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ํฌ์ธํŠธ์ด๋‹ค..

ํ”„๋ ˆ์ž„์›Œํฌ(Framework)์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Library)์˜ ์ฐจ์ด๋Š”? - 1ํƒ„

ํ•™๋ถ€ ๋•Œ๋ถ€ํ„ฐ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋Š๋‚Œ์œผ๋กœ๋Š” ๋ญ”์ง€ ์•Œ๊ฒ ์œผ๋‚˜ ๋ช…ํ™•ํ•˜๊ฒŒ ์„ค๋ช…ํ•  ์ˆ˜๋Š” ์—†์—ˆ๋‹ค. ๋‹จ์ˆœํžˆ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋ผˆ๋Œ€๋‹ค. ์ด๊ฑธ ์™œ ์ดํ•ด ๋ชป ํ•ด?๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ ๋†€๋ž๊ฒŒ๋„ ๋‚˜์—๊ฒ 2๋…„๊ฐ„ ์™€๋‹ฟ์ง€ ์•Š๋Š” ์˜๋ฏธ์˜€๊ธฐ์— ์ด๋ฒˆ ํฌ์ŠคํŒ…์„ ํ†ตํ•ด ํ™•์‹คํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” springboot ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์“ฐ๊ณ ... jquery ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉํ•ด์„œ... ๊ทธ๋ž˜์„œ ๋‘˜ ์ฐจ์ด๊ฐ€ ์ •ํ™•ํ•˜๊ฒŒ ๋ญ์˜ˆ์š”? ์‰ฝ๊ฒŒ ๋งํ•ด ์šฐ๋ฆฌ๊ฐ€ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž. ์ฒ˜์Œ ์ดํด๋ฆฝ์Šค๋‚˜ ์Šคํ”„๋ง์„ ์ผœ์„œ [File]-[New]-[Maven Project]๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  Group Id๋ถ€ํ„ฐ Artifact Id ๋“ฑ ๋งŽ์€ ๊ฒƒ๋“ค์„ ํ•˜๋‚˜์”ฉ ์ง€์ •ํ•˜๊ณ  ๋งŒ๋“ค๊ฒŒ ๋œ๋‹ค. ์ด๋•Œ, ๋งŒ์•ฝ ๊ฐ™์€ ํŒจํ„ด์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค๋ฉด ์œ„์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ ๊ฐ™์€ ๊ตฌ..

[Mybatis] XMLํƒœ๊ทธ <choose>, <when>, <otherwise>๋กœ ๋™์ ์ฟผ๋ฆฌ Dynamic SQL ๊ตฌํ˜„ํ•˜๊ธฐ

์ž๋ฐ” ์ธํ„ฐํŽ˜์ด์Šค Mapper๋ฅผ ํ†ตํ•ด ์ฟผ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ, ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฐ”์ธ๋”ฉํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ๋” ํšจ์œจ์ ์ธ ์ฟผ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์™œ๋ƒ๋ฉด... ์ˆ˜์ •ํ•  ๋•Œ ํ•˜๋‚˜ ๋ฐ”๊พธ๋ฉด ๋‹ค ๋ฐ”๋€Œ๋Š” ๊ฒŒ ์ข‹์ž–์•„์š”? ๊ฐœ๋ฐœ์ž๋Š”... ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š์ง€ :) ๊ตฌ์กฐ ๋ฐ ์‚ฌ์šฉ๋ฒ• ์ฟผ๋ฆฌ1 ์ฟผ๋ฆฌ2 ์ฟผ๋ฆฌ3 ์ฟผ๋ฆฌ4 ์ฟผ๋ฆฌ5 ํƒœ๊ทธ๋Š” ํƒœ๊ทธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋ฉฐ, ์กฐ๊ฑด์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹คํ–‰ ์‹œ ํƒœ๊ทธ์˜ ์กฐ๊ฑด์‹์„ ์ˆœ์„œ๋Œ€๋กœ ํ™•์ธํ•˜๋ฉฐ ์ฟผ๋ฆฌ๋ฌธ์„ ์‹คํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค. ๋งŒ์•ฝ ํƒœ๊ทธ์˜ ์กฐ๊ฑด ์‹์ค‘ true ๋ฐ˜ํ™˜ํ•œ ๊ฒƒ์ด ์—†๋‹ค๋ฉด ํƒœ๊ทธ ๋‚ด์— ์ž‘์„ฑ๋œ ์ฟผ๋ฆฌ๋ฌธ์ด ์‹คํ–‰๋œ๋‹ค. ํƒœ๊ทธ๋Š” ์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋‹ค. ์ ์šฉ ์˜ˆ์ œ XML AND TISTORY_CODE = '*' AND TISTORY_CODE = '1' AND TISTORY_CODE = '0' ORDER BY BASE_YMD My..

#0. ์ฒ˜์Œ์“ฐ๋Š” ๋ธ”๋กœ๊ทธ : ์ฒซ๋ฒˆ์งธ ์ด์•ผ๊ธฐ

๋‚˜์˜ ๊ฐ€์น˜๋ฅผ ๋ธŒ๋žœ๋”ฉ(Branding) ํ•˜๋‹ค. Si 2๋…„ ์ฐจ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž, ๊ฐœ๋ฐœ์ž๋กœ์„œ ๋‚˜์˜ ๊ฐ€์น˜๋ฅผ ์ฐพ์•˜๋Š”๊ฐ€? ์ด ํ•ด๋‹ต์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๋ธ”๋กœ๊ทธ๋ฅผ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.  ๋™๊ธฐ๋ถ€์—ฌ์˜ˆ๋ฏผํ•˜๊ณ  ํŠธ๋ Œ๋“œ์— ๋ฏผ๊ฐํ•˜๊ฒŒ ๋ฐ˜์‘ํ•ด์•ผ ํ•˜๋Š” ๊ฐœ๋ฐœํ™˜๊ฒฝ์€ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋Š˜ ์ˆ™์ œ๋ฅผ ๋˜์ ธ์ค€๋‹ค. ํ•˜์ง€๋งŒ ์ž์˜ ๋ฐ˜, ํƒ€์˜ ๋ฐ˜ ์–ด๋Š์ƒˆ ํ˜„์‹ค์— ์•ˆ์ฃผํ•˜๋ฉฐ ์‹œ๊ฐ„์€ ์ง€๋‚˜๊ณ  ์žˆ๋‹ค. ๊ณง, 3๋…„ ์ฐจ๋ฅผ ์•ž๋‘” ์ด ์‹œ์ ์—์„œ ์ดˆ์‹ฌ์œผ๋กœ ๋Œ์•„๊ฐ€ ์ฒ˜์Œ ๋‚˜์˜ ์—ด์ •์„ ๋– ์˜ฌ๋ ค๋ณด์ž.๋‚˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์ •ํ™•ํ•˜๊ณ  ์ง๊ด€์ ์ธ ๋ฐฉ๋ฒ•์†”์งํžˆ 2๋…„ ๋™์•ˆ ๋‚ด๊ฐ€ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด ๊นŠ์ด ํŒŒ๊ณ ๋“ค๋ ค๊ณ  ํ•˜์ง€ ์•Š์•˜๋‹ค. ๋‚จ๋“ค์—๊ฒŒ๋Š” ‘๊ฐœ๋ฐœ์ž’๋ผ๊ณ  ๋ถˆ๋ฆฌ์ง€๋งŒ ์‹ค์ƒ์€ ๊ทธ ์ด๋ฆ„์˜ ๊ฐ€์น˜๊ฐ€ ์žˆ์—ˆ๋Š”์ง€๋Š” ์˜๋ฌธ์ด๋‹ค.์ฒด๋“ํ•œ ๋‚˜์˜ ์žฌ๋ฃŒ์•…๋ช… ๋†’์€ SI๋ผ๋„ ๋ถ„๋ช… ๋ฐฐ์šธ ์ ์€ ์žˆ์—ˆ๋‹ค. ์ฒด๋“ํ•œ ๊ฒƒ์„ ์ฒดํ™”ํ•˜์ง€ ์•Š์œผ๋ฉด ์† ํžˆ๋ง ํ•ด ์ค˜๋„ ๋ชป ๋จน์€ ๊ฒŒ ๋˜๋Š”..

Life.log 2022.11.23