회사에서 KMS(지식 관리 시스템)을 만들려고 하는데 조사하래요...(인턴...)


(asasd) #1

회사에서 KMS를 만들려고 합니다.
일단 정해진건 아무것도 없고 데이터는 json으로 하고 key-value store/NoSQL로 가려고 합니다.
DB-Engine ranking을 보면 key-value store는 redis가 1등이네요. NoSQL 전체로 보면 MongoDB구요…
검색엔진으로는 최근 공식 한글 형태소 분석기(노리)를 릴리즈한 Elastic Search를 생각하고 있는데요…
혹시 다른 추천하실만한 스택이 있을까요???
또 보고서를 작성해야되는데 이제 인턴이라 어떻게 작성해야되는지도 모르겠는데… ppt로 해야되나요…??ㅜㅜ


(asasd) #2

혹시 위 스택으로 뭐든지 만들어 보신분 계신가요???
장단점을 찾아야 되는데 뭘 비교해야 되는지 어떻게 분석해야 되는지 모르겠네요…


(집에서밥먹자) #3

인턴부터 굉장한 미션이네요.
회사에서 kibana/elasticsearch 사용경험이 있어서 공유해드립니다.

  1. 결론. kibana/elasticsearch 는 들이는 노력과 시간에 비해 결과물이 좋습니다.

  2. 저장소
    ElasticSearch만 있어도 JSON을 보존할 수 있습니다. 즉 보존하려는 자료형이 json만이라면
    ElasticSearch만으로도 충분합니다.

  3. kibana
    ElasticSearch에 저장한 json을 손쉽게 가공해서, 그래픽깔끔하고, 실시간가능하고, 코딩이 필요없이
    그래프로 보여줄 수 있는 툴입니다. ElasticSearch와 연계하면, 1시간 이내로 간단히 결과물을 만들 수 있습니다.

  4. 접근성
    아주 뛰어난 한글로된 도큐먼트를 그대로 따라하면 됩니다. 쉽습니다.
    테스트해볼 리눅스 환경이 없다면, AWS에서 만들어서 하세요. 웹 서버 구축에 10분도 안걸립니다.
    https://www.elastic.co/guide/kr/elasticsearch/reference/current/gs-installation.html

  5. 보고서
    어떤 보고서요…?
    “이러이러한걸 만들기 위해 이러이러한 툴을 이러이러한 이유로 사용하고 싶습니다”
    라면 PPT로 충분할겁니다.

  6. 제 경험
    어떤 데이터를 보존하여 어떤 결과를 도출하고 싶냐라는 주제의식이 없으면 만드나마나한
    구조가 되어버리고 맙니다. 즉, KMS를 제대로 구축하려면 툴이 중요한게 아닙니다.
    때문에 어떠한 결론을 내고 싶은데, 어떤 툴(ElasticSearch등)을 이용하는게 좋을까요?
    라는게 좋은 질문 아닐까요? 아래는 실제 실무경험을 적어놓겠습니다.

  1. 시스템이 받아들이는 리퀘스트를 하루 약 40만건을 sh로 가공하여 json으로 보존하여 가시화.
    ➤ 어떤 리퀘스트가 처리시간이 오래걸리는가? ➤ 오래걸리는 리퀘스트가 있다면, 제품(SW)설계에 문제가 있는것이 아닌가?
  2. 각 시스템의 CPU, 메모리, 각 DB서버의 용량 등을 가시화.
    ➤ 시간에 따른 사용량변화 예측 ➤ 서버스펙을 올려야할 필요가 있는가? 현재 사용량은 안정적인가?

ElasticSearch는 분명 좋은 툴이지만, 저장용량이 커지면 커질수록 가공에 시간이 걸리며,
버전에 따라 때때로 틀린 통계치를 표시하기도 했습니다. (설계 실수로 램 용량이 부족했기 때문)

  1. 마지막
    우선, KMS가 정의하는 범위가 넓기 때문에, 구체적으로 어떠한 시스템을 구축할 것이며,
    어떤 데이터(예: 고객이 자주 방문하는 페이지 명과 횟수 등) 를 보존하고 싶은지 대략적으로 알려주세요.
    그러면 도움이 될만한 실무자들이 여기에 즐비합니다. 구체적인 사항이 없으면 이 글처럼 길어져 루즈하게 됩니다.