Insight

자바스크립트 프레임워크 vs 넥사크로플랫폼

투비대원 2019. 11. 20. 15:44

웹 환경이 성숙되고 표준화, 구조화의 이슈가 불거지면서 자바스크립트 프레임워크에 대한 요구들이 늘어나고 있다. 다양한 형태의 자바스크립트 프레임워크들이 생겨나고 있으며 넥사크로플랫폼(이하 넥사크로) 또한 이 중 하나이며 국내 기업 업무 환경에서 많이 사용되고 있다. 넥사크로는 다른 자바스크립트 프레임워크들과 어떤 부분이 다르고 무엇을 강점으로 가지고 있는지에 대한 내용을 정리해 보고자 한다.

 

대량 데이터 처리

웹은 대량 데이터를 처리하기 좋은 환경은 아니다. 화면을 구성하는 Dom 구조나 화면 렌더링 처리, 단일 스레드 방식의 스크립트 처리, 메모리 관리 등 어느 것 하나 대량 데이터를 처리하기 좋게 만들어지지 않았다. 최근 들어 여러 가지 기법들이 만들어지고 있으나 실무에 적용하는 건 아직 미래의 이야기다. 해외의 경우 이는 당연하고 중요한 주제로 다루어지지 않는다. 물론 성능을 중요시하지 않는 건 아니지만 단위 자체가 다르다. 국내 UI 솔루션 업체에 있으면서 BMT/PoC를 진행하면 데이터처리 성능 검증은 필수 항목과 같이 포함된다

대략 10 로우 데이터 처리를 기본으로 생각한다. 스텍오버플로우나 깃허브 또는 자바스크립트 프레임워크 관련된 커뮤니티에서 이야기하는 대용량 데이터는 대략 1,000~1 로우 데이터가 대부분이다. 대량 데이터 처리의 경우 국내 기업환경의 특징 중 하나라고 할 수 있다. 한국인의 빨리빨리 문화와 발전된 IT 인프라 환경이 만나 대량의 데이터를 한 번에 빨리 처리하고자 하는 요구가 많고 기존 업무환경이었던 X-Internet/RIA가 이를 가능하게 해주었고 웹도 그러하기를 원하고 있다. 여기서 넥사크로와 다른 자바스크립트 프레임워크의 차이가 발생한다.

넥사크로는 이미 대량 데이터 처리에 익숙하다. 이전 세대 제품인 마이플랫폼/엑스플랫폼에서부터 대량 데이터 처리에 대한 고민은 계속되고 있다. 내부적으로 다양한 기법들이 사용되고 있으며 좀 더 개선하기 위한 방안들을 모색하고 있다.

 

오픈소스 vs 상용제품

자바스크립트 프레임워크의 대부분은 MIT 라이선스 방식의 오픈소스로 제공하고 있으며 사용 시 발생할 수 있는 두 가지 문제점에 대해 알아야 할 필요가 있다.

1. 오픈소스 라이선스 대응방안

오픈소스는 누구나 사용할 수 있도록 공개되어있는 기술이지만 라이선스에 따라 제약조건이 생길 수 있다. 리액트의 경우 ‘BSD+패턴 라이선스로 사용자의 지적재산권을 침해하더라도 페이스북을 고소할 수 없다”라는 조항이 포함되어 특허침해 관련 논란이 발생했으며 아파치 프로젝트에서 리액트 사용 금지, 오픈소스 개발자들의 보이콧 선언 등으로 현재 MIT 라이선스로 변경되며 사건은 일단락되었다. 이처럼 오픈소스의 경우 라이선스에 대한 확인이 필요하며 차후 유료 전환 및 라이선스 정책 변경 등에 대한 이슈 대응을 고려해야 한다.

2. 생태계

자바스크립트 프레임워크은 유지 보수 및 커뮤니티를 관리하는 단체가 존재하며 오픈소스 개발자들과의 피드백을 통해 운영되는 하나의 생태계가 존재한다. 그리고 이 생태계가 얼마나 잘 운영되고 있는가가 중요하다. 상용제품이 아니므로 빠른 버그 수정이나 질의응답을 요구할 수 없으며 커뮤니티를 통한 해결이 필요하다. 만약 이러한 생태계가 잘 구성되어 있지 않다면 많은 어려움을 겪을 수밖에 없다

예를 들어 사용 중 문제가 발견되어 커뮤니티에 문의를 해야 한다고 생각해보자. 우선 활성화되지 않는 커뮤니티일 경우 대응 기간이 길다. 1~2주 이상 아무도 관심을 안 가져줄 수도 있다. 다행히 답변들이 달렸다고 해도 이는 완벽한 답변이 아닐 수 있다. 일반 개발자의 답변의 경우 예외 처리나 해결방안을 제시해 줄 수는 있으나 소스에 대한 변경이 필요할 경우는 커미터(소스 반영 결정자)나 컨트리뷰터(코드 제공자) 정도의 개발자가 관심을 가져야 문제가 해결될 수 있으며 이 또한 많은 시간이 필요할 수 있다. 좀 더 빠른 해결을 위한다면 본인이 컨트리뷰터가 되는 방법도 있지만 그때는 이미 혼자 문제를 해결할 수 있는 수준일 것이다. 이처럼 유지 보수과 기술 지원에 대한 부담에 대한 고려가 필요하다.

