Chanho

[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...

[MySQL] ๋งฅ์—์„œ MySQL ์„ค์น˜ ๋ฐ ๊ธฐ๋ณธ ์…‹ํŒ… ํ•˜๊ธฐ

Homebrew๋ฅผ ํ†ตํ•œ MySQL ์„ค์น˜ Homebrew๊ฐ€ ์—†๋‹ค๋ฉด ์„ค์น˜ brew๋ฅผ ํ†ตํ•ด ์„ค์น˜ $ brew update # ์„ค์น˜์ „ ์—…๋ฐ์ดํŠธ $ brew install mysql # ์„ค์น˜ ์„ค์น˜ ํ™•์ธ $ mysql --version MySQL ์‹œ์ž‘ ๋ฐ ์ข…๋ฃŒ # ์„œ๋ฒ„ ์‹œ์ž‘ $ mysql.s...

[SQL] Join๊ณผ Union์— ๋Œ€ํ•ด์„œ

JOIN SQL์—์„œ โ€˜JOINโ€™์€ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ”์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ค‘์š”ํ•œ ๊ฐœ๋…์ด๋‹ค. ์กฐ์ธ์„ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋กœ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์œผ๋กœ ํ‘œ์‹œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‚ด๋ถ€ ์กฐ์ธ (Inner Join) ๋‘ ํ…Œ์ด๋ธ”์—์„œ ์ผ์น˜ํ•˜๋Š” ํ–‰๋งŒ ๋ฐ˜ํ™˜(NOT NULL)ํ•œ๋‹ค. ๋‘ ํ…Œ์ด๋ธ” ๊ฐ„์— ์ผ์น˜ํ•˜๋Š” ๋ฐ...

ยฉ chanho. Some rights reserved.