HTTP ๋ฉ”์„œ๋“œ

๊น€์˜ํ•œ๋‹˜์˜ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. GET ๋ฆฌ์†Œ์Šค ์กฐํšŒ ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜๊ณ  ์‹ถ์€ ๋ฐ์ดํ„ฐ๋Š” query(์ฟผ๋ฆฌ ํŒŒ๋งˆ๋ฆฌํ„ฐ, ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง)์„ ํ†ตํ•ด์„œ ์ „๋‹ฌ ๋ฉ”์‹œ์ง€ ๋ฐ”๋””๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ณณ์ด ๋งŽ์•„์„œ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Œ GET /boards?title=hello HTTP/1.1 Host: localhost:8080 POST ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฉ”์‹œ์ง€ ๋ฐ”๋””๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋กœ ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ์„œ๋ฒ„๋Š” ์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌ ๋ฉ”์‹œ์ง€ ๋ฐ”๋””๋ฅผ ํ†ตํ•ด ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ ์ฃผ๋กœ ์‹ ๊ทœ ๋ฆฌ์†Œ์Šค ๋“ฑ๋ก, ํ”„๋กœ์„ธ์Šค ์ฒ˜๋ฆฌ ๋“ฑ์— ์‚ฌ์šฉ ์ŠคํŽ™ ์ƒ์˜ POST POST ๋ฉ”์„œ๋“œ๋Š” ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ฆฌ์†Œ์Šค์˜ ๊ณ ์œ ํ•œ ์˜๋ฏธ ์ฒด๊ณ„์— ๋”ฐ๋ผ ์š”์ฒญ์— ํฌํ•จ๋œ ํ‘œํ˜„์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ..

BackEnd 2021. 5. 28. 23:03
HTTP ์ƒํƒœ์ฝ”๋“œ

๊น€์˜ํ•œ๋‹˜์˜ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ƒํƒœ ์ฝ”๋“œ : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ์š”์ฒญ์˜ ์ฒ˜๋ฆฌ ์ƒํƒœ๋ฅผ ์‘๋‹ต์—์„œ ์•Œ๋ ค์ฃผ๋Š” ๊ธฐ๋Šฅ ์ƒํƒœ์ฝ”๋“œ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ ํ•ฉํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. ์ƒํƒœ์ฝ”๋“œ๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์™€์˜ ์•ฝ์†์ด๊ณ , ๋ณดํ†ต ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ƒํƒœ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ๊ฐœ๋ฐœํ•˜๋Š” ํŒ€์— ๋”ฐ๋ผ์„œ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์ œํ•œํ•˜๋Š” ๋“ฑ ์ด ์•ฝ์†์„ ์ ํ•ฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜๋‹ค. ์ข…๋ฅ˜ 1xx (Informational): ์š”์ฒญ์ด ์ˆ˜์‹ ๋˜์–ด ์ฒ˜๋ฆฌ์ค‘ *๊ฑฐ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ 2xx (Successful) : ์š”์ฒญ ์ •์ƒ ์ฒ˜๋ฆฌ 3xx (Redirection) : ์š”์ฒญ์„ ์™„๋ฃŒํ•˜๋ ค๋ฉด ์ถ”๊ฐ€ ํ–‰๋™์ด ํ•„์š” 4xx (Client Error) : ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜, ์ž˜๋ชป๋œ ๋ฌธ๋ฒ• ๋“ฑ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•  ..

BackEnd 2021. 5. 22. 19:04
์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ MySQL ์ •๋ฆฌ #2 ์œ ์šฉํ•œ ํ‚ค์›Œ๋“œ + ์‹ค์ „ ๋ฌธ์ œ ํ’€์ด

