์๋ฐ๋ก ์ฝ๋๋ฅผ ์ง๋ค๋ณด๋ฉด @override๋ฅผ ๋ง์ด ๋ณด๊ฒ ๋๋ค. ๋ณผ ๋๋ง๋ค ์๊ฐํ๋ ๊ฒ์ธ๋ฐ, overriding๋ ์๋๊ฑฐ ๋ช ์ ์ํด์ค๋ ๋ค ์๋๋ฐ ์ ๊ตณ์ด ์จ๋์์๊น? ๋ผ๋ ์๋ฌธ์ด์๋ค.
๊ทธ๋ฌ๋ค, ์ด๋ฒ์ bean์ ๋ํด ๋ฐฐ์ฐ๋ฉด์ @(์ด๋ ธํ ์ด์ ) ์ ๋ง์ด ๋ณด๊ฒ ๋์๋ค. ์ด ํฌ์คํ ์์๋ ์ด๋ ธํ ์ด์ ์ด ๋ฌด์์ธ์ง์ ๋ํด ์์๋ณธ๋ค.
Annotation
= ์ปดํ์ผ๋ฌ์ ๊ฐ๋ฐ์์๊ฒ ์ถ๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๋ฉํ๋ฐ์ดํฐ
ํ๋ก๊ทธ๋จ ์ฝ๋์ ์ผ๋ถ๊ฐ ์๋, ํ๋ก๊ทธ๋จ์ ๊ดํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๊ณ , ์ฝ๋์ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ ์ ํํ๋ ๋ฐฉ๋ฒ
<์ฌ์ฉ ์ด์ >
- ์ปดํ์ผ๋ฌ ์ฒดํฌ
์๋ฅผ ๋ค์ด, @Override๋ฅผ ๋ถ์ด๋ฉด ์ปดํ์ผ๋ฌ๊ฐ ํด๋น ๋ฉ์๋๊ฐ ์์ ํด๋์ค๋ ์ธํฐํ์ด์ค์ ๋ฉ์๋๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ค๋ฒ๋ผ์ด๋ฉ ํ๊ณ ์๋์ง ๊ฒ์ฌ
์คํ๋ ์๊ทธ๋์ฒ๊ฐ ํ๋ฆด ์. ์ปดํ์ผ ์ค๋ฅ๋ฅผ ๋ฐ์ - ๊ฐ๋
์ฑ ๋ฐ ๋ฌธ์ํ
์ฝ๋์ ์๋๋ฅผ ๋ช ํํ๊ฒ ํํํ์ฌ ์ญํ ์ ๋ฐ๋ก ์ ์ ์์
→ ์ ์ง๋ณด์์ ํ์ ์ ๋์์ด ๋จ - ๋ถ๊ฐ ๊ธฐ๋ฅ ์ ๊ณต
Spring, JPA ๋ฑ ๋ค์ํ ํ๋ ์์ํฌ์์๋ ์ด๋ ธํ ์ด์ ์ ํ์ฉํ์ฌ ๋ฐํ์์ ๊ฐ์ฒด๋ฅผ ์๋์ผ๋ก ์์ฑํ๊ฑฐ๋ ํน์ ๋์์ ์ํํ๋๋ก ํจ
→ ์ฝ๋๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ์ ์ง & ๋ณต์กํ ์ค์ ์ด๋ ๋์์ ์๋ํ
์ด๋ ธํ ์ด์ ์๋ ๊ต์ฅํ ๋ง์ ์ข ๋ฅ๊ฐ ์๋ค. ๊ทธ ์ค ์ ์ฐ์ด๋ ๋ช ๊ฐ์ง๋ฅผ ์์๋ณด์.
@override
๋ฉ์๋๊ฐ ์ํผํด๋์ค(๋๋ ์ธํฐํ์ด์ค)์ ๋ฉ์๋๋ฅผ ์ฌ์ ์(override)ํ๊ณ ์์์ ์ปดํ์ผ๋ฌ์ ์๋ ค์ค
@SpringBootApplication
Srping Boot๋ฅผ ์๋์ผ๋ก ์คํ์์ผ์ฃผ๋ ์ด๋ ธํ ์ด์
Bean์ ์ ์ํ๊ณ ๋ฑ๋กํ๋ 3๊ฐ์ง ์ด๋ ธํ ์ด์ ์ ํฌํจํ๋ค.
- @Configuration: ํด๋น ํด๋์ค๊ฐ Spring ์ค์ ํ์ผ์์ ์ ์ธํฉ๋๋ค.
- @EnableAutoConfiguration: ๋ฏธ๋ฆฌ ์ ์๋ ์ค์ ๋ค์ ๋ฐํ์ผ๋ก ์๋์ผ๋ก Bean๋ค์ ๋ฑ๋กํด์ค๋๋ค.
- @ComponentScan: ์ง์ ๋ ํจํค์ง(๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฌ ํด๋์ค๊ฐ ์์นํ ํจํค์ง ๋ฐ ํ์ ํจํค์ง) ๋ด์ ์ปดํฌ๋ํธ๋ฅผ ๊ฒ์ํ์ฌ Bean์ผ๋ก ๋ฑ๋กํฉ๋๋ค.
๐ Spring ์ค์ ํ์ผ
= Bean์ ์ ์ & ๊ตฌ์ฑ
- XML ์ค์ ํ์ผ(๊ตฌ ๋ฐฉ์)
์คํ๋ง ์ปจํ ์ด๋์๊ฒ ์ด๋ค ๋น๋ค์ ์ด๋ป๊ฒ ์์ฑํ๊ณ ์ฐ๊ฒฐํ ์ง๋ฅผ ์๋ ค์ฃผ๋ ์ค์ ๋ฆฌ์์ค
- Java Config(์ต์ ๋ฐฉ์)
@Configuration๊ณผ ๊ทธ ์์ @Bean ๋ฉ์๋๋ค์ ์ฌ์ฉํ๋ฉด, ํด๋น ๋ฉ์๋๋ค์ด ๋ฐํํ๋ ๊ฐ์ฒด๋ค์ด bean์ผ๋ก ๋ฑ๋ก๋จ
@ComponentScan
์ง์ ์์ฑํ class๋ฅผ bean์ผ๋ก ๋ฑ๋ก
→ value๋ฅผ ์ด์ฉํด bean์ ์ด๋ฆ์ ์ง์
@Bean
๊ฐ๋ฐ์๊ฐ ์ ์ด ๋ถ๊ฐํ ํด๋์ค(ex. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)๋ฅผ bean์ผ๋ก ๋ฑ๋ก
→ name์ ์ด์ฉํด bean์ ์ด๋ฆ์ ์ง์
@Controller
Spring MVC์ Controller๋ก ์ฌ์ฉ๋๋, ํด๋์ค ์ ์ธ์ ๋จ์ํ ์์ผ์ฃผ๋ ์ด๋ ธํ ์ด์
@RestController
Spring์์ Controller ์ค View๋ก ์๋ตํ์ง ์๋ Controller๋ฅผ ์๋ฏธํ๋ค.
method์ ๋ฐํ ๊ฒฐ๊ณผ๋ฅผ JSON ํํ๋ก ๋ฐํํ๋ค.
⇒ @Controller + @ResponseBody
๐จ @Controller | ๐พ @RestController | |
์ญํ | View์ API๋ฅผ ๋ชจ๋ ์ฒ๋ฆฌํ๋ ์ปจํธ๋กค๋ฌ | API ์ ์ฉ ์ปจํธ๋กค๋ฌ (๋ฐ์ดํฐ๋ง ๋ฐํํ๋ฉฐ, View๋ ์ฒ๋ฆฌ X) |
์๋ต ํํ | ๊ธฐ๋ณธ์ ์ผ๋ก View(HTML ๋ฑ)๋ฅผ ๋ฐํํ๋ฉฐ, API์ผ ๊ฒฝ์ฐ ๋ณ๋๋ก @ResponseBody ์ฌ์ฉ ํ์ | ๋ฉ์๋์ ๋ฐํ ๊ฐ์ JSON์ด๋ XML ๋ฑ์ผ๋ก ์ง์ HTTP Response์ ๋ด์ ๋ฐํ (์๋ @ResponseBody ์ ์ฉ) |
์ฌ์ฉ ๋ชฉ์ | ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ UI ๋ ๋๋ง๊ณผ API๋ฅผ ํจ๊ป ์ฌ์ฉํ ๋ | RESTful API ๊ฐ๋ฐ ์, View๊ฐ ํ์ ์๋ ๋ฐ์ดํฐ ์๋ต์ ์ฌ์ฉ |
'๐๏ธBackend' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ณด์] jwt.secret ๊ด๋ฆฌ(.gitignore ์ค์ , SpringBoot+intelliJ) (0) | 2025.03.25 |
---|---|
[SpringBoot] Soft Delete (0) | 2025.03.24 |
์์ผ๋ ์นด๋ import๋ฅผ ์ฌ์ฉํ๋ฉด ์๋๋ ์ด์ (1) | 2025.03.23 |
[DB/MySQL] ๋ฐ์ดํฐํ์ (CHAR, VARCHAR,TEXT...) (0) | 2025.03.19 |
[๋ฐฑ์๋] API ๋ช ์ธ์ (0) | 2025.03.08 |