

๐ ๊ฒฐ๋ก ์์ฝ
| site | String | ํ ์คํธ ๋ฐ์ดํฐ (์ด๋ฆ, ๋ช ์นญ ๋ฑ) |
| scope1Tco2e | Double | ์ซ์ ๋ฐ์ดํฐ, ์ฐ์ฐ ํ์ |
| scope2Tco2e | Double | ์ซ์ ๋ฐ์ดํฐ, ์ฐ์ฐ ํ์ |
| totalScope12Tco2e | Double | ๊ณ์ฐ ๊ฒฐ๊ณผ (ํฉ๊ณ) |
| scope3Tco2e | Double | ์ซ์ ๋ฐ์ดํฐ, ์ฐ์ฐ ํ์ |
๐ **๋ฌธ์(์ด๋ฆ)**์ String,
๐ **์์น(๋ฐฐ์ถ๋, ์์น๊ฐ)**์ Double.
์์ฃผ ์ข์ ์ง๋ฌธ์ด์์ ๐
Java 21 ๋ฒ์ ์ด๋ ๊ทธ ์ดํ ๋ฒ์ ์ด๋ ,
์ด๊ฑด **JPA ์คํ(์๋ฐ ๋ฒ์ ๊ณผ๋ ๋ฌด๊ด)**์ ๊ด๋ จ๋ ๋ด์ฉ์
๋๋ค.
โ ๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด
๐ @Column์ “ํ์”๊ฐ ์๋๋๋ค.
JPA์์๋ ๋ช ์ํ์ง ์์๋ ๊ธฐ๋ณธ ๋งคํ ๊ท์น์ ๋ฐ๋ผ ์ปฌ๋ผ์ด ์์ฑ๋ฉ๋๋ค.
๐ ์์ธํ ์ค๋ช ํด๋ณผ๊ฒ์
JPA์์ @Entity ํด๋์ค๋ฅผ ๋ง๋ค๋ฉด,
JPA๊ฐ ํด๋์ค์ ํ๋๋ช
์ ๊ทธ๋๋ก DB ์ปฌ๋ผ๋ช
์ผ๋ก ๋งคํํฉ๋๋ค.
์๋ฅผ ๋ค์ด:
์์ ๊ฐ์ด @Column์ ์ ํ ์ฐ์ง ์์๋, JPA๋ ์๋์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ํ ์ด๋ธ์ ๋ง๋ญ๋๋ค ๐
| id | bigint |
| name | varchar |
| age | integer |
โ๏ธ JPA ๊ธฐ๋ณธ ๋งคํ ๊ท์น
| ์ปฌ๋ผ๋ช | ํ๋๋ช ๊ณผ ๋์ผ (camelCase → snake_case๋ก ๋ณํ์ ์ค์ ์ ๋ฐ๋ผ ๋ค๋ฆ) |
| ํ์ | ํ๋ ํ์ ์ ๋ง๋ DB ํ์ ์๋ ๋งคํ |
| ์ ์ฝ ์กฐ๊ฑด | ์ง์ ํ์ง ์์ (nullable, length ๋ฑ์ ๊ธฐ๋ณธ๊ฐ ์ฌ์ฉ) |
๐งฉ ๊ทธ๋์ @Column์ ์ธ์ ํ์ํ ๊น?
@Column์ ๊ธฐ๋ณธ ๋งคํ ๊ท์น์ ๋ฐ๊พธ๊ณ ์ถ์ ๋๋ง ์ฌ์ฉํฉ๋๋ค.
์์ 1๏ธโฃ — ์ปฌ๋ผ ์ด๋ฆ ๋ณ๊ฒฝ
์์ 2๏ธโฃ — NOT NULL ์ ์ฝ ์ถ๊ฐ
์์ 3๏ธโฃ — ๋ฌธ์์ด ๊ธธ์ด ์ ํ
์์ 4๏ธโฃ — ์ซ์ ์ ๋ฐ๋ ์ง์ (์: ๊ธ์ก, ์จ์ค๊ฐ์ค ๋ฐฐ์ถ๋)
โ ๏ธ ์ด๋ฐ ์ ์ฝ์ฌํญ์ด ์๋ค๋ฉด, @Column์ ์์ด๋ ์ ํ ๋ฌธ์ ์์ต๋๋ค.
๐ง Java 21 ๊ธฐ์ค ์ฐธ๊ณ ์ฌํญ
- Java 21์ JPA์ ๋์์ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค.
(JPA๋ Java EE/Jakarta EE ์คํ ๊ธฐ๋ฐ์ด๋ฏ๋ก ์๋ฐ ๋ฒ์ ๋ณด๋จ JPA ๋ฒ์ ์ด ์ค์) - ์คํ๋ ค Spring Boot 3.x๋ถํฐ๋ Jakarta Persistence (jakarta.persistence.Column) ํจํค์ง๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
-
import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Id;
โ ๊ฒฐ๋ก ์์ฝ
| ํ๋๋ช ๊ณผ ์ปฌ๋ผ๋ช ์ด ๊ฐ๊ณ ํน๋ณํ ์ค์ ์ด ํ์ ์์ | โ ์๋ต ๊ฐ๋ฅ |
| ์ปฌ๋ผ๋ช ๋ณ๊ฒฝ, ์ ์ฝ ์กฐ๊ฑด ์ถ๊ฐ, ์ ๋ฐ๋ ์ง์ ํ์ | โ ๋ช ์ํด์ผ ํจ |
| null ํ์ฉ ์ฌ๋ถ๋ ๊ธธ์ด ์ ํ ๊ด๋ฆฌ ํ์ | โ ๋ช ์ ์ถ์ฒ |
โจ ์ฆ, “๊ธฐ๋ณธ ์ค์ ์ผ๋ก ์ถฉ๋ถํ๋ค๋ฉด ์๋ตํด๋ ์ ํ ๋ฌธ์ ์์ต๋๋ค.”
์์ฃผ ์ข์ ๊ณ ๋ฏผ์ด์์ ๐
์คํ๋ง(Spring) ํ๋ก์ ํธ์์ ์ค์ ํ์ผ์ **application.properties**๋ก ํ ์ง, **application.yml**๋ก ํ ์ง๋ ๊ฝค ์ค์ํ ์ ํ์ด์์ — ํนํ ๋ง์ดํฌ๋ก์๋น์ค ๊ตฌ์กฐ์์ ๋์ปค(Docker)๋ก ๋ฐฐํฌํ ๊ณํ์ด๋ผ๋ฉด ๋๋์ฑ์.
์ด๋ณด์ ์ ์ฅ์์ ์ดํดํ๊ธฐ ์ฝ๊ฒ ๋น๊ตํด๋ณผ๊ฒ์ ๐
๐งฉ 1. ๋ ํ์์ ์ฐจ์ด ๊ฐ๋จ ์ ๋ฆฌ
| ํํ | ํค=๊ฐ (Key=Value) ํํ | ๊ณ์ธตํ ๊ตฌ์กฐ (๋ค์ฌ์ฐ๊ธฐ ๊ธฐ๋ฐ) |
| ๊ฐ๋ ์ฑ | ๊ฐ๋จํ์ง๋ง ๊ณ์ธต ํํ์ด ๋ถํธ | ๊ตฌ์กฐ์ ์ด๋ผ ๋ณด๊ธฐ ์ฌ์ |
| ํ๊ฒฝ ๋ถ๋ฆฌ | ํ๋กํ์ผ๋ณ ํ์ผ ๋ถ๋ฆฌ ํ์ (application-dev.properties ๋ฑ) | ๊ฐ์ ํ์ผ ์์ ์ฌ๋ฌ ํ๊ฒฝ ์ ์ ๊ฐ๋ฅ |
| ๋ณต์กํ ์ค์ | ๋ถํธํจ (๋ฐ๋ณต ๋ง์) | ๋งค์ฐ ํธ๋ฆฌ (๋ฐฐ์ด, ๊ณ์ธต ํํ ์ฌ์) |
| ์ค์ ์ํ | ๋ฌธ๋ฒ์ด ๋จ์ํด ์ค์ ์ ์ | ๋ค์ฌ์ฐ๊ธฐ ์๋ชปํ๋ฉด ์ค๋ฅ ๋ฐ์ |
| ์ถ์ฒ ์ฉ๋ | ๋จ์ผ ์๋น์ค, ์ค์ ๋จ์ํ ๋ | ๋ง์ดํฌ๋ก์๋น์ค, ๋ณต์กํ ํ๊ฒฝ ์ค์ ์ |
๐ก 2. ๋ง์ดํฌ๋ก์๋น์ค + Docker ํ๊ฒฝ ๊ธฐ์ค์ผ๋ก ์ถ์ฒ
๐ ์ ๋ผ๋ฉด application.yml์ ์ถ์ฒํฉ๋๋ค.
๊ทธ ์ด์ ๋ ์๋์ ๊ฐ์ต๋๋ค:
โ 1) ๋ง์ดํฌ๋ก์๋น์ค ๊ตฌ์กฐ์ ์ ๋ฆฌ
- ์ฌ๋ฌ ์๋น์ค(์: user-service, order-service, auth-service)๊ฐ ๊ฐ๊ฐ ์ค์ ์ ๊ฐ๊ฒ ๋์ฃ .
- yml์ ๊ณ์ธตํ ๊ตฌ์กฐ๋ก ๊ฐ ์๋น์ค์ ํ๊ฒฝ, ํฌํธ, DB, ์ธ๋ถ ์ฐ๋ ์ค์ ์ ๋ณด๊ธฐ ์ฝ๊ฒ ์ ๋ฆฌํ ์ ์์ด์.
→ ์ด๋ฐ ์์ผ๋ก ๊ณ์ธต ๊ตฌ์กฐ๊ฐ ํ๋์ ๋ณด์.
โ 2) ๋์ปค ํ๊ฒฝ ๋ณ์(Docker env)์์ ์ฐ๋์ด ์ฌ์
yml์ ํ๊ฒฝ ๋ณ์ ์นํ์ด ์์ฐ์ค๋ฝ์ต๋๋ค ๐
→ ์ด๋ ๊ฒ ํ๋ฉด ๋์ปค์์ ํ๊ฒฝ ๋ณ์๋ก ๋ฎ์ด์ธ ์ ์์ด์.
application.properties๋ก ํ๋ฉด ์ค ์๊ฐ ๋ง์์ง๊ณ ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง๋๋ค.
โ 3) ํ๋กํ์ผ๋ณ ์ค์ ๊ด๋ฆฌ๊ฐ ํธํจ
yml์ ํ ํ์ผ ์์์ ์ฌ๋ฌ ํ๊ฒฝ์ ์ ์ํ ์ ์์ด์ ๐
→ application.properties์์๋ ์ด๋ฐ ๊ฑธ ํ์ผ ์ฌ๋ฌ ๊ฐ๋ก ๋๋ ์ผ ํด์ (application-dev.properties, application-prod.properties ๋ฑ).
โ 4) ํ์ฅ์ฑ ์ข์
- ๋ง์ดํฌ๋ก์๋น์ค๊ฐ ๋ง์์ง์๋ก properties ํ์์ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋๋ค.
- yml์ ๊ฐ ์๋น์ค์ ์ค์ ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ฌถ์ด์ ๊ด๋ฆฌํ๊ธฐ ์ฌ์์.
โ ๏ธ ํ์ง๋ง ์ด๋ณด์๋ผ๋ฉด...
yml์ ๋ค์ฌ์ฐ๊ธฐ ์ค์๋ ์์ฃผ ํํ ํจ์ ์ด์์ ๐
๊ทธ๋์ ์ฒ์์๋ ์๋์ฒ๋ผ ํ์๋ฉด ์ข์์:
- application.yml๋ก ์์ํ๋,
- IntelliJ๋ VSCode์ YAML ๋ฌธ๋ฒ ํ์ด๋ผ์ดํ ์ ์ผ๋์ธ์.
- ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ํญ(tab)์ด ์๋ ์คํ์ด์ค 2์นธ์ผ๋ก ์ ์งํ์ธ์.
โ ๊ฒฐ๋ก ์์ฝ
| ์ด๋ณด์ + ๋จ์ผ ํ๋ก์ ํธ | application.properties (์ต์ํ๊ณ ๋จ์) |
| ๋์ปค + ๋ง์ดํฌ๋ก์๋น์ค + ํ๊ฒฝ ๋ถ๋ฆฌ | โ application.yml ์ถ์ฒ |
| ํ ๊ฐ๋ฐ / ์ ์ง๋ณด์ ๊ณ ๋ ค | yml์ด ๊ตฌ์กฐ์ ์ด๋ผ ํ์ ์ ์ ๋ฆฌ |
์์ฝ
๐ ๋ง์ดํฌ๋ก์๋น์ค + Docker ํ๊ฒฝ์ด๋ผ๋ฉด application.yml์ด ํจ์ฌ ์ ๋ฆฌํฉ๋๋ค.
๊ตฌ์กฐ์ ์ด๊ณ , ํ๊ฒฝ๋ณ์ ์ฐ๋์ด ์ฝ๊ณ , ํ์ฅ์ฑ์ด ์ข์์.
๋ ์ง๊ธ application.yml, ProjectController, ProjectEntity ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋์ด ์๋ ๊ฑฐ๊ณ ๋ฌด์จ ๊ด๋ จ์ด ์๋์ง ์ฐ๊ด์ ์๊ณ ์ถ์ด
application.yml, ProjectController, ๊ทธ๋ฆฌ๊ณ ProjectEntity๋ Spring Boot ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ REST API๋ฅผ ์ฐ๊ฒฐํ๋ ์ค์ํ ๊ตฌ์ฑ ์์๋ค์ ๋๋ค. ๊ฐ๊ฐ์ ์ญํ ๊ณผ ๊ทธ๋ค์ด ์ด๋ป๊ฒ ์ฐ๊ด๋๋์ง ๋จ๊ณ์ ์ผ๋ก ์ค๋ช ํ๊ฒ ์ต๋๋ค.
1. application.yml
- ์ญํ : application.yml์ Spring Boot ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ ํ์ผ๋ก, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ ๋ณด, Hibernate ์ค์ , ์๋ฒ ํฌํธ ๋ฑ ๋ค์ํ ๊ตฌ์ฑ์ ์ ์ํฉ๋๋ค
- ์ฐ๊ด์ฑ:
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ: spring.datasource.url, spring.datasource.username, spring.datasource.password๋ก Docker ๋ด esgseed ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํฉ๋๋ค. ์:
yaml
spring: datasource: url: jdbc:postgresql://localhost:5432/esgseed username: esgseed password: your_password - Hibernate ์ค์ : spring.jpa.hibernate.ddl-auto=update๋ก ์ํฐํฐ ๊ธฐ๋ฐ ํ
์ด๋ธ ์์ฑ์ ํ์ฑํํฉ๋๋ค. hibernate.dialect๋ PostgreSQL์ ๋ง๊ฒ ์ค์ ๋ฉ๋๋ค.
yaml
spring: jpa: hibernate: ddl-auto: update properties: hibernate: dialect: org.hibernate.dialect.PostgreSQLDialect - ํจ๊ณผ: ์ด ์ค์ ์ ProjectEntity๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง(project ํ ์ด๋ธ)๋ก ๋ณํํ๋ ๋ฐ ํ์ํ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ: spring.datasource.url, spring.datasource.username, spring.datasource.password๋ก Docker ๋ด esgseed ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํฉ๋๋ค. ์:
2. ProjectEntity
- ์ญํ : ProjectEntity๋ JPA ์ํฐํฐ๋ก, ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ๊ตฌ์กฐ๋ฅผ ์ ์ํฉ๋๋ค. ์ด๋ Java ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ ๊ฐ ๋งคํ์ ๋ด๋นํฉ๋๋ค.
- ์์:
java
package com.seoeunjin.api.project.domain; import lombok.Data; import lombok.NoArgsConstructor; import lombok.AllArgsConstructor; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name = "project") @Data @NoArgsConstructor @AllArgsConstructor public class Project { @Id private String site; private Double scope1Tco2e; private Double scope2Tco2e; private Double totalScope12Tco2e; private Double scope3Tco2e; } - ์ฐ๊ด์ฑ:
- application.yml๊ณผ์ ์ฐ๊ด: ddl-auto=update ์ค์ ๋๋ถ์ Spring Boot๊ฐ ์์๋ ๋ Hibernate๊ฐ ์ด ์ํฐํฐ๋ฅผ ์ค์บํ๊ณ project ํ ์ด๋ธ์ ์๋ ์์ฑํฉ๋๋ค. ํ ์ด๋ธ์ ์ด(site, scope1Tco2e ๋ฑ)์ ์ํฐํฐ์ ํ๋์ ๋์๋ฉ๋๋ค.
- ProjectController๊ณผ์ ์ฐ๊ด: ProjectEntity๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ํํํ๋ ๊ฐ์ฒด๋ก, ProjectController์์ CRUD ์์ ์ ์ํํ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ์ปจํธ๋กค๋ฌ๋ ์ด ์ํฐํฐ๋ฅผ ์กฐํํ๊ฑฐ๋ ์ ์ฅํ๋ ๋ก์ง์ ์ฒ๋ฆฌํฉ๋๋ค.
3. ProjectController
- ์ญํ : ProjectController๋ REST API ์๋ํฌ์ธํธ๋ฅผ ์ ์ํ์ฌ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค. ์ฃผ๋ก ProjectEntity๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ถํฐ ๊ฐ์ ธ์ค๊ฑฐ๋ ์ ์ฅํ๋ ์ญํ ์ ํฉ๋๋ค.
- ์์:
java
package com.seoeunjin.api.project.controller; import com.seoeunjin.api.project.domain.Project; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/projects") public class ProjectController { // ์์กด์ฑ ์ฃผ์ (์: Repository) @Autowired private ProjectRepository repository; @GetMapping public List<Project> getAllProjects() { return repository.findAll(); } @PostMapping public Project createProject(@RequestBody Project project) { return repository.save(project); } } - ์ฐ๊ด์ฑ:
- ProjectEntity์์ ์ฐ๊ด: ProjectController๋ Project ์ํฐํฐ๋ฅผ ๋ฐํํ๊ฑฐ๋ ์์ ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ์์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, getAllProjects()๋ ProjectRepository๋ฅผ ํตํด Project ์ํฐํฐ ๋ชฉ๋ก์ ์กฐํํฉ๋๋ค.
- application.yml๊ณผ์ ์ฐ๊ด: ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ค์ (datasource)๊ณผ Hibernate ์ค์ ์ด ์ ๋๋ก ๋์ด ์์ด์ผ ProjectRepository๊ฐ ProjectEntity๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์กฐ์ํ ์ ์์ต๋๋ค. ๋ง์ฝ ์ฐ๊ฒฐ์ด ์คํจํ๋ฉด ์ปจํธ๋กค๋ฌ์ ์์ฒญ ์ฒ๋ฆฌ๋ ์คํจํฉ๋๋ค.
์ ์ฒด์ ์ธ ์ฐ๊ด์ฑ:
- ์์์ : application.yml:
- ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์๋ ๋ application.yml์ด ๋ก๋๋์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค(esgseed)์์ ์ฐ๊ฒฐ์ ์ค์ ํฉ๋๋ค.
- ddl-auto=update๋ก ์ธํด Hibernate๊ฐ ProjectEntity๋ฅผ ๊ธฐ๋ฐ์ผ๋ก project ํ ์ด๋ธ์ ์์ฑํฉ๋๋ค.
- ๋ฐ์ดํฐ ๋ชจ๋ธ: ProjectEntity:
- ProjectEntity๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ project ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ฉฐ, Hibernate๊ฐ ์ด ๊ฐ์ฒด๋ฅผ ์ค์บํ์ฌ ํ ์ด๋ธ์ ์์ฑํ๊ฑฐ๋ ๋งคํํฉ๋๋ค.
- ์ด๋ ProjectController๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉ๋๋ ๊ธฐ๋ณธ ๋จ์์ ๋๋ค.
- ์ฌ์ฉ์ ์ธํฐํ์ด์ค: ProjectController:
- ํด๋ผ์ด์ธํธ๊ฐ /projects ๊ฒฝ๋ก๋ก HTTP ์์ฒญ(์: GET, POST)์ ๋ณด๋ด๋ฉด, ProjectController๊ฐ ProjectRepository๋ฅผ ํตํด ProjectEntity๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฝ๊ฑฐ๋ ์ฐ๋ ์์ ์ ์ํํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, POST /projects ์์ฒญ์ผ๋ก ์๋ก์ด Project ๊ฐ์ฒด๊ฐ ์ ์ฅ๋๋ฉด, Hibernate๊ฐ ์ด๋ฅผ project ํ ์ด๋ธ์ ๋ฐ์ํฉ๋๋ค.
์์ฝ ๋ค์ด์ด๊ทธ๋จ:
application.yml (์ค์ )
↓
ProjectEntity (์ํฐํฐ → project ํ
์ด๋ธ ์์ฑ)
↓
ProjectController (API ์๋ํฌ์ธํธ → CRUD ์ฒ๋ฆฌ)
↓
ํด๋ผ์ด์ธํธ ์์ฒญ/์๋ต
์ถ๊ฐ ๊ณ ๋ ค์ฌํญ:
- Repository: ProjectController๊ฐ ๋์ํ๋ ค๋ฉด ProjectRepository ์ธํฐํ์ด์ค(์: JpaRepository<Project, String>)๊ฐ ํ์ํฉ๋๋ค. ์ด๋ Spring Data JPA๊ฐ ์๋์ผ๋ก ๊ตฌํํ๋ฉฐ, application.yml์ ์ค์ ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐ๋ฉ๋๋ค.
- ํจํค์ง ์ค์บ: ProjectEntity์ ProjectController๊ฐ Spring์ ์ํด ์ธ์๋๋ ค๋ฉด ๊ฐ์ ํจํค์ง(์: com.seoeunjin.api)๋ @ComponentScan ๋ฒ์ ๋ด์ ์์ด์ผ ํฉ๋๋ค.
๐งฉ ์ ๋ฆฌํ๋ฉด!
| 1๏ธโฃ application.yml | ํ๊ฒฝ ์ค์ | “DB๋ ์ด๋์ ์๊ณ , ์ด๋ค ๊ณ์ ์ผ๋ก ์ฐ๊ฒฐํ ์ง” ์ค์ |
| 2๏ธโฃ ProjectEntity | ๋ฐ์ดํฐ ์ ์ | “DB์ ์ด๋ค ์ปฌ๋ผ๋ค์ด ์๋์ง” ์ ์ |
| 3๏ธโฃ ProjectController | ์์ฒญ ์ฒ๋ฆฌ | “์ฌ์ฉ์ ์์ฒญ์ ๋ฐ์์, Entity ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด์ ๋ณด์ฌ์ค” |
์ฆ,
๐ application.yml์ด ํ๊ฒฝ์ ์ธํ
ํ๊ณ
๐ ProjectEntity๊ฐ ์ค์ ๋ฐ์ดํฐ๋ฅผ ํํํ๊ณ
๐ ProjectController๊ฐ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ์์๊ฒ ์ ๋ฌํ๋ ๊ตฌ์กฐ์์!
'Project ESG+AI > Tech Basics' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 19์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.11.04 |
|---|---|
| ์คํ๋ง(Spring) ๊ธฐ๋ฐ ๋ฐฑ์๋ ๊ตฌ์กฐ์ ์ ๋ฐ์ ์ธ ํ๋ฆ๊ณผ ์ญํ ๊ด๊ณ (0) | 2025.11.04 |
| 17์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.10.31 |
| 16์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.10.30 |
| 15์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.10.29 |