Chanho

[Library] Toast UI Grid์— ๋Œ€ํ•ด์„œ

Toast UI Grid๋Š” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ทธ๋ฆฌ๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ‘œ์‹œํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ’๋ถ€ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๐Ÿšถ ํ™œ์šฉ ์‚ฌ๋ก€ ๋Œ€์‹œ๋ณด๋“œ ๋ฐ ๋ฆฌํฌํŠธ: ๋น„์ฆˆ๋‹ˆ์Šค ๋ฐ์ดํ„ฐ ๋Œ€์‹œ๋ณด๋“œ๋‚˜ ๋ฆฌํฌํŠธ์—์„œ ๋Œ€์šฉํ–ฅ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ‘œ์‹œํ•˜๊ณ  ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•„ํ„ฐ๋ง, ์ •๋ ฌ, ๊ทธ๋ฃนํ™” ๋“ฑ์˜ ๊ธฐ๋Šฅ์„...

[Mybatis] ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค๋ž€ ๋ฌด์—‡์ด๊ณ  ๊ฐ„๋‹จํ•œ ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด์„œ

MyBatis๋ž€ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์šฉ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งตํ•‘ ํˆด(SQL Mapper) ์ด๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, SQL ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. โ€˜MyBatisโ€™๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ๋œ ์ด์œ ๋Š” SQL ๋ฌธ์„ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ์™€ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด, SQL ๋ฌธ์„ ์ข€๋” ์œ ์—ฐํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ , ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€ ๋ณด...

[SpringDB] ํŠธ๋žœ์žญ์…˜ ๋งค๋‹ˆ์ €(Transaction Manager)์— ๋Œ€ํ•ด์„œ

์Šคํ”„๋ง์ด ํŠธ๋žœ์žญ์…˜ ๋งค๋‹ˆ์ €(Transaction Manager)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ๋œ ์ด์œ ๋Š” ๋ณต์žกํ•œ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™˜๊ฒฝ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค. ๋ณต์žก์„ฑ ๊ด€๋ฆฌ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ์‚ฐ์ด ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ์˜ ๋ณต์žก์„ฑ์ด ์ฆ๊ฐ€ํ•œ๋‹ค. ํŠธ๋žœ์žญ์…˜ ๋งค๋‹ˆ์ €๋Š” ์ด๋ฅผ ์ถ”์ƒํ™”ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ„ํŽธํ•˜๊ฒŒ ํŠธ๋žœ์žญ์…˜์„ ...

[Database] ํŠธ๋žœ์žญ์…˜๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฝ(DB Lock)์— ๋Œ€ํ•ด์„œ

