Chanho

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

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

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

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

[Spring] URI๋ฅผ Location ํ—ค๋”์— ๋‹ด์•„์„œ ๋ฐ˜ํ™˜ํ•˜๊ธฐ _ ResponseEntity, Locationgi

RESTfull ์›น ์„œ๋น„์Šค์—์„œ ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์„ ๋•Œ ๊ทธ ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” URI๋ฅผ โ€˜Locationโ€™ํ—ค๋”์— ๋‹ด์•„์„œ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š”, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•ด๋‹น ์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋‹ค. URI location = ServletUriComponentsBuilder.fromCurrentRequest().pat...

[Spring] ๋ฐฑ์—”๋“œ์—์„œ ์–ด๋–ค์ผ์ด ๋ฒŒ์–ด์ง€๊ณ  ์žˆ๋Š”๊ฐ€? _ REST API & Springboot starter์™€ ์ž๋™์„ค์ •

Spring์—์„œ REST API ๊ตฌํ˜„์˜ ๋ฐฑ์—”๋“œ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•ด์„œ ์ปจํŠธ๋กค๋Ÿฌ(Controller): REST API๋Š” @RestController์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜๋œ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ†ตํ•ด ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ด ์ปจํŠธ๋กค๋Ÿฌ๋Š” HTTP ์š”์ฒญ์„ ๋ฐ›๊ณ  ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์„œ๋น„์Šค(Service) ๊ณ„์ธต: ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์„œ๋น„์Šค ๊ณ„์ธต...

[Spring] ๋กœ๊ทธ ๊ด€๋ฆฌํ•˜๊ธฐ _ Logger

๋กœ๊ฑฐ(Logger)๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹คํ–‰ ์ค‘์— ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๋„๊ตฌ์ด๋‹ค. ๋กœ๊น…(Logging)์€ ์ด๋Ÿฌํ•œ ์ด๋ฒคํŠธ๋ฅผ ์‹œ์Šคํ…œ ์ฝ˜์†”, ํŒŒ์ผ, ๋„คํŠธ์›Œํฌ ์„œ๋ฒ„ ๋“ฑ์— ๊ธฐ๋กํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งํ•œ๋‹ค. ๋กœ๊ฑฐ(Logger)๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  ๋””๋ฒ„๊น…: ๊ฐœ๋ฐœ ์ค‘์ด๋‚˜ ์šด์˜ ์ค‘์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ์˜ ์›์ธ์„ ๋น ๋ฅด๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ...

[Spring] ๋นˆ ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ _ @PostConstruct & @PreDestroy

์ž์›์˜ ํ™œ๋‹น๊ณผ ํ•ด์ œ, ์ดˆ๊ธฐํ™”์™€ ์†Œ๋ฉธ์„ ์ž๋™ํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋‹ด์„ ์ค„์ด๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ด€๋ฆฌ์™€ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด @PostConstruct ์™€ @PreDestroy ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด์˜ ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ๋ฅผ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์Šคํ”„๋ง ๋นˆ์˜ ์ด๋ฒคํŠธ ์‚ฌ์ดํด (Event Cycle) ๋นˆ ์ •์˜ ๋ฐ ๋“ฑ๋ก ...

[Database] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ดํ•ดํ•˜๊ธฐ _ ๊ธฐ๋ณธ๋ถ€ํ„ฐ ์Šคํ‚ค๋งˆ ๋ฐ SQL

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •์˜ ๋ฐ ํ•„์ˆ˜๊ธฐ๋Šฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •์˜ ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์— ์˜ํ•ด ๊ณต์œ ๋˜์–ด ์‚ฌ์šฉ๋  ๋ชฉ์ ์œผ๋กœ ํ†ตํ•ฉํ•˜์—ฌ ๊ด€๋ฆฌ๋˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์‹œ์Šคํ…œ์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๋Š”๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์œผ๋กœ, ์ฒด๊ณ„์ ์œผ๋กœ ์กฐ์ง๋˜๊ณ  ์ €์žฅ๋œ ์ •๋ณด์˜ ๋ชจ์Œ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋Š” ์‰ฝ๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ ‘๊ทผํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ์„ค๋ช… ...

[MySQL] ๊ธฐ๋ณธ ์กฐ์ž‘ํ•˜๊ธฐ _ DB, TABLE, ๋ฐ์ดํ„ฐ, ์ž๋ฃŒํ˜•

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ ๋ฐ ์‚ญ์ œ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์ƒ์„ฑ $ CREATE DATABASE 'database_name'; -- ๋˜๋Š” $ CREATE SCHEMA 'database_name;' โ€˜CREATE SCHEMAโ€™ ๋ช…๋ น์–ด์™€ โ€˜CREATE DATABASEโ€™๋ช…๋ น์–ด๋Š” โ€˜MySQLโ€™์—์„œ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ โ€˜CREA...

ยฉ chanho. Some rights reserved.