๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (69)

๋‚˜์˜ ๋ชจ์–‘

069 | AWS - EC2, RDS, S3

๐ŸŽˆAWS(Amazon Web Service) ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ๊ฐ€์žฅ ํฌ๊ด„์ ์ด๋ฉฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์ด๋‹ค. ๐Ÿงฉ Cloud Computing ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด IT ๋ฆฌ์†Œ์Šค๋ฅผ ์˜จ๋””๋งจ๋“œ๋กœ ์ œ๊ณตํ•˜๊ณ  ์‚ฌ์šฉํ•œ ๋งŒํผ ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๋Š” ๊ฒƒ ์œ ํ˜• SaaS(Software as a Servce): ์ตœ์ข… ์‚ฌ์šฉ์ž ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ Paas(Platform as a Service): DB, ๊ฐœ๋ฐœ ํ”Œ๋žซํผ ์ œ๊ณต IaaS(Infrastructure as a Service): ๋„คํŠธ์›Œํ‚น, ์ปดํ“จํ„ฐ(๊ฐ€์ƒ or ์ „์šฉ ํ•˜๋“œ์›จ์–ด) ๋ฐ ๋ฐ์ดํ„ฐ ์Šคํ† ๋ฆฌ์ง€ ๊ณต๊ฐ„์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์ œ๊ณต ๐Ÿงฉ EC2(Elastic Compute Cloud) AWS์—์„œ ์ œ๊ณต๋˜๋Š” ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ์„œ๋น„์Šค๋กœ, ์›๊ฒฉ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์ƒ์˜ ์ปดํ“จํ„ฐ๋ฅผ ํ•œ ๋Œ€ ๋นŒ๋ฆฌ๋Š” ๊ฒƒ์ด๋‹ค. ์ด ๊ฐ€์ƒ ์ปด..

SEB/TIL 2022. 9. 30. 19:59
067 | Spring Security - OAuth 2.0 Authentication

๐ŸŽˆOAuth 2.0 ๐Ÿงฉ OAuth 2.0์ด๋ž€? ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š” ์‹ ๋ขฐํ•  ๋งŒํ•œ ์จ๋“œ ํŒŒํ‹ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(GitHub, Google, ๋“ฑ)์—์„œ ์‚ฌ์šฉ์ž์˜ ์ธ์ฆ์„ ๋Œ€์‹  ์ฒ˜๋ฆฌ → ์ ‘๊ทผ ๊ถŒํ•œ์— ๋Œ€ํ•œ ํ† ํฐ ๋ฐœ๊ธ‰ → ํ•ด๋‹น ํ† ํฐ์„ ์ด์šฉํ•ด ์จ๋“œ ํŒŒํ‹ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค. ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๊ฐ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ €์žฅ๋˜๋Š” ๊ฒƒ์€ ๋ณ€ํ•จ ์—†๋‹ค. Authentication์„ ๋‹ค๋ฅธ ์„œ๋น„์Šค์— ๋งก๊ธฐ๊ณ  ํ† ํฐ์„ ๋ฐ›์•„ ์˜ฌ ๋ฟ, Authorizaiton๋Š” ์—ฌ์ „ํžˆ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. OAuth๋Š” ๋ณด์•ˆ๋œ ์ž์‹ ์˜ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์ฃผ๋Š” ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ์˜ ํ•œ ์ข…๋ฅ˜์ด๋‹ค. ๋Œ€์ค‘์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ์ค‘์ธ ์„œ๋น„์Šค์—์„œ ๊ด€๋ฆฌํ•˜๋ฏ€๋กœ, ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ๋Š” ์ž์‹ ์˜ ์ •๋ณด๋ฅผ ๋…ธ์ถœ์‹œํ‚ค์ง€ ์•Š์•„๋„ ํ•ด๋‹น ์›น ..

SEB/TIL 2022. 9. 28. 19:17
061 | ์ธ์ฆ๋ณด์•ˆ ๊ธฐ์ดˆ

