반응형

인터페이스

    kotlin 기본 정리

    기본적인 특징 - 자바와 마찬가지로 정적 타입 지정 언어로 컴파일 시 모든 것이 결정된다. - 자바와는 별개로 모든 타입을 직접 명시할 필요 없이 컴파일러가 타입 추론을 통해 자동 추출한다. - nullable type을 제공하여 컴파일 시 npe 발생 여부를 미리 확인 할 수있다. - 코틀린 사용에 있어서 실용성, 간결성, 안전성(casting, npe 이점), 상호 운용성(자바와 호환)등의 장점이 있음. - 컴파일 시 코틀린 런타임 라이브러리에 의존한다. - java의 기본 가시성은 default인것에 반해 코틀린의 기본 가시성은 public이다. - 클래스를 만들지 않고 함수와 변수를 만들 수 있으며 이는 자동으로 컴파일 시 별도의 클래스를 만들도록 해준다. - 최상위 변수(프로퍼티)도 getter..

    클린코드 7장(경계), 8장 (단위 테스트)

    경계 Map과 같은 공개된 인터페이스를 사용할 때 2가지 문제가 있다 1. 전달되는 map에 clear와 같은 삭제 명령어가 있어서 전달해주는 쪽에서 알지 못하고 지워지는 이슈가 있을 수 있다. 2. 전달된 Map 형태가 generic 하게 전해 졌어도 받는 쪽에서 Map map 등으로 받아 버린다면 캐스팅을 해서 사용하는 등의 문제나 변경의 소지가 크다. 또한 Map의 사용 방식이 변경된다면 이를 해결하기 위해 모든 부분에서 수정되어야 하는 문제가 있다. 그래서 이를 해결하기 위해서 Map에 사용 되는 Value 값의 객체에서 Map을 품어서 쓰는 방식으로 캡슐화하여 사용하기도 한다. public classs Sensors { private Map = new HashMap(); public Sensor..

    리액티브 스트림의 이해

    리액티브 스트림은 총 4개의 인터페이스로 구성되어 있다. ㅁ 발행자(Publisher) - 데이터의 소스를 가지고 있으며 Subscriber의 요청이 오면 데이터를 발행한다. 구독자는 발행자에 대한 구독을 추가할 수 있다. Subscribe 메소드를 통해서 구독자를 추가할수 있다.123public interface Publisher { public void subscribe(Subscriber

    규칙 62 - 메서드에서 던져지는 모든 예외에 대해 문서를 남겨라.

    메서드를 올바르게 사용하려면 메서드에서 던져지는 예외에 대한 설명이 문서에 있어야 한다. 그리고 메서드가 던질수있는 모든 무점검 예외까지 선언할 필요는 없지만 점검지점 예외들과 마찬가지로주의해서 문서로 남겨놓으면 좋다. 특히 Javadoc @throws 태그를 사용해서 메서드에서 발생 가능한 모든 무점검 예외에 대한 문서를 남겨야 한다. 하지만 메서드 선언부의 throws 뒤에 무점검 예외를 나열하지는 말아야 한다. 요약하자면 메서드가 던질 가능성이 있는 모든 예외를 문서로 남겨라. 점검지점 예외, 무점검 예외도 남겨라. 이를 지키지 않으면 해당 API를 사용하는 다른사람들이 효과적으로 사용하는게 어려워진다. 출처 : 조슈아 블로크, 『 Effective Java 2/E』, 이병준 옮김, 인사이트(201..

    Java8 함수형 인터페이스 만들어서 사용하기

    Java8 함수형 인터페이스 만들어서 사용하기 함수형 인터페이스 사용 -> 정의한 함수형 인터페이스를 람다식을 이용하여 사용할 수 있다. 12345678910111213141516171819// 함수형 인터페이스 선언 // 함수형 인터페이스를 만들고자 할 경우에는 @FunctionalInterface 애노테이션을 붙혀야 한다. @FunctionalInterfacepublic interface WedulInterface { public void print(int x);} public static void main(String args[]) { WedulInterface wedul = new WedulInterface() { @Override public void print(int x) { System.ou..

    자바 8에서 java.util.function 패키지에 추가된 기본 함수형 인터페이스 정리

    자바 8에서 java.util.function 패키지에 추가된 기본 함수형 인터페이스 정리 Function => T를 입력으로 R을 출력하여 반환 1234567891011121314151617public class Java8Test { public static void main(String args[]) { Function mapStrToInt = new Function() { public Integer apply(String str) { if (str == "wedul") { return 1; } return 2; } }; List testData = Arrays.asList("wedul","dd","babo"); testData.stream().map(mapStrToInt).forEach(System..

    Java8 인터페이스의 정적 메소드

    인터페이스의 정적 메소드 Java 8 부터는 인터페이스에 정적 메소드를 추가할 수 있다. 원래부터 인터페이스에 정적 메소드를 추가하면 안되는 이유는 없었으나, 단지 추상 명세로서 변하면 안된다는 인터페이스의 정신에 어긋 나는 것으로 여겨져 금지되어 왔다. 지금 까지는 일반적으로 인터페이스와 동반하는 클래스들에 정적 메소드를 두었다. 하지만 이제는 사용이 가능하다.

    Java8 기초 설명

    Java8과 Java7은 많은 부분이 바뀌어서 이제 Java8을 모르는 사람은 다른사람들과 협업하기 어려워 질 수도 있다. 작년에 공부하였던 부분을 다시 복습 할겸 포스팅을 진행한다. Java8이 도입되면서 많이 변경된 부분이 함수형 프로그램이 가능하도록 되었다는 것이다. 그것의 중심에는 람다식 표현식이 있다. 람다 표현식(lambda expression) - 람다식 이란? 단순히 정의하면, 프로그래밍에서 식별값 없이 실행 할 수 있는 함수 표현 방법, 함수를 변수에 할당, 파라미터로 전달하는게 가능 이미 많은 언어에서 지원하고 있다. Ruby, C#, Python,,,,, 그러나 자바는 함수형 프로그램 언어가 아니 여서 기존에 사용할 수 없었다. - 함수형 인터페이스(functional interfac..

    클래스와 인터페이스 - 규칙22 멤버 클래스는 가능하면 static으로 선언하라.

    중첩 클래스 (nested class)는 다른 클래스안에 선언된 클래스이다. 이런 중첩 클래스는 4가지 종류로 구성되어있다. 1. static member class 2. non-static member class 3. anonymous class 4. local class. 2 ~ 4번 클래스는 내부 클래스(inner class)이다. 상황별 중첩 클래스 사용 그럼 위에 출력한 4가지의 중첩 클래스의 적절한 사용 시기를 알아보자. 1. 정적 멤버 클래스 (static member class) - 정적 멤버 클래스는 바깥 클래스의 모든 멤버에 접근할 수 있다. (private 멤버 변수도 접근 가능) - 다른 정적 멤버와 동일하게 접근 권한 규칙을 따른다. - private static member cl..

    클래스와 인터페이스 - 규칙 21 전략을 표현하고 싶을 때는 함수 객체를 사용하라.

    호출 대상에 대해 어떠한 작업을 수행하는 것을 전략 패턴이라고 한다. 12345class StringCompare { public int compare (String s1, String s2) { return s1.length() - s2.length(); }}Colored by Color Scriptercs 두 개의 문자열을 받아서 비교하는 클래스를 사용할 수 있는 전략 패턴이다. 비교가 필요할 경우 매번 StringCompare 클래스를 생성하지 말고, 싱글톤 패턴을 정의하여 가져다가 사용하면 더욱 편리하다. 하지만 이 StringCompare 클래스의 경우 객체를 메서드에 전달하기 위해서는 인자의 자료형이 String이어야 한다. 따라서 Compareator 인터페이스를 정의 하여 이를 String..

반응형