본문 바로가기
728x90
반응형

공부합시당 💙156

스프링배치 완벽가이드 1 - 배치와 스프링 배치 처리 상호작용이나 중단 없이 유한한 양의 데이터를 처리하는 것으로 정의한다. 배치 처리가 일단 시작되면 아무런 개입 없이 어떤 형태로든 완료된다. 사용성 - 코드의 오류 처리 및 유지 보수성 공통 컴포넌트를 쉽게 확장해 새로운 기능을 추가할 수 있는가? 기존 컴포넌트를 변경할 때 시스템 전체에 미치는 영향을 알 수 있도록 단위테스트가 잘 마련되어 있는가? 잡이 실패할 때 디버깅에 오랜 시간을 소비하지 않고 언제, 어디서, 왜 실패했는지 알 수 있는가? 확장성 - 100만 건 이상의 트랜잭션 처리도 OK, 가용성 필요할 때 바로 배치 처리를 수행할 수 있는가? 허용된 시간 내에 잡을 수행함으로써 다른 시스템에 영향을 미치지 않게 할 수 있는가? 보안 - 데이터를 안전하게 저장하는 것 민감한 데이터베이.. 2023. 10. 23.
아토믹 코틀린 33 - when 두 세 가지 이상 선택지가 있는 경우 when 사용하면 굳. case 문이랑 비슷한듯... // 사용 예) when (i) { 1 -> "apple" 3 -> "banana" 11 -> "grape" else -> "It's not fruites." } 가장 먼저 일치하는 매치식에서 when 식의 실행이 끝난다. else는 항상 맨 마지막에 위치해야 한다. when 결과를 활용하는 when 식에서 else 가 없으면 오류남. 2023. 10. 15.
아토믹 코틀린 32 - 오버로딩 함수의 시그니처는 1) 함수 이름, 2) 파라미터 목록, 3) 반환 타입으로 이루어진다. 코틀린은 시그니처를 비교하여 함수와 함수를 구분한다. 함수를 오버로딩 할 때는 함수 파라미터 리스트를 다르게 해야 한다. 함수의 반환 타입은 오버로딩 대상이 아니다. 오버로딩은 이럴 때 유용함 fun add(i: Int, j: Int) = i + j fun add(i: Double, j: Double) = i + j // 오버로딩이 되니 파라미터 타입이 다른걸로 새로운 함수를 만들 필요 없다. 2023. 10. 15.
아토믹 코틀린 31 - 이름 붙은 인자와 디폴트 인자 이름 붙은 인자를 사용하면 코드의 가독성이 좋아진다. fun color(red: Int, green: Int, blue: Int) fun main() { // 별 정보가 없는 함수 color(1, 2, 3) // 인자에 이름을 붙여 사용 fun color( red = 76, green = 89, blue = 0 ) } 이름 붙은 인자를 사용하면 인자의 순서를 변경할 수도 있다. fun main() { color( blue = 0, red = 99, green = 120 ) } 이름 붙은 인자를 디폴트 인자와 결합하면 더 유용하다. 디폴트 인자 = 파라미터의 디폴트값을 함수에서 정의하는 것 fun color( red: Int = 0, green: Int = 0, blue: Int = 0, ) 함수 호출 시.. 2023. 10. 15.
아토믹 코틀린 30 - 확장함수 코틀린의 확장함수는 기존 클래스에 멤버 함수를 추가하는 효과 receiver type (수신객체타입) - 확장할 대상의 타입 확장 함수를 정의할 때 함수 이름 앞에 수신 객체 타입을 붙여줘야 한다. // 예) fun String.singleQuote() = "'$this'" 확장 함수는 '수신 객체 타입의 멤버함수'인 것처럼 호출할 수 있다. 다른 패키지에서 확장 함수를 쓰려면 import 해야한다. 확장 함수는 수신 객체 타입(=확장 대상 타입)의 public 원소에만 접근할 수 있다. 확장 함수를 사용하는 장점은 '구문적 편의'를 얻는 것이다. fun Book.categorize(String) fun categorize(Book, String) // 위 두 함수는 같다. // 하지만 전자가 구문적으로.. 2023. 10. 15.
728x90
반응형