[Spring] Caused by: java.lang.IllegalArgumentException: ์ด๋ฆ„์ด {fragment}์ธ, ๋‘˜ ์ด์ƒ์˜ fragment๋“ค์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

[Spring] Caused by: java.lang.IllegalArgumentException: ์ด๋ฆ„์ด {fragment}์ธ, ๋‘˜ ์ด์ƒ์˜ fragment๋“ค์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

[Caused by: java.lang.IllegalArgumentException: ์ด๋ฆ„์ด {fragment}์ธ, ๋‘˜ ์ด์ƒ์˜ fragment๋“ค์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ƒ๋Œ€์  ์ˆœ์„œ๋ฐฐ์—ด์—์„œ ๋ถˆํ—ˆ๋ฉ๋‹ˆ๋‹ค. ์ƒ์„ธ ์ •๋ณด๋Š” ์„œ๋ธ”๋ฆฟ ์ŠคํŽ™ 8.2.2 2c ์žฅ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ์ ˆ๋Œ€์  ์ˆœ์„œ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด ๋ณด์‹ญ์‹œ์˜ค.] Spring MVC๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ์—์„œ ์ค‘๋ณต๋œ ๋””ํŽœ๋˜์‹œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ์ด๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „์—…, ํ˜น์€ ์‹ ๊ทœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€ ์‹œ ์ฃผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ํ˜„์ƒ์œผ๋กœ, ๋ฉ”์ด๋ธ ํด๋ฆฐ์„ ํ†ตํ•ด ๋ฉ”์ด๋ธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ •๋ฆฌํ•˜๋ฉด ๋œ๋‹ค. ๋ฉ”์ด๋ธ ํด๋ฆฐ(ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญ > maven > maven clean) ๊ทธ๋ž˜๋„ ์•ˆ๋œ๋‹ค๋ฉด ์‹ค์ œ๋กœ ์ค‘๋ณต๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ •๋ ฌ ํ˜น์€ ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ...

[PostgreSQL] RDS ์ฟผ๋ฆฌ ์„ฑ๋Šฅ ๋ถ„์„ ๋ฐฉ๋ฒ• : pg_stat_statements ์„ค์น˜, ๊ณ ๋ ค์‚ฌํ•ญ ๋ฐ ์ฃผ์š” ์ง€ํ‘œ

[PostgreSQL] RDS ์ฟผ๋ฆฌ ์„ฑ๋Šฅ ๋ถ„์„ ๋ฐฉ๋ฒ• : pg_stat_statements ์„ค์น˜, ๊ณ ๋ ค์‚ฌํ•ญ ๋ฐ ์ฃผ์š” ์ง€ํ‘œ

1. RDS์—์„œ์˜ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ ๋ถ„์„, pg_stat_statements๋ž€? RDS์—์„œ๋Š” ์™ธ๋ถ€ ์ต์Šคํ…์…˜ ์‚ฌ์šฉ์ด ์ œํ•œ๋œ๋‹ค. ์ฟผ๋ฆฌ ํ†ต๊ณ„ ๋ฐ ์„ฑ๋Šฅ์— ๋Œ€ํ•œ ์ง€ํ‘œ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ต์Šคํ…์…˜์ด ์žˆ์ง€๋งŒ, ๊ทธ์ค‘ pg_stat_statements๊ฐ€ ํ—ˆ์šฉ๋œ๋‹ค. pg_stat_statements์˜ ์›๋ฆฌ, ์‚ฌ์šฉ๋ฒ•, ์ฃผ์š” ์ง€ํ‘œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. pg_stat_statements๋Š” ์‹คํ–‰๋œ ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ํ†ต๊ณ„๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ์ €์žฅํ•œ๋‹ค. ๋‹ค์Œ์€ ์ €์žฅ๋˜๋Š” ์ฃผ์š” ์ง€ํ‘œ๋“ค์ด๊ณ , ์ด๋ฅผ ํ†ตํ•ด ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์„ ๋ถ„์„ํ•˜๊ณ  ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.ย ์ฟผ๋ฆฌ๋นˆ๋„ ์ฟผ๋ฆฌ ์‹คํ–‰์‹œ๊ฐ„ ์ฟผ๋ฆฌ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰ (CPU, ๋””์ŠคํฌI/O, ๋ฒ„ํผ ํžˆํŠธ ๋“ฑ) ์ฟผ๋ฆฌ ํ…์ŠคํŠธ ์ €์žฅ 2. ์„ค์น˜ย ์„ค์น˜๊ฐ€ ๋˜์–ด์žˆ์ง€์•Š๋‹ค๋ฉด ์ต์Šคํ…์…˜์„ ๋จผ์ € ์„ค์น˜ํ•˜๋ฉด ๋œ๋‹ค. ...

