공부하다죽어라
[Kotlin] 코틀린에서 Null 다루기
개발/Kotlin 2021. 6. 29. 20:51

코틀린에서의 Null 체크 # JAVA Null 처리 public boolean sw(String str) { if(str == null) return null return str.startsWith("A"); } # Kotlin Null 처리 fun sw(str: String?): Boolean { if(str == null) return null return str.startsWith("A"); } 코틀린에서는 Null이 가능한 타입을 완전 다르게 취급한다 (끝에 물음표) Safe Call과 Elvis 연산자 val str: String? = "ABC" str.length // 불가능 str?.length // 가능 -> [safe call] println(str?.length); // str이 nu..

[Kotlin] 코틀린에서 변수 다루기
개발/Kotlin 2021. 6. 28. 17:24

var과 val의 차이점 # JAVA long num = 10L; // 가변 final long num = 10L; // 불변 # Kotlin var num = 10L // 가변 val num = 10L // 불변 var num1: Long = 10L val num1: Long = 10L // 타입 명시 가능 var num: Int println(a) // 초기값을 지정해주지 않는 경우 컴파일 에러 발생 1.1 코틀린에서는 모든 변수에 가변/불변 여부를 표시해주어야 한다. 1.2 var은 가변이라는 뜻이고 val은 불변이라는 뜻이다. 1.3 var/val을 쓰지만 타입을 명시적으로 지정해줄 수 있다. 1.4 초기값을 지정해주지 않는경우는 컴파일 에러를 발생시킨다. 코틀린에서의 Primitive Type ..

article thumbnail
[Spring Batch] 스프링 배치의 이해
개발/Spring 2021. 6. 23. 15:58

일괄 처리(batch processing) 최종 사용자의 개입 없이 또는 (자원이 허가한다면) 실행을 스케줄링할 수 있는 작업(job)의 실행을 의미한다. 배치를 사용했을 때 얻는 이점 많은 사용자 사이에서 컴퓨터 자원을 공유할 수 있다. 작업 프로세스의 시간대를 컴퓨터 리소스가 덜 사용되는 시간대로 이동한다. 분 단위의 사용자 응답 대기와 더불어 컴퓨터 리소스의 유휴 사용을 피한다. 전반적인 이용률을 높임으로써 컴퓨터의 비용을 더 잘 상환하도록 도와 준다. 일괄 처리 시스템은 일정 기간마다 주기적으로 한꺼번에 처리할 필요가 있고, 그룹별로 분류시킬 수 있는 성질을 가지고 있으며, 순차 접근방법을 사용할 수 있는 업무. 즉, 처리 요건이 일괄적인 업무에 대해 유사한 자료를 한데 모아 일정한 형식으로 분류..

article thumbnail
[Redis] Docker 환경에서 Redis 띄우기
개발/Database 2021. 6. 21. 21:42

Redis의 실습을 위해 Docker 환경에서 Redis를 띄워보겠습니다. 실습환경 : Windows10 우선 cmd 창을 열고 다음과 같은 명령어를 입력합니다. docker pull redis 성공적으로 Redis 이미지를 도커에 다운받았습니다. Redis를 실행하기위해 동일한 cmd창에서 다음 명령어를 입력합니다. docker run --name redis -d -p 6379:6379 redis 도커는 기본적으로 6379포트를 사용합니다. Status가 UP이라고 나와있으면 성공입니다. Redis-Cli 띄우기 Redis를 콘솔에서 조작하기위해 Cli에 접근해야합니다. docker run -it --link redis:redis --rm redis redis-cli -h redis -p 6379 성공!

article thumbnail
[Redis] Redis 란?
개발/Database 2021. 6. 20. 20:54

Redis 레디스(Redis)는 Remote Dictionary Server의 약자로서, "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)입니다. 비관계형 데이터베이스? 비관계형 데이터베이스는 관계형 데이터베이스와 반대되는 성격을 갖고있습니다. 비관계형이라는 단어에서 알 수 있듯, NoSQL은 기본적으로 조인이 불가능합니다. 때문에 수평적 확장이 가능한 데이터베이스라고 부릅니다 : ) NoSQL은 대표적으로 MongoDB, Redis가 있는데 오늘은 Redis를 알아보겠습니다. Redis, 어디서 사용되나요? Redis는 크게 두 가지로 사용될 수 있습니다. 1. 세션 처리 Redis는 세션 관리 작업에 매우 적합합니다. Redis를 ..

article thumbnail
Spring Security no instance(s) of type variable(s) exist so that UserService conforms to UserDetailsService 에러
개발/에러 해결 2021. 6. 18. 09:57

Spring Security를 이용한 로그인처리를 구현하던 도중 만나게 된 에러입니다. no instance(s) of type variable(s) exist so that UserService conforms to UserDetailsService 자세히 보니 userService에 UserDetailsService를 상속받지 않고 그냥 SecurityConfig에 권한 검증 설정만 해둬서 생긴 문제였습니다.. 바로 상속받고 구현해줬습니다. @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { UserEntity userEntity = userRepository.findByEm..

article thumbnail
[Kafka] Kafka broker 및 용어 정리
개발/Kafka 2021. 6. 17. 23:19

Kafka broker 카프카 브로커란? 카프카 어플리케이션 서버, 즉 카프카의 서버를 의미합니다. 일반적으로 kafka 브로커는 3대 이상의 Broker Cluster를 구성하는 것을 권장한다고 합니다. 이렇게 연결된 브로커들을 관리해주기위해 코디네이터라는 시스템을 연동하여 사용하는데 그 시스템이 바로 Zookeeper 입니다. 공개분산형 구성 서비스, 동기 서비스 및 대용량 분산 시스템을 위한 네이밍 레지스트리를 제공한다. - 아파치 주키퍼 위키백과 아파치 주키퍼의 역할은 클러스터링된 브로커의 메타데이터 ( Controller Id, Broker Id ) 를 관리하고 Controller 정보를 저장합니다. 이유는 N개의 브로커중 하나는 무조건 Controller의 역할을 담당해야 하기 때문입니다. 이..