CWN(CHANGE WITH NEWS) - 라인(LINE)이 택한 NoSQL은 무엇일까?

  • 구름많음구미9.0℃
  • 맑음강진군10.9℃
  • 구름조금보은5.8℃
  • 구름많음서울4.1℃
  • 맑음태백5.6℃
  • 맑음영월6.1℃
  • 구름많음울릉도11.9℃
  • 구름조금순창군9.2℃
  • 맑음여수11.9℃
  • 구름많음수원4.3℃
  • 구름조금진도군11.0℃
  • 맑음영덕11.7℃
  • 맑음장흥10.9℃
  • 맑음영광군9.3℃
  • 구름많음세종5.2℃
  • 맑음의성3.0℃
  • 구름많음속초8.1℃
  • 맑음대관령1.7℃
  • 맑음강릉10.1℃
  • 맑음완도10.9℃
  • 흐림인제5.8℃
  • 맑음김해시10.3℃
  • 구름많음남원7.4℃
  • 맑음밀양4.8℃
  • 맑음진주4.2℃
  • 맑음순천9.1℃
  • 구름조금부여6.5℃
  • 흐림파주3.2℃
  • 맑음북창원8.9℃
  • 구름많음제주14.7℃
  • 맑음흑산도10.2℃
  • 맑음영주6.7℃
  • 구름많음정읍8.8℃
  • 흐림인천3.9℃
  • 구름조금군산7.3℃
  • 맑음통영10.0℃
  • 구름조금정선군6.3℃
  • 맑음상주7.9℃
  • 구름조금서청주4.9℃
  • 구름많음이천4.8℃
  • 구름조금원주5.4℃
  • 흐림철원2.5℃
  • 구름조금전주7.7℃
  • 구름많음서산5.7℃
  • 흐림동두천3.0℃
  • 구름많음부안8.7℃
  • 구름많음고산14.5℃
  • 맑음남해12.9℃
  • 맑음목포10.1℃
  • 맑음청송군9.0℃
  • 구름많음양평5.5℃
  • 연무대구11.1℃
  • 구름많음거창7.5℃
  • 구름많음추풍령6.8℃
  • 맑음창원11.2℃
  • 구름조금충주5.3℃
  • 맑음문경6.8℃
  • 흐림북춘천5.0℃
  • 흐림춘천5.2℃
  • 맑음광주9.9℃
  • 구름많음임실8.2℃
  • 박무북부산6.3℃
  • 맑음합천6.4℃
  • 연무울산12.3℃
  • 흐림성산14.1℃
  • 맑음홍성5.4℃
  • 구름많음금산7.5℃
  • 맑음부산13.0℃
  • 맑음경주시11.3℃
  • 맑음청주6.0℃
  • 맑음울진12.4℃
  • 구름조금천안5.0℃
  • 구름많음함양군10.2℃
  • 구름많음장수6.5℃
  • 맑음안동7.5℃
  • 맑음봉화0.0℃
  • 맑음거제8.5℃
  • 흐림강화3.4℃
  • 구름많음홍천5.3℃
  • 구름많음고창군9.1℃
  • 맑음보성군11.0℃
  • 구름많음산청11.6℃
  • 맑음의령군2.7℃
  • 맑음양산시9.0℃
  • 구름조금고창8.9℃
  • 구름조금보령6.1℃
  • 맑음고흥10.4℃
  • 흐림백령도4.5℃
  • 맑음영천10.4℃
  • 구름조금제천4.9℃
  • 맑음동해12.3℃
  • 맑음해남10.6℃
  • 맑음북강릉8.2℃
  • 흐림서귀포14.9℃
  • 맑음포항13.5℃
  • 맑음광양시10.6℃
  • 구름조금대전5.3℃
  • 2025.11.17 (월)

라인(LINE)이 택한 NoSQL은 무엇일까?

전동현 / 기사승인 : 2021-01-05 00:53:04
  • -
  • +
  • 인쇄

메신저 앱 라인(LINE)의 인기가 뜨겁다. 2021년 라인·야후 재팬의 경영통합을 확실시 한 상황에서 라인의 성장전망은 더욱 밝아지고 있다. 2020년 말에는 라인 헬스케어로 병원 예약 진료를 할 수 있는 서비스를 출시해 이용자들의 편의를 제공하는 등 다양한 서비스에도 진출하는 모습을 보여주었다.

