1. Maven과 Gradle 우리는 스프링 프로젝트를 생성할 때 Maven을 선택할 것인지 Gradle을 선택할 것인지 선택할 것입니다. 이전엔 책에서 하란대로 따라만 했지 둘이 어떤 차이가 있는지 잘 모르고 개발을 했습니다. 이런 기본적인 것들을... 좀 채워보고자 깊이는 아니더라도 어느 정도 이해할 수 있는 수준으로 스프링을 초기 설정부터 시작해 개발을 진행해보겠습니다. 1) Maven pom.xml을 이용한 정형화된 빌드 시스템으로 다양한 라이브러리를 관리하며 네트워크를 통해 자동으로 다운을 받아줍니다. 기존엔 Apach Ant(자바로 개발된 어플리케이션으로 커맨드 라인 형태의 빌드, 배포를 위한 도구)라는 빌드 도구를 많이 사용했지만 Maven이 Ant를 넘어서 개발자들이 많이 사용하고 있습니다..
1. DI(Dependency Injection) DI란 의존성 주입을 나타낸다. 미리 외부에서 생성한 객체 인스턴스에 대해서 특정 설정을 통해 객체의 종속성을 정의할수 있는 프로세스입니다. 쉽게 말하자면 어떤 객체가 필요한 객체를 외부에서 밀어넣는 것을 의미합니다. DI 원칙을 사용하면 코드가 더 깔끔해지고 디커플링에 대해서 매우 효과적입니다. 이런 스프링 DI를 주입하는 방법에는 크게 2가지 방법이 있습니다. 첫번째로 생성자를 통한 주입, 두번째로는 Setter를 통한 주입 이렇게 2가지 입니다. 이전에는 필드를 통한 생성자 주입도 존재했었는데 스프링 공식문서에는 위의 2가지 방법만을 설명하고 있어서 위의 2가지 설정에 대해서만 보도록 하겠습니다. 1) 생성자를 통한 주입 - 현재 가장 많이 사용하고..
1. Iterator?- Collection에 저장된 요소들을 순차적 처리 하기 위해 사용합니다. (Eager 처리) - 해당 Iterator 인터페이스는 아래와 같은 구조를 가지고 있습니다. public interface Iterator { /** * Returns the next element in the iteration. */ public operator fun next(): T /** * Returns `true` if the iteration has more elements. */ public operator fun hasNext(): Boolean } Iterator는 저장된 요소들을 순차적으로 접근하기 때문에 특정 인덱스에 바로 접근하지 못한다는 특징이 있습니다. 그렇기 때문에 3번째 요소..
코루틴을 공부하기에 앞서 왜 코루틴을 써야하는지 간단하게 생각해보았습니다. 서비스가 점점 커지면서 대용량의 트래픽을 처리하기 위해 좋은 성능을 내기 위한 방법들은 여러가지가 있겠지만 그 중 하나는 비동기 프로그래밍을 사용하는 방법이지 않을까 싶습니다. 우리 회사는 MSA로 전환한 이후 부터 언어를 Kotlin으로 사용하고 있습니다. Kotlin을 사용하게 되면서 Coroutines도 같이 사용을 하고 있는데 이제는 이 Coroutines에 대해서...어떻게 동작이 이루어지고 runBlocking, launch, asnyc 등과 같은 함수들에 대해서도 알아야 되지 않을까 싶습니다. 😭😭😭 그동안 모르고 사용해왔던 저의 모습을 반성하면서 이제는 제대로 알고 사용하기위해 해당 글을 작성해봅니다. 1. Coro..
1. Step이란? - Batch Job을 구성하는 독립적인 하나의 단계로서 실제 배치 처리를 정의하고 컨트롤하는데 필요한 모든 정보를 가지고 있는 도메인 객체 - 모든 Job은 하나 이상의 step으로 구성됨 2. 기본 구현체 1) Tasklet - 가장 기본이 되는 클래스로서 Tasklet 타입의 구현체들을 제어 2) PartitionStep - 멀티 스레드 방식으로 Step을 여러 개로 분리해서 실행 3) JobStep - Step 내에서 Job을 실행 4) FlowStep - Step 내에서 Flow를 실행 3. StepExecution - Step에 대한 한번의 시도를 의미하는 객체로서 Step 실행 중에 발생한 정보들을 저장하는 객체 - Step이 매번 시도 될 때마다 각 Step별로 생성 -..
스프링 배치를 시작하기 위해서 Job, Step, tasklet 등 기본적인 용어가 무엇을 의미하는 것인지 알아야 할 필요가 있는데 해당 게시물에서는 Job에 대해서 알아보겠습니다. 1. Job Job은 배치의 전반적인 프로세스를 관리하는 엔티티입니다. Job은 아래와 같은 계층 구조를 가지고 있으며 가장 최상위 계층에 존재합니다. Job Configuration을 통해 생성되는 객체 단위로서 배치작업을 어떻게 구성하고 실행할 것인지 전체적으로 설정하고 명세해놓은 객체를 말합니다. 2. JobInstance Job이 실행될 때 생성되는 Job의 논리적 실행 단위 객체로서 고유하게 식별 가능한 작업 실행을 나타냅니다. Job의 설정과 구성은 동일하지만 Job이 실행되는 시점에 처리하는 내용은 다릅니다. 즉..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.