최근에 다시 함수형 인터페이스 (람다와는 다른) 추상메소드 인터페이스에 관심이 많아졌습니다. 생각보다 서비스 개발을 하게 되면서 잘 안쓰게 되고 되려 메소드 방식의 내용이 익숙하고 편한지라 그런 내용들을 자주 사용하곤 하였는데요, 이번 글에서는 이제부터라도 함수형 인터페이스를 좀 더 제대로 써보고 싶은 마음에 글을 작성하게 되었습니다. 목적 : 함수형 인터페이스가 무엇이 있는지 파악하고, 이를 실제 함수에 적용해본다. 1. 가장 먼저 함수형 인터페이스를 왜 사용하는지부터 알아보려 합니다. 기본적으로 가장 많이 사용하고 있는 자바의 함수형 인터페이스는 람다 표현식입니다. 화살표 함수라고 하는 이 녀석의 기본 꼴은 아래와 같습니다. public interface FunctionUtil { public abs..
Author: 니용 이전에 Java를 사용하면서 대표적으로 많이 사용하였던 것이 바로 함수(메서드)였습니다. Kotlin에서도 Java보다 더 쉽게 함수를 사용할 수 있습니다. 보통 Java는 public class ClassName을 선언하고 그 아래에 사용을 했어야 했는데요, Kotlin은 class 선언이 따로 필요 없이 사용이 가능합니다. 이전 글에서도 보시다시피 프로젝트를 실행시키는 메인 함수가 class 선언 없이 3줄 내로 끝났었습니다. fun main(args: Array) { println("Say Hello") } 함수는 fun 키워드로 정의합니다. 함수가 있다면 파라미터도 존재하는데 파라미터를 선언하는 형태는 Java와 약간 다릅니다. 기본적인 타입과 선언에 대한 내용은 여기서 자세히..
Author: 니용 MySQL에서 함수를 만들어보는 연습을 하려고 합니다. 대개는 많은 함수를 제공해주고 있지만 정작 필요할 때 일일이 찾아보기 번거로운 함수도 있지요. DATE_FORMAT 전에 들어가는 파라미터의 VARCHAR(String) 값을 null을 체크하기 위해 일일이 이렇게 사용해야 해요. SELECT YEAR( IF( (#{date} IS NULL) OR (#{date} = '') OR (LENGTH(#{date}) = 0) // 조건식 , CURRENT_DATE() // 조건식이 true 인 경우 , #{date} // 조건식이 false 인 경우 ) AS YEAR 그래서 함수를 생각해보았습니다. DELIMITER $$ DROP FUNCTION IF EXISTS IS_BLANK; // ..
Author: 니용 SUBSTR : 문자열을 잘라서 사용할 때 주로 사용합니다. 1. SUBSTR(str, pos) : str에서 pos부터 끝까지 읽어서 사용(pos는 음수도 가능) ex) SELECT SUBSTR('abcdefg', 4) -> 'defg' 2. SUBSTR(str, pos, len) : str에서 pos부터 len의 길이만큼 잘라서 사용(pos의 시작은 1부터) ex) SELECT SUBSTR('abcdefg', 1, 4) -> 'abcd' 3. SUBSTR(str FROM pos) : SUBSTR(str, pos)와 같음 ex) SELECT SUBSTR('abcdefg' FROM -2) -> 'fg' DATE_FORMAT : 데이터를 DATE 포맷으로 변환하기 위해 사용합니다. 더보..