| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- SnowFalke
- 백엔드개발
- redis
- interceptor
- AbstractAggregateRoot
- 성능최적화
- CS
- 세션
- 데이터베이스
- http
- 백엔드개발자
- 백엔드기초
- Spring
- 보안
- 백엔드
- db
- JPA
- devops
- spring event
- java
- 클린코드
- 웹개발
- 프론트엔드
- 인증
- DEVIEW2023
- 캐시
- 인프라
- 네트워크
- 웹성능최적화
- Spring Boot
- Today
- Total
목록Spring (3)
이것저것 개발기록
"서버가 죽지는 않았는데, 클라이언트는 왜 500 에러를 받을까요?" 사용자에게 친절하고 개발자에게는 명확한 디버깅 정보를 주는 견고한 예외 처리 시스템 구축법을 정리합니다. 1. Checked Exception vs Unchecked Exception 자바와 같은 언어에서는 예외를 두 가지로 나눕니다. 반드시 처리해야 하는 Checked Exception과 런타임에 발생하는 Unchecked Exception입니다. 현대적인 프로그래밍에서는 로직의 가독성을 위해 대부분의 예외를 런타임 예외로 감싸서(Wrapping) 던지는 추세입니다. 2. 전역 예외 처리기(Global Exception Handler) 도입 컨트롤러마다 t..
"매번 DB를 연결하는 데 걸리는 시간, 아깝지 않으신가요?" 서버의 응답 속도를 높이고 안정성을 책임지는 데이터베이스 커넥션 풀(DBCP)의 내부 동작을 알아봅니다. 1. 커넥션 풀이란? DB 연결은 비용이 매우 비싼 작업입니다. 매번 TCP 연결을 맺고 끊는 대신, 서버가 실행될 때 미리 일정 수의 연결을 만들어 '풀(Pool)'에 담아두고, 필요할 때 빌려줬다가 다 쓰면 반납받는 방식을 말합니다. 2. 왜 써야 할까? (장점) 응답 속도 향상: 연결을 맺는 과정이 생략되어 쿼리 실행 시간이 단축됩니다. 부하 조절: 무한정 연결이 생성되는 것을 막아 DB 서버가 과부하로 죽는 것을 ..
"DI, IoC... 용어는 들어봤는데 왜 써야 하는지 모르겠다면?" 결합도를 낮추고 유연한 코드를 만드는 핵심 개념, 의존성 주입(Dependency Injection)을 아주 쉽게 풀어봅니다. 1. 의존성이란 무엇인가? A라는 클래스가 기능을 수행하기 위해 B라는 클래스를 가져다 쓰는 것을 "A가 B에 의존한다"고 합니다. 만약 A 내부에서 new B()를 직접 호출한다면, B를 C로 바꾸고 싶을 때 A의 코드까지 전부 고쳐야 합니다. 이것을 강한 결합이라고 부릅니다. 2. 주입(Injection)이 가져오는 변화 의존성 주입은 내가 직접 객체를 만들지 않고, 외부(주로 프레임워크)에서 만들어진 객체를 전달받는 것입니다. ..