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

Spring Boot/์Šคํ”„๋ง ๋ถ€ํŠธ์™€ AWS๋กœ ํ˜ผ์ž ๊ตฌํ˜„ํ•˜๋Š” ์›น ์„œ๋น„์Šค5

6์žฅ: AWS ์„œ๋ฒ„ ํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ Table of Contents ํด๋ผ์šฐ๋“œ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํด๋ผ์šฐ๋“œ๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„, ์Šคํ† ๋ฆฌ์ง€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋„คํŠธ์›Œํฌ, ์†Œํ”„ํŠธ์›จ์–ด, ๋ชจ๋‹ˆํ„ฐ๋ง ๋“ฑ ์ปดํ“จํŒ… ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ ํด๋ผ์šฐ๋“œ ํ˜•ํƒœ IaaS (Infrastructure as a Service) ๊ธฐ์กด ๋ฌผ๋ฆฌ ์žฅ๋น„๋ฅผ ๋ฏธ๋“ค์›จ์–ด์™€ ํ•จ๊ป˜ ๋ฌถ์–ด IT ์ธํ”„๋ผ๋ฅผ ๋Œ€์—ฌํ•ด์ฃผ๋Š” ์ถ”์ƒํ™” ์„œ๋น„์Šค AWS EC2, S3๋“ฑ์ด ํ•ด๋‹น๋จ PaaS (Platform as a Service) IaaS๋ฅผ ํ•œ๋ฒˆ ๋” ์ถ”์ƒํ™”ํ•˜์—ฌ ๋งŽ์€ ๊ธฐ๋Šฅ์ด ์ž๋™ํ™”๋œ ์„œ๋น„์Šค Beanstalk, Heroku๋“ฑ์ด ํ•ด๋‹น๋จ Saas (Software as a Service) ์†Œํ”„ํŠธ์›จ์–ด ์„œ๋น„์Šค ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ, ๋“œ๋ž๋ฐ•์Šค ๋“ฑ์ด ํ•ด๋‹น๋จ EC2 ์ธ์Šคํ„ด์Šค ๋งŒ๋“ค๊ธฐ AWS์—์„œ ์ œ๊ณตํ•˜๋Š” ์„ฑ๋Šฅ, ์šฉ๋Ÿ‰ ๋“ฑ์„ ์œ ๋™์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„ .. 2022. 6. 27.
3์žฅ: JPA๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‹ค๋ฃจ๊ธฐ (2) Table of Contents API ๋งŒ๋“ค๊ธฐ API๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋ฉฐ ๊ตฌ์กฐ ์ดํ•ดํ•˜๊ธฐ ํ•„์š”ํ•œ ํด๋ž˜์Šค - Request ๋ฐ์ดํ„ฐ ๋ฐ›์„ Dto - API ์š”์ฒญ ๋ฐ›์„ Controller - ํŠธ๋žœ์žญ์…˜, ๋„๋ฉ”์ธ ๊ธฐ๋Šฅ ๊ฐ„ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜๋Š” Service (๋น„์ง€๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜์ง€๋Š” ์•Š์Œ) Spring ์›น ๊ณ„์ธต Web Layer - ์ปจํŠธ๋กค๋Ÿฌ์™€ JSP๋“ฑ์˜ ๋ทฐ ํ…œํ”Œ๋ฆฟ ์˜์—ญ - Filter, ์ธํ„ฐ์…‰ํŠธ, ControllerAdvice ๋“ฑ ์™ธ๋ถ€ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ์˜์—ญ Service Layer - @Service์— ์‚ฌ์šฉ๋˜๋Š” ์˜์—ญ - Controller์™€ Dao ์ค‘๊ฐ„์—์„œ ์‚ฌ์šฉ๋จ - @Transactional์ด ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•จ Repository Layer - ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์— ์ ‘๊ทผํ•˜๋Š” ์˜์—ญ DTOs - Data Transfer O.. 2022. 6. 15.
3์žฅ: JPA๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‹ค๋ฃจ๊ธฐ (1) Table of Contents JPA JPA์™€ Spring Data JPA ๊ฐœ๋…์„ ์ดํ•ดํ•œ๋‹ค. ORM vs. SQL Mapper - ORM์€ ๊ฐ์ฒด๋ฅผ ๋งคํ•‘ํ•˜๋Š” ๊ฒƒ, ๋Œ€ํ‘œ์ ์ธ ๊ธฐ์ˆ ๋กœ๋Š” JPA๊ฐ€ ์žˆ์Œ - SQL Mapper๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋งคํ•‘ํ•˜๋Š” ๊ฒƒ, ๋Œ€ํ‘œ์ ์ธ ๊ธฐ์ˆ ๋กœ๋Š” MyBatis๊ฐ€ ์žˆ์Œ ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ๋ถˆ์ผ์น˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์–ด๋–ป๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ง€ ์ดˆ์ ์„ ๋งž์ถ”์ง€๋งŒ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธฐ๋Šฅ๊ณผ ์†์„ฑ์„ ํ•œ ๊ณณ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ค‘์‹ฌ JPA๋Š” ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ๋ถˆ์ผ์น˜๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ์ฒด์ง€ํ–ฅ์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•œ ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ SQL์„ ์ƒ์„ฑํ•ด ์‹คํ–‰ํ•ด์ฃผ๋ฏ€๋กœ SQL์— ์ข…์†์ ์œผ๋กœ ๊ฐœ๋ฐœํ•˜์ง€ ์•Š์•„๋„ ๋จ Spring Data JPA - JPA๋Š” ์ธํ„ฐํŽ˜์ด์Šค, ์ž๋ฐ” ํ‘œ์ค€ ๋ช…์„ธ์„œ์ด๋ฏ€๋กœ ๊ตฌํ˜„์ฒด๊ฐ€ ํ•„์š”ํ•จ. ๊ตฌํ˜„์ฒด๋กœ๋Š” .. 2022. 6. 15.
2์žฅ: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ Table of Contents ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ž€ TDD ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ 1. ํ•ญ์ƒ ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ 2. ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•˜๋Š” ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ ์ž‘์„ฑ 3. ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•˜๋ฉด ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง ์ด๋ ‡๊ฒŒ ์„ธ ๋‹จ๊ณ„๋ฅผ ๋Œ์•„๊ฐ€๋ฉด์„œ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค. ๋‹จ์œ„ํ…Œ์ŠคํŠธ - ๊ธฐ๋Šฅ ๋‹จ์œ„์˜ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ - ํ•„์š”์„ฑ ๊ฐœ๋ฐœ ๋‹จ๊ณ„ ์ดˆ๊ธฐ์— ๋ฌธ์ œ ๋ฐœ๊ฒฌํ•˜๋„๋ก ๋„์™€์คŒ ์ถ”ํ›„ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—…๊ทธ๋ ˆ์ด๋“œ ๋“ฑ์—์„œ ๊ธฐ์กด ๊ธฐ๋Šฅ์˜ ๋™์ž‘์„ ํ™•์ธ ๊ฐ€๋Šฅ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋ถˆํ™•์‹ค์„ฑ ๊ฐ์†Œ์‹œํ‚ด ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์‹ค์ œ ๋ฌธ์„œ๋กœ ์ œ๊ณต ๊ฐ€๋Šฅ - ์ž๋ฐ”์—์„œ๋Š” JUnit์ด๋ผ๋Š” ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์‚ฌ์šฉ๋จ Controller ์ž‘์„ฑ ์ผ๋ฐ˜์ ์œผ๋กœ ํŒจํ‚ค์ง€๋ช…์€ ์›น ์‚ฌ์ดํŠธ ์ฃผ์†Œ์˜ ์—ญ์ˆœ์œผ๋กœ ์„ค์ • ๋ฉ”์ธ ํด๋ž˜์Šค package com.oli.. 2022. 6. 13.
1์žฅ: ์ธํ…”๋ฆฌ์ œ์ด ์‚ฌ์šฉํ•˜๊ธฐ (์ˆ˜์ •์ค‘) Table of Contents ์ธํ…”๋ฆฌ์ œ์ด ์†Œ๊ฐœ ๋ฐ ์„ค์น˜ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ Gradle ํ”„๋กœ์ ํŠธ -> Spring Boot ํ”„๋กœ์ ํŠธ Git, Github ์—ฐ๋™ํ•˜๊ธฐ 2022. 6. 13.