2020년 하반기 기준 일본에서만 월간 이용자 8,600만명을 기록한 라인은 메신저 서비스로 시작해 일본, 대만, 태국 등의 동남아에서 가장 많이 사용되고 있다. 현재는 메신저 뿐만 아니라 게임과 번역 등 다양한 영역으로 사업을 넓혀가고 있다.

라인의 메신저 아키텍처는 다른 메신저 앱 아키텍처와는 다르게 NoSQL을 기반으로 개발되어 있다고 한다. 네이버의 다른 회사들은 대부분 일반적인 SQL 방식, 즉 RDBMS 방식을 사용하여 데이터를 저장하고 관리한다.

카카오톡도 처음에는 NHN출신의 개발자들이 모여 만든 회사인데, 처음부터 RDBMS 방식을 사용했다. 네이버의 자회사인 라인은 다른 NHN의 서비스와 다른 데이터 베이스 언어를 사용하는 셈이다. 왜 그럴까?

그 전에 , 우선 SQL이란 무엇인지 알아보자.

SQL이란?
SQL(Structured Query Language)은 데이터베이스에 접근할 수 있는 데이터베이스 하부 언어를 말한다. 쉽게 말해서 내가 필요한 데이터에 대해 SQL 문장을 작성하고 실행하면, 데이터베이스에서 원하는 데이터를 추출하는 작업을 한다.

RDBMS와 NoSQL
데이터베이스란 특정 데이터의 집합을 의미한다. 기업은 많은 데이터를 읽기 쉽고 사용하기 편하게 정리하고자 한다. 이렇게 데이터를 관리하는 시스템을 DBMS(DataBase Management System)라고 한다. DBMS는 크게 RDBMS(Relational DataBase Management System)와 NoSQL로 나누어 볼 수 있다.

RDBMS는 아주 오래전부터 사용되던 데이터베이스 관리 시스템이며, 관계형 데이터베이스 관리 시스템이라고 부른다. 대학에서 수강할 강좌를 검색하는 과정에서 수강 과목, 교수님, 수강 인원 등의 데이터를 필터링해, 엑셀 표 형태로 나타내주는 것을 RDBMS 활용 사례로 언급할 수 있다.

RDBMS는 오라클을 중심으로 1970년대부터 범용 데이터베이스의 자리를 차지하고 있으며, SQL을 통해 저장한 데이터를 효과적으로 읽고 쓸 수 있다. 대표적인 프로그램으로는 MySQL, 오라클, 액세스가 있다.

오랫동안 사용된 만큼 백업, 보안, 모니터링 등 데이터베이스와 연관된 생태계도 비교적 안정적이다. 기존의 여러 개발자는 이미 RDBMS에 친숙하며, 데이터베이스 수준에서 ACID(Atomic, Consistency, Isolation, Duarabity)를 만족하는 상호작용을 할 수 있다. 일정한 테이블 형태로 데이터를 보관하기에 알아보기 쉽고 훨씬 직관적인 형태를 지니고 있다.

그렇다면 NoSQL이란 무엇일까? 쉽게 말해, 비관계형 데이터베이스 관리 시스템이다. NoSQL은 비관계형이기 때문에 정해진 테이블에 하나씩 데이터를 집어넣어 사용할 수 있으며, 다른 데이터 구조를 가져와 사용할 수도 있다. 그렇기 때문에 대규모의 데이터를 유연하게 처리할 수 있다. 또, 설계가 단순하고 데이터의 확장에 훨씬 유리하다.

비관계형 관리 시스템은 기존의 관계형 데이터베이스 시스템의 주요 특성을 보장하는 원자성(Atomic), 일관성(Consistency), 고립성(Isolation), 지속성 (Duarabity)과 같은 특성을 제공하지 않고, 뛰어난 확장성과 효율성 등의 특징을 갖는다. 즉, 고정적이고 정해져있는 테이블에 정보를 저장하는 특성이 아니라 자유롭게 데이터를 저장한다는 것이다.

RDBMS는 각 필드마다 특정 데이터의 위치가 일정하게 정해져 있다. 따라서 필드 순서를 바꾸거나 새로운 필드를 추가할 때, 표 전체를 수정해야 한다. 반면, NoSQL은 자유롭게 필드를 추가하고 수정, 삭제할 수 있다. 대표적인 NoSQL로는 카산드라(Cassandra), HBASE, MongoDB가 있다.

