개발자를 위한 작명 방식을 검색 서비스
‘이름 짓기'의 중요성
- 개발자에게 이름 짓기는 많은 시간과 노력이 필요한 작업이다.
- 코드 맥락에 맞는 영어 표현을 찾는 것 자체도 문제지만, 그 표현이 문법에 맞는지, 보편적으로 사용되는지, 다른 사람이 읽어도 뜻을 알 수 있는 단어인지까지 고민해야 한다.
검색을 통해 도움을 받자
- 개발자들이 자주 사용되는 표현이나, 신뢰도 있는 프로젝트에서 사용된 작명 방식을 검색할 수 있는 서비스를 개발하였다.
Var-myeongso란?
- 변수를 나타내는 표현 (Var)에 名所(명소)을 붙여, 개발자의 작명에 도움을 줄 수 있는 공간이라는 뜻이다.
기존 서비스
- 다양한 언어를 지원한다.
- 다양한 출처에서 결과를 가져온다.
- 검색 시 시간이 오래 걸린다.
- 단순 단어 검색만 가능하며 변수, 클래스, 메서드 별 검색은 불가하다.
차별성 및 기능
- 메서드나 클래스명 등의 검색 필터 추가
- 필터에 따른 검색 결과 개수 반환
- 역인덱싱 방식을 사용한 빠른 검색 속도
- 검색어가 어디서, 어떻게 사용되는지 알 수 있는 실제 코드와 출처 반환
- 자체적으로 정한 신뢰도 평가 방식으로 검색 결과를 정렬
- 서버에 저장되어 검색에 타겟이 될 코드를 지정
- Github, GitLab, Bitbucket 등 git 저장소 서비스에서 저장할 코드 url을 확인
- 이를 Var-myeongso 서비스에 지정하는 것으로 위와 같은 시나리오에 따라 서버에 불러옴.
- 코드 정보는 코드 검색의 대상이 되며 파싱, 인덱싱/역인덱싱을 거쳐 DB에 저장
- 사용자는 단어 검색, 검색 결과 확인 가능
- 사용자는 검색하고자 하는 단어와 함께 사용처(변수, 메서드, 클래스, 패키지), 언어(검색 언어) 등의 필터링을 적용하여 검색
- 이런 사용자의 요구를 웹 애플리케이션은 HTTP 요청으로 변환하여 서버에 요청을 전달
- Spring boot로 제작된 서버 웹 애플리케이션은 이 요청을 해석하여 ELK 검색 툴에서 자료를 검색하고, 이를 다시 HTTP 응답으로 만들어 반환/화면에 출력하여 사용자는 검색된 결과물을 확인
- 전체 서비스를 외부 사용자 접근을 위해 배포
- 리액트로 제작된 프론트 웹 애플리케이션은 netlify로 배포하고, 개인 도메인을 구매하여 ‘www.varmyeong.ecsimsw.com’으로 접속 가능
- 서버는 개인 서버를 사용하여 웹 서버(Nginx), 백엔드 웹 애플리케이션(Spring boot), 검색 엔진(ELK)를 구동
- 설정이 까다로운 Nginx와 ELK는 Docker를 이용하여 다른 환경에 구애받지 않고 서버 환경을 구성할 수 있게 컨테이너화
- 메인 페이지
- 기본 검색(Word): Word 검색은 검색어 ‘id’가 포함된 모든 코드가 검색된다.
- 변수명 검색: Variable 검색은 변수명이 ‘id’인 모든 코드가 검색된다.
- 클래스명 검색: Class 검색은 클래스명이 ‘HelloWorld’인 모든 코드가 검색된다.
김진환 | 조윤근 | 소재헌 |
---|---|---|
back-end | back-end | front-end |