๋ฐฑ์๋32 Spring Boot ๋ฉํฐ ๋ชจ๋ ํ๋ก์ ํธ ์ค๊ณ ๐ก ๋ฉํฐ ๋ชจ๋ ํ๋ก์ ํธ ์ค๊ณ๋?ํ๋์ ํ๋ก์ ํธ๋ฅผ ์ฌ๋ฌ ๊ฐ์ ๋ ๋ฆฝ์ ์ธ ๋ชจ๋๋ก ๋๋์ด ์ ์ง๋ณด์์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๋ ๋ฐฉ์๊ณตํต ๋ชจ๋๊ณผ ๋๋ฉ์ธ๋ณ ๋ชจ๋์ ๋ถ๋ฆฌํ์ฌ ๊ด๋ฆฌ โ ์ฌ์ฉ ์์my-multi-module-project โโโ parent-project (Root) โ โโโ pom.xml (Parent POM) โ โโโ common-module โ โ โโโ src/main/java/com/example/common โ โ โโโ pom.xml โ โโโ service-user โ โ โโโ src/main/java/com/example/user โ โ โโโ pom.xml โ โโโ service-order โ โ โโโ src/main/java/com.. 2025. 2. 25. Docker๋? ๐ Docker๋?Docker๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์ด๋(Container) ๋ผ๋ ๊ฐ๋ฒผ์ด ๊ฐ์ ํ๊ฒฝ์์ ์คํํ ์ ์๋๋ก ๋์์ฃผ๋ ์ปจํ ์ด๋ ๊ธฐ๋ฐ ๊ฐ์ํ ํ๋ซํผ์ ๋๋ค.โ 1. Docker์ ํต์ฌ ๊ฐ๋ ๐น 1) ์ปจํ ์ด๋(Container)์ปจํ ์ด๋๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์คํ์ ํ์ํ ๋ชจ๋ ๊ฒ์ ํฌํจํ๋ ๊ฐ๋ฒผ์ด ํจํค์ง๋์ผํ ํ๊ฒฝ์์ ์คํ๋๋ฏ๋ก ๋ฐฐํฌ๊ฐ ํธ๋ฆฌํ๊ณ , ์์กด์ฑ ๋ฌธ์ ์์์ฌ๋ฌ ๊ฐ์ ์ปจํ ์ด๋๋ฅผ ํ๋์ ์๋ฒ์์ ์คํ ๊ฐ๋ฅ → ๋ฆฌ์์ค ํจ์จ์ ์ฌ์ฉ๐น 2) ์ด๋ฏธ์ง(Image)์ปจํ ์ด๋๋ฅผ ์คํํ๊ธฐ ์ํ ํ ํ๋ฆฟ (Blueprint)ํ์ผ ์์คํ ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํฌํจ๋จDockerfile์ ํตํด ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค ์ ์์Docker Hub์์ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋( docker pull ) ๊ฐ๋ฅ๐น 3) Dockerfile์ด๋ฏธ์ง๋ฅผ ์์ฑ.. 2025. 2. 21. JPA์์ Enum ์ปฌ๋ผ ์ ๋๋ก ์ ์ฅํ๊ธฐ ์ค๋์ Entity๋ฅผ ์์ฑํ๋ฉฐ ๊ฒช์ ์ด์์ธSpring Boot JPA์์ Enum ์ปฌ๋ผ ๋งคํํ ๋ ๋ฐ์ํ๋ ๋ฌธ์ ์ ํด๊ฒฐ๋ฒ์ ๋ํด ์ ๋ฆฌํด๋ณด์๋ค. โ๏ธ ์ฒ์ ์ฝ๋์์ ์๋ฌ ๋ฐ์@Column(name = "status", nullable = false)private OrderStatusEnum status = OrderStatusEnum.PENDING; Hibernate๊ฐ Enum์ ์ด๋ป๊ฒ ๋ณํํด์ผ ํ ์ง ๋ชฐ๋ผ IllegalArgumentException์ด ๋ฐ์ํ๋ค.๊ธฐ๋ณธ์ ์ผ๋ก Hibernate๊ฐ ORDINAL(์ซ์)๋ก ์ ์ฅํ๋ คํด์ DBํ์ ๊ณผ ์ถฉ๋ํ๋ค. โ๏ธ @Enumerated(EnumType.STRING) ์ถ๊ฐ @Enumerated(EnumType.STRING) @Column(name = "stat.. 2025. 2. 21. git branch ๊ฐ ์ฌ๋ฌ๊ฐ ์ผ๋ ์๊ธธ ์ ์๋ ์ถฉ๋&ํด๊ฒฐ ๋ฐฉ๋ฒ ์ ๋ฆฌ ํ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ์ฌ๋ฌ branch๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด์ ๋ก์ปฌ์์ ์์ ํ ํ์ผ์ด ๋ ๋ผ๊ฐ๋ ์ด์๊ฐ ์๊ฒผ๋ค.๊ทธ๋์ ๊ทธ๊ฒ์ ํด๊ฒฐํ๋ฉด์ ์ด๋ฌํ ์ํฉ์์ ์๊ธธ ์ ์๋ ์ถฉ๋ ์ด์๋ค๊ณผ ๊ทธ๊ฒ๋ค์ ๋ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด ๋ณด์๋ค. ๐ ๏ธ git pull ์ ์ถฉ๋ (Merge Conflict)์ด์๋ก์ปฌ์์ ์์ ํ ํ์ผ์ด ์๊ฒฉ ์ ์ฅ์(๋ฆฌ๋ชจํธ)์ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ์ถฉ๋ํ๋ ๊ฒฝ์ฐ ๋ฐ์git pull ์ ์๋ ๋ณํฉ์ด ์คํจํ๊ณ , ์ถฉ๋ ํด๊ฒฐ์ด ํ์ํจํด๊ฒฐ ๋ฐฉ๋ฒgit status ๋ช ๋ น์ด๋ฅผ ํตํด ์ถฉ๋์ด ๋ฐ์ํ ํ์ผ ๋ชฉ๋ก์ ํ์ธํด๋น ํ์ผ์ ์ด์ด >>>>>> branch_name ๋ฑ์ ์ถฉ๋ ํ์๋ฅผ ๋ณด๊ณ ์ง์ ์์ git add "์ถฉ๋ ํด๊ฒฐ ํ์ผ" ์งํgit commit -m "Resolve merge confilct"์งํ ๐ ๏ธ git pull .. 2025. 2. 18. EC2์์ PostgreSQL์ Docker๋ก ์ด์ํ๋ฉฐ ๊ฒช์๋ ์ค๋ฅ ํด๊ฒฐ ๊ณผ์ ์ ๋ฆฌ ํ ํ๋ก์ ํธ๋ฅผ ์์ํ๋ฉฐ ํ๊ฒฝ์ ํ ์ ํ๊ธฐ๋ก ํ๊ณ , ์ฐ๋ฆฌ๋ EC2ํ๊ฒฝ์์ Docker๋ฅผ ์ด์ฉํ์ฌ PostgreSQL์ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค. ์๋์๋ ํด๋น ๊ณผ์ ์ ์๋ฃํ๋ฉด์ ๊น์ง ๊ฒช์๋ ์์ ์ค๋ฅ๋ค์ ์ ๋ฆฌํด ๋ณด์๋ค. ๋ชฉ์ฐจ1๏ธโฃ Docker ๊ถํ ์ค๋ฅ (permission denied) ํด๊ฒฐ → usermod -aG docker2๏ธโฃ init.sql ํ์ผ ์ ์ก ์ค๋ฅ (scp์์ : ๋น ์ง) ํด๊ฒฐ3๏ธโฃ ํ ์ด๋ธ ์์ฑ ์์ ์ค๋ฅ (relation does not exist) ํด๊ฒฐ4๏ธโฃ ํจ์ ์ค๋ณต ์ค๋ฅ (function already exists) ํด๊ฒฐ5๏ธโฃ PL/pgSQL ๋ณ์ ์ถฉ๋ ์ค๋ฅ (table_name is ambiguous) ํด๊ฒฐ6๏ธโฃ ๋ก์ปฌ์์ EC2 PostgreSQL ์ ์ ์ค๋ฅ (Connection time.. 2025. 2. 14. Docker & CI/CD - 1 Docker & CI/CD ๋?DockerDocker๋ ์ปจํ ์ด๋ํ ๊ธฐ์ ์ ์ ๊ณตํ๋ ์คํ ์์ค ํ๋ซํผ์ด๋ค.Docker๋ฅผ ํตํด ์ฐ๋ฆฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ทธ ํ๊ฒฝ์ ์ปจํ ์ด๋๋ก ๋ฌถ์ด ์ด๋์๋ ๋์ผํ ๋ฐฉ์์ผ๋ก ์คํํ ์ ์๋ค.์ปจํ ์ด๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋, ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๊ฒฝ ์ค์ ๋ฑ์ ํจ๊ป ํจํค์งํ์ฌ ๋ค์ํ ํ๊ฒฝ์์ ์ผ๊ด๋๊ฒ ์คํํ ์ ์๊ฒ ํด์ค๋ค.Docker๋ ํจ์จ์ ์ธ ๋ฆฌ์์ค ์ฌ์ฉ๊ณผ ๋น ๋ฅธ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ์ฌ ๊ฐ๋ฐ, ํ ์คํธ, ๋ฐฐํฌ์ ์ผ๊ด์ฑ์ ์ ์งํ ์ ์๊ฒ ํด์ค๋ค. CI/CDCI (Continuous Integration)CI๋ ์ง์์ ์ธ ํตํฉ์ ์๋ฏธํ๋ค.๊ฐ๋ฐ์๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ์๋์ผ๋ก ๋น๋ํ๊ณ ํ ์คํธํ์ฌ ์ฃผ๊ธฐ์ ์ผ๋ก ํตํฉํ๋ ๊ณผ์ ์ด๋ค.github Action๋ CI์ ์ผํ์ผ๋ก git Actions๋ฅผ ์ด์ฉํ์ฌ ๋น๋, ํ ์คํธ.. 2025. 2. 11. ์ด์ 1 2 3 4 5 6 ๋ค์