spring batch 의 스코프 - @JobScope, @StepScope
·
공부/Spring batch
JobScope 와 StepScope 는 spring batch 에서 chunk 프로세스를 이용해 개발한다면 기본적으로 알아야 하는 스코프이다.프로젝트 하다가 해당 스코프에 대한 이해도가 부족해 에러가 났던 경험이 있어서 공부하면서 블로그에 정리했다. Spring 의 기본 빈 스코프1. Singleton (기본 스코프)  - 애플리케이션 컨텍스트당 하나의 인스턴스를 생성하고 재사용  - 빈이 애플리케이션 시작 시점에 즉시 초기화2. Prototype  - 요청할 때마다 새로운 인스턴스 생성  - 배치 작업과는 잘 맞지 않는 타입3. Request/Session/Custom Scope  Spring Batch 의 스코프 이해하기spring 에서 scope 는 spring 컨테이너에서 관리되는 빈(bean)..
스프링 배치 개발하면서 만났던 NPE 와 해결 과정 정리
·
공부/Spring batch
spring batch 프로그램을 개발하는 도중 NullPointerException 이 발생했다. 멀쩡히 잘 돌아가던 코드에서 갑자기 발생한 NPE 는 정말 찾기 힘들었다. 문제상황디버깅을 해보니 reader에서 cursorIterator 값 자체가 null 로 들어가서 doRead() 를 읽어오지 못했다. public MyBatisCursorItemReader() { setName(getShortName(MyBatisCursorItemReader.class)); } @Override protected T doRead() throws Exception { T next = null; if (cursorIterator.hasNext()) { // cursorIterator 에 값이 ..
[안드로이드] Android SDK 라이센스 빌드 오류
·
공부/Kotlin
외부 프로젝트를 불러와서 앱을 실행하는 과정에서 에러가 발생했다. Failed to install the following Android SDK packages as some licences have not been accepted. ... 경로 안드로이드 스튜디오 메뉴 File > Settings > Appearance & Behavior > System Settings > Android SDK SDK Tools 탭에서 Google Play Licensing Library 를 설치하니 오류가 해결되었다.
[안드로이드] intent 연습
·
공부/Kotlin
다른 화면으로 이동하기 버튼을 눌렀을 때 모습이다. 텍스트를 치고 메시지를 다른 화면에 전달하기 버튼을 눌렀을 때 화면이다. package com.gdh.intent import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R...
[안드로이드] 로그인 로직 연습
·
공부/Kotlin
package com.gdh.loginlogictest import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Toast import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) loginBtn.setOnClickListener { // 로그인 버튼이 눌..
[안드로이드] 토스트(Toast)
·
공부/Kotlin
개요 사용자에게 심각하지 않은 알림을 주고 싶을 때 사용 => 심각: 진짜로 실행할건지 확인을 받아야 하는 것들 (ex. 삭제 / 차단 / 로그아웃) 심각한 알림은 별도로 Alert 등의 기능으로 표시 사용법 Toast.makeText( 어느 화면에 띄울지 this, "띄워줄 문구", Toast.LENGTH_SHORT).show()) 참고사항 토스트 기계처럼 동작한다고 해서 토스트라고 부름
[안드로이드] 버튼 이벤트 처리 - setOnClickListener
·
공부/Kotlin
개요 앱의 동작 코드 작성: 어떤 상황에서 => 어떤 동작으로 대응할지 작성 사용자가 버튼을 누르면 실행할 내용을 지정해주는 방법 => [클릭 이벤트 처리] 라고 표현함 앱 코딩의 제일 기본: 사용자가 행동한 내용에 대해 대응하는 기능 사용법 이벤트를 붙여줄 버튼. setOnClickListener { // 버튼이 눌렸을때 마다, 실행 시켜줄 코드 작성 } 3. 특이사항 각각의 버튼이 눌리면 할 일은, 각자 따로따로 이벤트를 붙여줘야함
[안드로이드] Kotlin 기초
·
공부/Kotlin
package com.gdh.kotlinbasic import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widget.Toast import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) clickMeBtn.setOnClick..