| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
- ArrayList
- CSS
- 자바
- HashMap
- javascript
- string
- junit
- junit5
- vscode
- Array
- 배열
- list
- js
- 문자열
- 인텔리제이
- Eclipse
- 단위테스트
- html
- SpringBoot
- 스프링부트
- 자바스크립트
- 테스트자동화
- IntelliJ
- 자바문법
- input
- Java
- math
- java테스트
- 정규식
- Visual Studio Code
- Today
- Total
목록2026/03/25 (2)
어제 오늘 내일
"서버가 왜 죽었죠?""몰라요... 로그가 다 날아갔어요..."이런 대화가 오간다면 그 서버는 시한폭탄입니다. System.out.println은 동기 방식(Blocking I/O)이라 서버 성능을 갉아먹고, 결정적으로 파일로 남지 않아서 서버를 끄면 로그도 사라집니다.스프링 부트의 기본 로깅 라이브러리인 Logback을 제대로 설정해서, "에러는 파일로 남기고, 30일 지난 로그는 알아서 지우는" 스마트한 시스템을 구축해 봅시다.1. 로그 레벨 (Log Level) 이해하기로그백은 중요도에 따라 5단계 레벨을 가집니다.TRACE: 나노 단위의 추적 (가장 상세함)DEBUG: 개발할 때 필요한 정보 (SQL 쿼리, 파라미터 등)INFO: 운영 시스템에서 봐야 할 정보 (서버 시작, 종료, 비즈니스 로직 ..
프론트엔드에서 데이터를 보낼 때, 우리는 절대 그 데이터를 믿으면 안 됩니다. 해커가 이상한 값을 보낼 수도 있고, 사용자가 실수를 할 수도 있으니까요.하지만 그렇다고 모든 메서드에 검증 로직을 넣는 건 최악입니다.// ❌ 최악의 코드 (if문 지옥)if (dto.getEmail() == null || !dto.getEmail().contains("@")) { throw new IllegalArgumentException("이메일 형식이 아닙니다.");}if (dto.getAge() 스프링 부트는 이 귀찮은 작업을 Bean Validation이라는 표준 기술로 해결해 줍니다.1. 설정하기 (의존성 추가)스프링 부트 2.3 버전 이상부터는 validation 라이브러리가 별도로 분리되었습니다. bui..
