기본을 깊이있게
  • 깃허브⭐️
  • 태그
  • 글쓰기
  • 관리
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • Hyojunn__ (19)
      • Coding Test (3)
        • Baekjoon (0)
        • Programmers (3)
        • SW Expert (0)
        • etc (0)
      • Computer Science (4)
        • Python (0)
        • 자료구조 (0)
        • Java (4)
        • Kotlin (0)
        • 데이터베이스 (0)
        • 운영체제 (0)
        • 네트워크 (0)
        • 알고리즘 (0)
        • etc (0)
      • FrontEnd (0)
        • Android (0)
        • Flutter (2)
        • etc (0)
      • Spring (5)
        • Framework (1)
        • JPA (1)
        • etc (1)
      • 오류해결 (2)
      • 일상 (0)
        • 취업준비 (0)
        • 이모저모 (0)
  • 홈
  • 태그
  • 방명록
Spring

@Valid 검증 어노테이션

‘@Valid’는 Bean Validation(빈 검증기)를 이용하여 객체에 대한 조건을 확신하는 어노테이션 입니다.Spring은 LocalValidatorFactoryBean 어댑터를 활용하여 객체 조건을 확인하게 됩니다.LocalValidatorFactoryBean 어댑터를 사용하기 위해서는 spring-boot-starter-validation 을 추가해 주면 됩니다.주요 제약 어노테이션은 다음과 같습니다‘@NotNull’null이 아니어야 함‘@NonEmpty’빈 값이 아니어야 함(문자열, 컬렉션 등)‘@Min’ , ‘@Max’숫자의 최소/최대값‘@Email’이메일 형식‘@Pattern’정규 표현식 패턴public class User { @NotNull(message = "이름은 빈 값이 아..

2024. 7. 21. 23:41
Spring

Pagination

페이징은 수 많은 콘텐츠(데이터)들을 원하는 크기만큼 '페이지'로 나누는 기술을 의미합니다.주로 데이터베이스 쿼리나 API 응답에서 사용되며, 크기를 줄인 만큼 DB 에 부담을 줄이고 성능을 향상 시킵니다.이러한 페이징 기술을 크게 2가지 기술을 사용합니다.오프셋 기반 페이징(Offset Paging)첫 번째는 오프셋 기반 페이징 입니다.오프셋 기반 페이지네이션은 MySQL 기준으로 offset, limit을 사용하여 쿼리르 작성합니다.하지만 이는 성능 저하 문제가 발생할 수 있습니다. offset의 크기가 커질수록 조회해야 하는 데이터 수가 늘어나기 때문입니다.select * from itemorder by created_at desclimit 10offset 10000000;이와 같은 경우 100,0..

2024. 7. 14. 23:31
Spring

Bean Lifecycle

스프링의 가장 큰 특징이라고 생각되는 것은 DI, IoC 가 있습니다.DI(Dependency Injection)과 IoC(Inveresion of Control) 은 개발자의 편의를 증가시키는데요객체의 생성부터 소멸까지 개발자가 직접 코드로 관리하는 것이 아닌, 컨테이너(여기서는 스프링 컨테이너)가 관리해줍니다.또한 빈 컨테이너에서 각 빈들은 싱글톤으로 관리되어 메모리 측면에서도 효율적인 모습을 보여줍니다Bean 의 생성과 소멸 과정인스턴스화Spring 컨테이너가 Bean의 인스턴스를 생성합니다.프로퍼티 설정DI(Dependency Injection)을 통해 Bean의 프로퍼티 값을 설정합니다.초기화 콜백Bean을 사용할 준비가 완료되었음을 의미하는 콜백 함수를 호출합니다.‘@PostContruct’,..

2024. 7. 7. 22:00
Spring

Transaction Propagation

서버를 운영하다 보면 하나의 로직에서 Exception과 같이 정상적으로 수행되지 못한 경우 rollback 처리를 할 때가 빈번합니다.왜냐하면 A -> B, C -> D 가 정상 로직인데 A -> B 만 성공하고 C -> D는 성공하지 못했을 때, A -> B 또한 다시 이전 상태로 돌려줘야 하기 때문입니다. 이러한 경우 우리는 대부분 @Transaction의 기본 옵션인 REQUIRED를 사용하게 되는데요 그 외의 옵션에는 무엇이 있나 이번 포스팅에서 한번 살펴보려 합니다. 첫 번째로는 위에서도 말한 REQUIRED 입니다.이는 @Transaction 어노테이션을 사용했을 때, 기본적으로 적용되어 있는 옵션입니다.현재 트랜잭션이 존재하면 그 트랜잭션을 사용하고, 없으면 새 트랜잭션을 시작합니다.@Tr..

2024. 6. 30. 22:29
Spring/Framework

DispatcherServlet 이란?

Spring Framework에서 DispatcherServlet은 들어온 요청을 가장 먼저 처리하는 프론트 컨트롤러(Front Controller) 입니다.모든 HTTP 요청은 DispatcherServlet으로 전달되며, 이 서블릿은 요청을 처리하기 위해 여러 컴포넌트와 협력합니다.이를 통해 웹 애플리케이션에서 요청을 효율적으로 처리하고 응답을 생성할 수 있습니다.DispatcherServlet의 주요 역할과 동작 원리요청 수신: 모든 HTTP 요청은 먼저 Servlet Container 안에 존재하는 DispatcherServlet에 도달합니다.예전과 같은 경우에는 web.xml에 따로 설정을 해주어야 했으나, SpringBoot가 등장하면서 이를 대신 해줍니다.핸들러 매핑DispatcherServ..

2024. 6. 16. 15:17
Spring

ThreadLocal

ThreadLocal 이란 멀티쓰레드 환경에서 각 쓰레드가 독립적으로 값을 저장하고 접근할 수 있도록 하는 JAVA 클래스입니다. ThreadLocal을 사용하면 여러 쓰레드가 동시에 실행되는 환경(멀티쓰레드)에서도 안전하게 변수에 접근할 수 있습니다.ThreadLocal 특징쓰레드별 독립 데이터 저장: ThreadLocal을 사용하면 각 쓰레드는 자신의 로컬 변수를 가지고 있기 때문에 다른 쓰레드와 데이터를 공유하지 않습니다.쓰레드 안전성: 여러 쓰레드가 동일한 변수를 사용할 때 발생할 수 있는 경쟁 조건을 방지합니다.라이프사이클: ThreadLocal에 저장된 데이터는 해당 쓰레드가 종료될 때까지 유지되며, 쓰레드가 종료되면 자동으로 정리됩니다.public class ThreadLocalExample..

2024. 6. 9. 16:56
  • «
  • 1
  • 2
  • »

공지사항

  • 깃허브

전체 카테고리

  • Hyojunn__ (19)
    • Coding Test (3)
      • Baekjoon (0)
      • Programmers (3)
      • SW Expert (0)
      • etc (0)
    • Computer Science (4)
      • Python (0)
      • 자료구조 (0)
      • Java (4)
      • Kotlin (0)
      • 데이터베이스 (0)
      • 운영체제 (0)
      • 네트워크 (0)
      • 알고리즘 (0)
      • etc (0)
    • FrontEnd (0)
      • Android (0)
      • Flutter (2)
      • etc (0)
    • Spring (5)
      • Framework (1)
      • JPA (1)
      • etc (1)
    • 오류해결 (2)
    • 일상 (0)
      • 취업준비 (0)
      • 이모저모 (0)
애드센스 광고 영역
  • 최근 글
  • 최근 댓글

최근 글

최근댓글

태그

  • #IntelliJ
  • #비동기
  • #java
  • #heapq
  • #Container
  • #더 맵게
  • #Java 8
  • #async
  • #Spring
  • #클래스 로더
  • #Class Loader
  • #Inner Class
  • #swap
  • #LifeCycle
  • #valid
  • #java 11
  • #propagation
  • #GitHub
  • #프로그래머스
  • #페이지네이션
  • #AWS
  • #await
  • #Flutter
  • #ec2
  • #ThreadLocal
  • #DispatcherServlet
  • #Kotlin
  • #Java 17
  • #해시
  • #priorityqueue
MORE

전체 방문자

오늘
어제
전체

블로그 인기글

Powered by Privatenote Copyright © 기본을 깊이있게 All rights reserved. TistoryWhaleSkin3.4

티스토리툴바