Spring Boot16 Spring Boot ๋ฌด์ค๋จ ๋ฐฐํฌํ๊ธฐ (AWS ec2 + Nginx + Github self -hosted runner) ๋ค์ด๊ฐ๋ฉฐ ์ค๋ฌด์ ์ ์ฉํ๋ ํ๋ก์ ํธ๊ฐ ์๋ ๊ฐ๋จํ ์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ์๋ ๋ค์ํ ๋ฐฉ์์ ์ฌ์ฉํ ์ ์๋ค. ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฐํฌ ๋ฐฉ์์ Github Action์ ์ด์ฉํด ๋ธ๋์น๊ฐ ํธ์๋๋ฉด ๊ธฐ์กด ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๊ณ ์๋ก์ด ํ๋ก๊ทธ๋จ์ ๋ค์ ๋์ฐ๋ ๋ฐฉ์์ผ ๊ฒ์ด๋ค. ํ์ง๋ง ๊ธฐ์กด ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๊ณ ์๋ก์ด ํ๋ก๊ทธ๋จ์ ๋์ฐ๋ ์ฌ์ด์ ์๋น์ค๊ฐ ์ค๋จ๋๊ธฐ ๋๋ฌธ์, ์ด๋ฌํ ์ค๋จ ์์ด ๋ฐฐํฌํ ์ ์๋ ๋ฌด์ค๋จ ๋ฐฐํฌ ๋ฅผ ํ๊ณ ์ ํ๋ค. ๋ฌด์ค๋จ ๋ฐฐํฌ๋ฅผ ์งํํ๊ธฐ ์ํด Blue/Green ๋ฐฐํฌ ๋ฐฉ์์ ์ฌ์ฉํ๊ณ ์ ํ๋ค. Blue/Green ๋ฐฐํฌ ๋ฐฉ์์ ์๋ ๋ฒ์ ์ผ๋ก ์คํ์ค์ธ WAS๊ฐ ์กด์ฌํ๋ค๋ฉด ํด๋น WAS๋ฅผ ์ข ๋ฃ์ํค์ง ์์ ์ฑ ์๋ก์ด ๋ฒ์ ์ WAS๋ฅผ ๊ตฌ๋์ํจ๋ค. ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ๋๋์๋ค๋ฉด Nginx๊ฐ ์๋ก์ด ๋ฒ์ ์ WAS๋ฅผ ๋ฐ๋ผ๋ณด๊ฒ .. 2024. 3. 11. 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. ์ด์ 1 2 3 ๋ค์