๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

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.