Server

    검색 서비스 구현: 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..

    Javascript/Typescript 기본 문법 정리

    Javascript/Typescript 기본 문법 정리

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

    [Spring-boot] @RestController 와 @Controller

    [Spring-boot] @RestController 와 @Controller

    @RestController와 @Controller는 모두 컨트롤러 빈을 등록할 때 사용하는 어노테이션이지만 차이가 있다. @Controller @Controller는 view page를 반환한다. 만약 json 타입을 반환하고자 하는 경우 @ResponseBody 어노테이션을 추가한다. @ResonseBody를 사용하면 객체를 반환하고, 객체는 HTTP response body가 담을 수 있는 json이나 xml 타입으로 변환하여 Get 요청을 보낸 클라이언트는 json 타입으로 객체를 받게 된다. 즉 viewResolver를 사용하지 않는다. @RestController @RestController는 Restful Controller 라고 생각하면 된다. @Controller와 @ResponseBod..

    [Flutter] pagination: 스크롤 시 추가 데이터 로딩하기(무한스크롤)

    Pagination을 위한 무한 스크롤 동작 구현 스크롤을 바닥까지 내렸을 때 목록에 데이터를 더 불러올 수 있도록 구현함. 블로그를 보면 ListView 위젯을 많이 사용하던데, 나는 SingleChildScrollView 위젯에 스크롤 컨트롤러를 추가하여 구현하였다. ScrollController 선언 final scrollController = ScrollController(); SingleChildScrollView 위젯에 controller 추가 SingleChildScrollView( controller: scrollController, ... ); 스크롤 컨트롤러 리스너 추가 스크롤을 내리거나 올릴 때마다 listener에 등록된 _addScrollController 함수가 호출된다. scr..

    [spring-boot] application.properties-dev로 실행하기

    작성할 때는 다 제대로 보이는데 글 등록하면 대체 왜 인라인 코드 블록이 적용 안되는건지 모르겠다.. 티스토리 어렵네🤷‍♀️ application.properties란? 스프링부트가 자동으로 로딩되기 위한 규약들 mysql 서버 정보, jpa 설정 등 작성함. 기본 설정 파일 application.properties을 개발 환경 용 설정파일 application-dev.properties 로 바꾸는 방법 application.properties 에 active 설정 spring.profiles.active=dev그리고 gradle에서 설치해야한다. bootRun { String activeProfile = System.properties\['spring.profiles.active'\] s..