분류 전체보기

    검색 서비스 구현: 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은 그대로이다.

    [MSA] BFF 패턴: 프론트엔드를 위한 백엔드

    [MSA] BFF 패턴: 프론트엔드를 위한 백엔드

    ⭐️ 틀리거나 모호한 부분은 알려주시면 감사하겠습니다. BFF 배경과 개념 사용자 인터페이스(ios, android, desktop 등)가 다양해짐에 따라 기존의 방식대로 프론트엔드 요청 백엔드 응답 방식을 이용하게 된다면 병목현상이나 구현해야 할 api들이 훨씬 많아질 수 있다("code bloating"). 그래서 화면을 위한 백엔드를 프론트엔드 단과 백엔드 단 사이에 두어 데이터 수집 및 처리를 용이하게 해주는 BFF 패턴 방식이 등장하였다. 다음의 두 가지 예를 들어 bff 개념을 이해할 수 있다. (첫번째는 일반적인 예시고, 두번째는 개인적으로 bff를 공부하게 된 배경이 포함된 예시..) 예를 들어, 네이버에서 어떤 상품을 검색하는 경우, 최소 1) 상품에 관한 정보 와 2)리뷰가 화면에 보이..