넥사크로는 두 가지 문제점에 대한 해결책을 제공한다. 넥사크로는 상용제품이므로 오픈소스 대비 라이선스에 자유롭다고 할 수 있다. 제공되는 기능의 경우 대부분 자체 개발된 스크립트로 되어있으며 외부 연동을 위한 일부 오픈소스의 경우 라이선스에 대한 관리를 별도로 하고 있으므로 직접적으로 확인해야 하는 수고를 덜 수 있다.

생태계의 경우 넥사크로가 가진 특장점 중에 하나다. 20여 년간 누적된 노하우를 바탕으로 365일 기술 지원을 제공하고 있으며 누적된 기술 문의 내용은 기술 지원 사이트를 통해 공유되고 있다. 그리고 매월 정기 패치를 통해 들어온 버그나 기능 개선, 신규 기능 추가 등을 진행하고 있으며 관련된 내용은 정리되어 온라인상에 공유하고 있다. 기술 자료의 경우, 온라인 매뉴얼 등을 통해 제공하고 있으며 사용자 간의 의견 공유를 위한 커뮤니티 사이트 또한 운영하고 있다.

 

개발도구

자바스크립트 프레임워크는 개발도구를 제공하지 않는다. 반대로 개발도구에서 자바스크립트 프레임워크을 지원하는 형태다. 간단한 텍스트 에디터(NotePad++, Brackets)에서부터 통합개발도구(Visual Studio Code, WebStorm)까지 여러 가지 형태의 개발도구가 존재하며 사용하고자 하는 자바스크립트 프레임워크를 지원하는 개발도구를 찾아서 사용한다

최근 웹은 단순히 개발도구만을 필요로 하지 않는다. 스크립트에 대한 1차적인 보안 및 파일 사이즈 압축을 위한 난독화 및 압축 도구, 스크립트 간의 의존성 여부를 확인하고 관리할 수 있는 도구, 자동화 테스트를 위한 도구 등 다양한 도구들을 사용하며 해당 자바스크립트 프레임워크을 지원하는지를 확인해야 한다. 자신에게 맞는 도구를 찾았다면 이제 해당 도구에 대한 학습이 필요하며 사용방법 및 지원 기능이 상이하며 익숙해지는데 시간이 필요하다.

넥사크로의 경우 통합개발도구를 제공한다. 스크립트 및 UI 에디터에서부터 빌드, 테스트까지 가능한 환경을 제공하며 난독화 및 압축 도구 또한 툴에 내장기능을 제공하고 있다. 학습의 경우 기존 CS 툴 사용 경험이 있거나 자사 제품 경험이 있는 사용자의 경우 쉽게 익숙해질 수 있으며 툴 사용에 대한 가이드 문서를 온라인으로 제공하고 개발 툴 및 넥사크로 사용방법에 대한 정기교육을 제공하고 있다.

 

UI Framework

자바스크립트 프레임워크의 경우 높은 수준의 화면을 쉽게 만들기 위해 UI Framework을 많이 사용한다. Bootstrap이나 Material-UI, UI-Bootstrap이 여기에 속한다. 표준화된 CSS, JS로 원하는 UI를 쉽게 가져다 사용할 수 있다. 최근 유행하고 있는 마이크로 인터랙션 기능까지 가미하면 단기간에 멋진 화면을 구성할 수 있다. 하지만 여기에 문제가 하나 있다. 이미 완성된 형태로 제공되기 때문에 원하는 형태로 변경하기 어렵다는 단점이 있다

예를 들어 제공되는 색상이 아닌 다른 색상으로 변경하고자 하면 전체 CSS 구조를 뜯어봐야 한다. 단순한 객체로 구성되어있으면 쉬울 수 있으나 복합 객체에 중첩되어있는 형태라면 어디를 수정해야 하는지 전부 확인해봐야 한다. 이는 객체의 위치를 변경하고자 할 때에도 마찬가지이며 마이크로 인터랙션이 포함되어있다면 CSS JS를 함께 분석해봐야 하며 마이크로 인터랙션의 특성상 보기는 간단해 보여도 스크립트 난이도가 높은 경우가 많으며 그만큼 수정시간이 오래 걸릴 수 있다.

넥사크로의 경우 조금 다른 방식으로 UI Framework을 제공하고 있다. 디자인 교육 과정을 통해 템플릿을 제공하고 있으며 본 사이트를 통해 UI Framework과 같은 형태의 템플릿들을 제공하려고 준비 중에 있다. 그리고 넥사크로에서 제공하는 CSS 형태를 통해 UI Framework이 가진 문제점을 해소할 수 있다.

