분류 전체보기

    [Kotlin] 클래스와 인터페이스

    인터페이스 자바에서의 인터페이스 사용방식과 유사하고, default method 또한 가능하다. syntax interface 로 선언 구현 클래스 뒤에 :(인터페이스이름) 을 사용하여 구현(implement) override fun (인터페이스에 구현되어 있지 않은 메서드) 로 메서드 오버라이드 default method의 경우 특별한 키워드 없음. super.메소드_이름 : 상위 인터페이스의 메서드를 호출 여러 개의 상위 인터페이스를 구현할 때 같은 메서드가 존재하는 경우? —> 자바와 마찬가지로 컴파일 에러가 나서 오버라이딩 메서드를 제공해야함. open, final , abstract 변경자 final이 default로, 상속 및 오버라이딩이 금지되어있다. open 을 통해 상속이나 오버라이드를 ..

    검색 서비스 구현: SQL 작성 또는 Full-text search(Elastic Search)

    검색 서비스 구현: 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를 리턴 배열이나 직접 구현한 객체를 키로 사용하..

    [JAVA] 제너릭 타입으로 배열을 만들 수 없는 이유 (타입 추론)

    여러개의 Set을 배열로 구현해서 다음과 같이 add하면 warning이 뜬다. Set[] set = new Set[2]; set[0] = new HashSet(); set[0].add(0); add 시 warning: add하는 값의 type check가 보장이 안되어서인 것 같다. Unchecked call to 'add(E)' as a member of raw type 'java.util.Set' "How to make an array of map" 왜 Map으로 배열을 만들 수 없는지 더 찾아보았고, 그 이유는 제너릭 타입은 타입 추론이 일어나기 때문에 typesafe 하지 않아 ClassCastException 런타임 오류가 발생할 수 있어서이다. 예를 들어서, 아래처럼 선언을 했다고 했을 때,..

    Javascript/Typescript 기본 문법 정리

    Javascript/Typescript 기본 문법 정리

    구조 분해 할당(Destructuring assignment) 배열이나 객체를 해제하여 그 값을 개별 변수로 담는 방법이다. 개별 변수로 할당된 값은 기존 값이 변경되더라도 변경되지 않는다(값만 copy 되는 것). arr[0]은 3으로 변경되었지만 idx0은 그대로이다.