λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
λ°˜μ‘ν˜•

IT Blog404

[Spring] - λ‘œκΉ…: Log4j, Log4j2, Slf4j, Logback πŸ“Ž Logging - Log4j, Log4j2, Slf4j, Logback 둜그(Log) λŠ” 기둝을 λ‚¨κΈ°λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€. 둜그λ₯Ό 톡해 μ†Œν”„νŠΈμ›¨μ–΄μ˜ κ°œλ°œμ΄λ‚˜ 운영 μ‹œ λ°œμƒν•˜λŠ” λ¬Έμ œμ μ„ νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 였λ₯˜κ°€ λ°œμƒν–ˆμ„λ•Œ κ°€μž₯ λ¨Όμ € ν™•μΈν•˜λŠ” 것이 둜그λ₯Ό λ³΄λŠ” κ²ƒμ΄λ―€λ‘œ, 둜그λ₯Ό λ‚¨κΈ°λŠ” 것은 ꡉμž₯히 μ€‘μš”ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. μ‹€μ œ μ†Œν”„νŠΈμ›¨μ–΄μ—μ„œ λ¬Έμ œκ°€ λ°œμƒν–ˆμ„λ•Œ, μ μž¬μ μ†Œμ— λ‘œκ·Έκ°€ 좜λ ₯이 λ˜κ³ μžˆλ‹€λ©΄ 문제의 원인에 λŒ€ν•΄ μ •ν™•ν•œ νŒŒμ•…μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€. Javaμ—μ„œλŠ” Log4j, Log4j2, Slf4j, Logback λ“± λ‹€μ–‘ν•œ λ‘œκΉ… ν”„λ ˆμž„μ›Œν¬κ°€ μ‘΄μž¬ν•˜λŠ”λ°μš”, 이에 λŒ€ν•΄ κ°„λž΅νžˆ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. πŸ’» Log4j Apache Log4j λŠ” λ‹€λ₯Έ λ‘œκΉ… ν”„λ ˆμž„μ›Œν¬μ— λΉ„ν•΄ μ•„νŒŒμΉ˜ μž¬λ‹¨μ˜ κ°€μž₯ 였래된 ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€. μ½˜μ†” 및.. 2021. 9. 15.
μΈν…”λ¦¬μ œμ΄(IntelliJ) - VisualVM μ„€μΉ˜ 및 μ—°λ™ν•˜κΈ° πŸ“Ž μΈν…”λ¦¬μ œμ΄(IntelliJ) - VisualVM μ„€μΉ˜ 및 μ—°λ™ν•˜κΈ° μ•ˆλ…•ν•˜μ„Έμš”, μ΄λ²ˆμ— 정리할 ν¬μŠ€νŒ…μ€ μΈν…”λ¦¬μ œμ΄ IDEμ—μ„œ VisualVM을 μ„€μΉ˜ν•˜κ³  연동해보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. VisualVM의 곡식 ν™ˆνŽ˜μ΄μ§€μ—μ„œλŠ” VisualVM을 λ‹€μŒκ³Ό 같이 μ„€λͺ…ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. VisualVM is a visual tool integrating commandline JDK tools and lightweight profiling capabilities. Designed for both development and production time use. -> VisualVM은 μ»€λ§¨λ“œλΌμΈ JDK 도ꡬ와 κ²½λŸ‰μ˜ ν”„λ‘œνŒŒμΌλ§ κΈ°λŠ₯을 ν†΅ν•©ν•˜λŠ” μ‹œκ°μ  λ„κ΅¬μž…λ‹ˆλ‹€. -> 개발 및 생산 μ‹œκ°„μ˜ μ‚¬μš©μ„ μœ„ν•΄ λ””μžμΈμ΄ λ˜μ—ˆμŠ΅λ‹ˆλ‹€ VIsu.. 2021. 9. 14.
[Spring Data MongoDB] - Auto Increment Sequence μ΄ˆκΈ°ν™”ν•˜κΈ° πŸ“Ž [Spring Data MongoDB] - Auto Increment Sequence μ΄ˆκΈ°ν™”ν•˜κΈ° μ•ˆλ…•ν•˜μ„Έμš”, μ €λ²ˆ μ‹œκ°„μ—λŠ” Spring Data MongoDBμ—μ„œ Auto Increment Sequence λ₯Ό λ§Œλ“œλŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄μ•˜μŠ΅λ‹ˆλ‹€. κΈ°μ‘΄ λ°μ΄ν„°λ² μ΄μŠ€ μ‘΄μž¬ν•˜λŠ” 값듀을 μ œκ±°ν•˜λ©΄μ„œ Auto Increment 값도 μ΄ˆκΈ°ν™” ν•΄μ•Ό ν•˜λŠ” 상황이 λ°œμƒν–ˆμ—ˆμŠ΅λ‹ˆλ‹€. MySQLμ—μ„œλŠ” λ‹¨μˆœ 쿼리문으둜 Auto Incrementλ₯Ό μ΄ˆκΈ°ν™” ν•  수 μžˆλŠ”λ°μš”, MongoDBμ—μ„œλŠ” ꡬ글링을 해봐도 μžλ£Œκ°€ 잘 λ‚˜μ˜€μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.(검색 λŠ₯λ ₯이 λΆ€μ‘±ν•΄μ„œ...) λ”°λΌμ„œ μ–΄λ–»κ²Œ μ΄ˆκΈ°ν™”λ₯Ό ν•  수 μžˆμ„μ§€ 고민을 ν•˜λ‹€κ°€ 두 가지 방법을 μ°Ύκ²Œλ˜μ—ˆλŠ”λ°μš”, μƒκ°μ™Έλ‘œ 훨씬 κ°„λ‹¨ν•˜κ²Œ ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 1) Sequence λ©”μ†Œλ“œλ₯Ό μ¦κ°€μ‹œ.. 2021. 9. 11.
[Spring Data MongoDB] Auto-Increment Sequence λ§Œλ“€κΈ° πŸ“Ž Spring Data MongoDB Auto-Increment Sequence λ§Œλ“€κΈ° μ•ˆλ…•ν•˜μ„Έμš”, 이번 μ‹œκ°„μ— 정리할 λ‚΄μš©μ€ Spring Data MongoDBμ—μ„œ 데이터λ₯Ό μ‚½μž…ν•  λ•Œ λ§ˆλ‹€ μžλ™μœΌλ‘œ μ¦κ°€ν•˜λŠ” ν•„λ“œλ₯Ό 생성해보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή κΈ°λŠ₯은 MySQLμ—μ„œμ˜ AUTO INCREMENT와 λ™μΌν•˜λ‹€κ³  λ³΄μ‹œλ©΄ λ©λ‹ˆλ‹€. β€» Spring Data MongoDB의 경우 처음 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— ν‹€λ¦° λ‚΄μš©μ΄ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. Sequence Collection 생성 package com.juhyun.shorturl.entity.sequence; import lombok.Getter; import lombok.Setter; import org.springframework.data.annotation.Id; .. 2021. 9. 10.
Spring Validation - @NotNull, @NotEmpty, @NotBlank πŸ“Ž Spring Validation - @NotNull, @NotEmpty, @NotBlank μ•ˆλ…•ν•˜μ„Έμš”, 이번 μ‹œκ°„μ— 정리할 λ‚΄μš©μ€ spring-boot-starter-validation의 @NotNull, @NotEmpty, @NotBlank μ–΄λ…Έν…Œμ΄μ…˜ μž…λ‹ˆλ‹€. ν‰μ†Œ 도메인 ν΄λž˜μŠ€μ— μ œμ•½ 쑰건으둜 Validation을 μ‚¬μš©ν•˜λŠ”λ°, μœ„ μ–΄λ…Έν…Œμ΄μ…˜λ“€μ€ μ΄λ¦„λ§Œ λ΄μ„œλŠ” λΉ„μŠ·ν•œ 역할을 ν•  것 같은데 μ •ν™•νžˆ 무엇이 λ‹€λ₯Έμ§€ κΆκΈˆν•΄μ„œ ν¬μŠ€νŒ…μ„ ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. πŸ€” μ•„λž˜ 예제의 μ½”λ“œλŠ” κΉƒν—ˆλΈŒμ—μ„œ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€ :) μ˜μ‘΄μ„± μΆ”κ°€ - Maven org.springframework.boot spring-boot-starter-validation 2.5.4 μ˜μ‘΄μ„± μΆ”κ°€ - Gradle implementation 'o.. 2021. 9. 9.
Spring Boot + MockMvc ν…ŒμŠ€νŠΈ(feat. Kotlin) πŸ“Ž Spring Boot + MockMvc ν…ŒμŠ€νŠΈ μ•ˆλ…•ν•˜μ„Έμš”, 이번 μ‹œκ°„μ— 정리할 λ‚΄μš©μ€ μŠ€ν”„λ§ λΆ€νŠΈμ™€ MockMvcλ₯Ό ν†΅ν•œ GET, POST λ“±μ˜ APIλ₯Ό ν…ŒμŠ€νŠΈν•˜λŠ” 법에 λŒ€ν•΄ 정리해보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. 전체 μ½”λ“œλŠ” κΉƒν—ˆλΈŒμ—μ„œ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€ :) β€» ν¬μŠ€νŒ…μ— ν‹€λ¦° λ‚΄μš©μ΄ μ‘΄μž¬ν•˜λ©΄ 지적 λΆ€νƒλ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€! β˜… MockMvcλž€? MockMvcλŠ” Spring MVC의 ν…ŒμŠ€νŠΈ ν”„λ ˆμž„μ›Œν¬λ‘œ, κ°€μ§œ 객체λ₯Ό λ§Œλ“€μ–΄ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ„œλ²„μ— λ°°ν¬ν•˜μ§€ μ•Šκ³ λ„ Spring MVC의 λ™μž‘μ„ μž¬ν˜„ν•  수 μžˆλŠ” ν΄λž˜μŠ€μž…λ‹ˆλ‹€. 이λ₯Ό 톡해 κ°€μ§œμ˜ HTTP μš”μ²­μ„ μ»¨νŠΈλ‘€λŸ¬μ— 보내고 μ„œλ²„ λ‚΄μ—μ„œ 컨트둀러λ₯Ό μ‹€ν–‰ν•˜μ§€ μ•Šκ³  컨트둀러의 λ™μž‘μ„ ν…ŒμŠ€νŠΈν•  수 μžˆμŠ΅λ‹ˆλ‹€. MockMvcλ₯Ό μ‚¬μš©ν•¨μœΌλ‘œμ„œ μ‹€μ œ μ„œλ²„ ν™˜κ²½κ³Ό λ™μΌν•œ @SpringBoot.. 2021. 9. 7.
[MySQL] - νŠΈλžœμž­μ…˜μ˜ 격리 μˆ˜μ€€(Isolation level) πŸ“Ž κΈ€λ˜ 6κΈ° ν¬μŠ€νŒ… 1. λ―ΈμΉ˜λ„λ‘ λ”μ› λ˜ 7μ›”μ˜ 회고 2. μ‚¬μš©μžκ°€ κ²Œμ‹œλ¬Όμ„ μž‘μ„±ν•  λ•Œμ˜ νŠΈλžœμž­μ…˜ 처리 3. Spring AOP - (1) ν”„λ‘μ‹œ νŒ¨ν„΄, λ°μ½”λ ˆμ΄ν„° νŒ¨ν„΄ 4. [MySQL] - νŠΈλžœμž­μ…˜μ˜ 격리 μˆ˜μ€€(Isolation level) 5. Spring AOP - (2) AOP κ°œλ… 및 μ‹€μŠ΅ 6. μΈν…”λ¦¬μ œμ΄(IntelliJ) - 디버깅(Debugging) ν•˜κΈ° 7. [Java, λ””μžμΈνŒ¨ν„΄] - μ‹±κΈ€ν„΄ νŒ¨ν„΄(Singleton Pattern) 8. μ›”κ°„ μ½”λ“œλ¦¬λ·° Ver_0.1: 컀리어 μ„±μž₯ CODE μ„Έλ―Έλ‚˜ 정리 9. 포슀트맨(API ν…ŒμŠ€νŠΈ) ν™œμš©ν•˜κΈ° 10. λœ»κΉŠμ€ 2021λ…„ 회고 πŸ“Ž MySQL νŠΈλžœμž­μ…˜μ˜ 격리 μˆ˜μ€€(Isolation level) μ•ˆλ…•ν•˜μ„Έμš”, 이번 μ‹œκ°„μ— 정리할 λ‚΄μš©μ€ MySQLμ—μ„œ.. 2021. 9. 5.
[Spring] - @JsonProperty, @JsonNaming πŸ“Ž Spring - @JsonProperty, @JsonNaming μ•ˆλ…•ν•˜μ„Έμš”, μ΄λ²ˆμ— 정리할 λ‚΄μš©μ€ μŠ€ν”„λ§μ—μ„œ @JsonProperty, @JsonNaming μ–΄λ…Έν…Œμ΄μ…˜ μž…λ‹ˆλ‹€. REST API λ°©μ‹μœΌλ‘œ μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈκ°€ 데이터λ₯Ό 톡신을 ν•  λ•Œ JSON ν˜•μ‹μ„ 주둜 μ‚¬μš©ν•©λ‹ˆλ‹€. μ„œλ²„λ‹¨μ—μ„œλŠ” 카멜 μΌ€μ΄μŠ€(Camel Case) 방식을, ν΄λΌμ΄μ–ΈνŠΈλ‹¨μ—μ„œλŠ” μŠ€λ„€μ΄ν¬ μΌ€μ΄μŠ€(Snake Case) 방식을 μ‚¬μš©ν•©λ‹ˆλ‹€. 카멜 μΌ€μ΄μŠ€(Camel Case) - 첫 κΈ€μžλŠ” μ†Œλ¬Έμžλ‘œ, 쀑간 κΈ€μžλ“€μ€ λŒ€λ¬Έμžλ‘œ μ‹œμž‘ν•˜λŠ” ν‘œκΈ°λ²• - ex) phoneNumber, postMapping μŠ€λ„€μ΄ν¬ μΌ€μ΄μŠ€(Snake Case) - 언더바(_)κ°€ ν¬ν•¨λœ ν‘œν˜„ 방식 - ex) phone_number, post_mapping 보톡 μžλ°”λŠ” .. 2021. 9. 2.
여름이 λ– λ‚˜κ°€λŠ” 8μ›”μ˜ 회고 πŸ“Ž. 여름이 λ– λ‚˜κ°€λŠ” 8μ›”μ˜ 회고 정말 λ―ΈμΉ˜λ„λ‘ λ”μ› λ˜ 여름이 λλ‚˜κ°€κ³  가을이 μ˜€κ³ μžˆμ–΄μ„œ λ„ˆλ¬΄λ‚˜ κΈ°μ˜λ‹€ πŸ˜ƒ 8월은 κ½€(?) λ§Žμ€ ν™œλ™μ„ ν•œ 것 같은데, 체감상 7월보닀 μ‹œκ°„μ΄ λ”λ””κ²Œ κ°„ 것 κ°™λ‹€. λ”μœ„λ₯Ό νƒ€μ„œ κ·ΈλŸ°κ±΄κ°€.. μ΄λ²ˆλ‹¬λ„ μ•½κ°„ 냉방병(?)이 μžˆκΈ°λ„ ν–ˆκ³ , μš΄λ™μ˜ ν•„μš”μ„±μ„ λ˜λ‹€μ‹œ λŠλ‚„ 수 μžˆμ—ˆλ‹€. 8월에 무엇을 ν–ˆλŠ”μ§€ κ°„λž΅ν•˜κ²Œ 정리λ₯Ό ν•˜λ©° λ˜λŒμ•„λ³΄μž. 🐝 [Girls in Tech X AWS] Mentoring Program 8μ›” 6일 ~ 9μ›” 10μΌκΉŒμ§€ μ•½ 5μ£Όκ°„ AWS λ©˜ν† λ§μ— μ°Έμ—¬ν•˜κ²Œ λ˜μ—ˆλ‹€. νŠΉλ³„ν•œ 건 μ•„λ‹ˆκ³  5μ£Όλ™μ•ˆ AWS에 λ‹€λ‹ˆκ³  κ³„μ‹œλŠ” λ©˜ν† λ‹˜κ³Ό μ—¬λŸ¬ λ©˜ν‹°λ‹˜λ“€κ³Ό ν•¨κ»˜ μ„±μž₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ΄λ‹€. 각 νŒ€λ§ˆλ‹€ ν™œλ™ 방법은 λ‹€λ₯΄κ² μ§€λ§Œ, λ‚΄κ°€ μ†ν•œ νŒ€μ˜ 경우 5μ£Όκ°„ 진행할 κ³„νšμ„ μ„Έμš°κ³ , 맀일맀일 .. 2021. 8. 29.
Spring AOP - (1) ν”„λ‘μ‹œ νŒ¨ν„΄, λ°μ½”λ ˆμ΄ν„° νŒ¨ν„΄ πŸ“Ž κΈ€λ˜ 6κΈ° ν¬μŠ€νŒ… 1. λ―ΈμΉ˜λ„λ‘ λ”μ› λ˜ 7μ›”μ˜ 회고 2. μ‚¬μš©μžκ°€ κ²Œμ‹œλ¬Όμ„ μž‘μ„±ν•  λ•Œμ˜ νŠΈλžœμž­μ…˜ 처리 3. Spring AOP - (1) ν”„λ‘μ‹œ νŒ¨ν„΄, λ°μ½”λ ˆμ΄ν„° νŒ¨ν„΄ 4. [MySQL] - νŠΈλžœμž­μ…˜μ˜ 격리 μˆ˜μ€€(Isolation level) 5. Spring AOP - (2) AOP κ°œλ… 및 μ‹€μŠ΅ 6. μΈν…”λ¦¬μ œμ΄(IntelliJ) - 디버깅(Debugging) ν•˜κΈ° 7. [Java, λ””μžμΈνŒ¨ν„΄] - μ‹±κΈ€ν„΄ νŒ¨ν„΄(Singleton Pattern) 8. μ›”κ°„ μ½”λ“œλ¦¬λ·° Ver_0.1: 컀리어 μ„±μž₯ CODE μ„Έλ―Έλ‚˜ 정리 9. 포슀트맨(API ν…ŒμŠ€νŠΈ) ν™œμš©ν•˜κΈ° 10. λœ»κΉŠμ€ 2021λ…„ 회고 πŸ“Ž Spring AOP(Aspect Oriented Programming) ν¬μŠ€νŒ…μ— μž‘μ„±ν•œ 예제 μ½”λ“œλŠ” κΉƒν—ˆλΈŒμ—μ„œ 확인.. 2021. 8. 27.
λ°˜μ‘ν˜•