Spring7 [ Spring ] ๋ก๊ทธ ๋ ๋ฒจ(Log Level) ์๋ฒฝ ์ ๋ฆฌ! ๋ก๊ทธ ๋ ๋ฒจ(Log Level)์ด๋?!๋ก๊ทธ ๋ฉ์์ง์ ์ค์๋๋ฅผ ๋ํ๋ด๋ ์์ค์ ์๋ฏธํ๋ค.๋ก๊น ์์คํ ์์ ์ฌ์ฉ๋๋ฉฐ, ๋ก๊ทธ ๋ฉ์์ง์ ์ค์๋์ ๋ฐ๋ผ ํด๋น ๋ฉ์์ง๋ฅผ ๊ธฐ๋กํ ์ง ๊ฒฐ์ ํ๋ ๋ฐ ์ฌ์ฉํ๋ค.๋ก๊ทธ ๋ ๋ฒจ(Log Level)1. TRACE๊ฐ์ฅ ์์ธํ ๋ก๊ทธ ๋ ๋ฒจ์ด๋ค.์ ํ๋ฆฌ์ผ์ด์ ์ ์คํ ํ๋ฆ๊ณผ ๋๋ฒ๊น ์ ๋ณด๋ฅผ ์์ธํ๊ฒ ๊ธฐ๋กํ๋ค.์ฃผ๋ก ๋๋ฒ๊น ์ ์งํํ ๋ ๋ง์ด ์ฌ์ฉ๋๋ค.2. DEBUG๋๋ฒ๊น ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ค. ๊ฐ๋ฐ ๋จ๊ณ์์ ์์ธํ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ๋ค.์ ํ๋ฆฌ์ผ์ด์ ์ ๋ด๋ถ ๋์์ ์ดํดํ๊ณ ๋ฌธ์ ๋ฅผ ๋ถ์ํ๋๋ฐ ๋์์ ์ค๋ค.3. INFO์ ๋ณด์ฑ ๋ฉ์์ง๋ฅผ ๊ธฐ๋กํ๋ค.์ ํ๋ฆฌ์ผ์ด์ ์ ์ฃผ์ ์ด๋ฒคํธ๋ ์คํ ์ํ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ค.4. WARN๊ฒฝ๊ณ ์ฑ ๋ฉ์์ง๋ฅผ ๊ธฐ๋กํ๋ค.์์์น ๋ชปํ ๋ฌธ์ ๋ ์ ์ฌ์ ์ธ ์ค๋ฅ ์ํฉ์ ์๋ฆฌ๋ ๋ฉ์์ง์ด๋ค.์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ์.. 2025. 3. 2. [ Spring ] AOP๋ฅผ ์ฌ์ฉํด์ ์ฝ๋ ๊ฐ๋ ์ฑ์ ๋์ฌ๋ณด์! ๊ณต๋ถํ๊ฒ ๋ ๊ณ๊ธฐํ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ๋์, ํ์์ด AOP(Aspect-Oriented Programming)๋ฅผ ํ์ฉํด ๊ถํ ๊ฒ์ฌ๋ฅผ ๊ตฌํํ๋ ๋ชจ์ต์ ๋ณด๊ฒ ๋์๋ค. ์ฒ์์๋ AOP๋ฅผ ์ด์ฉํด ๋ณต์กํ ๋ก์ง์ ๊ฐ๊ฒฐํ๊ฒ ์ฒ๋ฆฌํ๋ ๋ชจ์ต์ด ๋๋ผ์ ๊ณ , ๋์์ ๋ด๊ฐ ์ง์ ๊ตฌํํ๊ธฐ์ ์ด๋ ต๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ํ์ง๋ง ํ์์ ์ฝ๋๋ฅผ ํจ๊ป ๋ถ์ํ๋ฉฐ ์๋ ๋ฐฉ์์ ์ดํดํ๋ ๊ณผ์ ์์, "๋๋ ๋ ธ๋ ฅํ๋ฉด ์ถฉ๋ถํ AOP๋ฅผ ํ์ฉํ ์ ์๊ฒ ๋ค"๋ ์์ ๊ฐ์ด ์๊ฒผ๋ค.์ดํ, AOP์ ๊ฐ๋ ๊ณผ ํ์ฉ ์ฌ๋ก๋ฅผ ๋ ๊น์ด ์ดํดํ๊ณ ์ถ๋ค๋ ์ด์ ์ด ์๊ฒผ๊ณ , ๊ด๋ จ ์๋ฃ๋ฅผ ์ฐพ์๋ณด๋ฉฐ ํ์ต์ ์์ํ๋ค. ์ด๋ฒ ๊ฒฝํ์ ๋จ์ํ ์๋ก์ด ๊ธฐ์ ์ ๋ฐฐ์ฐ๋ ๊ฒ์ ๋์ด, ๋ด๊ฐ ๊ธฐ์ ์ ์ผ๋ก ์ฑ์ฅํ ์ ์๋ค๋ ๊ฐ๋ฅ์ฑ์ ํ์ธํ ๊ณ๊ธฐ๊ฐ ๋์๋ค.์ฝ๋๋ฅผ ์์ฑํ ๋ ๊ฐ์ฅ ์ค์ํ ์์๋ฐ๋ก ๊ฐ๋ ์ฑ.. 2025. 1. 15. ์ฃผํน๊ธฐ ์ ๋ฌธ/์๋ จ_Day 10 ์ค๋ ํ ๊ณต๋ถ ๐ง ๊ฐ์ธ ๊ณผ์ Lv 1 - JDBC๋ก ๋ฐ๊พธ๊ธฐ ์ค๋ ์ป์ ๋ด์ฉ ์ ๋ฆฌ โ๏ธ ์ค๋ ์งํํ๋ ๊ณผ์ ์งํ ์ํฉ์ ์ ๋ฆฌํด ๋์ผ๊ฒ ๋ค!์๋ฃ๊ตฌ์กฐ๋ก ๋ค ์์ฑํ๋ ๊ณผ์ ๋ฅผ JDBC๋ก ๋ฐ๊พธ๊ธฐ ์์ํ๋ค.์ผ์ ์์ฑ ์์ - Todo(@Setter ์ ๊ฑฐ), TodoScheduleRepository(์ญ์ ), JdbcTemplateRepository(์์ฑ ๋ฐ createTodo ๋ฉ์๋ ์์ ), TodoScheduleService(createTodoService ๋ฉ์๋ ์์ ), TodoResponseDto(@AllArgsConstructor Annotation ์ถ๊ฐ)์ ์ฒด ์ผ์ ์กฐํ ์์ - TodoScheduleService(searchAllTodoService ๋ฉ์๋ ์์ ), TodoScheduleController(s.. 2024. 12. 8. ์ฃผํน๊ธฐ ์ ๋ฌธ/์๋ จ_Day 6 ์ค๋ ํ ๊ณต๋ถ ๐ง ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ (Java) 1๋ฌธ์ ํ์ด & ๋ธ๋ก๊ทธ ์ ๋ฆฌ์์ค๋ณ ํ์ต๋ฐ - ์คํ ๋ค๋๋ฐ ๋ฃ๊ธฐ์คํ๋ง 6์ฃผ์ฐจ ๊ฐ์ ๋ฃ๊ธฐTIL ๋ธ๋ก๊ทธ ์์ฑ ์ค๋ ์ป์ ๋ด์ฉ ์ ๋ฆฌ โ๏ธ๊ฐ๋ ์ ๋ํด์๋ ๋ฐ๋ก ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด ๋ฌ์ ํํฐ๋๊ป ์ฐพ์๊ฐ์ ์ป์ ๊ฟํ์ ์ ์ด์ผ๊ฒ ๋ค!๋ฌธ๋ฒ์ ์ธ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ฉด ์ฝ๋๋ฅผ ๊ณ ์ณ์ ํด๊ฒฐํ ์ ์๋ค.ํ์ง๋ง ๋ฌธ๋ฒ์ ์ธ ์๋ฌ๊ฐ ์๋ ๋ค๋ฅธ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ฉด ์ด๋ ๊ฒ ํด๊ฒฐํ ์ ์๋ค..gradle, .idea, build ํ์ผ์์ ๋ฌธ์ ๊ฐ ์๊ฒผ์ ์ ์์ผ๋ฏ๋ก ํด๋๋ฅผ ์ญ์ ํ ๋ค์ ์คํํด ๋ณธ๋ค.๊ทธ๋๋ ๋์ง ์๋๋ค๋ฉด ์บ์๋ฅผ ์ญ์ ํ ํ ๋ค์ ์คํํด ๋ณธ๋ค.IDE ์์ฒด์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๋ ์ข ์ข ์์ด์ IntelliJ ์ฌ๋ถํ , ์ปดํจํฐ ์ฌ๋ถํ ๋ฑ๋ฑ ์ข ๋ฃ ํ ๋ค์ ์ ์ํ๊ณ ์คํํ๋ฉด ๋๋ ๊ฒฝ์ฐ๋ ๋ง๋ค.์ค์ต ๊ฐ์๋ฅผ.. 2024. 12. 4. ์ฃผํน๊ธฐ ์ ๋ฌธ/์๋ จ_๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทผ ๊ธฐ์ ์ ์ฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทผ ๊ธฐ์ ์ ์ฉํด ๋ณด๊ธฐ 1. ํ๋ก์ ํธ ์ธํ ๋๋ณด๊ธฐbuild.gradle ์์กด์ฑ ์ถ๊ฐJDBC Template, MySQL ์์กด์ฑ ์ถ๊ฐ// MySQLimplementation 'mysql:mysql-connector-java:8.0.28'// JDBC Templateimplementation 'org.springframework.boot:spring-boot-starter-data-jdbc'ํ๋ก์ ํธ ์ค์ IntelliJ Database ์ฐ๋ํ๊ธฐCREATE TABLE memo( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '๋ฉ๋ชจ ์๋ณ์', title VARCHAR(100) NOT NULL COMMENT '์ ๋ชฉ', conte.. 2024. 12. 4. ์ฃผํน๊ธฐ ์ ๋ฌธ/์๋ จ_3 Layer Architecture Layered Architecture ์ค์ต0. ํ๋ก์ ํธ ์์ฑ๋๋ณด๊ธฐํ๋ก์ ํธ ์์ฑ๋ฉ๋ชจ์ฅ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๋์ ๋์ผํ๊ฒ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ค.๊ผญ ํ์ธํด์ผ ํ ์ฌํญName: layeredLanguage: JavaBuild system: Gradle - GroovyJDK: 17ํ๋ก์ ํธ ๊ฒฝ๋ก(Location)๋ ์ด์ ์ ๋ง๋ค์๋ workspace ํด๋๋ก ์ง์ ์ด๊ธฐ ํด๋์ค ์์ฑMemo@Getter@AllArgsConstructorpublic class Memo { private Long id; private String title; private String contents; public void update(MemoRequestDto dto) { this.title = dto.getT.. 2024. 12. 4. ์ด์ 1 2 ๋ค์