[๋””์ž์ธํŒจํ„ด] ๋นŒ๋”(Builder) ํŒจํ„ด์˜ ๊ฐœ๋…, ์˜ˆ์ œ, ์žฅ๋‹จ์ , ํ™œ์šฉ

[๋””์ž์ธํŒจํ„ด] ๋นŒ๋”(Builder) ํŒจํ„ด์˜ ๊ฐœ๋…, ์˜ˆ์ œ, ์žฅ๋‹จ์ , ํ™œ์šฉ

1. ๋นŒ๋”(Builder) ํŒจํ„ด์ด๋ž€? ์ผ๋ฐ˜์ ์œผ๋กœ ๊ตฌ์กฐ๋ฅผ ๊ฐ–์ถ˜ ํฐ ๊ตฌ์กฐ๋ฌผ์„ ๊ฑด์ถ•, ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์„ build๋ผ๊ณ  ํ•œ๋‹ค ์˜ˆ๋ฅผ ๋“ค์–ด ๋นŒ๋”ฉ์„ ์ง€์„ ๋•Œ ์ง€๋ฐ˜๋‹ค์ง€๊ธฐ, ๋ผˆ๋Œ€ ๋งŒ๋“ค๊ธฐ ๋“ฑ์˜ ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉฐ ์•„๋ž˜์—์„œ ์œ„๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ๋งŒ๋“ค์–ด๊ฐ„๋‹ค. ๋ณต์žกํ•œ ๊ตฌ์กฐ๋ฌผ์„ ๋‹จ์ˆจ์— ์™„์„ฑํ•˜๊ธฐ๋Š” ์–ด๋ ต๊ธฐ์—, ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ ๋ถ€๋ถ„์„ ๋งŒ๋“ค๊ณ  ๋‹จ๊ณ„๋ฅผ ๋ฐŸ์•„๊ฐ€๋ฉฐ ๋งŒ๋“ค๊ฒŒ ๋œ๋‹ค. Builder ํŒจํ„ด์€ ์ด์ฒ˜๋Ÿผ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ๋ณต์žกํ•œ ์ธ์Šคํ„ด์Šค๋ฅผ ์กฐ๋ฆฝํ•ด ๊ฐ€๋Š” ํŒจํ„ด์ด๋‹ค.ย 2. ๋นŒ๋” ํŒจํ„ด์˜ ๊ตฌ์กฐ ๋นŒ๋”ํŒจํ„ด ์˜ˆ์ œ ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ Builder ์—ญ - ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฒฐ์ •, ์ธ์Šคํ„ด์Šค ๊ฐ ๋ถ€๋ถ„์„ ๋งŒ๋“œ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜. ์˜ˆ์ œ์—์„œ๋Š” Builder ํด๋ž˜์Šค๊ฐ€ ์—ญํ• ์„ ๋งก์Œ ConcreteBuilder ์—ญ - ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„, ์‹ค์ œ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์—ฌ๊ธฐ์—์„œ ์ •์˜ TextBuilder, HTMLBuilder ํด๋ž˜์Šค๊ฐ€ ์—ญํ• ์„ ๋งก์Œ Director ์—ญ- Builder์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑํ•œ๋‹ค. Concrete Builder์—ญ์— ์˜์กดํ•˜์ง€ ์•Š์œผ๋ฉฐ, ConcreteBuilder์— ์ƒ๊ด€์—†์ด ์ž‘๋™ํ•˜๋„๋ก Builder์˜ ๋ฉ”์„œ๋“œ๋งŒ ํ™œ์šฉํ•œ๋‹ค. ์˜ˆ์ œ์—์„œ๋Š” Directorํด๋ž˜์Šค๊ฐ€ ์—ญํ• ์„ ๋งก์Œ 3. ์˜ˆ์ œ ๋นŒ๋” ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์„œ ์ž‘์„ฑํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•ด๋ณด์ž. ...

