일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- it
- laravel
- springboot
- ubuntu
- Spring
- javascript
- php
- AWS
- Gradle
- db
- linux
- tool
- 요리
- MySQL
- elasticsearch
- redis
- devops
- jenkins
- Design Patterns
- ReactJS
- IntelliJ
- JPA
- docker
- jsp
- Web Server
- Oracle
- Git
- 맛집
- Spring Boot
- java
- Today
- Total
목록it (680)
아무거나
Spring Batch Job Flow 이전글: https://bkjeon1614.tistory.com/739 작업코드: 작업코드 실제 비지니스 로직을 처리하는 기능은 Step 에 구현되어 있다. 즉, Batch 로 실제 처리하고자 하는 기능과 설정을 모두 포함한다. Job 내부의 Step 들 간에 순서 또는 처리 프로세스를 제어하기 위해 여러 Step 들이 어떻게 관리해야 하는지 차근차근 알아보자. Next next() 는 순차적으로 Step 들을 연결시킬 때 사용 즉, step1 -> step2 -> ... 와 같이 하나씩 실행할 때 사용하면 좋다. 샘플코드를 작성해보자. [NextJobConfiguration.java] package com.example.job; import org.springfr..
Spring Batch Meta Table 이전글: https://bkjeon1614.tistory.com/738 작업코드: 작업코드 [Spring Batch] 2편 - Spring Batch 활용 Spring Batch 활용 이전글: https://bkjeon1614.tistory.com/737 Spring Batch 프로젝트 생성 프로젝트 환경 IntelliJ IDEA 2022. 1 Spring Boot 2.7.3 Java 11 Gradle 프로젝트 생성 프로젝트 유형 설정 프로젝트.. bkjeon1614.tistory.com 하기 이미지는 Spring Batch 를 사용하기 위해 필요한 메타 테이블이며 이것들이 각각 어떤 데이터를 저장하는지에 대해 알아보자. BATCH_JOB_INSTANCE 먼저 ..
Spring Batch 활용 이전글: https://bkjeon1614.tistory.com/737 작업코드: 작업코드 Spring Batch 프로젝트 생성 프로젝트 환경 IntelliJ IDEA 2022. 1 Spring Boot 2.7.3 Java 11 Gradle 프로젝트 생성 프로젝트 유형 설정 프로젝트 관련 설정 생성된 build.gradle 확인 [build.gradle] plugins { id 'org.springframework.boot' version '2.7.3' id 'io.spring.dependency-management' version '1.0.13.RELEASE' id 'java' } group = 'com.example' version = '0.0.1-SNAPSHOT' sou..
Spring Batch 란? Spring Batch 를 사용하면서 내부적으로 어떻게 동작하는지 어떤 특징이 있는지 등에 대해서 한 번 정리가 다시할 필요성을 느껴서 해당 포스팅을 작성하게 되었다. Batch? 정의 개발자가 정의한 작업을 한번에 일괄 처리하는 애플리케이션이며 즉, 데이터를 실시간으로 처리하는게 아니라, 일괄적으로 모아서 처리하는 작업을 의미한다. (Ex: 하루동안 쌓인 데이터를 배치작업을 통해 특정 시간에 한꺼번에 처리하는 경우) 예시 상품 키워드 검색 수에 대한 일/주/월 키워드 검색순위 데이터 집계 매출 데이터를 사용한 일매출 데이터 집계 (실시간 집계 쿼리로 해결하면 조회 시간이나 서버 부하가 많으므로 매일 새벽 전날에 매출 집계 데이터를 미리 생성) 내부 및 외부 시스템에서 우리에..
POJO (=Plain Old Java Object) POJO 란 마틴파울러가 만들어낸 용어이며 당시 인기를 끌고있던 EJB처럼 복잡하고 제한이 많은 기술을 사용하는 것보다는 자바의 단순한 오브젝트를 이용해 애플리케이션의 비즈니스 로직을 구현하는 편이 낫다고 생각하여 만듬 또한 단순히 "간단한 자바오브젝트를 사용" 한다는 말보다는 "POJO 방식의 기술을 사용" 한다는 말이 첨단기술을 쓰는 것처럼 느껴진다는 심리도 이용함 POJO 의 조건 특정 규약에 종속되지 않는다 자바 언어와 꼭 필요한 API 외에는 종속되지 않아야 한다. (EJB2, 스트럿츠1 과 같이 특정 규약을 따라 비즈니스 컴포넌트를 만들어야 하는 경우는 POJO가 아님) 특정 환경에 종속되지 않는다 특정 환경에 종속되게 만들면 안되고 환경에..
Spinnaker Spinnaker 란? Spinnaker 는 넷플릭스에서 개발하고 구글에서 확장한 오픈 소스화한 멀티 클라우드를 지원하는 CD(=Continuous Delivery) 플랫폼이다. 구글 클라우드, 아마존, 마이크로소프트 등 대부분의 메이져 기업의 클라우드를 지원하며 Kubernetes 또는 Openstack 과 같은 오픈소스 기반의 클라우드 또는 컨테이너 플랫폼을 동시 지원한다. Spinnaker 아키텍처 Deck: Deck 컴포넌트는 UI 컴포넌트로, Spinnaker의 UI 웹사이트 컴포넌트이다. Gate: Spinnaker는 MSA 구조로, 모든 기능을 API 로 Expose 한다, Gate는 API Gateway로, Spinnaker의 기능을 API로 Expose 하는 역할을 한다..
Java Stream 이란 개념은 알고 있지만 한 번 정리가 필요할 것 같아서 해당 포스팅을 작성하게 되었다. Stream 우리는 수 많은 데이터를 다룰 때, 컬렉션이나 배열에 데이터를 담고 원하는 결과를 얻기위해 for 문이나 Iterator 를 이용하여 코드를 작성해왔다. 그러나 이러한 코드는 가독성과 재사용성이 떨어진다. 또한 Collection 이나 Iterator 와 같은 인터페이스를 활용하여 컬렉션을 다루는 방식을 표준화하기는 하였지만. 각 컬렉션 클래스에는 같은 기능의 메서드들이 중복해서 정의되어 있다. 예를 들면 List 를 정렬하려면 Collections.sort() 를 사용하거나 배열은 Array.sort() 를 사용해야 한다. 이러한 문제점들을 해결하기 위해서 Java8 부터 추가된것..
해당 글은 https://bkjeon1614.tistory.com/264 에 내용을 더 추가하여 작성하였다. Javascript var, let, const 개념 및 차이점 Key Point var, let: 변수를 선언하는 키워드이다. const: 상수를 선언하는 키워드이다. Example Code // 1. var는 값을 재 할당 가능하다. var name = "test"; name = "test2"; // 2. let은 var처럼 재 할당이 가능하다. let score = "1"; score = "2"; // 3. const는 값 재할당이 불가능하며 선언과 동시에 리터럴 값을 할당해야 한다. const PI = "3.14"; let, const는 ECMA6에 도입된 키워드이며 var 타입으로 인한 ..
Spring Boot Graceful Shutdown 애플리케이션을 배포(ex: Rolling Deploy) 또는 특정 케이스로 종료할 때 여러가지 방법이 존재한다. 다만 케이스별로 정상적은 종료를 위하여 반드시 정상 종료 프로세스는 꼭 필수이다. 그러므로 애플리케이션을 정상적으로 종료할 수 있게 도와주는 Graceful Shutdown 에 대하여 알아보자. 리눅스 KILL 명령 리눅스 환경에서 프로세스를 종료할 때 KILL 을 사용하고 옵션에 따라 종료시키는 보편적으로 사용하는 동작은 아래와 같다. -9: 작업중인 모든 데이터를 저장하지 않고 프로세스를 종료하기 때문에 저장되지 않는 데이터는 소멸된다. (강제종료) -15: 하던 작업을 모두 안전하게 저장한 후 프로세스를 종료한다. (정상종료) Grac..
computed vs watch computed 이미 정의된 계산식에 따라 결과값을 반환할 때 사용 종속 대상을 따라 저장(캐싱) 됨 (단, Date.now() 같이 아무곳에도 의존하지 않는 computed 속성의 경우 절대로 업데이트가 안됨 즉, 캐싱을 원하지 않을 때 메소드를 사용하면 된다.) [example vuejs code] computed: { now: function () { return Date.now() } } 샘플코드 [example html code] 뒤집힌 메시지: "{{ reversedMessage() }}" [example vuejs code] // 컴포넌트 내부 methods: { reversedMessage: function () { return this.message.spl..