[코드스테이츠 PMB 7기] 오픈 API로 기능 기획하기
이번 과제는 오픈 API를 활용한 기능 기획입니다. 저는 예정대로 제가 진행해오는 연구 도메인에 관련해서 기획을 진행합니다. 아직 개발에 대한 지식이 일천하기도 하지만, 좀 더 장기적인 관점에서 기획해보고자 하는 서비스의 러프한 스케치입니다.
일단 API에 대해 궁금하신 분들은 아래의 링크를 참조해서 읽어보시는 것을 추천드립니다. API에 대해서 아주 간결하고 확실하게 설명하고 있습니다.
서버가 API를 뭐..? 개발자의 외계어 쉽게 이해하기
간단히 요약하자면 '다른 데이터베이스의 자료들을 정해진 문법(API)을 활용해서 불러오는 것'이라고 이해할 수 있을 것 같습니다. 스스로가 모든 데이터베이스를 확보하고 있지 못하더라도 API를 확보할 수 있다면, 타 기관의 데이터베이스로부터 자료를 불러와서 이를 가공하는 방식으로 서비스를 구현할 수 있는 것이지요.
저는 전세계의 논문정보에 대한 데이터베이스를 API를 통해 불러와서 이를 토대로 서비스를 구축하는 기획을 진행하고자 합니다.
"전문대학원이나 특수대학원에서 많이 느끼는 부분은 '연구의 프레임워크'를 잡으시는 가장 잘 알려진 theory나 framework에 대해서 체계적으로 배우기가 어려워요. 어떤 저널을 봐야 하는지, 어떤 키워드로 찾아야 하는지, 그 분야에서 가장 대가가 누구고, 학파가 누구인가에 대해서 알기 어렵죠. 일반대학원과 같은 단일학과에서는 알기 쉽지만 전문대 등에서는 배우기 어려운 상황입니다."
"간학문적인 특성을 가진 대학원들은 이러한 theory base 수업들이 제공되어야 하고, 안되더라도 워크숍이나 세미나 방식으로 제공되어야 할 거 같아요. 이러한 부분들을 물어볼 곳이 없어요. 교수님들은 항상 바쁘시고, 본인이 직접 연구하신 분야가 아니라면 그 부분에 대해서 쉽게 조언을 하시기 어려운 상황입니다."
제가 인터뷰를 진행했던 국제대학원에 재학 중인 박사과정생의 일갈이었습니다. 특히나 국제대학원과 같은 간학문적 연구가 이루어지는 학과들에서 많이 발생할 수 있는 문제라 할 수 있는데요. 각 학과별로 가지고 있는 Theory나 Framework와 같은, 이론들에 대한 수업이 생각보다 원활하게 주어지지 않는다는 것이었죠.
사실 이것은 전문대학원이나 특수대학원 뿐만 아니라, 연구를 진행하는 모든 연구자들이 마주하고 있는 문제이기도 합니다. 각자 학과에서는 학과에서 배우는 이론과 분석틀에 대한 수업들이 이루어지고 있지만 연구자들이 수행하는 '주제'를 연구하기 위해서는 개별 학과의 이론만으로는 풀어내는 데에 한계를 가지죠. 그러다보면 타 학과의 관점이나 이론이 필요한데, 해당 학과가 아닌 이상 그에 대한 이론이나 관점을 제대로 배울 수가 없습니다.
그래서 때로는 타학교나 타학과의 수업을 수강하거나 심지어 새로운 학과에 재입학해서 연구를 수행하는 경우들도 더러 생기고 있습니다. 하지만 결국에는 해당 주제에 필요한 지식들이 제공된다기보다는 연구자들이 스스로 그 지식들을 하나하나 찾아 헤매고 있는 상황인 셈이죠.
실제 연구자들을 심층 인터뷰해본 결과, 자신이 하는 연구에 대한 선행연구나 관련 이론에 대한 공부는 '스스로' 하고 있다는 의견이 지배적이었습니다. 하나하나 더듬어가면서 책과 논문, 보고서 등을 찾아서 읽고 있는 상황이었죠. 그러다보니 연구를 하는 중에도 '내가 제대로 하고 있는건가?'라는 질문이 계속해서 올라오지만, 이를 확인할 수 있는 방법이 없습니다. 지도교수님이 계시지만 지도교수님 또한 특정 분야 외에는 전문성을 갖추기 어려우시고 '이것이 연구적 엄밀성이 있는가' 정도만 판별해주실 뿐이죠. 그리고 박사를 따고 나서 연구자가 되면 이러한 고민은 더 깊어져 갈 것입니다.
정리하자면 다음과 같습니다.
연구자들은 현상에 대한 보다 나은 이해를 위해 새로운 주제나 이론에 대해 배우고자 할 때에 어떤 지식부터 배워야 할지를 모르기 때문에 불편함을 겪고 있다.
저는 이에 대한 해결책을 '메타 데이터'에서 발견합니다. 메타 데이터란 '데이터들의 데이터'로서 각 데이터들이 어떠한 성격을 가지고 있는지를 알려주는 '데이터들의 좌표값'이라고 할 수 있습니다. 이를 토대로 데이터들을 배열하게 되면 데이터들의 '지도'가 구축되고, 해당 지도를 통해 우리는 필요한 데이터가 어디에 있는지를 손쉽게 파악할 수 있게 되죠.
사실 학부까지 진행되는 지식의 전달방식은 일종의 암묵지를 가지고 있는 전문지식인인 교수님이 학부생들에게 지식을 '가르치는' 방식으로 전달됩니다. 하지만 대학원 이상부터는 연구자가 '스스로 지식을 습득하고 더 나아가 창조하는' 훈련을 수행하기 때문에 특정 인물의 암묵지에 의존해서 학습하는 방식이 아닌, 학계에서 통용되는 규약(Protocol)에 따라 정리된 지식을 습득하는 법을 배우게 됩니다. 그것을 우리는 논문이라고 부르죠. 어쩌면 대학원 내내 배우는 과정 자체가 논문을 읽고 분석하고, 더 나아가 직접 논문을 쓸 수 있는 방법을 배우는 것일지도 모르겠습니다.
그렇기 때문에 대학원에서 진행되는 세미나들은 대부분 '논문들의 묶음'이라 할 수 있는 Syllabus를 바탕으로 매주마다 일정량의 논문을 읽고 이에 대해 발제하고 토론하는 방식으로 수업이 진행됩니다. 해당 학과에서 가장 기본이 되고 근간이 되는 논문들을 중심으로 해당 학과의 연구를 수행하는 데에 필요한 지식을 습득하게 되는 것이죠.
여기서 이야기하는 '논문들의 묶음'이 논문이라는 데이터화된 지식이 어떤 학과에서 어떤 분류에 따라 어떤 순서로 읽혀야 하는지를 알려주는 '메타데이터'라 할 수 있습니다. 사실 대학원의 모든 커리큘럼이 이러한 '메타 데이터'의 묶음에 지나지 않을지 모릅니다.
사실상 모든 논문들이 온라인 상에서 접근이 가능하다는 것을 감안할 때에, 결국 학과별로 흩어져 있는 연구자들에게 필요한 것은 어떤 주제의 연구를 하는 데에 어떤 논문들을 어떤 순서대로 읽고 공부해야 하는가에 대한 '메타데이터'가 필요한 것이고, 이것을 제공해줄 수 있다면 연구자는 굳이 타 학과에 입학하거나 수업을 듣지 않아도 학과의 이론과 분석틀을 공부하는 것이 가능해집니다.
따라서 '학과별 논문 메타데이터를 디지털로 제공해주는 서비스'가 생겨난다면, 연구자들은 각 주제들에 대해 홀로 분투하는 것이 아니라 각 학과의 학자들이 연구해온 거인의 어깨 위에서 연구를 시작할 수 있을 것입니다.
이러한 '메타데이터'를 디지털화해서 제공해주는 가장 대표적인 서비스는 영화의 데이터서비스입니다. 영화의 경우, 감독과 작가를 비롯해서 각종 스태프들을 중심으로 여러 배우들이 수행해내는 콘텐츠로서 장르, 영화길이, 영화등급, 개봉연도, 개봉 국가 등에 대한 다양한 종류의 메타데이터를 가지고 있습니다.
IMDb나 왓챠피디아와 같은 사이트들은 이러한 메타데이터들을 디지털화하고 각 메타데이터별로 콘텐츠들을 묶어내는 방식으로 각 콘텐츠들의 좌표를 설정하고 있습니다. 그리고 개별 콘텐츠들의 좌표는 콘텐츠들을 '추천'하는 데에 요긴한 데이터로 활용됩니다. 세분화된 메타데이터가 축적될수록 개개인의 취향이 어떤 메타데이터와 fit한지를 파악해서 이에 대한 세분화된 추천이 가능해지는 것이죠. 그렇게 될 경우, 자신에게 맞는 영화를 보고 싶은 사람들은 수많은 영화들을 다 뒤질 필요가 없이 해당 메타데이터들을 네비게이션 삼아서 자신에게 필요한 영화를 찾을 수 있을 것입니다. 이것을 자동화한 시스템이 인공지능을 기반으로 한 '추천 시스템'이라 할 수 있겠죠.
IMDb: Ratings, Reviews, and Where to Watch the Best Movies & TV Shows
왓챠피디아의 경우, 한국영화데이터베이스(KMDb)의 API를 활용해서 영화들의 데이터베이스를 호출해오는 것으로 보입니다. 그리고 그 정보들을 토대로 해서 개별적인 데이터를 추가로 축적하는 것이죠.
각 영화에 대한 평점과 코멘트를 축적하고, 평점과 코멘트를 남긴 사람들이 주로 즐겨 보는 영화들의 메타 데이터를 분석해서 나의 예상 평점을 알려주죠. 그렇게 될 경우 데이터가 축적될 때마다 상당히 정밀한 수준의 추천이 가능해지게 됩니다.
영화의 경우, 기본적으로 개별 콘텐츠들을 소비자들이 시청하고 향유하는 방식으로 서비스 구성이 이루어지기 때문에 이러한 데이터베이스 상에서 중요한 것은 '이 영화가 나의 취향과 얼마나 맞는가'를 영화를 보기 전에 미리 알려주는 것일겁니다.
연구의 경우, '이 논문이 나의 연구에 얼마나 도움이 되는가'를 알려준다는 점에서 연구의 데이터베이스를 통해 연구를 추천해주는 것도 중요하겠지만, 그것 만큼이나 논문들의 묶음을 통해서 속칭 '연구동향'이라 불리는 연구의 흐름을 파악하는 것이 중요합니다. 따라서 개별 콘텐츠의 적절성만큼이나 콘텐츠들이 어떠한 흐름과 분류 속에 있는지를 파악하고 이를 고도화하는 것이 중요한 작업이 됩니다. 연구자들의 IMDb, 연구자들의 왓챠피디아라고 할 수 있겠죠.
사실 이러한 과정은 이미 연구자들 간에 보완적인 방법으로 어느정도 이루어지고 있는 방법이기도 합니다. 개론서, 핸드북, 그리고 Literature Review가 그것이지요.
사실 유명 교수님들이 출간하는 개론서나 유명 학술출판사에서 주제별로 출판하는 Handbook의 경우 이들은 해당 주제에서 꼭 읽어야 하는 연구들을 추리고 이에 대해 요약하는 방식으로 구성됩니다. 그리고 그 주제에 대해 가장 적실하게 설명해줄 수 있는 연구진들이 모여서 해당 책을 저술하죠. 하지만 각 연구들에 대해서 해박한 지식을 가진 이들이 오랜 시간 공을 들여서 연구를 해야 책이 출간되고, 출간되는 직후에도 계속해서 생산되어 쌓이는 논문의 양을 감안할 때에 책을 통해서 연구의 메타데이터를 파악하는 것은 그닥 생산적인 방법이 되지 못할 것으로 보입니다.
Literature Review의 경우, 해당 주제에 대한 '모든 논문'을 다 읽어보고 이에 대한 분류와 연구동향을 정리한 논문을 말합니다. 논문들의 메타데이터를 논문화하였기 때문에 이런 연구 또한 하나의 논문으로 인정해주는데요. 이 경우에도 논문 또한 연구되고 출간되는 데에 일정 수준의 시간이 걸리기 때문에 그 한계가 명백한 상황입니다.
공유경제에 대한 Literature Review 또한 2020년에 모습을 드러냈지만, 1년 반 사이에 그 사이에 코로나가 터지고 공유경제에 대한 빨간불이 들어오는 등의 내용은 이 논문에 담기지 못할 겁니다.
따라서 이러한 논문들의 메타 데이터를 디지털화해서 계속해서 업데이트하고 관리하고 제공할 수 있도록 하는 것. 그것이 연구의 혁신을 일으킬 수 있는 요체라고 봅니다.
그렇다면 이러한 서비스를 만들기 위해서는 어떻게 서비스를 구축해야 할까요. 먼저는 기존의 학술정보데이터를 API를 통해 어떻게 끌어올 수 있는지에 대해서 먼저 생각해봐야 할 듯 합니다. 이 글에서는 어떤 API에서 어떤 내용을 가져올 것인가와 이를 바탕으로 어떤 서비스를 구상할 것인가 정도만 가볍게 다뤄야 할 것으로 보입니다.
RISS(Research Information Sharing Service)란 한국교육학술정보원에서 운영하는 학술연구정보서비스입니다. 전국 대학이 생산하고 보유하며 구독하는 학술자원을 공동으로 이용할 수 있도록 개방된 서비스로 국내외의 학술자료에 대한 데이터베이스가 구축되어 있다고 할 수 있죠.
http://www.riss.kr/apicenter/apiSearchDissEtc.do
이 자료의 가장 큰 장점은 '무료'라는 것입니다. 그리고 꽤 많은 논문들에 대한 메타데이터를 찾아올 수 있다는 장점이 있습니다. API 요청변수와 결과변수를 보면 아시겠지만 논문명과 저자, 발행기관, 학술지명, 발행연도, 작성언어 뿐만 아니라 주제어, 페이지와 ISSN번호, 그리고 링크URL까지 가져올 수 있도록 되어 있습니다. 해당 내용들은 논문의 인용 시에 표기되는 내용에 가까운 정보들로 구성되어 있습니다.
하지만 확인할 수 있다시피 해당 정보들은 기본적으로 어느 학술지에 누가 투고했는가와 같은, 연구 자체보다 연구의 '소속'에 관한 정보가 주를 이루고 있습니다. 현재 이미 논문들에 대한 데이터베이스가 구축되어 있음에도 불구하고 여전히 연구자들이 개별 연구들을 수행할 때에 논문 데이터베이스로부터 연구에 큰 도움을 받지 못하는 이유가 여기 있습니다. 해당 연구들이 어떤 연구들과 연결되어 있고, 어느 맥락에 있는지에 대한 정보는 제공해주지 못한다는 점에서 RISS의 API가 가지는 가장 치명적인 약점이 있습니다.
Google Scholar Organic Results API - SerpApi
그렇기 때문에 이보다 진일보한 것이 Google Scholar의 API입니다. 대부분의 연구자들이 Google Scholar를 통해서 연구를 수행하는 이유는 Google Scholar에서는 단순히 연구물에 대한 소속정보 뿐만 아니라, 연구물간의 '관계'까지도 링크를 기반으로 한 연결관계를 나타내주고 있기 때문입니다. 흡사 IMDb나 왓챠피디아와 흡사하게 Google API는 연구들이 인용된 연구들과 연구에서 인용하고 있는 선행연구들, 그리고 각 연구들이 다운받을 수 있을 경우 다운 받을 수 있는 pdf 링크를 연결해주고 있습니다. 또한 연구들을 저술한 저자들의 프로필 기능을 탑재해서 이를 중심으로 또 다른 연구들과 연결시켜주는 기능까지 확보하고 있습니다. Google Scholar의 API를 사용할 경우 이러한 요소까지 활용할 수 있게 되죠.
다만 문제는 Google Scholar의 API는 공식적으로 오픈 API로 제공되지 않는다는 것입니다. SERP API와 같은 별도의 크롤링 기능을 통해 API를 구축하고 있는 서비스들을 이용해야 하는데 이 경우 매우 간편하게 데이터를 불러올 수 있도록 설계되어 있지만, 500개의 API Call 당 50불, 혹은 30000개의 API Call당 250불의 가격을 지불해야 하는 등 굉장히 고비용의 구조를 가지고 있습니다. 논문을 조금만 더 찾아보더라도 해당 비용을 지불해야 하는 셈이죠.
따라서 scholarly.py 와 같은 파이썬을 활용한 데이터 크롤링 방법 등에 대한 고민이 필요해보입니다. 다만 기존의 RISS의 데이터베이스를 이용하는 것보다 Google Scholar의 데이터베이스를 이용할 수 있을 경우, 각 논문들 간의 연결고리가 데이터베이스화 되어 있는 상태에서 서비스를 설계할 수 있다는 아주 큰 강점이 있습니다.
Google Scholar API를 통해 구성된 데이터들 위에 저희는 기성연구자들과 개론서, 핸드북, Literature Review 등에 축적되어 있는 메타데이터들을 축적하고자 합니다. 논문 전체의 양에 비해서 각 논문들이 어느 메타데이터에 소속되어 있어야 하는가에 대한 축적은 그 양이 보다 적을 것으로 기대합니다. 각 연구자들이 자신이 하고 있는 연구에 대한 논문 콜렉션을 구축해서 이를 학과별로 분류하고자 합니다.
그렇게 축적된 메타데이터들은 일종의 '커리큘럼' 역할을 수행합니다. 실제 대학과 대학원의 커리큘럼들을 디지털화해서 데이터베이스에 축적할 수 있다면 대학의 모든 커리큘럼들을 그때그때 찾아볼 수 있는 데이터베이스의 축적이 가능하고 어떤 학과의 지식을 원하든 그에 대한 지도를 제공해줄 수 있는 네비게이션이 구축될 수 있게 됩니다. 일종의 지도 데이터 축적과 같은 방식입니다.
또한 각 연구들에 대해서 저자가 아닌, 연구하는 사람의 입장에서 쓸 수 있는 리뷰데이터를 축적합니다. 비슷한 주제의 연구자가 평가하는 연구의 내용을 파악해서 해당 연구를 미리 읽기 전에 평점과 리뷰를 통해 내용을 확인할 수 있는 데이터를 구축합니다.
이를 바탕으로 보다 높은 평점을 주고 있는 연구자들의 주제에 논문들을 추천할 수 있는 추천시스템을 구축할 수 있을 것이라 기대합니다.
IMDb와 같은 경우 결국 큰 한계는 해당 데이터들을 기반으로 한 비즈니스모델을 찾지 못했다는 점에 있습니다. 사실 학술영역 또한 그러한 가능성이 다분한 영역이기도 합니다. 그럼에도 이러한 학술 데이터베이스의 구축은 '대학원을 해킹한다(Hack the Graduate School)'는 점에서 충분한 비즈니스 모델과 잠재력, 임팩트를 가지고 있습니다.
먼저는 축적된 메타데이터를 기반으로 하는 주제별 온라인 세미나의 운영입니다. 이는 마치 대학원의 강의들을 온라인 플랫폼 위에 모두 풀어버리는 것과 같은 방식이라 할 수 있습니다. 데이터베이스에 축적되어 있는 메타데이터를 세미나의 Syllabus로 활용해서, 해당 분야의 연구를 수행하고 있는 박사급 연구자와 해당 주제를 연구하고자 하는 대학원생들이 매칭되어서 온라인 세미나를 여는 방식입니다.
이 경우 교수에 국한되어 있는 세미나의 공급자를 박사급 연구자로 확장시켜서 가장 적절한 경력을 가진 세미나 리드를 섭외하고, 또한 해당 주제에 대해서 자발적인 관심을 갖고 있는 대학원생들 혹은 연구자들을 중심으로 스터디를 꾸려 그 효용을 극대화시킵니다. 또한 축적된 메타데이터들을 바탕으로 원하는 주제의 세미나들은 언제든지 매칭을 통해 구현이 가능하기 때문에 말 그대로 '원하는 주제의 연구를 어디서든' 할 수 있게 됩니다. 이를 통한 비즈니스 모델을 구상할 수 있습니다.
또한 여러 세미나들을 묶어서 커리큘럼을 구성할 경우, 주제별 학위과정을 만들 수 있게 됩니다. 학위과정의 경우에도 결국에는 여러 세미나들의 묶음을 통해 해당 학문의 전문성을 키운다는 면에서, 세미나들의 메타데이터라고 할 수 있습니다. 따라서 원하는 연구자들에게 필요한 과정들을 이수할 수 있도록 돕고 이에 대한 학위과정을 제공하는 방식으로 대학 등과의 제휴를 통해 수익모델의 구상이 가능합니다.
또한 학과가 존재하지 않는 과정들의 경우에도 여러 세미나의 조합을 통해 특화된 지식 커리큘럼을 제공하고 이에 대한 학위과정을 제공할 수 있다는 강점이 있습니다.
결국 대학원의 6분의 1 가격에 학위과정을 제공해주는 방식으로 대학원을 해킹할 수 있다는 것이 이 모델의 주요 결론이기도 합니다.
학술연구과정의 경우, 여전히 디지털화를 통해 개선할 수 있는 영역들이 충분합니다. 특히나 연구라는 것이 결국 '기존의 지식들을 습득하고, 새로운 데이터를 바탕으로 새로운 지식을 창조하는 과정'이라고 한다면, 연구 자체도 엄밀한 의미에서 일종의 '협업활동'임을 알 수 있습니다.
학술 데이터베이스를 구축하는 작업은 디지털화된 방식을 통해 연구자들 간의 분절되고 흩어져 있는 지식을 연결시킨다는 점에서 '연구공동체를 복원'하는 작업이라 할 수 있습니다. 또한 주제별로 연구자들을 다시 모으고 교류할 수 있도록 하여 개별 연구로 인해 발생하는 비효율을 최소화하고 보다 나은 연구들이 이루어질 수 있도록 하는 것이 필요합니다.
마치 웹툰의 스토리IP(Intellectual Property)가 가공을 통해 영화, 드라마, 웹소설 등으로 확장되어 나가듯이, 학계의 지식IP는 가공을 통해 개인의 인사이트 뿐만 아니라 정책, 시민단체, 공론, 입법안 등으로 확장되어 나갈 수 있는 원천과 같습니다. 지식IP가 보다 효과적으로 생산될 수 있도록 디지털화된 플랫폼을 제공한다면 많은 문제들에 대한 대안들의 연구가 보다 효과적으로 이루어질 수 있을 것입니다.
매우 큰 스케일의 기획이기도 하지만 동시에 이미 많은 산업군에서는 이미 이루어진, 실현가능한 종류의 기획이기도 합니다. 해당 내용들과 온라인 세미나 플랫폼의 구축을 바탕으로 계속해서 사업을 운영해나가고자 합니다.
오픈API의 기능 기획에 대한 과제는 3주 전 과제였는데 이 내용을 구상하다가 이제서야 업로드하게 됩니다. 코드스테이츠 강의를 통해서 보다 구체적인 각론까지도 가이드를 배우고 이를 통해서 서비스를 기획해보게 됩니다.
먼저는 대학원생들과 박사급 연구자들의 니즈를 파악하기 위한 Pretotype 실험을 계속하고 있습니다. 이를 통해 사업성이 검증될 경우 위에서 기획한 내용을 구체화해서 서비스화까지 갈 수 있을 것이라 기대합니다.
나이오트와 우리의세미나의 행보를 기대해주세요!