알아보기 쉽지만 형태는 제한적인 RDBMS vs 알아보기 어렵지만 형태는 유연한 NoSQL

[출처: Couchbase - https://blog.couchbase.com]

일반 RDBMS 방식을 채택한 SQL 방식은 구조를 한 번 고정시키면, 데이터와 구조의 안정성은 보장된다. 일정한 형식을 유지해, 보기에도 편하고 훨씬 직관적이다. 하지만 데이터가 쌓일수록 데이터베이스 관리 시스템 자체가 커지는 구조를 갖고 있다. 이 때문에 시간이 지나면 훨씬 고성능의 데이터베이스 시스템을 필요로 하게 되고, 점점 관리가 어려워진다.

NoSQL은 대량의 데이터를 무한대로 추가하여 저장할 수 있으며, 가변성이 있는 데이터의 저장도 용이하다. 결과적으로 유지 보수에 적은 비용이 발생한다. 그러나 구조가 정해지지 않았기에 분별되지 못한 여러 데이터가 떠다니는 문제가 발생할 수도 있고, 알아보기 어려운 형태를 가진 데이터를 다뤄야 하는 것이 단점이 될 수 있겠다.

금융 업계처럼 보수적이거나 저장해야 하는 데이터들이 고정적인 경우 RDBMS를 사용하는 것이 더 좋다. 반대로 웹이나 다량의 데이터를 한꺼번에 처리해야하는 메신저는 NoSQL 방식이 더 유리하다고 볼 수 있다.

라인 개발팀은 최대한 빠른 서비스 오픈, 글로벌 서비스에 적합한 규모 확장성과 비용 효율성을 달성하기 위해 NoSQL을 도입했다고 밝혔다. 메시지 서비스 특성상 대규모 서비스는 각자 자사 기술에 최적화된 아키텍처를 채용하는 것이 맞고, 규모 확장에 따른 위험을 줄일 수 있기 때문이다. 메시지 서비스 사업은 범용성을 위해서라도 RDBMS를 채택하는 경우가 많은데, 라인은 NoSQL을 선택하면서 비용 절감 효과를 누렸다.

그렇다면, 국내 최대 메신저 서비스, 카카오톡은 어떨까? 카카오톡은 RDBMS 방식으로 수천대에 이르는 오라클 MySQL을 이용하고 있으며 DELL, HP사의 서버도 같이 이용하고 있다.

그러나 사용자가 점점 많아지면서 카카오톡 내부에서 제공하는 서비스 사용량도 점점 증가한다는 문제가 발생하고 있다. 이러한 이유로 지금의 아키텍처로 서비스를 계속하는 데 무리가 있는 것이 아닌가라는 지적도 나오고 있다.

누적되는 데이터가 많아질수록 데이터베이스 관리에 비용이 많이 소요되고, 데이터베이스 연결 오류가 발생할 위험도 높아진다. 카카오톡 내부에서도 NoSQL 도입을 검토해보는 의견이 나오고 있지만, 쉽지 않은 것으로 알려져있다. 작업 수행이 완료된 쿼리가 삭제되어야 하는데, 쿼리들이 한 쪽에 쌓여 트래픽에 문제를 주는 상황이 발생할 수 있기 때문이다.

라인이 택한 NoSQL 방식의 데이터베이스 관리 시스템이 앞으로도 다양한 장점을 보여줄 수 있을지 기대가 되는 바이다.

[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]

최신기사

뉴스댓글 >

- 띄어 쓰기를 포함하여 250자 이내로 써주세요.
- 건전한 토론문화를 위해, 타인에게 불쾌감을 주는 욕설/비방/허위/명예훼손/도배 등의 댓글은 표시가 제한됩니다.

댓글 2

  • Olive님 2022-02-17 11:40:28
    라인이 어떤 업무에 어떤 nosql을 사용하는지 보려고 했는데... 제목이 낚시 였어요..ㅠㅠ
  • noli님 2021-06-16 17:54:34
    그래서 라인은 어떤 nosql 를 사용하고 있나요? 그 내용이 없는데 제목과 어떤 관련ㅇㅣ 있나요??

Today

Hot Issue