๐ 2024๋ 01์ 08์ผ
Spring Initializr ๋ค์ด๋ก๋
build.gradle
์์ plugins { id 'java' id 'org.springframework.boot' version '2.7.11' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'com.example' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '11' } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() }
CorsConfig.java
ํ์ผ ์์ฑ, CORS ํด๊ฒฐ@Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry corsRegistry){ corsRegistry.addMapping("/**") .allowedOrigins("*") .allowedMethods("*") .allowedHeaders("*"); } }
- CORS๋
Cross-Origin Resource Sharing์ ์ฝ์๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ๋ฆฌ์์ค ๊ณต์ ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ณด์ ๋ฉ์ปค๋์ฆ์ผ๋ก ์คํฌ๋ฆฝํธ๊ฐ ๋ก๋๋ ์ถ์ฒ์ ์์ฒญ์ด ๋ณด๋ด์ง๋ ์ถ์ฒ๊ฐ ๋์ผํด์ผ๋ง ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋ค. ๋ค๋ฅธ ์ถ์ฒ์ ๋ฆฌ์์ค์ ๋ํ ์์ฒญ์ ๋ณด์์์ ์ด์ ๋ก ๋ธ๋ผ์ฐ์ ์ ์ํด ์ฐจ๋จ๋๋ค.
Client-Side Rendering (CSR - ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง)
- ํด๋ผ์ด์ธํธ ์ธก์์ ๋ ๋๋ง๋๋ ๋ฐฉ์
- ์ด๊ธฐ ํ์ด์ง ๋ก๋ ์ ์๋ฒ๋ก๋ถํฐ HTML, CSS, JavaScript ํ์ผ ๋ฑ ๊ธฐ๋ณธ์ ์ธ ๋ฆฌ์์ค๋ฅผ ๋ฐ์ ํ, ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )์์ JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ๋์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ํ๋ฉด์ ๋ ๋๋ง
- ๋น ๋ฅธ ์ด๊ธฐ ๋ก๋ ์๋
- ์ด๊ธฐ ๋ก๋ ์ดํ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ค๋ ค์ผ ํ ์ ์๋ค.
- ์ฌ์ฉ์์์ ์ํธ์์ฉ์ด ๋น ๋ฅด๊ณ ๋ถ๋๋ฝ๋ค.
Server-Side Rendering (SSR - ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง)
- SSR์ ์๋ฒ ์ธก์์ ๋ ๋๋ง๋๋ ๋ฐฉ์
- ์๋ฒ์์ HTML์ ๋์ ์ผ๋ก ์์ฑํ์ฌ ์์ ํ HTML ํ์ด์ง๋ฅผ ํด๋ผ์ด์ธํธ์ ์ ๊ณต
- ์ด๊ธฐ ํ์ด์ง ๋ก๋ฉ ์๋๊ฐ ๋น ๋ฅด๋ค. ์ฌ์ฉ์๋ ์์ ํ ํ์ด์ง๋ฅผ ๋ ๋นจ๋ฆฌ ๋ณผ ์ ์๋ค.
- ๋ง์ ์์ฒญ์ ์ฒ๋ฆฌํ ๋ ์๋ฒ ๋ถํ๊ฐ ๋์์ง ์ ์๋ค.
- ์ฌ์ฉ์์๊ฒ ๋ ๋๋ง๋ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ๊น์ง ์ผ๋ถ ์๊ฐ์ด ์์๋ ์ ์๋ค.