๐ญ ์ ํ ๊ฒฝํ์ ํตํ ํ๊ณ
์งํํ๋ ์์คํ ๊ฐํธ ํ๋ก์ ํธ๋ ๋จ์ํ ์ธ์ด๋ฅผ PHP์์ Spring Boot๋ก ๋ฐ๊พธ๋ ๊ฒ์ ๋์ด, ๋ณด์๊ณผ ์์ ์ฑ์ ๊ฐํํ ํ๋์ ์ํคํ ์ฒ๋ก์ ์ฌ์ค๊ณ๋ฅผ ๋ชฉํ๋ก ํ์ต๋๋ค.
ํ์ง๋ง ๊ณผ์ ์ ์ฝ์ง ์์์ต๋๋ค.
์ ์ฐจ ์งํฅ์ ์ผ๋ก ์ง์ฌ์ง ๊ธฐ์กด ์ฝ๋๋ ์ฌ๋ฌ ํ์ผ๊ณผ DB ํ๋ก์์ ์ ๋ก์ง์ด ํํธํ๋์ด ์์ด ๋น์ฆ๋์ค ํ๋ฆ์ ํ์ ํ๋ ๊ฒ์กฐ์ฐจ ๊ฑฐ๋ํ ๋์ ์ด์์ต๋๋ค.
์ฌ๊ธฐ์ Spring Boot์ Bean ๊ด๋ฆฌ์ ๊ฐ์ ํ๋ ์์ํฌ์ ๊ตฌ์กฐ๋ฅผ ์ตํ๊ณ , Thymeleaf๋ฅผ ํ์ฉํด ํ๋ก ํธ์๋๊น์ง ํตํฉ ๊ตฌํํด์ผ ํ๋ ๊ณผ์ ๊ฐ ์ฃผ์ด์ก์ต๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ ์ด๋ฌํ '์ธ์ด์ ์ฅ๋ฒฝ'๊ณผ '๊ตฌ์กฐ์ ๋ณต์ก์ฑ'์ด๋ผ๋ ๋๊ด์ ์ด๋ป๊ฒ ํ๋์ฉ ํ์ด๋ด๋ฉฐ ์์คํ ์ ์์ฐฉ์์ผฐ๋์ง, ๊ณ ๋ฏผ์ ํ์ ๋ค์ ๊ธฐ๋กํด๋ณด๋ ค ํฉ๋๋ค.
๐ฉ ์์ ๋ก์ด PHP vs ์๊ฒฉํ Spring Boot
๊ฐ์ฅ ๋จผ์ ๋ง์ฃผํ ๋ฒฝ์ ํ๋ ์์ํฌ์ ๊ตฌ์กฐ์ ์ฐจ์ด์์ต๋๋ค.
PHP ํ๊ฒฝ์์๋ ๋น๊ต์ ์์ ๋กญ๊ฒ ํ์ผ์ ๊ตฌ์ฑํ๊ณ ๋ก์ง์ ๋ฐฐ์นํ ์ ์์์ง๋ง, Spring Boot 3๋ Bean ๊ด๋ฆฌ, ์์กด์ฑ ์ฃผ์ (DI), ๊ณ์ธตํ ์ํคํ ์ฒ(Layered Architecture)๋ผ๋ ์๊ฒฉํ ๊ท์น์ด ์กด์ฌํ์ต๋๋ค.
| ๊ธฐ์กด ํ๊ฒฝ (Legacy PHP) | ์ ๊ท ํ๊ฒฝ (Spring Boot 3) | |
| ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์ | ์ ์ฐจ ์งํฅ ์ค์ฌ | ๊ฐ์ฒด ์งํฅ (OOP) ์ค์ฌ |
| ๋ฐ์ดํฐ ํ์ | ๋์จํ ํ์ (Array ์์ฃผ) | ๊ฐํ ํ์ (DTO/Entity) |
| ๋ก์ง ๊ด๋ฆฌ | ํ์ผ ๋ฐ DB ํ๋ก์์ ํํธํ | Layered Architecture |
| ํ๋ฉด ๋ ๋๋ง | PHP ๋ด์ฅ ํ ํ๋ฆฟ | Thymeleaf ์์ง |
| ๋ฐฐํฌ ๋ฐฉ์ | FTP ์๋ ์ ๋ก๋ | GitLab CI/CD ์๋ํ |
๐ ๏ธ ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํตํด ๋ด์ฌํํ ํต์ฌ ์ญ๋
๋จ์ํ ์ธ์ด ์ต๋์ ๋์ด, ์ ์ฉ๋ ์์คํ ์ ์ ์ํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ์ญ๋๋ค์ ์ง์ค์ ์ผ๋ก ๊ฐํํ์ต๋๋ค.
- Spring ํ๋ ์์ํฌ์ ํต์ฌ ๋ฉ์ปค๋์ฆ ์ดํด
- ์ ์ด์ ์ญ์ (IoC)๊ณผ ์์กด์ฑ ์ฃผ์ (DI)์ ํตํ Bean ๊ด๋ฆฌ ์๋ฆฌ๋ฅผ ํ์ ํ์ฌ, ๊ฐ์ฒด ๊ฐ์ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๋ ์ค๊ณ๋ฅผ ์ตํ์ต๋๋ค.
- ๋ฐ์ดํฐ์ ๊ท๊ฒฉํ ๋ฐ ๊ณ์ธตํ ์ํคํ
์ฒ(Layered Architecture) ์ ์ฉ
- Controller-Service-Repository๋ก ์ด์ด์ง๋ ๊ณ์ธต ๋ถ๋ฆฌ๋ฅผ ํตํด ๊ฐ ๋ ์ด์ด์ ์ญํ ์ ๋ช ํํ ํ๊ณ , ๋ฐ์ดํฐ์ ์์ ์ ์ธ ํ๋ฆ์ ์ค๊ณํ์ต๋๋ค.
- ๋์จํ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋์ ๊ฐํ ํ์ ๊ธฐ๋ฐ์ DTO/Entity ๊ณ์ธตํ๋ฅผ ํตํด ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ํ๋ณดํ์ต๋๋ค.
- SSR(Server Side Rendering)๊ณผ Thymeleaf์ ์กฐํ
- ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง์ ๋์ ๋ฐฉ์์ ์ฌ๋ ์๊ฒ ์ดํดํ๊ณ , Thymeleaf ํ ํ๋ฆฟ ์์ง์ ํ์ฉํด ๋ฐฑ์๋ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ํ๋ฉด์ ํฌ์ํ๋ ํ์คํ์ ์ญ๋์ ๋ฐํํ์ต๋๋ค.
- ๊ธฐ์กด์ ํผ๋ธ๋ฆฌ์ฑ ๋ฐ ํ๋ก ํธ์๋ ์ค๋ฌด ๊ฒฝํ์ ๋ฐํ์ผ๋ก, ์๋ฒ์์ ๋ด๋ ค์ฃผ๋ ๋ฐ์ดํฐ๊ฐ ํ๋ฉด์ ๊ฐ์ฅ ํจ์จ์ ์ผ๋ก ๊ทธ๋ ค์ง ์ ์๋ ์ต์ ์ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ์ต๋๋ค.
- ์์ ์ ์ธ ์ด์์ ์ํ ์ ๊ท ๋ฐฐํฌ ํ์ดํ๋ผ์ธ ๊ฐ์ด๋ ์ต๋
- ๊ธฐ์กด ์๋ ๋ฐฐํฌ ๋ฐฉ์์ ํ๊ณ๋ฅผ ์ธ์งํ๊ณ , CI/CD ํ์ดํ๋ผ์ธ ๊ธฐ๋ฐ์ ์๋ก์ด ๋ฐฐํฌ ๊ฐ์ด๋๋ฅผ ์ตํ ํด๋จผ ์๋ฌ๋ฅผ ์์ฒ ์ฐจ๋จํ๋ ์ด์ ๋ง์ธ๋๋ฅผ ๊ฐ์ถ์์ต๋๋ค.
๐ฌ ํ๊ณ ๋ฅผ ๋ง์น๋ฉฐ
์ฐ์ฌ๊ณก์ ๋์ ์ฝ 1๋ ๊ฐ์ ์๋น์ค ๊ณ ๋ํ ๊ฒธ ์ฌ์ดํธ ๋ฆฌ๋ด์ผ์ด ์์ฑ๋์๊ณ Spring Boot๋ก์ ์ ํ์ ๋ง์ณค์ต๋๋ค.
ํ์ง๋ง ์ฝ๋๋ฅผ ๋ฐ๊พธ๋ ๊ฒ๋งํผ ์ค์ํ๋ ์์ ๊ฐ ํ๋ ๋ ๋จ์์ต๋๋ค.
๋ฐ๋ก ๋ถ์ํ FTP ๋ฐฐํฌ ๋ฐฉ์์ด ์๋ ๋ค๋ฅธ ๋ฐฐํฌ ๋ฐฉ์์ ์ ์ฉํด ๋ด๋ ์ผ์ด์๋๋ฐ์.
์ด ํ์ดํ๋ผ์ธ์ ๊ฐ์ ํ๋ฉฐ ์๋น์ค ์ฅ์ ์จ์ ๊ธฐ์กด ๋๋น 80% ์ด์ ๋ฎ์ถ ์ด์ผ๊ธฐ๋ ๋ค์ ํฌ์คํ ์์ ์์ธํ ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค!
'Case Study > Modernization' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| FTP ๋ฐฐํฌ์์ CI/CD ์๋ํ๋ก ๋์ด๊ฐ๋ฉฐ ์ป์ ์์ ์ฑ (1) | 2026.03.19 |
|---|