[Spring] Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘์† ์—๋Ÿฌ

[Spring] Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘์† ์—๋Ÿฌ

Amazon RDS and Amazon Aurora SSL/TLS ์ธ์ฆ์„œ๋ฅผ ์—…๋ฐ์ดํŠธ ํ›„ ๋ณ„๋‹ค๋ฅธ ์„ค์ • ๋ณ€๊ฒฝ์„ ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ, ์˜ค๋žœ๋งŒ์— ๋นŒ๋“œํ•˜๋Š” ์Šคํ”„๋ง๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์ด ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ ๋ฐœ์ƒํ•˜์˜€๋‹ค. [### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host โ€œ{host}โ€, user โ€œ{user}โ€, database โ€œ{database}โ€, no encryptionย ] RDS ์ธ์ฆ์„œ ์—…๋ฐ์ดํŠธ ์ž‘์—… ํ›„ SSL ์š”๊ตฌ์„ค์ •์ด ํ™œ์„ฑํ™”๋œ ๊ฒƒ์œผ๋กœ, ํ•ด๋‹น ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฉฐ ์ ‘์†์ด ์•ˆ๋œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์กฐ์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ...

[PostgreSQL] SUBSTRING, SUBSTR, ๋ฌธ์ž์—ด ์ž๋ฅด๊ธฐ

[PostgreSQL] SUBSTRING, SUBSTR, ๋ฌธ์ž์—ด ์ž๋ฅด๊ธฐ

PostgreSQL์—์„œ ๋ฌธ์ž์—ด์„ ๋‹ค๋ฃจ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ๊ทธ์ค‘ ๋ฌธ์ž์—ด์„ ์›ํ•˜๋Š” ๋ฐฉ์‹๋Œ€๋กœ ์ž๋ฅผ ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋“ค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ๋จผ์ €, ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” SUBSTRING, SUBSTR์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ ๋ฒ• ๋ฐ ์‘์šฉ, ์„ฑ๋Šฅ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. 1. Substring ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ• Substring๊ณผ Substr์€ ์‹œ์ž‘ ์œ„์น˜(n), ๊ธธ์ด(l)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ์ž๋ฅผ ์ˆ˜ ์žˆ๋‹ค. SELECT substring('๋ฌธ์ž์—ด' FROM n FOR l); -- from, for ๊ตฌ๋ฌธ์€ substring๋งŒ ์ง€์› SELECT substring('๋ฌธ์ž์—ด', n, l); SELECT substr('๋ฌธ์ž์—ด', n, l); ๊ตฌ๋ฌธ์„ ํ™œ์šฉํ•˜์—ฌย PostgreSQL Tutorial ๋ฌธ์ž์—ด์—์„œ ์ฒซ๋ฒˆ์งธ ์œ„์น˜์ธ P๋ถ€ํ„ฐ 10๊ฐœ์˜ ๋ฌธ์ž์—ด๋งŒ์„ ์ถ”์ถœํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ํ™•์ธํ•ด ๋ณด๋ฉด ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ...