본문 바로가기

Spring12

Spring Pagination 연습 이번 포스팅에는 Spring Pagination에 대해 다뤄 볼 것이다. 구글, 네이버 카페, 커뮤니티 등 어떤 웹에서도 페이징 처리가 된 웹 형태를 자주 찾아볼 수 있다. 그렇다면 이렇게 페이징 처리하는 이유가 뭘까? 수많은 데이터가 DB에 존재한다고 했을 때, 페이징 처리를 하지 않고 모든 데이터들을 한 번에 뿌려준다면 해당 데이터들을 DB로부터 가져오는데 엄청난 시간이 소요될 것이다. 또한, 해당 데이터 자체를 들고 있어야 하기에 메모리에도 부담이 클 것이다. 하물며 사용자들이 그 수많은 데이터들을 다 보게 하는 것도 용이하지 못하다. 그래서, 모든 데이터들의 개수에 대한 기준을 만들어 해당 개수만큼 가져오는 페이징 형태를 사용하는 것이다. 페이징 처리를 적절히 활용하여 정렬 기준과 정렬 방식(오름.. 2024. 3. 8.
Spring Cloud란? Spring Cloud 란? Spring Cloud 란 Microservices의 개발, 빌드, 배포, 운영에 필요한 아키텍처를 쉽게 구성할 수 있게 도와주는 Spring Boot 기반 프레임워크 이다. (Spring Cloud를 사용하려면 Spring Boot는 필수라고 한다) Spring Cloud를 이용하면 MSA를 위한 환경설정, 서비스 검색, 라우팅, 프록시 등 분산 시스템을 빠르게 설정이 가능하다. Spring Cloud를 이용한 어플리케이션 개발시 자주 사용되는 기술 환경 설정은 Spring Cloud Config Server를 통해 개발을 하며 이를 통해 다양한 Microservices에서 사용하는 설정 정보들을 Git에 집어 넣을 수 있다. -> Microservices가 변경돼도 빌드 .. 2024. 3. 7.
Cloud Native, 12 factors, MSA 2010년대 이후부터 IT 시스템은 Antifragile 또는 Cloud Native Architecture 형태로 발전되어 왔다. Cloud Native Architecture의 특징 시스템의 수평적 확장에 유연하며 확장된 서버로 시스템의 부하 분산, 가용성이 보장 시스템 또는 서비스 어플리케이션 단위의 패키지(컨테이너 기반) 서버와 리소스들을 모니터링 도구를 이용해 확인 가능 서비스 생성-통합-배포, 비즈니스 환경 변화에 대응 시간 단축 분할된 서비스 구조, 무상태 통신 프로토콜 서비스의 추가와 삭제를 자동으로 감지 변경된 서비스 요청에 따라 사용자 요청 처리(동적 처리) 특정 서비스에 오류가 발생해도 다른 서비스에 영향을 주지 않음 (어떤 서비스를 수정한다 하면 전체 시스템 배포가 아니라 해당 서.. 2024. 3. 7.
[SpringBoot] OSIV와 성능 최적화 OSIV는 Open Session In View의 약자이다. OSIV는 Spring에 spring.jpa.open-in-view: true 기본값으로 설정되어 있다. OSIV 전략은 최초 데이터베이스 커넥션 시작부터 API 응답(View에 전송 및 DTO 반환 등)이 끝날 때 까지, 영속성 컨텍스트와 데이터베이스 커넥션을 유지한다. 그렇기 때문에 View Template 또는 Controller에서 지연 로딩이 가능하다. 따라서, 개발자로 하여금 어느 곳에서도 데이터베이스 커넥션을 신경쓰지 않고 개발할 수 있게 해준다는 장점이 있다. 하지만, 해당 전략은 너무 오랜시간동안 데이터베이스 커넥션을 사용하기 때문에 실시간 트래픽이 중요하고 많은 애플리케이션에서는 커넥션 쓰레드 풀이 모자랄 수 있다. 이는 곧 .. 2024. 2. 1.