본문 바로가기

Java

(25)
[JAVA] JAR, WAR 그리고 EAR 패키징 이야기 재밌는JAR WAR와 EAR의 차이점은 무엇인가요? 출처 : https://www.linkedin.com/pulse/what-difference-between-jar-war-ear-yi%C4%9Fit-k%C3%BC%C3%A7%C3%BCk%C3%A7%C4%B1nar-c0gde What is the Difference Between JAR WAR and EAR?In this article, we will take a look at the differences between WAR and EAR artifact files. JAR Files To understand the differences between Ear and War files, first, we must take a look at JAR file..
[SPRING] 데이터를 청크청크! Spring Batch로 일괄 처리 [SPRING] Batch 프로세스"데이터를 청크청크! Spring Batch로 일괄 처리 마스터하기"Batch - Job, Step, TaskletBatch 프로세스는 크게 3가지로 나뉜다Job -> Step -> Tasklet : chunk단위 처리 (Reader, 읽기 + Process, 처리 + Writer, 쓰기 순으로 동작)청크란 작업할 데이터의 각 커밋 사이에 처리되는 row의 수Chunk 단위 처리의 구조를 살펴보자.- Reader에서 데이터를 읽어온다.- 읽어온 데이터를 Processor에서 가공한다.- 가공된 데이터들은 별도에 공간에 모은 뒤, Chunk 단위만큼 쌓이면 Writer에 전달하고 Writer는 일괄 저장을 시킨다.Reader와 Processor에서는 1건씩 다뤄지고, Wr..
[Spring] @Data @Data = @Getter + @Setter + @RequiredArgsConstructor + @toString + @EqualsAndHashCode  Getter, Setter 한 번에 적용. import lombok.Data;  롬복 자바라이브러리 import하면 됨. JPA(ORM)을 사용할때는 @Data를 안쓰는게 좋다.  @ToString Annotation 때문 @RequiredArgsConstructor : final이나 @NonNull인 필드값만 파라미터로 받는 '생성자를 만들어주는 어노테이션' @ToString : toString() 메소드를 작성해주는 어노테이션.  ToString Annotation은 클래스 안의 private를 String 형식으로 return해주는 Annotat..
[Spring] 프로메테우스와 그라파나 프로메테우스 애플리케이션에서 발생한 메트릭을 그 순간만 확인하는 것이 아니라 과거 이력까지 함께 확인하려면 메트릭을 보관하는 DB가 필요하다. 이렇게 하려면 어디선가 메트릭을 지속해서 수집하고 DB에 저장해야 한다. 프로메테우스가 바로 이런 역할을 담당한다. https://prometheus.io/docs/introduction/overview/그라파나 프로메테우스가 DB라고 하면, 이 DB에 있는 데이터를 불러서 사용자가 보기 편하게 보여주는 대시보드가 필요하다.  그라파나는 매우 유연하고, 데이터를 그래프로 보여주는 툴이다. 수 많은 그래프를 제공하고, 프로메테우스를 포함한 다양한 데이터소스를 지원한다
[Spring] 다양한 엔드포인트 엔드포인트 공식 메뉴얼https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.endpoints  각각의 엔드포인트를 통해서 개발자는 애플리케이션 내부의 수 많은 기능을 관리하고 모니터링 할 수 있다. beans : 스프링 컨테이너에 등록된 스프링 빈을 보여준다. conditions : condition 을 통해서 빈을 등록할 때 평가 조건과 일치하거나 일치하지 않는 이유를 표 시한다. configprops : @ConfigurationProperties 를 보여준다. env : Environment 정보를 보여준다. health : 애플리케이션 헬스 정보를 보여준다. httpexchanges : HTTP 호..
[Spring] QueryDSL Spring boot + JPA QueryDSL은 복잡한 쿼리를 생성할 수 있도록 해 주는 오픈소스 프레임워크입니다. 쿼리를 문자열로 작성하거나 작성하는 것이 아닌, 자바 코드의 형태로 쿼리를 구성할 수 있습니다.   쿼리를 자바 코드로 표현함으로써, 컴파일 타임에 쿼리의 문법 오류를 잡아낼 수 있습니다. 참고 :  https://f-lab.kr/insight/combining-jpa-and-querydsl?gad_source=1&gclid=CjwKCAjw9p24BhB_EiwA8ID5BquAXZ1B4eX0lpkTW_B6yff7Oh0l7gMOrIEBmuUZTB0UXS8cUgyeyxoCfmoQAvD_BwE JPA와 QueryDSL의 결합: 데이터 접근의 혁신JPA와 QueryDSL의 결합이 데이터 접근 방식..
[Spring] 빈 스코프 스코프는 빈이 존재할 수 있는 범위를 뜻한다. - 싱글톤 : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 - 프로토타입 입: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프 - 웹 관련 스코프 request : 웹 요청이 들어오고 나갈 때 까지 유지되는 스코프 session : 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프 application : 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프 프로토타입 빈의 특징 - 스프링컨테이너에 요청할 때 마다 새로 생성 - 스프링컨테이너는 프로토타입 빈의 생성과 의존관계 주입, 초기화까지만 관여 - 종료 메서드가 호출되지 않음 - 프로토타입 빈은 프로..
[Spring] 컴포넌트 스캔과 주요 애노테이션 정리 @Autowired@Autowired는 스프링에서 의존관계를 자동으로 주입해주는 애노테이션이야. 생성자에 @Autowired를 사용하면 여러 의존관계를 한 번에 주입받을 수 있어. 스프링 컨테이너는 생성자에 지정된 @Autowired를 보고 자동으로 해당 빈을 찾아서 주입해. 주입되는 기본 전략은 타입을 기준으로 같은 타입의 빈을 찾아서 주입하는 방식이야. 파라미터가 여러 개 있어도 스프링이 알아서 다 찾아서 자동으로 주입해줘.@ComponentScan@ComponentScan이 붙은 클래스는 스프링에서 컴포넌트를 스캔하는 시작점이 돼. 스프링 부트를 사용할 때는 @SpringBootApplication 애노테이션을 주로 사용해. 이 애노테이션을 프로젝트 루트 위치에 두는 것이 일반적이야. 이로 인해, ..