ํŠธ๋žœ์žญ์…˜(Transaction)์— ๋Œ€ํ•ด์„œ? โ€˜ํŠธ๋žœ์žญ์…˜โ€™์ด๋ž€ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ผ๋ จ์˜ ์—ฐ์‚ฐ๋“ค์„ ๋งํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด, ์€ํ–‰ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ์ž A๊ฐ€ ์‚ฌ์šฉ์ž B์—๊ฒŒ ๋ˆ์„ ์ด์ฒดํ•˜๋Š” ๊ณผ์ •์€ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„์˜ ์—ฐ์‚ฐ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ์—ฐ์‚ฐ๋“ค์ด ๋ชจ๋‘ ํฌํ•จ๋œ ์ „์ฒด ๊ณผ์ •์„ โ€˜ํŠธ๋žœ์žญ์…˜โ€™์ด๋ผ ํ•œ๋‹ค. ํŠธ๋žœ์žญ์…˜ ACID ์ด๋ž€? ์›์ž์„ฑ(Atom...

[SpringDB] ์ปค๋„ฅ์…˜ ํ’€(Connection Pool)๊ณผ DataSource์— ๋Œ€ํ•ด์„œ

์ปค๋„ฅ์…˜ ํ’€(Connection Pool)๊ณผ ๋ฐ์ดํ„ฐ ์†Œ์Šค(DataSource)๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ๊ณผ ๊ด€๋ จ๋œ ๊ธฐ์ˆ ์ด๋‹ค. ์ด ๊ธฐ์ˆ ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ํ†ต์‹ ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ปค๋„ฅ์…˜ ํ’€(Connection Pool)์— ๋Œ€ํ•ด์„œ ์ปค๋„ฅ์…˜ ํ’€(Connection Pool)์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ฐ™์€ ์ž์›์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ...

[JavaScript] ๋น„๋™๊ธฐ ํ†ต์‹  ์›น ๊ฐœ๋ฐœ ๊ธฐ๋ฒ•์— ๋Œ€ํ•ด์„œ _ AJAX & XHR

AJAX (Asynchronous JavaScript and XML)์— ๋Œ€ํ•ด์„œ โ€˜AJAXโ€™๋Š” ์›น ํŽ˜์ด์ง€๊ฐ€ ์„œ๋ฒ„์™€ ๋น„๋™๊ธฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฐœ๋ฐœ ๊ธฐ๋ฒ•์ด๋‹ค. โ€˜AJAXโ€™๋Š” ์—ฌ๋Ÿฌ ๊ธฐ์ˆ ์˜ ์กฐํ•ฉ์„ ํฌํ•จํ•˜๋Š”๋ฐ, ์ด ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ โ€˜XMLHttpRequestโ€™ ๊ฐ์ฒด์ด๋‹ค. โ€˜AJAXโ€™๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์›นํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ ๋‹ค์‹œ ๋กœ๋“œํ•˜์ง€ ์•Š๊ณ ๋„ ์„œ๋ฒ„...

[Library] RequireJS ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฐฉ๋ฒ• ๋ฐ AMD์— ๋Œ€ํ•ด์„œ

RequireJS๋Š” โ€˜JavaScriptโ€™ ํŒŒ์ผ๊ณผ ๋ชจ๋“ˆ์„ ๊ด€๋ฆฌํ•˜๊ณ  ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” โ€˜JavaScript Libraryโ€™์ด๋‹ค. ์ฃผ์š” ๋ชฉ์ ์œผ๋กœ ํŽ˜์ด์ง€ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ์ฝ”๋“œ์˜ ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. โ€˜RequireJSโ€™๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ๋œ ์ด์œ ๋Š” ๋ชจ๋“ˆํ™”๋œ ๊ฐœ๋ฐœ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ฑ„ํƒํ•˜์—ฌ ๋Œ€๊ทœ๋ชจ โ€˜JavaScriptโ€™ ํ”„๋กœ์ ํŠธ์˜ ๋ณต์žก์„ฑ์„ ๊ด€๋ฆฌํ•˜...

[Spring] ์ปค์Šคํ…€ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ƒ์„ฑํ•˜๊ธฐ _ Custom Exception

Spring Boot์—์„œ ์œ ํšจํ•˜์ง€ ์•Š์€ ์š”์ฒญ์ด ์ „์†ก๋˜๊ฑฐ๋‚˜ ์„œ๋ฒ„ ๋‚ด๋ถ€์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๊ฒฝ์šฐ, ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณ„๋„์˜ ์˜ค๋ฅ˜ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์˜ค๋ฅ˜ํŽ˜์ด์ง€์ธ Whitelabel Error Page๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ErrorCode ์ž‘์„ฑํ•˜๊ธฐ ์ปค์Šคํ…€ ์˜ˆ์™ธ์ฒ˜๋ฆฌ์—์„œ ํ‘œ์‹œํ•  ๋‚ด์šฉ ๋ฐ ๋ถ€๊ฐ€์ ์ธ ๋ถ€๋ถ„์— ๊ด€ํ•œ ์ •์˜๋ฅผ ํ•œ๋‹ค. publ...

ยฉ chanho. Some rights reserved.