컴포넌트 단위의 CSS 적용

nexacro는 태그 별 CSS를 지정하는 것이 아니라 컴포넌트 단위로 CSS를 적용한다. 컴포넌트를 이루는 각각의 태그들의 CSS를 확인하고 중첩 여부나 구조를 확인할 필요 없이 컴포넌트의 CSS 하나를 확인하는 것만으로 디자인을 확인할 수 있어 복잡한 구조의 복합 객체를 모두 찾아볼 필요가 없다.

컴포넌트 중심의 위치설정

넥사크로의 컴포넌트는 위치가 변경되어도 다른 컴포넌트의 위치에 영향을 주지 않는다.(영향을 줄 수 있는 기능도 제공하지만 해당 기능에 대한 내용은 차후 다른 문서를 통해 설명하도록 한다.) 컴포넌트의 배치를 변경하더라도 다른 컴포넌트의 연관성에 대한 고민 없이 직관적으로 변경할 수 있으며 문제 되는 부분에 대한 수정 또한 용이하다.

 

Made in Korea

넥사크로는 국내 순수 기술 기반으로 개발된 자바스크립트 프레임워크이다. 제품과 관련된 모든 기술 및 기능은 자사의 기술력으로 구현된 결과물이다. 여기서 오는 장점은 두 가지로 정리할 수 있다.

1. 언어의 장벽해소

대부분의 자바스크립트 프레임워크은 영문화된 기술 문서와 커뮤니티를 운영하고 있으며 관련된 정보를 습득하기 위해서는 어느 정도 수준의 독해력을 필요로 한다. 물론 최근 들어 번역기 기능이 많이 좋아졌지만 개발 용어가 포함된 문장에 대한 번역은 쉽지 않은 것이 사실이며 단어 하나의 번역이 잘못되었을 경우 전혀 다른 의미가 되어 잘못된 의미로 받아들이게 되는 경우도 발생할 수 있다. 만약 필자만 이러한 고통을 받고 있는 거라면 위로의 말을 전해주길 바란다. 넥사크로와 관련된 문서와 기술 지원은 국문을 기본으로 하며 일본어, 영어를 추가로 지원하고 있다.

2. 국내 IT환경의 이해

국내 개발 프로젝트는 굉장히 빠르게 진행되며 개발 기간도 짧은 편이다. 개발을 진행하는 도중 문제가 발생하여 문의를 했는데 답변이 오는데 1달이 소요된다면 많이 당황스러울 것이다. 거기다 받은 답변이 문제는 인정하지만 현재 우리는 처리하지 않을 것이며 차후 버전에서 개선하도록 노력 하겠다는 답변을 받는다면 난 지난 1달 동안 무슨 짓을 한 건지 답답해할 수 있다. 위의 내용은 필자가 프로젝트를 진행하면서 실제로 있었던 일이며 충분히 발생할 수 있는 일이다

오프소스의 경우 개발자들이 협업하여 발전시키는 방식으로 반드시 수정해야 한다는 당위성이 없다. 물론 치명적인 문제라면 이야기가 다르겠지만 일반적인 상황에서는 자체적으로 해결하거나 우회하는 방법을 찾는 것이 더 빠를 수도 있다. 이러한 상황은 국내 개발 환경에서는 쉽지 않으며 리스크 또한 높다

넥사크로는 이런 문제에 대해 경험이 많으며 빠른 대응이 필수라는 사실 또한 인지하고 있다. 기술 문의에 대한 답변은 당일 처리를 원칙으로 하며 공휴일에도 당직 근무 체계를 통해 빠른 답변을 하기 위해 노력하고 있다. 물론 문의 내용의 기술적 난이도가 높거나 시간 소요가 필요한 경우가 있으며 이 또한 빠른 처리를 위한 노력을 지속하고 있다. 그리고 기업 내 보안상의 이유로 원격지에서 처리가 불가한 경우에 대해서는 방문 지원 서비스 또한 지원하고 있다.

 

마치며

넥사크로는 상용제품으로 다른 오픈소스 자바스크립트 프레임워크와는 조금 다른 방식의 서비스를 제공하고 있다. 제품을 구매하여 사용한다는 부분에서 자유로운 활용이 어렵다는 부분이 존재하지만 안정적인 프로젝트를 진행할 수 있도록 기능, 성능, 안정성, 기술 지원 및 교육까지 다양한 형태의 서비스를 제공하고 있고 다른  기업용 업무환경 개발에 적합하다. 그리고 개발자는 어려운 자바스크립트 프레임워크 개발 방식을 좀더 쉽게 배워볼 수 있어 웹 개발 역량 강화에 도움이 될 수 있는 제품이라고 할 수 있다