๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€250

2022.05.18 ใ€ŒRedis DB ์ ์šฉใ€ ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉฐ ๋กœ๊ทธ์ธ API๊นŒ์ง€๋Š” jwt ํ† ํฐ์„ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„์„ ์ž˜ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋Š” ๋กœ๊ทธ์•„์›ƒ์ด๋‹ค. jwt ํ† ํฐ ์ž์ฒด๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ณด๊ด€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๊ฐ€ ์ž์ฒด์ ์œผ๋กœ ์‚ญ์ œ์‹œํ‚ฌ ์ˆ˜ ์—†๋‹ค. ์„ธ์…˜์„ ์‚ฌ์šฉ ์‹œ ์„œ๋ฒ„๊ฐ€ ์„ธ์…˜ DB์— ์ €์žฅํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์„ธ์…˜์„ ์‚ญ์ œํ•˜๋ฉด ๊ทธ๋งŒ์ด์ง€๋งŒ ํ† ํฐ์€ ๊ทธ๋ ‡๊ฒŒ ๋ชป ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ Redis DB๋ผ๋Š” ์ธ๋ฉ”๋ชจ๋ฆฌ DB๋ฅผ ์ด์šฉํ•ด ๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ฒ˜์Œ ๋“ค์–ด๋ณด๋Š”๋ฐ DB๋„ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋Š”๋ฐ ์ด ์ธ๋ฉ”๋ชจ๋ฆฌ DB๋Š” ๋‹ค๋ฅธ DBMS์™€ ๋น„๊ตํ•˜์—ฌ ์–ด๋–ค ์„ฑ๊ฒฉ์„ ๊ฐ€์ง€๋Š”์ง€ ๊ทธ๊ฑธ ์ •๋ฆฌํ•˜๊ณ  ์ ์šฉํ•ด๋ณด๋Š” ํ•˜๋ฃจ๋ฅผ ๋ณด๋‚ด๊ฒŒ ๋  ๊ฒƒ ๊ฐ™๋‹ค. Redis DB Key & Value ๊ตฌ์กฐ์˜ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค ๊ธฐ๋ฐ˜์˜ ๋น„ ๊ด€๊ณ„ํ˜• DBMS ์บ์‹œ, DB ๋“ฑ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ ์ธ๋ฉ”๋ชจ๋ฆฌ.. 2022. 5. 18.
2022.05.18 ใ€ŒLv.2 Heap ๋” ๋งต๊ฒŒใ€ ์ž๋ฃŒ๊ตฌ์กฐ ์ •๋ฆฌํ•ด์•ผ์ง€ ๊ณ„ํš๋งŒ ํ•˜๊ณ  ๋ˆˆ์œผ๋กœ๋งŒ ๊ฐœ๋…๋“ค์„ ๋ณด๊ณ  ์ •๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค.. ๋ˆˆ์œผ๋กœ ์ฝ๊ณ  ์ฝ”๋“œ ์ž‘์„ฑํ•ด๋ด๋„ ์–ด๋А ์ •๋„๋Š” ๊ฐ์ด ์˜ค๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ ๋น ๋ฅธ ์‹œ์ผ ๋‚ด์— ์ •๋ฆฌ ์ข€ ํ•ด์•ผ๊ฒ ๋‹ค ์ •๋ง ์˜ค๋Š˜์€ ์˜ค์ „์— Heap์„ ์ด์šฉํ•œ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. Lv2์ด๋‹ค. ์˜ˆ์ „์—๋Š” Lv1๋„ ์–ด๋ ค์› ๊ณ , ๋ฌธ์ œ ์ž์ฒด๋„ ์ดํ•ด๊ฐ€ ์•ˆ ๋˜์—ˆ๋Š”๋ฐ ํ’€๋‹ค ๋ณด๋‹ˆ ์ข€ ๊ฐ์ด ์˜ค๋Š” ๋“ฏํ•˜๋‹ค..?? ๋‘ ๋‹ฌ ์•ˆ์— Lv3๊นŒ์ง€ ๋งˆ์Šคํ„ฐ ๋ชฉํ‘œ๋ฅผ ์žก์ž. ์ทจ์—…ํ•˜๊ณ  ์‹ถ๋‹ค!! Heap์ด๋ž€ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์™„์ „ ์ด์ง„ํŠธ๋ฆฌ์™€ ๊ฑฐ์˜ ๋น„์Šทํ•œ๋ฐ ์˜ˆ์ „์— ์ž ๊น ์ด์ง„ ํŠธ๋ฆฌ์— ๋Œ€ํ•ด์„œ ๊ฐœ๋…์„ ๋ณธ ๊ธฐ์–ต์ด ์žˆ์—ˆ๋Š”๋ฐ ๊ฐœ๋…์„ ๋จผ์ € ๋ณด๊ณ  ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. ๊ฒฐ๊ตญ Heap์ด ์šฐ์„ ์ˆœ์œ„ Queue (PriorityQueue)๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด Heap์„ ์ด์šฉํ•˜๋Š” ๊ฑด๋ฐ ๊ทธ์™€ ๋น„์Šทํ•œ ๋ฌธ์ œ์ด๋ฏ€๋กœ ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. ๋ฌธ์ œ ์„ค.. 2022. 5. 18.
์ฟผ๋ฆฌ ์ž‘์„ฑ ๋ฐ ์ตœ์ ํ™” ์š”์ƒˆ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ, DB, ์ž์†Œ์„œ ์ˆ˜์ •, ํ† ๋น„ ์Šคํ”„๋ง, ์ฝ”ํ…Œ ์ค€๋น„ ๋“ฑ๋“ฑ์„ ํ•˜๊ณ  ์žˆ๋‹ค. ํ•˜๋ฃจ๊ฐ€ ๋„ˆ๋ฌด ์งง๊ธฐ๋„ ํ•˜๊ณ  ์ž ์„ ์ ๊ฒŒ ์ž๋„ ๊ดœ์ฐฎ์€ ์ฒด์งˆ์ด ๋˜๊ณ  ์‹ถ์€ ์š”์ฆ˜์ด๋‹ค. DB๊ณต๋ถ€๋Š” Real Mysql์„ ์ฝ๊ณ  ์žˆ๋‹ค. ์ฝ๊ธฐ ๋„ˆ๋ฌด ์–ด๋ ค์šด ์ฑ…์ธ๋ฐ.. DB ์งˆ๋ฌธ๋„ ์‹ ์ž… ๊ฐœ๋ฐœ์ž ๋ฉด์ ‘์—์„œ ๋””ํ…Œ์ผํ•œ ์งˆ๋ฌธ๊นŒ์ง€ ํ•„์ˆ˜๋ผ๊ณ  ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ด์‹ฌํžˆ ์ •๋ฆฌํ•˜๋ฉด์„œ ์ฝ๊ณ  ์žˆ๋‹ค. ์ฟผ๋ฆฌ ์ž‘์„ฑ ๋ฐ ์ตœ์ ํ™” ๋ถ€๋ถ„์„ ๊ณต๋ถ€์ค‘์ธ๋ฐ ์ด ๋ถ€๋ถ„์—์„œ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฐœ๋…์„ ์ •๋ฆฌํ•ด๋ณผ ์ƒ๊ฐ์ด๋‹ค. Join ๊ธฐ๋ฒ• Nested Loop Join ์ค‘์ฒฉ๋œ ๋ฐ˜๋ณต๋ฌธ๊ณผ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์กฐ์ธ์„ ์ˆ˜ํ–‰ ๋ฐ˜๋ณต๋ฌธ ์™ธ๋ถ€์˜ ํ…Œ์ด๋ธ”์„ ์„ ํ–‰ ํ…Œ์ด๋ธ” & ์™ธ๋ถ€ ํ…Œ์ด๋ธ”์ด๋ผ ์นญํ•จ ๋ฐ˜๋ณต๋ฌธ ๋‚ด๋ถ€์˜ ํ…Œ์ด๋ธ”์€ ํ›„ํ–‰ ํ…Œ์ด๋ธ” & ๋‚ด๋ถ€ ํ…Œ์ด๋ธ”์ด๋ผ๊ณ  ์นญํ•œ๋‹ค. ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์„ ํ–‰ ํ…Œ์ด๋ธ” ํ–‰์„ ์ถ”์ถœ ํ›„ ํ›„ํ–‰ ํ…Œ์ด๋ธ”์„ ์ฝ์œผ๋ฉฐ .. 2022. 5. 17.
2022.05.17 ใ€ŒLv.2 ํ”„๋ฆฐํ„ฐใ€ ๋ฌธ์ œ ์„ค๋ช… ์ผ๋ฐ˜์ ์ธ ํ”„๋ฆฐํ„ฐ๋Š” ์ธ์‡„ ์š”์ฒญ์ด ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•œ ๋ฌธ์„œ๊ฐ€ ๋‚˜์ค‘์— ์ธ์‡„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ์ค‘์š”๋„๊ฐ€ ๋†’์€ ๋ฌธ์„œ๋ฅผ ๋จผ์ € ์ธ์‡„ํ•˜๋Š” ํ”„๋ฆฐํ„ฐ๋ฅผ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ƒˆ๋กญ๊ฒŒ ๊ฐœ๋ฐœํ•œ ํ”„๋ฆฐํ„ฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ธ์‡„ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. 1. ์ธ์‡„ ๋Œ€๊ธฐ๋ชฉ๋ก์˜ ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ๋ฌธ์„œ(J)๋ฅผ ๋Œ€๊ธฐ๋ชฉ๋ก์—์„œ ๊บผ๋ƒ…๋‹ˆ๋‹ค. 2. ๋‚˜๋จธ์ง€ ์ธ์‡„ ๋Œ€๊ธฐ๋ชฉ๋ก์—์„œ J๋ณด๋‹ค ์ค‘์š”๋„๊ฐ€ ๋†’์€ ๋ฌธ์„œ๊ฐ€ ํ•œ ๊ฐœ๋ผ๋„ ์กด์žฌํ•˜๋ฉด J๋ฅผ ๋Œ€๊ธฐ๋ชฉ๋ก์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋„ฃ์Šต๋‹ˆ๋‹ค. 3. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด J๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 4๊ฐœ์˜ ๋ฌธ์„œ(A, B, C, D)๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ธ์‡„ ๋Œ€๊ธฐ๋ชฉ๋ก์— ์žˆ๊ณ  ์ค‘์š”๋„๊ฐ€ 2 1 3 2 ๋ผ๋ฉด C D A B ์ˆœ์œผ๋กœ ์ธ์‡„ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ธ์‡„๋ฅผ ์š”์ฒญํ•œ ๋ฌธ์„œ๊ฐ€ ๋ช‡ ๋ฒˆ์งธ๋กœ ์ธ์‡„๋˜๋Š”์ง€ .. 2022. 5. 17.
2022.05.17 ใ€Œ@Transactional ์˜ต์…˜ ๋ฐ ์„ฑ๋Šฅใ€ ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋˜ ๋„์ค‘ Service ํด๋ž˜์Šค์—์„œ @Transactional ์‚ฌ์šฉ์— ์˜ต์…˜์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ฒ˜์Œ ์•Œ์•˜๋‹ค. ์˜ต์…˜์„ ํ•œ๋ฒˆ ์ถ”๊ฐ€ํ•ด๋ณด๋ผ๋Š” ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ณ  ํ•œ๋ฒˆ ์ด ์—๋„ˆํ…Œ์ด์…˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ ์„ฑ๋Šฅ์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ผ์น  ์ˆ˜๋„ ์žˆ๋Š” ์ค‘์š”ํ•œ ์˜ต์…˜์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•œ๋ฒˆ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๊ฒ ๋‹ค. ํŠธ๋žœ์žญ์…˜(Transaction)์˜ ์ •์˜ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ, ํ•œ๋ฒˆ์— ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ์—ฐ์‚ฐ ํŠธ๋žœ์žญ์…˜ ACID ์„ฑ์งˆ ์›์ž์„ฑ(Atomicity) : ํŠธ๋žœ์žญ์…˜์ด DB์— ๋ชจ๋‘ ๋ฐ˜์˜๋˜๊ฑฐ๋‚˜, ์ „ํ˜€ ๋ฐ˜์˜๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ํ•ด์•ผํ•œ๋‹ค. ์ผ๊ด€์„ฑ(Consistency) : ํŠธ๋žœ์žญ์…˜์€ ์ผ๊ด€์„ฑ ์žˆ๋Š” DB ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ด์•ผํ•œ๋‹ค. ์ž‘์—… ์ฒ˜๋ฆฌ์˜ ๊ฒฐ๊ณผ๊ฐ€ ํ•ญ์ƒ ์ผ๊ด€๋˜์–ด์•ผ ํ•จ. ๋…๋ฆฝ์„ฑ(Isolation) : ๋™์‹œ์— ์‹คํ–‰๋˜๋Š”.. 2022. 5. 17.
2022.05.16 ใ€Œ๋ฆฌํŒฉํ† ๋งใ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ์ค‘์ด๋‹ค. ์ œ๋Œ€๋กœ ์‹ ๊ฒฝ ์จ์„œ ํ•˜๋‹ค ๋ณด๋‹ˆ ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๋˜ ์ œ๋Œ€๋กœ ์งฐ๋‹ค๊ณ  ์ƒ๊ฐํ•œ ์ฝ”๋“œ๋„ ๋ฆฌํŒฉํ„ฐ๋ง ํ•  ์˜์—ญ ํˆฌ์„ฑ์ด๋‹ค. ์ด๋Ÿฌ๋ฉด์„œ ์‹ค๋ ฅ์ด ๋А๋Š” ๊ฑฐ๊ฒ ์ง€..? ์ง„์งœ ์ œ๋Œ€๋กœ ๋œ ํ”„๋กœ์ ํŠธ ํ•œ๋ฒˆ ๋งŒ๋“ค์–ด๋ณด์ž ๋ฆฌํŒฉํ† ๋ง ๋ชฉ๋ก ๋ถˆ๋ณ€ ๊ฐ์ฒด ์ด์Šˆ => setter๋ฅผ ํ—ˆ์šฉํ•œ ๊ฐ์ฒด ๋ฌธ์ œ : ๋ถˆ๋ณ€์„ฑ์„ ๋„์งˆ ๋ชปํ•œ๋‹ค. ํ•ด๊ฒฐ : loginDTO ๊ฐ์ฒด๋Š” ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š”๊ฒŒ ๋ชฉ์ ์ด๋ฏ€๋กœ ํ™•์‹คํ•˜๊ฒŒ ๋ถˆ๋ณ€์„ฑ์„ ์ง€๋…€์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ถˆ๋ณ€๊ฐ์ฒด๋กœ ๋‹ค์‹œ ๋งŒ๋“ค์ž public class UserLoginDTO { private final String userId; private final String userPw; public UserLoginDTO(String userId, String userPw) { this.userId = use.. 2022. 5. 16.
2022.05.16 ใ€ŒLv.2 ์นดํŽซใ€ ์˜ค๋Š˜์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ ์™„์ „ ํƒ์ƒ‰ ๋ฌธ์ œ ์ค‘ ๋ ˆ๋ฒจ 2์˜ ์นดํŽซ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉฐ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๊ฒ ๋‹ค. ํ•ญ์ƒ ๋А๋ผ๋Š” ๊ฑฐ์ง€๋งŒ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์ •๋ฆฌ ์ข€ ํ•ด์•ผ๊ฒ ๋‹ค. ํ’€ ์ˆœ ์žˆ๋Š” ๋ฌธ์ œ๋ผ๋„ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ์ด์šฉํ•ด ํ‘ธ๋Š” ๊ฒƒ๊ณผ ๋‚ด ๋ฐฉ์‹๋Œ€๋กœ ํ‘ธ๋Š” ๊ฒƒ์€ ๋‚˜์ค‘์— ํฐ ์ฐจ์ด๊ฐ€ ์žˆ์„ ๊ฒƒ์ด ๋ถ„๋ช…ํ•˜๋ฏ€๋กœ ์˜ค๋Š˜์ด๋‚˜ ์ด๋ฒˆ ์ฃผ ์•ˆ์— ๋ฌด์กฐ๊ฑด ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ•˜์ž! ๋ฌธ์ œ ์„ค๋ช… Leo๋Š” ์นดํŽซ์„ ์‚ฌ๋Ÿฌ ๊ฐ”๋‹ค๊ฐ€ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ค‘์•™์—๋Š” ๋…ธ๋ž€์ƒ‰์œผ๋กœ ์น ํ•ด์ ธ ์žˆ๊ณ  ํ…Œ๋‘๋ฆฌ 1์ค„์€ ๊ฐˆ์ƒ‰์œผ๋กœ ์น ํ•ด์ ธ ์žˆ๋Š” ๊ฒฉ์ž ๋ชจ์–‘ ์นดํŽซ์„ ๋ดค์Šต๋‹ˆ๋‹ค. Leo๋Š” ์ง‘์œผ๋กœ ๋Œ์•„์™€์„œ ์•„๊นŒ ๋ณธ ์นดํŽซ์˜ ๋…ธ๋ž€์ƒ‰๊ณผ ๊ฐˆ์ƒ‰์œผ๋กœ ์ƒ‰์น ๋œ ๊ฒฉ์ž์˜ ๊ฐœ์ˆ˜๋Š” ๊ธฐ์–ตํ–ˆ์ง€๋งŒ, ์ „์ฒด ์นดํŽซ์˜ ํฌ๊ธฐ๋Š” ๊ธฐ์–ตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. Leo๊ฐ€ ๋ณธ ์นดํŽซ์—์„œ ๊ฐˆ์ƒ‰ ๊ฒฉ์ž์˜ ์ˆ˜ brown, ๋…ธ๋ž€์ƒ‰ ๊ฒฉ์ž์˜ ์ˆ˜ yellow๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ .. 2022. 5. 16.
2022.05.14 ใ€ŒJWT ์ธ์ฆใ€ ์ธ์ฆ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋˜ Session ๋กœ๊ทธ์ธ์ด ์•„๋‹Œ JWT๋ฅผ ์ด์šฉํ•˜์—ฌ ์ธ์ฆ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค. ํ† ํฐ์„ ์ฒ˜์Œ ์‚ฌ์šฉํ–ˆ๋‹ค ๋ณด๋‹ˆ ์•Œ์•„๊ฐ€๋Š”๋ฐ ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค. ๋ฌด์—‡๋ณด๋‹ค ๋‚˜๋Š” ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์„œ๋ธ”๋ฆฟ ํ•„ํ„ฐ๋‚˜ ์Šคํ”„๋ง ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ์ด์šฉํ•ด ํ† ํฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ•˜๋ ค๊ณ  ํ–ˆ์–ด์„œ ๋” ์‰ฝ์ง€ ์•Š์•˜๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ ์ธ์ฆ์—์„œ Session์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ์ด์œ ๋Š” ์„œ๋ฒ„์˜ ๊ทœ๋ชจ๊ฐ€ ํ™•์žฅ๋  ๋•Œ์˜ ์ธ์ฆ ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์ธ๋ฐ JWT๋ฅผ ์ด์šฉํ•œ ์ธ์ฆ๋„ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜์˜ ํ”„๋กœ์ ํŠธ์— ๋งž๋Š” ๋‹จ๊ณ„๊ฐ€ ์–ด๋””์ธ์ง€์— ์ƒ๋‹นํžˆ ํ—ท๊ฐˆ๋ ธ๋˜ ํ•œ ์ฃผ์˜€๋‹ค. ์ธ์ฆ ์ž‘์—…์„ ํ•˜๋ฉฐ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋˜ ๋ถ€๋ถ„์ด๋‚˜ ๊ตฌํ˜„ํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๊ฒ ๋‹ค. Rest API๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ ์ธ์ฆ์€ session ๊ธฐ๋ฐ˜์ด ์•„๋‹Œ ํ† ํฐ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์ด ๋” restf.. 2022. 5. 14.
2022.05.13 ใ€ŒSession๊ณผ Token(Jwt) & ์ธ์ฆ๊ณผ ์ธ๊ฐ€ใ€ ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ์—์„œ ๋กœ๊ทธ์ธ์„ ์ง„ํ–‰ ์ค‘์ธ๋ฐ ๊ธฐ์กด์— ๋กœ๊ทธ์ธ์€ ์„ธ์…˜์œผ๋กœ๋งŒ ์ง„ํ–‰ํ–ˆ์—ˆ๋‹ค. ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์‹์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ผ๊ณ  ๋ฐฐ์› ๋Š”๋ฐ ๊ทธ์ค‘ ์„ธ์…˜๋งŒ ์ด์šฉํ•ด๋ดค๊ธฐ ๋•Œ๋ฌธ์— ํ† ํฐ์„ ์ด์šฉํ•œ ์ธ์ฆ ๊ฒฝํ—˜๋„ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. ๊ทธ์ค‘ ๋‚ด ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๋˜ ์„œ๋น„์Šค ํ™•์žฅ์„ฑ์— ๋Œ€ํ•ด ํ™•์‹คํžˆ ๋งž๋Š” ์ธ์ฆ ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐ์„ ํ–ˆ๊ณ , ์„ธ์…˜๊ณผ ํ† ํฐ์˜ ์‚ฌ์šฉ์ฒ˜์™€ ๊ฐœ๋…์— ๋Œ€ํ•ด ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์ธ์ฆ๊ณผ ์ธ๊ฐ€ ์ธ์ฆ(Authentication) ์„œ๋น„์Šค์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋งž๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ • ๋Œ€๊ฒŒ ๋กœ๊ทธ์ธํ•˜๋Š” ๊ณผ์ • ์ธ๊ฐ€(Authorization) ์ธ์ฆ์ด ์™„๋ฃŒ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฆฌ์†Œ์Šค ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋„๋ก ์‚ฌ์šฉ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ์ž‘์—… ์•ก์„ธ์Šค๊ฐ€ ํ—ˆ์šฉ๋œ ๋ฐ์ดํ„ฐ ๋ฐ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ž‘์—…์„ ์ง€์ •ํ•จ HTTP์˜ ํŠน์„ฑ http๋Š” stateless.. 2022. 5. 13.
2022.05.12 ใ€ŒLV2 ์†Œ์ˆ˜ ์ฐพ๊ธฐใ€ ์—ฌ๋А ๋‚ ์ฒ˜๋Ÿผ ์ฝ”ํ…Œ ๋ฌธ์ œ๋ฅผ ๊ณ„์† ํ’€๊ณ  ์žˆ๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ๋„ ๋‚  ์žก์•„์„œ ํ•œ๋ฒˆ ์ •๋ฆฌํ•ด์•ผ ๋˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ์ข€ ๋‚˜์งˆ ์•Š๋Š”๋‹ค. ์‹œ๊ฐ„ ๋ฐฐ๋ถ„ ์ข€ ์ž˜ํ•ด๋ณด์ž. ์–ด์ œ์˜ค๋Š˜ ํ‘ผ ๊ฒƒ์ด ์†Œ์ˆ˜ ์ฐพ๊ธฐ๋ผ๋Š” ์™„์ „ ํƒ์ƒ‰ ๋ฌธ์ œ์ธ๋ฐ, ์ด๊ฑด ์†Œ์ˆ˜๋ผ๋Š” ๊ฒƒ์ด ๊ฒฐ๊ตญ 1๊ณผ ์ž์‹ ๋งŒ์„ ์•ฝ์ˆ˜๋กœ ๊ฐ€์ง€๋Š” ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. ์–ด๋–ค ๋ธ”๋กœ๊ทธ์—์„œ ๋ดค๋Š”๋ฐ ๊ฒฐ๊ตญ ๋ฌธ์ œ๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๋Š” ๊ฒŒ ๊ด€๊ฑด์ด๋ผ๋Š”๋ฐ ๊ทธ๊ฒƒ์„ ๋ณด๋Š” ์•ˆ๋ชฉ์„ ์ข€ ๊ธธ๋Ÿฌ์•ผ๊ฒ ๋‹ค. ์†Œ์ˆ˜ ์ฐพ๊ธฐ ์†Œ์ˆ˜ : 1๊ณผ ์ž๊ธฐ ์ž์‹ ๋งŒ์„ ์•ฝ์ˆ˜๋กœ ๊ฐ€์ง€๋Š” ์ˆ˜ String ์ˆซ์ž ๊ฐ’์„ ๋ฐ›์•„ ์†Œ์ˆ˜๋ฅผ ์กฐํ•ฉํ•˜๋Š” ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. import java.util.HashSet; import java.util.Iterator; class Solution { HashSet numberSet = new HashSet(); /** * ์†Œ์ˆ˜ ํ™•์ธ ๋ฉ”์„œ๋“œ * @para.. 2022. 5. 12.
2022.05.12 ใ€ŒResponseEntity body & BuilderPattern & Joinใ€ Restful ํ•œ api๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์€ ์ฐธ ๊นŒ๋‹ค๋กœ์šด ๊ฒƒ ๊ฐ™๋‹ค. ํ•™์›์—์„œ ์™„์ „ ๊ธฐ์ดˆ์ ์ธ ๋‚ด์šฉ๋งŒ ๋ฐฐ์šด ๊ฒƒ๋„ ์žˆ์—ˆ๊ณ  ๊ทธ ๋ถ€๋ถ„๋งŒ ๋จธ๋ฆฟ์†์— ๊นŠ์ด ์ €์žฅ๋˜์–ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ œ๋Œ€๋กœ ๋œ rest ๋ฐฉ์‹์€ ๋‹ค๋ฅธ ๊ฒƒ์ž„์„ ์ดํ•ดํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค. ํšŒ์› ๊ฐ€์ž…, ๋กœ๊ทธ์ธ๋งŒ ํ•˜๋”๋ผ๋„ ์–ด๋–ป๊ฒŒ ๋ณด๋ฉด ๋ˆ„๊ตฐ๊ฐ€์—๊ฒ ๋ณ„๊ฒŒ ์•„๋‹ํ…Œ์ง€๋งŒ ์–ด๋–ค ์‹์œผ๋กœ ์ƒ๊ฐ์„ ํ•˜๋ฉฐ ์„ค๊ณ„๋ฅผ ํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์–ด์ œ ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™”๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. ํŠนํžˆ restfulํ•œ ๋ฐฉ์‹์œผ๋กœ ์„ค๊ณ„๋ฅผ ํ•˜๋Š” ๊ฒƒ์€ ์ฒ˜์Œ ํ•ด๋ณด๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋‚ฏ์„ค๊ณ  ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ ๋˜์—ˆ๋‹ค. ๋ณดํ†ต Return Type์ธ ResponseEntity๋ฅผ ์‚ฌ์šฉํ•ด ์‘๋‹ต ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋Œ๋ ค์ฃผ๋Š”๋ฐ ํ—ค๋”์™€ ๋ฐ”๋””์— ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ๊ฑธ ๊ณ ๋ฅด๋Š” ๊ฒŒ ์‰ฝ์ง€ ์•Š์•˜๋‹ค. ์˜ค๋Š˜๋„ ์•„์นจ๋ถ€ํ„ฐ ์ง€๊ธˆ ์˜คํ›„.. 2022. 5. 12.
2022.05.11 ใ€ŒSHA-256 + Salt & ์ธ์ฆใ€ ์ธ์ฆ ๊ด€๋ จํ•ด์„œ ์‚ฌ์‹ค ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๊ดœ์ฐฎ์ง€๋งŒ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฐ€๊ธฐ ์œ„ํ•ด์„œ ์ˆœ์ˆ˜ํ•˜๊ฒŒ SHA-256 ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•ด ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™”์™€ ๋กœ๊ทธ์ธ์„ ์›์‹œ์ ์œผ๋กœ ๊ตฌํ˜„ํ•œ ํ•˜๋ฃจ๋‹ค.. ๊ฑฐ์ง„ 12์‹œ๊ฐ„์„ ์‚ฝ์งˆํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด์šฉ๊ณผ, Mybatis ๋งคํ•‘ ๋ฌธ์ œ๋„ ์žˆ๊ณ , ModelMapper๋ฅผ ์‚ฌ์šฉํ•ด DTO VO ๋งคํ•‘์ด ๊ณ„์† ์•ˆ๋˜์–ด์„œ ํ•˜๋ฃจ ์ข…์ผ ๋ฉ˜ํ„ธ์ด ๋‚˜๊ฐ”์—ˆ๋‹ค. ๋‹ค๋ฅธ ๊ณต๋ถ€๋„ ํ• ๊ฒŒ ๋„ˆ๋ฌด ๋งŽ์€๋ฐ ํ”„๋กœ์ ํŠธ๋งŒ ๋น„์ค‘์ด ๋งŽ์•˜๋˜ ํ•˜๋ฃจ๋ผ ๋„ˆ๋ฌด ์•„์‰ฝ๋‹ค. ํ•˜์ง€๋งŒ ์‚ฝ์งˆํ•œ ๋งŒํผ ๋‚ด ๊ฒƒ์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค. ์˜ค๋Š˜์€ ํ•˜๋ฃจ์ข…์ผ ์‚ฝ์งˆํ•œ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋ฒˆ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์—ฌ๋‹ด์œผ๋กœ ๋‹ค์ด์–ดํŠธ์ค‘์ธ๋ฐ ์š”์ƒˆ ์ƒ์ฃผํ•˜๋Š” ๊ณต๋ถ€ ํ™˜๊ฒฝ์—์„œ ์˜คํŠธ๋ฐ€ ๋ฏธ๋‹ˆ ๋ฐ”์ดํŠธ๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š”๋ฐ ์ด๊ฑฐ ์ง„์งœ ๋„ˆ๋ฌด ๋ง›์žˆ๋‹ค.. ์˜ˆ์ „์—” ์ง„์งœ ๋‹จ ๊ฑฐ ์ž˜ ์ฐธ์•˜๋Š”๋ฐ ๋Š™์—ˆ๋‚˜ .. 2022. 5. 11.
2022.05.10 ใ€ŒRest Ful Api & DTO,VO mapping & Mysql Index & ์ƒ์ˆ˜ํ™”ใ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ์ค‘์— ์ˆ˜์ •์‚ฌํ•ญ์ด ๋„ˆ๋ฌด๋„ ๋งŽ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ์˜ˆ์ „์— ํ•™์›์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•  ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค๋“  ๊ธฐํ•œ์ด ์ •ํ•ด์ ธ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์™„์„ฑ๋„๊ฐ€ ์šฐ์„ ์ด์—ˆ๊ณ , ์œ ์ง€๋ณด์ˆ˜์— ๋Œ€ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์‹ ๊ฒฝ์„ ์“ฐ์ง€ ์•Š์•˜์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์ œ๋Œ€๋กœ ๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋‹ค ๋ณด๋‹ˆ ์˜ˆ์ „ ๋ฒ„๋ฆ‡์ด ๋‚˜์˜ค๊ฒŒ ๋˜์—ˆ๊ณ , ์ด๋ฒˆ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์€ ๊น€์— ๋ฆฌํŒฉํ„ฐ๋ง์„ ๋น ๋ฅด๊ฒŒ ํ•˜๋ฉฐ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณผ ์ƒ๊ฐ์ด๋‹ค. RestFul Api ์˜ return ๊ฐ’ 1. ๋˜๋„๋ก ์ฒด์ด๋‹ ํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉ 2. response์— ํ•ด๋‹น๋˜๋Š” ํ—ค๋” ๋ฉ”์‹œ์ง€(์ƒํƒœ ์ฝ”๋“œ, ๋ฉ”์‹œ์ง€ ๋“ฑ๋“ฑ), ๋ฐ”๋”” ๊ฐ’์„ ๋‹ค ๋„ฃ๋„๋ก ๋…ธ๋ ฅํ•˜์ž DTO, VO ๊ฐ„์˜ ๋งคํ•‘ ํ˜„์žฌ Mybatis๋ฅผ ์‚ฌ์šฉ์ค‘์ด๋ฏ€๋กœ ํ…Œ์ด๋ธ” ์ž์ฒด์˜ Entity๋Š” VO service mapper ๊ณ„์ธต ์ด๋™ ์‹œ VO๋ฅผ ์ด์šฉํ•ด์•ผ ํ•จ .. 2022. 5. 10.
2022.05.09 ใ€Œํ•ด์‹œ Lv.2ใ€ ์š”์ƒˆ ๋งค์ผ๋งค์ผ ์ฝ”ํ…Œ๋ฅผ ์ค€๋น„ํ•˜๋ฉฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ์žˆ๋‹ค. ์ฒ˜์Œ์—” ์™„์ „ํžˆ ๋ง‰ํ˜”์ง€๋งŒ ๊ทธ๋ž˜๋„ ์ด์   ์–ด๋А ์ •๋„ ํ’€์ด๊ฐ€ ๋– ์˜ค๋ฅด๊ธด ํ•œ๋‹ค. ํ•œ ๊ฐ€์ง€ ์•„์‰ฌ์šด ์ ์€ ์ƒ๊ฐ๋ณด๋‹ค ํด๋ž˜์Šค๋งˆ๋‹ค ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  ์ด๋ฅผ ์ž˜ ์•Œ๊ณ  ํ™œ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์ด๋‹ค. ์ œ์ผ ๋งŽ์ด ๋‚˜์˜ค๋Š” ์œ ํ˜•์ธ ํ•ด์‹œ ๋ฌธ์ œ๋ฅผ ๋งˆ์ฃผํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ํ™œ์šฉํ•  ๋ฉ”์„œ๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ์ง€๋งŒ ํ•œ๋ฒˆ ์ •๋ฆฌํ•ด๋ณผ ๋งŒํ•œ ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋ฌธ์ œ ์„ค๋ช… ์œ„์žฅ์ด๋ผ๋Š” ๋ฌธ์ œ์ธ๋ฐ, ์˜ท์˜ ์ข…๋ฅ˜์™€ ์˜ท์˜ ์ด๋ฆ„์œผ๋กœ ์ด๋ฃจ์–ด์ง„ 2์ฐจ์› ๋ฐฐ์—ด์„ ๊ฐ€์ง€๊ณ  ๊ทธ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋งค์ผ ์˜ท์„ ๋‹ค๋ฅด๊ฒŒ ์ž…์–ด์•ผ ํ•˜๊ณ , ํ•˜๋ฃจ์— ์˜ท 1๊ฐœ๋Š” ๋ฌด์กฐ๊ฑด ์ž…๋Š” ์กฐ๊ฑด์ด๋‹ค. ํ•ด์‹œ๋ฅผ ์ด์šฉํ•ด ํ’€๋ž€๋‹ค. ํ’€์ด public int solution(String[][.. 2022. 5. 9.
2022.05.08 ใ€ŒRestFulํ•œ api? & ResponseEntity์˜ ์‚ฌ์šฉใ€ ์–ด๊น€ ์—†์ด ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰์ค‘์ด๋‹ค. ์ผ์ฃผ์ผ ์ „ View๋ฅผ ์—†์• ๊ณ  ์ข€ ๋” Back์— ์ง‘์ค‘๋œ api๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ดˆ์ ์„ ๋งž์ท„๋‹ค. handler ๋ฉ”์„œ๋“œ์˜ ๋ฐ˜ํ™˜ ๊ฐ’์„ ๋‹จ์ˆœํžˆ json ํ˜•์‹์œผ๋กœ ๋ณด์—ฌ์ฃผ๋ฉด ๋˜๋Š” ๊ฑฐ ์•„๋‹ˆ๋ƒ? ๋ผ๊ณ  ์ƒ๊ฐ์„ ํ–ˆ์ง€๋งŒ ๊ฒ€์ƒ‰์„ ์—ฌ๋Ÿฌ๋ฒˆ ํ•ด๋ณด๋‹ˆ ์ •๋ง ํ™•์‹คํ•˜๊ฒŒ ์•Œ๊ธฐ ์ „๊นŒ์ง€๋Š” ํ•จ๋ถ€๋กœ ์ƒ๊ฐํ•˜์ง€ ๋ง์ž๋ผ๋Š” ๊ฒฐ๋ก ์„ ๋‚ด๋ ธ๋‹ค.. ์–ด๋ ดํ’‹์ด ๋ฐฐ์› ๋˜ rest api๊ฐ€ ๋– ์˜ฌ๋ž๊ณ  ์ œ๋Œ€๋กœ ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ์ด์šฉ์„ ํ•ด์„œ restfulํ•œ api๋ฅผ ๋งŒ๋“ค์–ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์— ๊ฐœ๋…์ •๋ฆฌ๋ฅผ ๊ฒฐ์‹ฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋˜ ๋ฐ˜ํ™˜ ํƒ€์ž…์œผ๋กœ ResponseEntity์˜ ์‚ฌ์šฉ์ด ๋งŽ์€๋ฐ ์ด ํƒ€์ž…์„ ์™œ ์‚ฌ์šฉํ•˜๋Š”์ง€๋„ ํ•œ๋ฒˆ ์•Œ์•„๋ด์•ผ๊ฒ ๋‹ค. Rest๊ฐ€ ์ •ํ™•ํžˆ ๋ญ˜๊นŒ?? Representational State Transfer -> ์ž์›์„ ์ด๋ฆ„์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•ด๋‹น .. 2022. 5. 8.
๋ฐ˜์‘ํ˜•