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

์ „์ฒด ๊ธ€10

Java Enum ํ™œ์šฉํ•˜๊ธฐ 1. ์ •์˜ Enum์ด๋ž€ Enumeration์˜ ์•ž ๊ธ€์ž๋กœ ์—ด๊ฑฐ๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š”๋‹ค. ๊ด€๋ จ์ด ์žˆ๋Š” ์ƒ์ˆ˜๋“ค์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”์—์„œ๋Š” final๋กœ String๊ณผ ๊ฐ™์€ ๋ฌธ์ž์—ด์ด๋‚˜ ์ˆซ์ž๋“ค์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์˜ ๊ฐ’์„ ๊ณ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ณ ์ •๋œ ๊ฐ’์„ ์ƒ์ˆ˜๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. . ์–ด๋–ค ํด๋ž˜์Šค๊ฐ€ ์ƒ์ˆ˜๋งŒ์œผ๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ์œผ๋ฉด ๋ฐ˜๋“œ์‹œ class๋กœ ์„ ์–ธํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Ÿด ๋•Œ class๋กœ ์„ ์–ธ๋œ ๋ถ€๋ถ„์— enum์ด๋ผ๊ณ  ์„ ์–ธํ•˜๋ฉด ์ด ๊ฐ์ฒด๋Š” ์ƒ์ˆ˜์˜ ์ง‘ํ•ฉ์ด๋‹ค. ๋ผ๋Š” ๊ฒƒ์„ ๋ช…์‹œ์ ์œผ๋กœ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ธฐ์กด์—๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋‚˜ ํด๋ž˜์Šค ๋‚ด์—์„œ ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•จ์œผ๋กœ์จ ์ƒ์ˆ˜๋ฅผ ๊ด€๋ฆฌ ํ•˜์˜€๋Š”๋ฐ ํด๋ž˜์Šค ๋‚ด์—์„œ ์„ ์–ธํ•˜๋Š” ๋ถ€๋ถ„์€ ๋„ค์ด๋ฐ์ด ๊ฒน์น  ์ˆ˜ ์žˆ๊ณ  ๋ถˆ ํ•„์š”ํ•˜๊ฒŒ ์ƒ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋Ÿฐ ๋ถ€๋ถ„์€ ์ค„์–ด๋“ค์ง€๋งŒ ์—ฌ์ „ํžˆ .. 2023. 5. 30.
@JsonFilter๋กœ ์›ํ•˜๋Š” ํ•„๋“œ๋งŒ ๋‚ด๋ ค์ฃผ๊ธฐ @JsonFilter Jackson์€ Java ์ง„์˜์˜ ๋Œ€ํ‘œ์ ์ธ POJO-JSON ์ƒํ˜ธ ๋ณ€ํ™˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” @JsonFilter๋ฅผ ์ด์šฉํ•˜์—ฌ POJO ์˜ค๋ธŒ์ ํŠธ์˜ ํ•„๋“œ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์กฐ๊ฑด์— ๋งž๋Š” ํ•„๋“œ๋งŒ ์„ ํƒ์ ์œผ๋กœ JSON์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์˜ˆ๋ฅผ ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. 1. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ข…์†์„ฑ ์ถ”๊ฐ€ dependencies { compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.8.1' compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.8.1' compile group: 'com.fasterxml.jackson.core'.. 2023. 4. 12.
[DB] NoSQL ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ณด๊ธฐ RDBMS & NoSQL ๋น„๊ต - RDB ๊ตฌ์กฐ๊ฐ€ ์ •ํ˜•ํ™” ๋˜์–ด์žˆ์Œ. ๋ฐ์ดํ„ฐ๋Š” ํ…Œ์ด๋ธ”(table)์— ๋ ˆ์ฝ”๋“œ(record)๋กœ ์ €์žฅ๋˜๋ฉฐ ๊ฐ ํ…Œ์ด๋ธ”์—๋Š” ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜๋œ ๊ตฌ์กฐ ์ •ํ•ด์ง„ ์Šคํ‚ค๋งˆ์— ๋”ฐ๋ฅด์ง€ ์•Š์œผ๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†์Œ ์ˆ˜์ง์  ํ™•์žฅ๋งŒ ์ง€์› '์ƒค๋”ฉ'์ด๋ผ๋Š” ๊ฐœ๋…์ด ์žˆ์ง€๋งŒ ํŠน์ • ์ œํ•œ์ด ์žˆ์œผ๋ฉฐ ๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ๋Œ€์ฒด๋กœ ์–ด๋ ค์›€ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ ๋ณด์žฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๋ณต์—†์ด ํ•œ๋ฒˆ๋งŒ ์ €์žฅํ•จ - NoSQL ๊ตฌ์กฐ๊ฐ€ ์ •ํ˜•ํ™” ๋˜์–ด ์žˆ์ง€ ์•Š์Œ ๋‹ค๋ฅธ ๊ตฌ์กฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ™์€ ์ปฌ๋ ‰์…˜์— ์ถ”๊ฐ€ ๊ฐ€๋Šฅ ์Šคํ‚ค๋งˆ์— ๋Œ€ํ•ด ์‹ ๊ฒฝ์“ธ ํ•„์š”๊ฐ€ ์—†์Œ ์–ธ์ œ๋“ ์ง€ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ •ํ•˜๊ณ  ์ƒˆ๋กœ์šด "ํ•„๋“œ"๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Œ ์ˆ˜์ง์  ํ™•์žฅ, ์ˆ˜ํ‰์  ํ™•์žฅ ๋‘˜๋‹ค ๊ฐ€๋Šฅ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‰ฝ๊ฒŒ ๋ถ„๋ฆฌ ๋ฐ์ดํ„ฐ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์›ํ•˜๋Š” ํ˜•์‹์œผ๋กœ ์ €์žฅ๋จ. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ค๋Š” ์†.. 2023. 3. 30.
[DB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹คํ–‰๊ณ„ํš์ด๋ž€? ์‹คํ–‰๊ณ„ํš์ด๋ž€? ์‚ฌ์šฉ์ž๊ฐ€ SQL์„ ์‹คํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ์ˆ˜๋ฆฝํ•˜๋Š” ์ž‘์—…์ ˆ์ฐจ๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์‹คํ–‰๊ณ„ํš์„ ์ˆ˜๋ฆฝํ•˜๋Š” ์˜ตํ‹ฐ๋งˆ์ด์ €์˜ ์‹คํ–‰ ๋‹จ๊ณ„๋Š” 3๋‹จ๊ณ„๋กœ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1) SQL ํ•ด์„ 2) ์‹คํ–‰๊ณ„ํš ์ˆ˜๋ฆฝ 3) ์‹คํ–‰ 1. ์˜ค๋ผํด DBMS๋ฅผ ํ†ตํ•ด ์‹คํ–‰๊ณ„ํš ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ• ์˜ค๋ผํด DBMS์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‘๊ฐ€์ง€ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ™•์ธ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. 1) explain plan 2) set autotrace Explain plan 1 2 3 4 5 6 7 8 SET STATEMENT_ID = 'TEST1' INTO PLAN_TABLE FOR SELECT e.name, e.deptno, d.dname FROM emp e, dept d WHERE e.deptno = d.deptno; SQL์— ๋Œ€ํ•œ .. 2023. 3. 19.
์˜์กด์„ฑ ์ฃผ์ž…์˜ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ• (์ƒ์„ฑ์ž ์ฃผ์ž…, ํ•„๋“œ ์ฃผ์ž…, ์ˆ˜์ •์ž ์ฃผ์ž…) Spring์€ @Autowired ์–ด๋…ธํ…Œ์ด์…˜์„ ์ด์šฉํ•œ ๋‹ค์–‘ํ•œ ์˜์กด์„ฑ ์ฃผ์ž…(DI; Dependency Injection) ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜์กด์„ฑ ์ฃผ์ž…์€ ํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ๊ฐ์ฒด๋ฅผ ๋ฐ›์•„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ์ค„์ด๊ณ  ์ฝ”๋“œ์˜ ์žฌํ™œ์šฉ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. @Autowired ๋Š” Spring์—๊ฒŒ ์˜์กด์„ฑ์„ ์ฃผ์ž…ํ•˜๋Š” ์ง€์‹œ์ž ์—ญํ• ๋กœ ์“ฐ์ž…๋‹ˆ๋‹ค. ์˜์กด์„ฑ ์ฃผ์ž…์„ ํ•ด์•ผ ํ•˜๋Š” ์ด์œ  1. ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์—ฌ์ค€๋‹ค. 2. ๊ฐ์ฒด ๊ฐ„์˜ ์˜์กด์„ฑ(์ข…์†์„ฑ)์„ ์ค„์ด๊ฑฐ๋‚˜ ์—†์•จ ์ˆ˜ ์žˆ๋‹ค. 3. ๊ฐ์ฒด ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๋ฉด์„œ ์œ ์—ฐํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜์กด์„ฑ ์ฃผ์ž…์˜ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ• 1. ์ƒ์„ฑ์ž ์ฃผ์ž…(Constructor Injection) 2. ํ•„๋“œ ์ฃผ์ž…(Field Injection).. 2023. 3. 16.
[Oracle] DB12c ์—์„œ ORA-54032, ORA-54033 ์ปฌ๋Ÿผ ์ด๋ฆ„๋ณ€๊ฒฝ ๋ฐ ์‚ญ์ œ๊ฐ€ ์•ˆ๋˜๋Š” ํ˜„์ƒ 1. ํ˜„์ƒ - DB12c ์ด์ƒ์—์„œ, ํŠน์ • Column ์— ๋Œ€ํ•œ rename column ํ˜น์€ drop column ์‹œ, ORA-54032 or ORA-54033 ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ SQL> alter table OWNER.USER_MST rename column USR_ID to USER_ID; >์•„๋ž˜ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ "ORA-54032: column to be renamed is used in a virtual column expression" "ORA-54032: ์ด๋ฆ„์„ ๋ฐ”๊ฟ€ ์—ด์ด ๊ฐ€์ƒ ์—ด ํ‘œํ˜„์‹์—์„œ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค." "ORA-54033: column to be modified is used in a virtual column expression" "ORA-54033: ์ด๋ฆ„์„ ๋ฐ”๊ฟ€ ์—ด์ด ๊ฐ€์ƒ ์—ด ํ‘œํ˜„์‹์—์„œ.. 2023. 3. 14.