์ „์ฒด ๊ธ€ 157

[Spring] URL์—์„œ ์ •์  ํŒŒ์ผ, ๋™์  ํŒŒ์ผ ์ ‘๊ทผํ•˜๊ธฐ

1. ์ •์  ํŒŒ์ผํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๊ฒฝ๋กœ๋Š” ํ”„๋กœ์ ํŠธ๋ช…์— ๋”ฐ๋ผ '/ch2'๊นŒ์ง€๋กœ ๋˜์–ด์žˆ๋‹ค. ์ •์ ํŒŒ์ผ์€ src/main/webapp/resources ๊ฒฝ๋กœ์— ์ฃผ๋กœ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ํŒŒ์ผ์ธ html, css, img ๋“ฑ์„ ์ €์žฅํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ ์ด์œ ๋Š” servlet-context.xml์— ์ •์ ํŒŒ์ผ์— ๋Œ€ํ•œ GET mapping ์‹œ ์ •์ ํŒŒ์ผ ์œ„์น˜๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋ ‡๊ฒŒ ์žกํ˜€์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.  ํ•˜์ง€๋งŒ URL์—์„œ ํ•ด๋‹น ํŒŒ์ผ์— ๋Œ€ํ•œ ์š”์ฒญ์„ ํ•  ๋•Œ๋Š” '/resources'  ๊ฒฝ๋กœ๋Š” ์ ์ง€ ์•Š๊ณ  ๊ทธ ํ•˜์œ„ ๊ฒฝ๋กœ๋ถ€ํ„ฐ ์ ๋Š”๋‹ค. ์ด๋ ‡๊ฒŒ ํ•ด์•ผ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ์—์„œ ์ •์  ํŒŒ์ผ๋“ค์„ static ํด๋” ์•ˆ์— ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋ดค๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ด ๊ฒฝ๋กœ์˜ ํŒŒ์ผ๋“ค์ด ์ •์  ํŒŒ์ผ์ด๋ผ๋Š” ๊ฒƒ์„ ๋ช…ํ™•ํžˆ ์•Œ ์ˆ˜ ์žˆ์œผ๋‹ˆ๊นŒ ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค. [์ฐธ๊ณ : Spring..

Spring 2025.02.20

[๋””์ž์ธํŒจํ„ด] Visitor - ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋Œ์•„๋‹ค๋‹ˆ๋ฉด์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค

์ฑ… [JAVA ์–ธ์–ด๋กœ ๋ฐฐ์šฐ๋Š” ๋””์ž์ธ ํŒจํ„ด ์ž…๋ฌธ 3ํŒ;์œ ํ‚ค ํžˆ๋กœ์‹œ ์ €]์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.  ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋‹ค.๋งŽ์€ ์š”์†Œ๊ฐ€ ๋ชจ์—ฌ ์žˆ๋Š” ๋‚ด๋ถ€๋ฅผ ๋Œ์•„๋‹ค๋‹ˆ๋ฉฐ ๊ฐ™์€ ์ฒ˜๋ฆฌ๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ์ ์šฉํ•œ๋‹ค.๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ์ฒ˜๋ฆฌ๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค.- ๋ถ€ํ’ˆ์œผ๋กœ์„œ์˜ ๋…๋ฆฝ์„ฑ์„ ๋†’์—ฌ์ค€๋‹ค, OCP ์„ค๊ณ„ ์›์น™์˜ ์ ์šฉ Visitor ์ถ”์ƒํด๋ž˜์Šค, visit(***) ์„ ์–ธ ConcreteVisitor ํด๋ž˜์Šค, visit(***) ๋ฉ”์„œ๋“œ ๊ตฌํ˜„Element ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋‚˜ํƒ€๋‚ด๋Š” ์ธํ„ฐํŽ˜์ด์Šค, ๋ฐฉ๋ฌธ์ž๋ฅผ ๋ฐ›์•„๋“ค์ด๋Š” accept ๋ฉ”์„œ๋“œ ์„ ์–ธConcreteElement ๊ตฌ์ฒด ํด๋ž˜์Šค, File, Directory, accept ๋ฉ”์„œ๋“œ ๊ตฌํ˜„ObjectStructure Element ์ง‘ํ•ฉ, Directory ํด๋ž˜์Šค๋Š” ๊ฐ๊ฐ์˜ Element๋ฅผ ..

[๋””์ž์ธํŒจํ„ด] Iterator - ์ฒ˜๋ฆฌ๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค

์ฑ… [JAVA ์–ธ์–ด๋กœ ๋ฐฐ์šฐ๋Š” ๋””์ž์ธ ํŒจํ„ด ์ž…๋ฌธ 3ํŒ;์œ ํ‚ค ํžˆ๋กœ์‹œ ์ €]์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.  Iterable ์ง‘ํ•ฉ์ฒด ์ธํ„ฐํŽ˜์ด์ŠคIterator ์ฒ˜๋ฆฌ๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฐ˜๋ณต์ž ์ธํ„ฐํŽ˜์ด์ŠคBookShelf implements Iterable์ง‘ํ•ฉ์ฒด ๊ตฌํ˜„ ํด๋ž˜์ŠคBookShelfIterator implements Iterator ๋ฐ˜๋ณต์ž ๊ตฌํ˜„ ํด๋ž˜์Šค Book ๊ฐ ์š”์†Œ ๋‚˜ํƒ€๋‚ด๋Š” ํด๋ž˜์Šค  Iterable ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ฒ˜๋ฆฌ๋ฅผ ๋ฐ˜๋ณตํ•  ๋Œ€์ƒ์œผ๋กœ ์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค๋Š” ๋ฐฐ์—ด์ฒ˜๋Ÿผ '๋ญ”๊ฐ€ ๋งŽ์ด ๋ชจ์—ฌ์žˆ๋Š” ๊ฒƒ' ์ด๋ฅธ๋ฐ” '์ง‘ํ•ฉ์ฒด'๊ฐ€ ๋œ๋‹ค. Iterable ์ธํ„ฐํŽ˜์ด์Šค๋Š” iterator ๋ฉ”์„œ๋“œ๊ฐ€ ์„ ์–ธ๋˜์–ด ์žˆ๋‹ค.public interface Iterable { public abstract Iterator iterator();} ..

[database] Advanced SQL - nvl, decode, case, pivot, rollup, cube, rank, ์ƒ๊ด€ ์ฟผ๋ฆฌ

1. NVL ํ•จ์ˆ˜์ปฌ๋Ÿผ์˜ ๊ฐ’์ด null์ผ ๋•Œ ์–ด๋–ค ๊ฐ’์„ ๋ณด์ด๊ฒŒ ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ์ง€์ •ํ•œ๋‹คNVL ํ•จ์ˆ˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ ํƒ€์ž…์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹คNVL ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฐ’์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ผ์น˜์‹œ์ผœ์•ผ ํ•œ๋‹คSELECT name, salary, nvl(salary, 0) modified_salary -- NVL()FROM temp;SELECT name, salary, nvl2(salary, 100000, 0) -- NVL2(๊ฐ’, ์ง€์ •๊ฐ’1, **์ง€์ •๊ฐ’2**)FROM temp;2. DECODE ํ•จ์ˆ˜nํ•ญ์—ฐ์‚ฐ์ž, switch ๋ฌธ์ปฌ๋Ÿผ ๊ฐ’์— ๋”ฐ๋ผ ์ถœ๋ ฅ ๊ฐ’์„ ์ง€์ •ํ•œ๋‹คelse ์กฐ๊ฑด์„ ๋ช…์‹œํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๊ฐ’์œผ๋กœ nullSELECT name, salary, DECODE(TRUNC(salary/1000), null, nul..

[web] input ํƒœ๊ทธ, button ํƒœ๊ทธ

input/button ํƒœ๊ทธ ์†์„ฑ ์ค‘ type์ด button์ธ ๊ฒƒ์€ ์–ด๋– ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค- button์€ ๋‹จ์ง€ ํด๋ฆญํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„ํŠผ, submit์€ ํผ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์ถœํ•˜๋Š” ๋ฒ„ํŠผform ํƒœ๊ทธ ์•ˆ์— ํŠน์ • ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก action ์†์„ฑ์œผ๋กœ ์ฃผ์†Œ ์ง€์ • ๊ฐ€๋Šฅ 1. ํ˜•ํƒœ ์ฐจ์ด๋ฒ„ํŠผ 2. ๋‚ด๋ถ€ ์ฝ˜ํ…์ธ  ํฌํ•จ ์—ฌ๋ถ€input ํƒœ๊ทธbutton ํƒœ๊ทธvalue ์†์„ฑ์œผ๋กœ ํ…์ŠคํŠธ ํฌํ•จ ๊ฐ€๋Šฅ์ด๋ฏธ์ง€, ์•„์ด์ฝ˜ HTML ์š”์†Œ ๋“ฑ ํฌํ•จ ๊ฐ€๋Šฅ  3. ๊ธฐ๋ณธ ๋™์ž‘ (ํผ ์ œ์ถœ)input ํƒœ๊ทธbutton ํƒœ๊ทธ.๊ธฐ๋ณธ์ ์œผ๋กœ type์ด submit์œผ๋กœ form ํƒœ๊ทธ ์•ˆ์—์„œ ์ž๋™ ์ œ์ถœtype์ด button์ด๋ฉด ์•„๋ฌด ๋™์ž‘์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋™์ž‘์„ ์›ํ•˜๋ฉด onClick ๋“ฑ์˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ง€์ •ํ•œ๋‹ค. ์†์„ฑ์ด button์œผ๋กœ ์ง€์ •๋˜๋ฉด ๋‘ ํƒœ๊ทธ..

[database] ์˜ค๋ผํด ์ฝ”๋ฉ˜ํŠธ ์„ค์ • ๋ฐ ์กฐํšŒ

-- DDL - COMMENT-- ํ…Œ์ด๋ธ” ์ฝ”๋ฉ˜ํŠธ ์„ค์ • ๋ฐ ์กฐํšŒCOMMENT ON TABLE s_emp IS 'Employee table. Each row in this table represents one employee of the company.'; SELECT * FROM all_tab_commentsWHERE table_name LIKE 'S_EMP';-- ์ปฌ๋Ÿผ ์ฝ”๋ฉ˜ํŠธ ์„ค์ • ๋ฐ ์กฐํšŒCOMMENT ON COLUMN s_emp.title IS 'Title on Employee table.'; ํ…Œ์ด๋ธ” ์ฝ”๋ฉ˜ํŠธ ์„ค์ •$ COMMENT ON TABLE [ํ…Œ์ด๋ธ”๋ช…] IS    '์ฃผ์„ ๋ฌธ์žฅ'; ์ปฌ๋Ÿผ ์ฝ”๋ฉ˜ํŠธ ์„ค์ •$ COMMENT ON COLUMN [ํ…Œ์ด๋ธ”๋ช…].[์ปฌ๋Ÿผ๋ช…] IS ..

[database] Transaction Control, Dictionary

Transaction์€ ๋…ผ๋ฆฌ์ ์ธ ์—…๋ฌด์˜ ์ž‘์—…๋‹จ์œ„๋ฅผ ์˜๋ฏธํ•œ๋‹คSAVEPOINTROLLBACKCOMMITDDL๊ณผ DCL์€ auto-commit์ด ๋œ๋‹ค.๋ช…๋ น์–ด์„ค๋ช…COMMIT์•„์ง ์ €์žฅ๋˜์ง€ ์•Š์€ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๊ณ  ํ˜„์žฌ์˜ ํŠธ๋žœ์žญ์…˜์„ ์ข…๋ฃŒSAVEPOINTํ˜„์žฌ์˜ ํŠธ๋žœ์žญ์…˜์— savepoint๋ฅผ ์ง€์ •ROLLBACK(ROLLBACK TO [savepoint ์ด๋ฆ„])์•„์ง ์ €์žฅ๋˜์ง€ ์•Š์€ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ทจ์†Œํ•˜๊ณ  ํ˜„์žฌ์˜ ํŠธ๋žœ์žญ์…˜์„ ์ข…๋ฃŒ 1. commit, rollback ์ด์ „์˜ ์ƒํƒœ๋‹จ์ง€ ๋ฒ„ํผ์—๋งŒ ์˜ํ–ฅ์„ ๋ฐ›์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์˜ ์ด์ „ ์ƒํƒœ๋Š” ๋ณต๊ตฌ๋  ์ˆ˜ ์žˆ๋‹คํ˜„์žฌ ์‚ฌ์šฉ์ž๋Š” select ๋ฌธ์œผ๋กœ ์ž‘์—…์˜ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋Š” ํ˜„์žฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜ํ–‰ํ•œ ์ž‘์—…์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์—†๋‹ค๋ณ€๊ฒฝ๋œ ํ–‰์€ Loc..

[Spring] STS ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ชจ์Œ

1. Spring MVC Project๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์„ ๋•Œ- ๋ธ”๋กœ๊ทธ์— ์ฒจ๋ถ€๋œ https-content.xml๋ฅผ ํ•ด๋‹น ๊ฒฝ๋กœ์— ์ถ”๊ฐ€ํ•˜๋ฉด ๋ชฉ๋ก์— ๋œธ https://blog.naver.com/wisejia/223365361844 spring sts3์—์„œ spring mvc project ์•ˆ ๋ณด์ด๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ (spring3 legacy ๋งŒ๋“ค๊ธฐ)์•„๋ž˜ ๋‚ด์šฉ์€ ์ค‘์•™ ์ •๋ณด๊ธฐ์ˆ ์ธ์žฌ๊ฐœ๋ฐœ์› ํ•™์ƒ๋“ค์„ ์œ„ํ•ด ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์•Œ๋ ค์ฃผ...blog.naver.com 2. invalid thread access - templates๋ฅผ URL์„ ํ†ตํ•ด ๋ฐ›์•„์˜ค์ง€ ์•Š๊ณ  ์ง์ ‘ ์›Œํฌ์ŠคํŽ˜์ด์Šค ๊ฒฝ๋กœ์— ์ถ”๊ฐ€ํ•˜์—ฌ ํ•ด๊ฒฐhttps://nirsa.tistory.com/405 [Spring] STS3์—์„œ MVC Project๋ฅผ ์ฐพ..

Spring 2025.02.10

[database] ํŠธ๋ฆฌ๊ฑฐ (Trigger) ์ƒ์„ฑ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ฐ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ

ํŠธ๋ฆฌ๊ฑฐ (Trigger)์‚ฌ์šฉ์ž๊ฐ€ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ  ์–ด๋–ค ํ…Œ์ด๋ธ”์— ํŠน์ •ํ•œ DML ๋ฌธ์ด ์ˆ˜ํ–‰๋˜์—ˆ์„ ๋•Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ž๋™์ ์œผ๋กœ ๋™์ž‘ํ•˜๋„๋ก ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจํƒ€์ด๋ฐ์— ๋”ฐ๋ฅธ ๋ถ„๋ฅ˜- DML ์ด์ „์— ์ˆ˜ํ–‰  BEFORE TRIGGER- DML ์ดํ›„์— ์ˆ˜ํ–‰   AFTER TRIGGER ์ˆ˜ํ–‰ ์ฐจ์ˆ˜์— ๋”ฐ๋ฅธ ๋ถ„๋ฅ˜- ํ•œ ๋ฒˆ๋งŒ ์ˆ˜ํ–‰ STATEMENT TRIGGER - ํ–‰ ๋งˆ๋‹ค ์ˆ˜ํ–‰ ROW TRIGGERCREATE OR REPLACE TRIGGER tg_show_planAFTER INSERT ON temp--REFERENCING NEW AS NEW OLD AS OLDFOR EACH ROWBEGIN DBMS_OUTPUT.PUT_LINE('ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.'); INSERT INTO temp_tg_test (nam..

[database] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชฉ์ฐจ ์ •๋ฆฌ

SQLIntroductionDML - insert, update, delete๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ - selectstored function - ๋‹จ์ผ ํ–‰, ๋‹ค์ค‘ ํ–‰ ํ•จ์ˆ˜ / ๋ฌธ์žํ˜•, ์ˆซ์žํ˜•, ๋‚ ์งœํ˜•, ๋ณ€ํ™˜ํ˜• ํ•จ์ˆ˜SubGroup์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ถ„๋ฅ˜ - GROUP BY, HAVINGjoin - Equijoin, Non-Equijoin, Outer join, Self join, Set ์—ฐ์‚ฐ์ž SubQueryConstraint - PK, NOT NULL, UNIQUE, FK, CHECKTransaction Control - COMMIT, ROLLBACK, SAVEPOINTDictionary - DBMS๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌ, readonlyDDL - create, alter, drop, truncate, rename, ..