Go (2) 썸네일형 리스트형 고루틴을 사용해서 검색 API의 성능을 끌어올리기 고루틴, 채널 사용 전 고루틴, 채널 사용 후 응답속도 기존 로직 func SearchByKeyword[T model.Response](searchKeyword string, resp *[]T) { suggestKeyword := BuildSuggestQuery(searchKeyword) q := util.Queue{} _, s := util.InspectSpell(searchKeyword) q.Enqueue(elastic.NewMatchQuery(movieNmText, s)) q.Enqueue(elastic.NewMatchQuery(movieNmEngToKor, s)) q.Enqueue(elastic.NewMatchQuery(movieNmKorToEng, s)) q.Enqueue(elastic.NewM.. Go에서 의존성 주입을 받는 방법 비즈니스 레이어를 테스트하려면 외부 라이브러리에 의존하지 않는 순수한 비즈니스 로직만이 존재하는 것이 유리하다. 그래서 꼭 필요한 외부 라이브러리의 경우 유연성을 위해 의존성을 외부에서 주입 받는 것으로 해결한다. 스프링의 경우 IOC 컨테이너를 통한 DI가 있지만, Go는 따로 지원해주는 것이 없기 때문에 외부에서 직접 주입해줘야한다. 아래의 코드는 olivere라는 오픈소스와 강한 결합을 맺고있기 때문에 테스트를 짜기가 쉽지않다. package handler import ( "context" "encoding/json" "github.com/2tsumo-hitori/sample-api/config/esclient" "github.com/2tsumo-hitori/sample-api/model" "git.. 이전 1 다음