#2 ์—์„œ๋Š” ์œ ์šฉํ•œ ํ‚ค์›Œ๋“œ๋“ค์„ ์ •๋ฆฌํ•˜๋ฉด์„œ ๋ฌธ์ œ๋„ ๋ช‡ ๊ฐœ ์ •๋ฆฌํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. - ์ง‘๊ณ„ํ•จ์ˆ˜(SUM, MAX, MIN, COUNT, AVG) ์ง‘๊ณ„ํ•จ์ˆ˜๋Š” ์ตœ๋Œ“๊ฐ’ ํ˜น์€ ์ตœ์†Ÿ๊ฐ’ ๊ตฌํ•˜๊ธฐ, ๊ฐœ์ˆ˜ ์„ธ๊ธฐ ๊ทธ๋ฆฌ๊ณ  ํ‰๊ท  ๊ตฌํ•˜๊ธฐ ๋“ฑ์— ์ด์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. โ—#1์—์„œ ์ •๋ฆฌํ•œ GROUP BY๋Š” ์ง‘๊ณ„ํ•จ์ˆ˜์™€ ์‚ฌ์šฉํ•˜๋ฉด ์œ ์šฉํ•˜๋‹ˆ ๊ผญ ์•Œ์•„๋‘ก์‹œ๋‹ค. ์ด์— ๊ด€๋ จ๋œ ์˜ˆ์ œ๋Š” ๋’ค์— GROUP BY ๋ฌธ์ œ์™€ ํ•จ๊ป˜ ์•Œ์•„๋ด…๋‹ˆ๋‹ค. - ์ค‘๋ณต ์ œ๊ฑฐ ํ•˜๊ธฐ(DISTINCT) DISINCT ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. โ—์ถ”๊ฐ€๋กœ ์ง‘๊ณ„ํ•จ์ˆ˜์™€ ์กฐํ•ฉํ•˜์—ฌ COUNT(DISTINCT NAME) ์ด๋Ÿฐ ๋ฐฉ์‹๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. NAME์˜ ์ค‘๋ณต๊ฐ’์„ ๋ฏธ๋ฆฌ ์ œ๊ฑฐํ•˜๊ณ  COUNTํ•˜๋Š” ๊ฒƒ์ด์ฃ . -- NAME SELECT ์ค‘๋ณต ์ œ๊ฑฐ SELECT DISTINCT NAME FROM M..

PS 2021. 3. 19. 22:03
์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ MySQL ์ •๋ฆฌ #1 ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ

#1์—์„œ๋Š” ํ•ต์‹ฌ์ ์ธ ํ‚ค์›Œ๋“œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  #2์—์„œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค SQL ๊ณ ๋“์  kit Level 3~4 ๋ฌธ์ œ ๋ช‡๊ฐœ๋ฅผ ๋‹ค๋ฃจ๋ฉด์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜๋“ค์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‚ค์›Œ๋“œ๋“ค์„ ์ •๋ฆฌํ•˜๊ณ  ๋งˆ์ง€๋ง‰์— ์ด๋“ค์„ ์ ํ•ฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•์„ ์ •๋ฆฌํ•  ๊ฒƒ์ด๋‹ค. ORDER BY SELECT * FROM ํ…Œ์ด๋ธ”๋ช… ORDER BY ์ปฌ๋Ÿผ๋ช… (ASC) ํŠน์ • ์ปฌ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ. ๊ธฐ๋ณธ๊ฐ’์€ ์˜ค๋ฆ„์ฐจ์ˆœ(ASC) ์ •๋ ฌ SELECT * FROM ํ…Œ์ด๋ธ”๋ช… ORDER BY ์นผ๋Ÿผ1, ์นผ๋Ÿผ2 DESC ์œ„ ๋ฐฉ์‹์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ์นผ๋Ÿผ์— ์ ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. GROUP BY, HAVING SELECT id, COUNT(*) FROM member GROUP BY id HAVING id > 3 ํŠน์ • ์นผ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ฃนํ™”ํ•œ๋‹ค. ์ฃผ๋กœ ์ง‘๊ณ„ํ•จ์ˆ˜(COUNT(), ..

PS 2021. 3. 18. 08:22