๐ŸŽˆ HTTPS(Hyper Text Transfer Protocal Secure Socket layer) HTTPS๋Š” ๊ธฐ์กด HTTP์—์„œ ๋ณด์•ˆSecure์ด ๊ฐ•ํ™”๋œ ๊ฒƒ์œผ๋กœ, HTTPS๋Š” HTTP์š”์ฒญ์„ SSL ๋˜๋Š” TLS๋ผ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์•”ํ˜ธํ™” ํ•˜์—ฌ ์ „์†กํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. HTTPS๋Š” ๋น„๋Œ€์นญ ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์•”ํ˜ธํ™” ํ• ๋•Œ ์‚ฌ์šฉ๋œ ํ‚ค์™€ ๋ณตํ˜ธํ™” ํ• ๋•Œ ์‚ฌ์šฉ๋œ ํ‚ค๊ฐ€ ์„œ๋กœ ๋‹ฌ๋ผ ๋น„๋Œ€์นญ์ด๋ผ๊ณ  ํ•œ๋‹ค. HTTPS๋Š” 2๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ์•”ํ˜ธํ™”๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค. ์•”ํ˜ธํ™” ์ธ์ฆ์„œ ๐Ÿงฉ ์•”ํ˜ธํ™” HTTPS๋Š” ๋Œ€์นญํ‚ค์™€ ๋น„๋Œ€์นญํ‚ค๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•œ๋‹ค. ๋น„๋Œ€์นญํ‚ค๋ฅผ ์ด์šฉํ•˜์—ฌ ๋Œ€์นญํ‚ค๋ฅผ ์ฃผ๊ณ ๋ฐ›์€ ํ›„ ์ฃผ๊ณ ๋ฐ›์€ ๋Œ€์นญํ‚ค๋กœ ์•”ํ˜ธํ™”๋ฅผ ํ•œ๋‹ค. ๋น„๋Œ€์นญ ํ‚ค๋Š” 2๊ฐ€์ง€์˜ ํ‚ค๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค. ๋น„๋ฐ€ํ‚ค(private Key): ๋‚˜๋งŒ ๊ฐ–๊ณ  ์žˆ์Œ ๊ณต๊ฐœํ‚ค(public key): ๊ณต๊ฐœ์ ..

SEB/TIL 2022. 9. 20. 22:08
057 | API Documentation, Swagger, SpringRest

๐ŸŽˆ API Documentation ํด๋ผ์ด์–ธํŠธ๋Š” HTTP request URL(๋˜๋Š” URI)์„ ํ†ตํ•ด ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•œ๋‹ค. ์ด ๋•Œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ REST API ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์š”์ฒญ์„ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด์„œ ์•Œ์•„์•ผ ๋˜๋Š” ์š”์ฒญ ์ •๋ณด(์š”์ฒญ URL(๋˜๋Š” URI), request body, query parameter ๋“ฑ)๋ฅผ ๋ฌธ์„œํ™” ํ•œ ๊ฒƒ์„ API ๋ฌธ์„œ ๋˜๋Š” API ์ŠคํŽ™(์‚ฌ์–‘)์ด๋ผ๊ณ  ํ•œ๋‹ค. API ๋ฌธ์„œ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์ˆ˜๊ธฐ๋กœ ์ž‘์„ฑํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๊ฐœ๋ฐœ์ค‘์ด๊ฑฐ๋‚˜ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ํ•  ๋•Œ API๊ฐ€ ์ˆ˜์ •๋  ์ˆ˜๋„ ์žˆ๊ณ , ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ œ๊ณต๋œ API ์ •๋ณด์™€ ์ˆ˜๊ธฐ๋กœ ์ž‘์„ฑ๋œ API ๋ฌธ์„œ ์ •๋ณด๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋น„ํšจ์œจ์ ์ด๋‹ค. API ๋ฌธ์„œ ์ž๋™ํ™”๋ฅผ ํ†ตํ•ด API์—์„œ ์ƒ๊ธฐ๋Š” ์—๋Ÿฌ ๋ฐœ์ƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ์ž‘์—… ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค. ๐Ÿงฉ Sw..

SEB/TIL 2022. 9. 14. 22:56
052 | Transaction

๐ŸŽˆํŠธ๋žœ์žญ์…˜์ด๋ž€? ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ž‘์—…๋“ค์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฒ˜๋ฆฌ ๋‹จ์œ„์ด๋‹ค. ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•œ๋‹ค. ๐Ÿงฉ ACID ์›์น™ ์›์ž์„ฑ(Atomicity) ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์˜ ๊ธฐ๋ณธ ๋‹จ์œ„์ด๋‹ค. ์ƒํƒœ ๋ณ€ํ™”๋Š” All or Nothing ๋‘˜ ์ค‘ ํ•˜๋‚˜๋กœ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ผ๊ด€์„ฑ(Consistency) ํŠธ๋žœ์žญ์…˜ ์„ฑ๊ณต ํ›„ ์ผ๊ด€๋œ DB ์ƒํƒœ๋ฅผ ๋ณด์กดํ•ด์•ผ ํ•œ๋‹ค. ๊ณ ๋ฆฝ์„ฑ(Isolation) ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋  ๊ฒฝ์šฐ ๊ฐ๊ฐ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰์ด ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ง€์†์„ฑ(Durability) ํŠธ๋žœ์žญ์…˜ ์„ฑ๊ณต ํ›„ ๊ฒฐ๊ณผ๋Š” ์ง€์†์ ์œผ๋กœ DB์— ์ €์žฅ๋˜์–ด์•ผ ํ•œ๋‹ค. ๐Ÿงฉ ์ปค๋ฐ‹(commit) ๋ชจ๋“  ์ž‘์—…์„ DB์— ์ตœ์ข… ๋ฐ˜์˜ํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค. commit์„ ํ•˜๋ฉด ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ๋œ ํ›„ ..

SEB/TIL 2022. 9. 5. 22:27