Spring8 [SpringBoot] HTML form ์ ์ก vs JavaScript๋ก JSON ์ ์ก ๐งฉ 1. HTML ์ ์ก ๋ฐฉ์๐น ๊ฐ์๋ธ๋ผ์ฐ์ ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ ํผ ์ ์ก ๊ธฐ๋ฅ ์ฌ์ฉ ํ๊ทธ์ action๊ณผ method ์์ฑ์ ์ด์ฉํด ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ก์ ์ก ํ์์ ๊ธฐ๋ณธ์ ์ผ๋ก application/x-www-form-urlencoded ๋๋ multipart/form-data (ํ์ผ ์ ๋ก๋ ์)๐น ์์ ์ฝ๋ ์์ด๋: ๋น๋ฐ๋ฒํธ: ํ์๊ฐ์ ๐น ์๋ฒ (Spring Boot Controller)@ReauireArgsConstructor@Controllerpublic class UserController { private final UserService userservice; @PostMapping("/user") public String signup(AddUserReq.. 2025. 11. 2. [SpringBoot] servlet-context.xml, root-context.xml, pom.xml, web.xml ์ฐจ์ด์ 1. root-context.xml์ ์ญํ root-context.xml์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒด์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ๋๋ Bean์ ์ ์ํ๋ ์คํ๋ง ์ค์ ํ์ผ์ ๋๋ค. ์ฌ๊ธฐ์๋ ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๋ ์๋น์ค(@Service), ๋ฐ์ดํฐ ์ก์ธ์ค๋ฅผ ์ฒ๋ฆฌํ๋ DAO/Repository(@Repository), ๊ณตํต์ ์ธ ์ ํธ๋ฆฌํฐ ๋ฑ์ ์ ์ํฉ๋๋ค.์์:์๋น์ค ๊ณ์ธต (@Service)๋ฐ์ดํฐ ์ ๊ทผ ๊ณ์ธต (@Repository)์์ธ ์ฒ๋ฆฌ, ๊ณตํต ์ปดํฌ๋ํธ๋ค (@Component)root-context.xml ์์ : --> 2. servlet-context.xml์ ์ญํ servlet-context.xml์ Spring Web MVC ์ ํ๋ฆฌ์ผ์ด์ ์์ ์น ๊ด๋ จ ์ค์ ์ ์ฒ๋ฆฌํ๋ ํ.. 2025. 1. 12. [SpringBoot] ์ํฐํฐ int VS Integer ํ์ ์ฐจ์ด int ํ์ ์ ๊ธฐ๋ณธํ์ ์ด๊ณ , Integerํ์ ์ ๋ํผํด๋์ค์ด๋ค.๋ง์ฝ ๋๋ฉ์ธ์ null์ด ๋ค์ด์จ๋ค๋ฉด intํ์ ์ ์๋ฌ์ด๊ณ , Integerํ์ ์ null๊ฐ ์ผ๋ก ๋ฐ์๋ค์ธ๋ค.๋ฐ๋ผ์, ๊ฐ๊ฒฉ์ด ์์ ๋ null๋ก ํ๊ณ ์ถ์ผ๋ฉด Integerํ์ ์ผ๋ก ์ ์ธํ๋ฉด ๋๊ณ , @Column private Integer price; //๊ฐ๊ฒฉ0์ผ๋ก ํ๊ณ ์ถ์ผ๋ฉด int ํ์ ์ผ๋ก ํ๋ฉด ๋๋ค.๋๊ฐ ํ์ฉX์ด๋ฉด int๋ก ํด์ @Column(nullable = false) private int price; //๊ฐ๊ฒฉ์ด๋ ๊ฒ ํ๋ฉด ๋๋ค. 2024. 4. 6. window.location๊ณผ redirect ์ฐจ์ด 1. ์๋์ฐ ๋ก์ผ์ด์ ์ ํตํ ํ์ด์ง ์ด๋ (Window Location Redirect): ์ฅ์ : ํด๋ผ์ด์ธํธ ์ธก์์ ์ฒ๋ฆฌ๋๋ฏ๋ก ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด์ง ์์ต๋๋ค. ๋น ๋ฅด๊ณ ๊ฐํธํ๊ฒ ํ์ด์ง๋ฅผ ์ด๋ํ ์ ์์ต๋๋ค. ๋จ์ : ํ์ด์ง ์ด๋ ํ ์๋ก๊ณ ์นจ์ ํตํด ์ต์ ๋ฐ์ดํฐ๋ฅผ ์ป๊ธฐ ์ํด ์ถ๊ฐ์ ์ธ ์์ ์ด ํ์ํ ์ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ JavaScript๋ฅผ ๋นํ์ฑํํ ๊ฒฝ์ฐ์๋ ์๋ํ์ง ์์ ์ ์์ต๋๋ค. 2. ์๋ฒ์์์ ๋ฆฌ๋ค์ด๋ ํธ (Server-side Redirect): ์ฅ์ : ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ์ ์ ํ ์ํ ์ฝ๋์ ํจ๊ป ํ์ด์ง ์ด๋์ ์ง์ํ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ ์ธก์์ JavaScript๋ฅผ ์ฌ์ฉํ์ง ์์๋ ์๋ํฉ๋๋ค. ๋จ์ : ํด๋ผ์ด์ธํธ ์ธก์ ์ถ๊ฐ ์์ฒญ์ด ํ์ํ๋ฏ๋ก ์ฝ๊ฐ์ ์ฑ๋ฅ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์๋ฒ ์ธก.. 2024. 2. 25. [SpringBoot] ๊ตฌ๊ธ ๋ก๊ทธ์ธ api ํ ์คํธ ์ฌ์ฉ์ ์ถ๊ฐ ๊ตฌ๊ธ ๋ก๊ทธ์ธ ๋ง๋ค๊ณ , ๊ตฌ๊ธ ๋ก๊ทธ์ธ ๋ฒํผ ํด๋ฆญ ํ๋๋ Google์ ์ธ์ฆ ์ ์ฐจ๋ฅผ ์๋ฃํ์ง ์์์ต๋๋ค. ์ฑ์ ํ์ฌ ํ ์คํธ ์ค์ด๋ฉฐ ๊ฐ๋ฐ์๊ฐ ์น์ธํ ํ ์คํฐ๋ง ์ฑ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ก์ธ์คํ ์๊ฒฉ์ด ์๋ค๊ณ ์๊ฐ๋๋ฉด ๊ฐ๋ฐ์์๊ฒ ๋ฌธ์ํ์ธ์. ๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ๋์ค๊ธธ๋ ํ ์คํธ ์ฌ์ฉ์ ์ค์ ํ๋๊ฐ ๋น ์ก๋ค. OAuth ๋์ ํ๋ฉด -> ํ ์คํธ์ฌ์ฉ์ ADD USERS ํด๋ฆญํด์ ์ด๋ฉ์ผ ์ถ๊ฐ 2024. 2. 18. [SpringBoot] ์คํ๋ง์์ Bean ์ฃผ์ ์ @Autowired ์ฌ์ฉ์ ๊ถ์ฅํ์ง ์๋ ์ด์ Spring์์ ๊ด๋ฆฌํ๋ Bean ๊ฐ์ฒด ์ฃผ์ ๋ฐฉ๋ฒ์๋ 3๊ฐ์ง๊ฐ ์๋ค. (Controller, Service์์ DI ๋ฐ์)@Autowiredsetter์์ฑ์์ด ์ค ๊ฐ์ฅ ๊ถ์ฅํ๋ ๋ฐฉ์์ ์์ฑ์๋ก ์ฃผ์ ๋ฐ๋ ๋ฐฉ์์ด๋ค.(@Autowired๋ ๊ถ์ฅํ์ง ์๋๋ค.) ์ฆ, ์์ฑ์๋ก Bean ๊ฐ์ฒด๋ฅผ ๋ฐ๋๋กํ๋ฉด @Autowired์ ๋์ผํ ํจ๊ณผ๋ฅผ ๋ณผ ์ ์๋ค. ์์ฑ์๋ @RequiredArgsConstructor์ด final์ด ์ ์ธ๋ ๋ชจ๋ ํ๋๋ฅผ ์ธ์๊ฐ์ผ๋ก ํ๋ ์์ฑ์๋ฅผ ๋กฌ๋ณต์ @RequiredArgsConstructor๊ฐ ๋์ ํด์ค๋ค. (์์ฑ์๋ฅผ ์ง์ ์ ์ฐ๊ณ ๋กฌ๋ณต ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ๋ ์ด์ ๋ ํด๋น ํด๋์ค์ ์์กด์ฑ ๊ด๊ณ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์์ฑ์ ์ฝ๋๋ฅผ ๊ณ์ํด์ ์์ ํ๋ ๋ฒ๊ฑฐ๋ก์์ ํด๊ฒฐํ๊ธฐ ์ํจ์ด๋ค. @RequiredA.. 2024. 2. 15. [SpringBoot] JUnit ํ ์คํธ์์ @Slf4j ์ฌ์ฉํ๊ธฐ JUnit ํ ์คํธ์์ @Slf4j ์ฌ์ฉํ๋ ค๋ฉด build.gradle ํ์ผ์ ์๋ ๋ด์ฉ์ ์ถ๊ฐํด์ผ ํ๋ค. testAnnotationProcessor 'org.projectlombok:lombok' // ํ ์คํธ๋ฅผ ์ํ ์ธํ @Slf4j testImplementation 'org.projectlombok:lombok' // ํ ์คํธ๋ฅผ ์ํ ์ธํ @Slf4j ๊ทธ๋ฌ๋ฉด ์ ์์ ์ผ๋ก ๋ก๊ทธ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.์๋๋ @Slf4j ์ฌ์ฉํ ์์๋ค.package com.pnow.repository;import com.pnow.domain.Category;import com.pnow.domain.CategoryType;import lombok.extern.slf4j.Slf4j;import org.junit.jupiter.api... 2024. 2. 14. [SpringBoot] jpa ์ํฐํฐ 3์ ๋ jakarta ํจํค์ง ์ฃผ์์ฌํญ jpa ์ํฐํฐ ์ค์ ํ ๋ ํจํค์ง๋ฅผ ๋ฒ์ ๋ณ๋ก ๋ค๋ฅด๊ฒ ์จ์ผ ํ๋ค. ์คํ๋ง๋ถํธ 2.x ๋ฒ์ import javax.* ์คํ๋ง๋ถํธ 3.x ๋ฒ์ import jakarta.* jpa 3.x๋ฒ์ jakarta ํจํค์ง ์์:package com.mysite.sbb;import java.time.LocalDateTime;import jakarta.persistence.Column;import jakarta.persistence.Entity;import jakarta.persistence.GeneratedValue;import jakarta.persistence.GenerationType;import jakarta.persistence.Id;import lombok.Getter;import lombok.Setter;@G.. 2024. 2. 11. ์ด์ 1 ๋ค์