springboot16 [SpringBoot] ๋ก๊ทธ(Log) @Slf4j ๋ก๊ทธ (Log) ๋ก๊ทธ(Log)๋ ์์คํ ์ด ๋์ํ ๋ ์์คํ ์ ์ํ ๋ฐ ๋์ ์ ๋ณด๋ฅผ ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ผ ๊ธฐ๋กํ๋ ๊ฒ ๋ก๊ทธ ๋ ๋ฒจ (Log Level)๋ก๊ทธ๋ ๋ก๊ทธ ๋ ๋ฒจ์ ๋ฐ๋ผ ์ถ๋ ฅ๋ ์ง ๋์ด๊ฐ์ง ๊ฒฐ์ ํ๋ค. ๋ก๊ทธ ๋ ๋ฒจ์ ๋ฐ๋ฅธ ์ฌ๊ฐ๋ ์์ค์ ์๋์ ๊ฐ๋ค.Trace > Debug > Info > Warn > Error > Fatal๋ก๊ทธ ๋ ๋ฒจ์ค๋ช ์์TRACE๊ฐ์ฅ ์์ธํ ์ ๋ณด(๋ฉ์๋ ํธ์ถ ๋จ์)๋ฉ์๋ ์ง์ /๋ฐํ ์์ ๋ฑDEBUG๋๋ฒ๊น ์ฉ ์์ธ ์ ๋ณด๋ณ์ ๊ฐ, ๋ก์ง ํ๋ฆ ์ถ์ INFO์ผ๋ฐ์ ์ธ ์ ๋ณด์๋น์ค ์์, ์์ฒญ ์ฒ๋ฆฌ ์๋ฃWARN๊ฒฝ๊ณ ์ํฉ(์๋ฌ๋ ์๋์ง๋ง ์ฃผ์ ํ์)์ฑ๋ฅ ์ ํ, ์์์น ๋ชปํ ์ ๋ ฅERROR์ค๋ฅ ๋ฐ์์์ธ, ์์คํ ์ฅ์ ๐ก API๋ฅผ ๊ฐ๋ฐํ ๋๋ ๋ก๊ทธ ๋ ๋ฒจ์ DEBUG๋ก ์ค์ , ๋ฐฐํฌ์์๋ INFO๋ Warn ๋ ๋ฒจ๋ก.. 2025. 11. 9. [SpringBoot] AOP(Aspect Oriented programing, ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ) AOP(Aspect Oriented programing, ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ) ์ด๋?๊ณตํต ๊ด์ฌ์ฌ(Cross-Cutting Concern) ๋ฅผ ๋ชจ๋ํํ์ฌ ์ฝ๋์ ์ค๋ณต์ ์ค์ด๊ณ , ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๋ถ๋ฆฌํ๋ ๊ธฐ์ ๋ก๊ทธ ์ถ๋ ฅํธ๋์ญ์ ๊ด๋ฆฌ์ฑ๋ฅ ์ธก์ (๋ฉ์๋ ์คํ ์๊ฐ)์์ธ ์ฒ๋ฆฌ๊ถํ ๊ฒ์ฌ์ด๋ฐ ๊ฒ๋ค์ ๊ฐ ๋ฉ์๋๋ง๋ค ์์ฑํ๋ฉด ์ค๋ณต ์ฝ๋๊ฐ ์๊ธฐ๊ธฐ ๋๋ฌธ์,AOP๋ฅผ ์ฌ์ฉํ๋ฉด ๊ณตํต ๋ก์ง์ ํ ๊ณณ์ ๋ชจ์๋๊ณ ์๋์ผ๋ก ์ ์ฉํ ์ ์๋ค. AOP ํต์ฌ ๊ฐ๋ ๊ฐ๋ ์ค๋ช Aspect (๊ด์ )๊ณตํต ๊ด์ฌ์ฌ๋ฅผ ๋ชจ๋ํํ ๊ฒ (์: ๋ก๊น , ํธ๋์ญ์ ๋ฑ)Join Point (์กฐ์ธ ํฌ์ธํธ)AOP๊ฐ ์ ์ฉ๋ ์ ์๋ ์ง์ (๋ฉ์๋ ํธ์ถ ๋ฑ)Advice (์ด๋๋ฐ์ด์ค)์ค์ ๋ก ์คํ๋ ๊ณตํต ๋ก์ง (Aspect ์์ ๋ฉ์๋)Pointcut (ํฌ์ธํธ์ปท)์ด๋ค Joi.. 2025. 11. 8. [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] RESTful API RESTful API๋ REpresentational State Transfer (์ํ ์ ๋ฌ ํํ) ์ํคํ ์ฒ ์คํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ํ ์น API์ ๋๋ค. REST๋ ์น ์๋น์ค์ ์ค๊ณ๋ฅผ ์ํ ์ํคํ ์ฒ์ ๊ท์น๊ณผ ์ ์ฝ์ ๋ฐ๋ฅด๋ฉฐ, HTTP ํ๋กํ ์ฝ์ ํตํด ์์(Resource)์ ์ ์ํ๊ณ , ์ด๋ฅผ HTTP ๋ฉ์๋(GET, POST, PUT, DELETE ๋ฑ)๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ๋๋ค.RESTful API์ ์ฃผ์ ํน์ง์์(Resource): RESTful API์์๋ "์์"์ด ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ ์ ๋๋ค. ์์์ ์น์์ ์ฒ๋ฆฌํ๊ณ ์ ํ๋ ๋์์ด๋ฉฐ, URL์ ํตํด ์๋ณ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, "์ฑ "์ด๋ผ๋ ์์์ ๋ค๋ฃฌ๋ค๋ฉด, ๊ทธ ์ฑ ์ http://example.com/books/123์ ๊ฐ์ด URL๋ก ํํ๋ฉ๋๋ค. ์ฌ๊ธฐ์ 123์ ํน์ ์ฑ ์ .. 2025. 1. 14. [SpringBoot] ์ฟผ๋ฆฌ์คํธ๋ง(Query String)๊ณผ ์ฃผ์๋ณ์๋งคํ(Path variable) Spring Boot์์ URL ๋งคํ์ ์ฌ์ฉํ ๋, ์ฟผ๋ฆฌ์คํธ๋ง๊ณผ Path Variable (/book/{bookId})์ URL์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๋ ๊ฐ์ง ์ฃผ์ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด๋ค์ ์ฐจ์ด์ ๊ณผ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ค๋ช ํ๊ฒ ์ต๋๋ค.1. ์ฟผ๋ฆฌ ์คํธ๋ง (Query String)์ฟผ๋ฆฌ ์คํธ๋ง์ URL์์ "?" ๊ธฐํธ ๋ค์ key-value ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ์์ ๋๋ค. ์ฌ๋ฌ ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ **"&"**๋ก ๊ตฌ๋ถํ์ฌ ์ ๋ฌํ ์ ์์ต๋๋ค. ์ฟผ๋ฆฌ ์คํธ๋ง์ URL์ ๋์ ์์นํ๋ฉฐ, ์๋ฒ์์ ํด๋น ํ๋ผ๋ฏธํฐ๋ค์ ์ถ์ถํ์ฌ ์ฒ๋ฆฌํฉ๋๋ค.์์:http://example.com/books?title=java&author=John์ URL์์ ์ฟผ๋ฆฌ ์คํธ๋ง์ ?title=java&author=John ๋ถ๋ถ์ ๋๋ค. ์ด URL์ title๊ณผ.. 2025. 1. 14. [SpringBoot] @LoginUser ์ด๋ ธํ ์ด์ SessionUser user = (SessionUser) httpSession.getAttribute("user");@LoginUser ์ด๋ ธํ ์ด์ ์ ๋งค๋ฒ ์ธ์ ์ ์ ์ฅ๋ ์ ๋ณด๋ฅผ ๋ถ๋ฌ ๋ค์ด๋ ์ ์ฝ๋์ ์ค๋ณต์ ์ค์ฌ์ค๋ค.์ฌ์ฉ๋ฒ์ ์๋์ ๊ฐ๋ค. 1) @LoginUser ์ด๋ ธํ ์ด์ ์์ฑpackage com.loosie.book.springboot.config.auth;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target(ElementType.PARAMETER)@Retenti.. 2024. 10. 10. [SpringBoot] ์๋ฒ ๋ฐฐํฌ ์ค๋จ 1. ์ฌ์ฉ์ค์ธ ํฌํธ๋ฒํธ๋ก PID๋ฒํธ ํ์ธlsof -i :9091 2. kill PID ๋ช ๋ น์ด๋ก ์๋ฒ ๊ฐ์ ์ข ๋ฃkill 4033 2024. 4. 30. [SpringBoot] ์คํ๋ง๋ถํธ 2์ ๋์ swagger 3์ ๋ ์ฐ๊ฒฐ ์คํ๋ง๋ถํธ 2.7 ๋ฒ์ gradleSwagger 3.0.01. build.gradle์ ์์กด์ฑ ์ถ๊ฐ// Swagger implementation 'io.springfox:springfox-boot-starter:3.0.0' 2. application.properties์ ์ค์ ์ถ๊ฐ# Swaggerspring.mvc.pathmatch.matching-strategy=ant_path_matcher 3. SwaggerConfig ์ถ๊ฐpackage com.pnow.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.docu.. 2024. 4. 14. [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. ์ด์ 1 2 ๋ค์