전체 글
[Kotlin] 제네릭스
🌟 화면을 넓게 하시면 오른쪽에서 목차를 확인하실 수 있습니다. :) 제네릭 타입 파라미터 제네릭 타입 파라미터를 사용하여 제네릭 함수, 프로퍼티, 클래스를 선언하는 방식은 자바와 비슷하다. 제네릭스를 사용하여 타입 파라미터를 받는 타입을 정의할 수 있고, 타입 인자로 치환하여 인스턴스를 만들 수 있다. 타입 인자(type argument)는 프로그래머가 직정 타입 인자를 정의하거나 컴파일 과정에서 타입 추론에 의해 타입 인자가 추론될 수 있어야한다. List // 타입 파라미터로 String을 받고 있는 리스트 제네릭 함수와 프로퍼티 리스트를 다루는 함수를 작성할 때, 모든 리스트를 다룰 수 있는 함수를 만들고 싶을 때 제네릭 함수를 작성한다. 제네릭 확장 프로퍼티도 마찬가지로 타입 마라미터를 선언하여..
[빅데이터를 지탱하는 기술] 1장 빅데이터 기초 지식과 Druid
🌟 화면을 넓게 하시면 오른쪽에서 목차를 확인하실 수 있습니다. :) 책의 요약 + 더 찾아본 내용이 포함되어 있습니다. 요약 1.1 Hadoop, NoSQL db, data warehouse 1.2 데이터 파이프라인의 시스템 구성 1.3 파이썬에 의한 ‘대화형 데이터 처리’ 1.4 데이터 모니터링: spread sheet, BI 도구 사용 1-1 [배경] 빅데이터의 정착 빅데이터를 다루는 목적은 가치 있는 정보를 얻어오는 것! 책에서는 데이터 처리를 어떻게 효율적으로 실행하는지, 그리고 데이터 파이프라인의 자동화에 대해서 다룰 예정이라고 함. 즉, 데이터를 어떻게 분석하냐(데이터 분석)이전에 어떻게 분석가에게 가공해서 전달할 지(데이터 엔지니어링)를 설명하는 책인듯하다. 빅데이터를 처리하는 대표적인 시..
[Kotlin] 클래스와 인터페이스
인터페이스 자바에서의 인터페이스 사용방식과 유사하고, default method 또한 가능하다. syntax interface 로 선언 구현 클래스 뒤에 :(인터페이스이름) 을 사용하여 구현(implement) override fun (인터페이스에 구현되어 있지 않은 메서드) 로 메서드 오버라이드 default method의 경우 특별한 키워드 없음. super.메소드_이름 : 상위 인터페이스의 메서드를 호출 여러 개의 상위 인터페이스를 구현할 때 같은 메서드가 존재하는 경우? —> 자바와 마찬가지로 컴파일 에러가 나서 오버라이딩 메서드를 제공해야함. open, final , abstract 변경자 final이 default로, 상속 및 오버라이딩이 금지되어있다. open 을 통해 상속이나 오버라이드를 ..
검색 서비스 구현: SQL 작성 또는 Full-text search(Elastic Search)
초안 : 22.01.13 2차 수정 : 22.03.21 (Full-text seach 내용 추가) 1. Like 로 찾기 keyword를 바탕으로 콜키지 매장-이름, 주소 중 일치하는 단어가 있는지 확인해서 List로 반환 => db의 name, addr의 빈칸을 모두 제거한 뒤 "%"+keyword+"%" 와 일치하는 데이터가 있는지 확인(LIKE) String sql = "SELECT * FROM corkage_store ck" + " WHERE replace(ck.addr, ' ', '') LIKE :keyword" + " OR replace(ck.name, ' ', '') LIKE :keyword"; List result = em.createNativeQuery(sql, CorkageStore.c..
[JAVA] HashMap,HashSet에서 Object를 key로 가지는 경우 get()
자바의 HashMap 구현체를 사용하면서 배열이나 사용자 정의 값을 키로 가지는 경우 사용하는 방법을 정리한 글입니다. 자주 쓰이는 정수값이나 문자열은 단순히 get()을 통해서 값을 얻어올 수 있지만, 그렇지 않은 경우에는 추가적인 작업이 필요합니다. HashMap에서 key의 entry 찾기 자바 HashMap 클래스는 hashCode()와 equals() || ==을 이용하여 key에 해당하는 entry를 찾습니다. 구체적으로 k라는 키를 찾는다고 할 때 다음의 단계를 거칩니다. k.hashCode()를 통해 해당 entry가 담긴 버킷을 탐색 얻은 버킷의 entry 키가 k1이라고 할 때, k==k1 || k.equals(k1) 이면 k1 entry를 리턴 배열이나 직접 구현한 객체를 키로 사용하..