KR102449105B1 - 게시판 서비스 제공 장치 및 방법 - Google Patents

게시판 서비스 제공 장치 및 방법 Download PDF

Info

Publication number
KR102449105B1
KR102449105B1 KR1020200105075A KR20200105075A KR102449105B1 KR 102449105 B1 KR102449105 B1 KR 102449105B1 KR 1020200105075 A KR1020200105075 A KR 1020200105075A KR 20200105075 A KR20200105075 A KR 20200105075A KR 102449105 B1 KR102449105 B1 KR 102449105B1
Authority
KR
South Korea
Prior art keywords
layer
bulletin board
board service
logics
calling
Prior art date
Application number
KR1020200105075A
Other languages
English (en)
Other versions
KR20220023400A (ko
Inventor
김민석
박주용
Original Assignee
주식회사 엔씨소프트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엔씨소프트 filed Critical 주식회사 엔씨소프트
Priority to KR1020200105075A priority Critical patent/KR102449105B1/ko
Publication of KR20220023400A publication Critical patent/KR20220023400A/ko
Application granted granted Critical
Publication of KR102449105B1 publication Critical patent/KR102449105B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Information Transfer Between Computers (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

게시판 서비스 제공 장치 및 방법이 개시된다. 일 실시예에 따른 게시판 서비스 제공 방법은 게이트웨이(gateway) 계층, 제1 계층 및 제2 계층을 포함하는 마이크로서비스 아키텍처(Micro services Architecture)에 기초하여 게시판 서비스를 제공하는 방법으로서, 게이트웨이 계층에서, 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대한 클라이언트(client)의 요청을 수신하여, 클라이언트의 요청에 따른 프로세스를 수행하기 위해 제1 계층을 호출하는 동작, 제1 계층에서, 프로세스에 따른 하나 이상의 로직(logic)에 기초하여 제2 계층을 호출하는 동작 및 제2 계층에서, 하나 이상의 로직에 따른 하나 이상의 세부 로직을 수행하는 동작을 포함한다.

Description

게시판 서비스 제공 장치 및 방법{APPRATUS AND METHOD FOR PROVIDING BULLETIN BOARD SERVICE}
개시되는 실시예들은 게시판 서비스를 제공하는 기술에 관한 것이다.
오늘날 여러 사람들이 각자의 의견을 표출하는 사회 분위기가 고조됨에 따라, 문화, 경제, 정치, 사회 등의 다양한 분야에서 서로의 견해를 교환하며 성숙한 논의를 이루는 것을 어렵지 않게 볼 수 있다.
이러한 논의는 현실에서뿐만 아니라, 시간과 공간의 제약으로부터 자유로운 웹(web) 또는 애플리케이션(application) 상에서 주로 이루어지는데, 이를 위해 필요한 것이 글을 비롯한 콘텐츠(contents)를 읽고, 쓰고, 수정하고, 삭제할 수 있는 게시판 서비스이다.
게시판 서비스를 제공하기 위해서는 여러 클라이언트(client)들과 서버(server) 사이에서 송수신되는 수많은 데이터를 관리해야하기 때문에, 종래에는 단일한 애플리케이션 프로그래밍 인터페이스(API; Application Programming Interface)를 통해 여러 클라이언트들에게 게시판 서비스를 제공하고 있었다.
그러나, 단일한 API 기반의 아키텍처(architecture)는 안정성이 있는 대신, 새로운 기능을 추가할 경우 비용이 많이 소요되고, 클라이언트가 게시판 내 데이터를 가공하여 자유롭게 활용하기가 어렵다는 한계가 존재하였다.
대한민국 공개특허공보 제10-2019-0132573호 (2019.11.27. 공개)
개시되는 실시예들은 클라이언트(client)에게 효율적인 게시판 서비스를 제공하기 위한 것이다.
개시되는 일 실시예에 따른 게시판 서비스 제공 방법은, 게이트웨이(gateway) 계층, 제1 계층 및 제2 계층을 포함하는 마이크로서비스 아키텍처(Micro services Architecture)에 기초하여 게시판 서비스를 제공하는 방법으로서, 게이트웨이 계층에서, 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대한 클라이언트(client)의 요청을 수신하여, 클라이언트의 요청에 따른 프로세스를 수행하기 위해 제1 계층을 호출하는 동작, 제1 계층에서, 프로세스에 따른 하나 이상의 로직(logic)에 기초하여 제2 계층을 호출하는 동작 및 제2 계층에서, 하나 이상의 로직에 따른 하나 이상의 세부 로직을 수행하는 동작을 포함한다.
게이트웨이 계층은, 하나 이상의 애플리케이션 프로그래밍 인터페이스(API; Application Programming Interface)를 포함할 수 있다.
제1 계층은, 하나 이상의 로직 별로 구분된 하나 이상의 고수준(high level) API를 포함할 수 있다.
제2 계층을 호출하는 동작은, 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대응되는 기 설정된 비즈니스 로직(business logic)에 기초하여 제2 계층을 호출할 수 있다.
제2 계층은, 하나 이상의 세부 로직 별로 구분된 하나 이상의 저수준(low level) API를 포함할 수 있다.
수행하는 동작은, 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나를 구현하기 위한 데이터 처리와 관련된 데이터베이스에 접근하는 하나 이상의 쿼리(query)를 실행할 수 있다.
데이터베이스는, 하나 이상의 NoSQL 기반 데이터베이스를 포함할 수 있다.
개시되는 일 실시예에 따른 게시판 서비스 제공 장치는, 하나 이상의 프로세서 및 하나 이상의 프로세서에 의해 실행되도록 구성되는 하나 이상의 프로그램을 저장하는 메모리를 포함하며, 게이트웨이(gateway) 계층, 제1 계층 및 제2 계층을 포함하는 마이크로서비스 아키텍처(Micro services Architecture)에 기초하여 게시판 서비스를 제공하는 장치로서, 프로그램은, 게이트웨이 계층에서, 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대한 클라이언트(client)의 요청을 수신하여, 클라이언트의 요청에 따른 프로세스를 수행하기 위해 제1 계층을 호출하는 동작, 제1 계층에서, 프로세스에 따른 하나 이상의 로직(logic)에 기초하여 제2 계층을 호출하는 동작 및 제2 계층에서, 하나 이상의 로직에 따른 하나 이상의 세부 로직을 수행하는 동작을 실행하기 위한 명령어들을 포함한다.
게이트웨이 계층은, 하나 이상의 애플리케이션 프로그래밍 인터페이스(API; Application Programming Interface)를 포함할 수 있다.
제1 계층은, 하나 이상의 로직 별로 구분된 하나 이상의 고수준(high level) API를 포함할 수 있다.
제2 계층을 호출하는 동작은, 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대응되는 기 설정된 비즈니스 로직(business logic)에 기초하여 제2 계층을 호출할 수 있다.
제2 계층은, 하나 이상의 세부 로직 별로 구분된 하나 이상의 저수준(low level) API를 포함할 수 있다.
수행하는 동작은, 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나를 구현하기 위한 데이터 처리와 관련된 데이터베이스에 접근하는 하나 이상의 쿼리(query)를 실행할 수 있다.
데이터베이스는, 하나 이상의 NoSQL 기반 데이터베이스를 포함할 수 있다.
개시되는 실시예들에 따르면, 클라이언트의 요청에 따른 프로세스를 여러 계층의 애플리케이션 프로그래밍 인터페이스(API; Application Programming Interface)에서 로직(logic) 및 세부 로직 단위로 분할하여 수행함으로써, 클라이언트에게 게시판 서비스의 새로운 기능을 쉽게 제공할 수 있고, 클라이언트로 하여금 게시판 내 데이터를 자유롭게 활용하도록 할 수 있다.
도 1은 일 실시예에 따라 제공되는 게시판 서비스 화면을 나타내는 예시도
도 2는 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
도 3은 일 실시예에 따른 게시판 서비스 제공 방법을 설명하기 위한 흐름도
도 4는 일 실시예에 따른 게시판 서비스 제공 과정을 나타내는 예시도
이하, 도면을 참조하여 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 개시되는 실시예들은 이에 제한되지 않는다.
실시예들을 설명함에 있어서, 관련된 공지기술에 대한 구체적인 설명이 개시되는 실시예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 개시되는 실시예들에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
이하의 실시예들에서, '게시판 서비스'는 게시판 서비스를 이용하는 사용자, 게시판 서비스를 제공하는 운영자 등이 작성한 게시물, 댓글 또는 이와 관련된 콘텐츠를 웹(web) 또는 애플리케이션(application) 상에서 종합하여 제공하는 일련의 서비스를 의미한다.
도 1은 일 실시예에 따라 제공되는 게시판 서비스 화면(100)을 나타내는 예시도이다.
도 1에서는, 게임 '리니지(Lineage)'에 대한 웹 페이지 상의 '서버' 탭에서 제공되는 게시판 서비스가 예시적으로 도시되었다.
도 1을 참조하면, 중앙부 좌측의 '우리서버 서버지기&최신기사' 란에는 현재 설정된 우리서버('데포로쥬')의 서버지기('이웃집할배') 및 해당 서버지기가 기고한 최신기사의 목록이 노출된다. 한편, 중앙부 우측의 '전체 서버지기 최신기사' 란에는 리니지의 전체 서버 각각의 서버지기들이 기고한 최신기사들의 목록이 노출된다.
또한, 도 1의 하단부에는 각 서버에서 게임을 플레이하는 클라이언트들이 작성한 게시물의 제목, 그림 첨부 표시, 좋아요 숫자, 댓글 숫자 등이 목록 형태로 노출된다.
이처럼, 일 실시예에서, 게시판 서비스를 제공하는 서버는 게시물의 제목, 그림 첨부 표시, 좋아요 숫자, 댓글 숫자 등과 관련된 기능, 최근에 작성된 최신기사와 관련된 기능, 각 서버의 서버지기와 관련된 기능 등을 클라이언트에게 제공할 수 있다.
다시 말하면, 일 실시예에 따른 게시판 서비스는 게시판 서비스를 이용하는 사용자 또는 게시판 서비스를 제공하는 운영자 등이 작성한 게시물, 댓글 또는 이와 관련된 콘텐츠 그 자체와 관련된 서비스일 수도 있고, 이를 가공하여 새롭게 생성되는 정보와 관련된 서비스일 수도 있다.
도 2는 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 게시판 서비스 제공 장치일 수 있다. 컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
도 3은 일 실시예에 따른 게시판 서비스 제공 방법을 설명하기 위한 흐름도이다.
도 3에 도시된 방법은 예를 들어, 상술한 컴퓨팅 장치(12)에 의해 수행될 수 있다. 이때, 상술한 컴퓨팅 장치(12)는 마이크로서비스 아키텍처(Micro services Architecture)에 기초하여 게시판 서비스를 제공할 수 있다.
이하의 실시예들에서, '마이크로서비스 아키텍처'는 복잡하고 다양한 소프트웨어의 기능들을 작고 독립적이며 느슨하게 결합된 여러 모듈로 분해하여 서비스를 제공하는 아키텍처를 의미한다.
구체적으로, 마이크로서비스 아키텍처는 게이트웨이(gateway) 계층, 제1 계층 및 제2 계층을 포함할 수 있다.
우선, 컴퓨팅 장치(12)는 마이크로서비스 아키텍처 내 게이트웨이 계층에서, 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대한 클라이언트의 요청을 수신하여, 클라이언트의 요청에 따른 프로세스를 수행하기 위해 마이크로서비스 아키텍처 내 제1 계층을 호출한다(310).
일 실시예에 따르면, 게이트웨이 계층은 하나 이상의 애플리케이션 프로그래밍 인터페이스(API; Application Programming Interface)를 포함할 수 있다.
이하의 실시예들에서, 'API'는 애플리케이션에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 의미한다. 구체적으로, API는 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공하나, 반드시 이에 한정되는 것은 아니다.
한편 이하의 실시예들에서, '게이트웨이 계층'은 어느 하나의 네트워크에서 다른 네트워크로 들어가는 입구 역할을 하는 네트워크 포인트를 의미하며, 구체적으로는 클라이언트의 요청에 따른 프로세스가 진행되는 네트워크 공간이 클라이언트 측에서 게시판 서비스를 제공하기 위한 아키텍처 측으로 전환되는 포인트를 의미한다.
이때, 네트워크는 인터넷, 하나 이상의 로컬 영역 네트워크(local area networks), 광역 네트워크(wire area networks), 셀룰러 네트워크, 모바일 네트워크, 그 밖에 다른 종류의 네트워크들, 또는 이러한 네트워크들의 조합을 포함할 수 있다.
이후, 컴퓨팅 장치(12)는 마이크로서비스 아키텍처 내 제1 계층에서, 클라이언트의 요청에 의한 프로세스에 따른 하나 이상의 로직(logic)에 기초하여 마이크로서비스 아키텍처 내 제2 계층을 호출한다(320).
이하에서, '로직'은 클라이언트의 요청을 수행하기 위한 전체 프로세스를 하나 이상의 세부적인 프로세스로 세분화한 것을 의미한다.
일 실시예에 따르면, 제1 계층은 하나 이상의 로직 별로 구분된 하나 이상의 고수준(high level) API를 포함할 수 있다.
이 경우, 게이트웨이 계층은 클라이언트의 요청에 따른 프로세스를 하나 이상의 로직으로 분할하고, 제1 계층 상에서 하나 이상의 로직 각각에 대응되는 고수준 API를 호출할 수 있다.
이하의 실시예들에서, '고수준 API'는 하나 이상의 로직 각각에 대응되는 API를 의미하며, 상세하게는 마이크로서비스 아키텍처 내에서 하나 이상의 로직에 따라 데이터베이스(DB; Database)에 간접적으로 접근하는 API를 의미한다. 이를 위해, 각 고수준 API는 대응되는 로직에 따라 제2 계층 상의 하나 이상의 API를 호출할 수 있다.
일 실시예에 따르면, 제1 계층은 제2 계층을 호출함에 있어서, 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대응되는 기 설정된 비즈니스 로직(business logic)에 기초하여 제2 계층을 호출할 수 있다.
이하의 실시예들에서, '비즈니스 로직'은 업무에 필요한 데이터 처리를 수행하는 애플리케이션의 일부를 의미하며, 구체적으로는 각종 데이터의 입력, 수정, 조회 및 보고서 처리 등을 수행하기 위한 로직을 의미한다.
예를 들어, 비즈니스 로직은 "게시글에 댓글을 쓰는 경우, 댓글 수가 1 증가하는 로직", "게시글을 쓴 경우, 작성된 게시글이 '내가 쓴 게시글 목록'에 표시되는 로직" 등을 포함할 수 있으며, 이외에도 게시판 서비스를 통해 제공되는 다양한 기능들과 관련된 로직을 포함할 수 있다.
이후, 컴퓨팅 장치(12)는 마이크로서비스 아키텍처 내 제2 계층에서, 하나 이상의 로직에 따른 하나 이상의 세부 로직을 수행한다(330).
이하의 실시예들에서, 세부 로직은 "데이터베이스의 A라는 테이블에 게시글 데이터를 저장하는 로직", "데이터베이스의 B라는 테이블에 저장된 댓글 데이터를 수정하는 로직" 등을 포함할 수 있으며, 이외에도 데이터베이스에 접근하는 다양한 작업들과 관련된 로직을 포함할 수 있다.
일 실시예에 따르면, 제2 계층은 하나 이상의 세부 로직 별로 구분된 하나 이상의 저수준(low level) API를 포함할 수 있다.
이하의 실시예들에서, '저수준 API'는 하나 이상의 세부 로직 각각에 대응되는 API를 의미하며, 상세하게는 마이크로서비스 아키텍처 내에서 하나 이상의 세부 로직에 따라 데이터베이스에 직접적으로 접근하는 API를 의미한다. 이를 위해, 각 저수준 API는 대응되는 세부 로직에 따라 데이터베이스에 접근하여 기 설정된 조건에 부합하는 데이터에 대해 입력, 수정, 조회 및 보고서 처리 등을 수행할 수 있다.
일 실시예에 따르면, 제2 계층은 세부 로직을 수행함에 있어서, 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나를 구현하기 위한 데이터 처리와 관련된 데이터베이스에 접근하는 하나 이상의 쿼리(query)를 실행할 수 있다.
이하의 실시예들에서, '쿼리'는 데이터베이스에서 원하는 조건의 데이터를 조작하는 언어의 집합 또는 문장을 의미한다. 이러한 쿼리는 다양한 형태로 표현될 수 있으며, 예를 들어, 데이터베이스에 접근하는 메소드(method)를 호출하는 형태로 표현될 수 있다.
구체적으로, 하나 이상의 쿼리가 접근하는 데이터베이스는 하나 이상의 NoSQL(Not only Structured Query Language) 기반 데이터베이스를 포함할 수 있다.
이하의 실시예들에서, 'NoSQL 기반 데이터베이스'는 구조화 질의어(SQL; Structured Query Language)에 기반한 관계형 데이터베이스(RDB; Relational Database) 뿐만 아니라, SQL에 기반하지 않은 데이터베이스를 통칭한다. NoSQL 기반 데이터베이스는, 예를 들어, 아파치 카산드라(Apache Cassandra), 몽고DB(MongoDB), 아파치 HBase(Apache HBase) 등을 포함할 수 있으나, 반드시 이에 한정되는 것은 아니다.
즉, 일 실시예에 따른 컴퓨팅 장치(12)는 NoSQL 기반 데이터베이스에 접근하여 게시판 서비스를 제공함으로써 종래의 관계형 데이터베이스를 이용하여 제공되는 게시판 서비스에 대해 다음과 같은 비교우위를 지닐 수 있다. 그러나 이는 예시적인 것이며, 이외에도 추가적인 비교우위 요소가 존재할 수 있음은 자명하다.
(1) 다수의 클라이언트가 동시에 데이터를 읽고 쓰는 경우의 성능 향상
(2) 데이터베이스 관리 시스템의 일부에 고장이 발생하더라도 데이터베이스 사용 가능
(3) 데이터 트래픽(traffic) 증가에 대응하기 위한 데이터베이스 장비의 수평적 확장(Scale-out) 용이
(4) 다양한 구조의 데이터를 포함함에 따라 객체 관계 매핑(ORM; Objective Relational Mapping) 프레임워크(Framework)의 불필요
이후, 일 실시예에 따르면, 컴퓨팅 장치(12)는 하나 이상의 세부 로직의 수행 결과에 기초하여 클라이언트의 요청에 대한 응답을 생성할 수 있다.
구체적으로, 클라이언트의 요청에 대한 응답은 클라이언트의 요청에 대응되는 데이터의 읽기, 쓰기, 수정, 삭제 중 적어도 하나를 포함할 수 있으나, 반드시 이에 한정되는 것은 아니며 게시판 서비스를 통해 제공되는 기능들에 해당하는 다양한 응답이 생성될 수 있음은 자명하다.
이후, 일 실시예에 따르면, 컴퓨팅 장치(12)는 클라이언트의 요청에 대한 응답을 클라이언트에게 송신할 수 있다.
일 실시예에 따르면, 컴퓨팅 장치(12)는 클라이언트의 요청을 처리한 마이크로서비스 아키텍처를 클라이언트의 요청을 처리할 때와 역순으로 이용하여 클라이언트의 요청에 대한 응답을 송신할 수 있다.
구체적으로, 컴퓨팅 장치(12)는 제2 계층, 제1 계층 및 게이트웨이 계층을 순차적으로 거쳐 클라이언트의 요청에 대한 응답을 송신할 수 있다.
도시된 흐름도에서는 상기 방법을 복수 개의 동작으로 나누어 기재하였으나, 적어도 일부의 동작들은 순서를 바꾸어 수행되거나, 다른 동작과 결합되어 함께 수행되거나, 생략되거나, 세부 동작들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 동작이 부가되어 수행될 수 있다.
도 4는 일 실시예에 따른 게시판 서비스 제공 과정(400)을 나타내는 예시도이다.
도시된 바와 같이, 일 실시예에 따른 게시판 서비스의 요청 및 제공은 클라이언트(410)로부터 게이트웨이 계층(420), 제1 계층(430), 제2 계층(440) 및 데이터베이스(450)를 거치며 이루어진다.
도 4에서 클라이언트(410)는 K개(이때, K는 3 이상의 자연수), 제1 계층(430)의 API는 N개(이때, N은 3 이상의 자연수), 제2 계층(440)의 API는 M개(이때, M은 N보다 큰 자연수)인 것으로 도시되었으나, 이는 설명의 편의를 위한 것이며 클라이언트(410)의 개수, 제1 계층(430)의 API 개수 및 제2 계층(440)의 API 개수는 실시예에 따라 변경될 수 있다.
도 4를 참조하면, 클라이언트 #1부터 클라이언트 #K까지 총 K개의 클라이언트(410)는 각각 게이트웨이 계층(420)의 API를 호출함으로써 게시판 서비스를 통해 제공되는 적어도 하나의 기능에 대해 요청할 수 있다.
이어서, 게이트웨이 계층(420)의 API는 각 클라이언트의 요청에 따른 프로세스를 수행하기 위해, 제1 계층(430)에 포함된 API #1부터 API #N까지 각 로직 별로 구분된 총 N개의 고수준 API를 호출할 수 있다.
이어서, 제1 계층(430)의 각 API는 프로세스에 따른 하나 이상의 로직에 기초하여, 제2 계층(440)에 포함된 API #1부터 API #M까지 각 세부 로직 별로 구분된 총 M개의 저수준 API를 호출할 수 있다.
도시된 실시예에서, 제1 계층(430)의 API #1은 담당하는 로직에 종속된 세부 로직이 1개인 바, 해당 세부 로직을 담당하는 제2 계층(440)의 API #2를 호출하고, 제1 계층(430)의 API #2는 담당하는 로직에 종속된 세부 로직이 2개인 바, 해당 두 세부 로직을 담당하는 제2 계층(440)의 API #1 및 API #M을 호출한다.
이어서, 제2 계층(440)의 각 API는 각각의 세부 로직을 수행하여, 게시판 서비스를 구현하기 위한 데이터 처리와 관련된 데이터베이스(450)에 접근하고, 세부 로직의 수행 결과에 기초하여 클라이언트의 요청에 대한 응답을 생성할 수 있다.
도시된 실시예에서, 각 구성들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 구성을 포함할 수 있다.
또한, 일 실시예에서, 게이트웨이 계층(420), 제1 계층(430) 및 제2 계층(440)은 물리적으로 구분된 하나 이상의 장치를 이용하여 구현되거나, 하나 이상의 프로세서 또는 하나 이상의 프로세서 및 소프트웨어의 결합에 의해 구현될 수 있으며, 도시된 예와 달리 구체적 동작에 있어 명확히 구분되지 않을 수 있다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램, 및 상기 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 프로그램의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스

Claims (14)

  1. 컴퓨팅 장치에 의해 수행되는 게이트웨이(gateway) 계층, 제1 계층 및 제2 계층을 포함하는 마이크로서비스 아키텍처(Micro services Architecture)에 기초하여 게시판 서비스를 제공하는 방법으로서,
    상기 게이트웨이 계층에서, 상기 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대한 클라이언트(client)의 요청을 수신하여, 상기 클라이언트의 요청에 따른 프로세스를 수행하기 위해 상기 제1 계층을 호출하는 동작;
    상기 제1 계층에서, 상기 프로세스에 따른 하나 이상의 로직(logic)에 기초하여 상기 제2 계층을 호출하는 동작; 및
    상기 제2 계층에서, 상기 하나 이상의 로직에 따른 하나 이상의 세부 로직을 수행하는 동작을 포함하는, 게시판 서비스 제공 방법.
  2. 청구항 1에 있어서,
    상기 게이트웨이 계층은,
    하나 이상의 애플리케이션 프로그래밍 인터페이스(API; Application Programming Interface)를 포함하는, 게시판 서비스 제공 방법.
  3. 청구항 1에 있어서,
    상기 제1 계층은,
    상기 하나 이상의 로직 별로 구분된 하나 이상의 고수준(high level) API를 포함하는, 게시판 서비스 제공 방법.
  4. 청구항 1에 있어서,
    상기 제2 계층을 호출하는 동작은,
    상기 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대응되는 기 설정된 비즈니스 로직(business logic)에 기초하여 상기 제2 계층을 호출하는, 게시판 서비스 제공 방법.
  5. 청구항 1에 있어서,
    상기 제2 계층은,
    상기 하나 이상의 세부 로직 별로 구분된 하나 이상의 저수준(low level) API를 포함하는, 게시판 서비스 제공 방법.
  6. 청구항 1에 있어서,
    상기 수행하는 동작은,
    상기 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나를 구현하기 위한 데이터 처리와 관련된 데이터베이스에 접근하는 하나 이상의 쿼리(query)를 실행하는, 게시판 서비스 제공 방법.
  7. 청구항 6에 있어서,
    상기 데이터베이스는,
    하나 이상의 NoSQL 기반 데이터베이스를 포함하는, 게시판 서비스 제공 방법.
  8. 하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의해 실행되도록 구성되는 하나 이상의 프로그램을 저장하는 메모리를 포함하며, 게이트웨이(gateway) 계층, 제1 계층 및 제2 계층을 포함하는 마이크로서비스 아키텍처(Micro services Architecture)에 기초하여 게시판 서비스를 제공하는 장치로서,
    상기 프로그램은,
    상기 게이트웨이 계층에서, 상기 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대한 클라이언트(client)의 요청을 수신하여, 상기 클라이언트의 요청에 따른 프로세스를 수행하기 위해 상기 제1 계층을 호출하는 동작;
    상기 제1 계층에서, 상기 프로세스에 따른 하나 이상의 로직(logic)에 기초하여 상기 제2 계층을 호출하는 동작; 및
    상기 제2 계층에서, 상기 하나 이상의 로직에 따른 하나 이상의 세부 로직을 수행하는 동작을 실행하기 위한 명령어들을 포함하는, 게시판 서비스 제공 장치.
  9. 청구항 8에 있어서,
    상기 게이트웨이 계층은,
    하나 이상의 애플리케이션 프로그래밍 인터페이스(API; Application Programming Interface)를 포함하는, 게시판 서비스 제공 장치.
  10. 청구항 8에 있어서,
    상기 제1 계층은,
    상기 하나 이상의 로직 별로 구분된 하나 이상의 고수준(high level) API를 포함하는, 게시판 서비스 제공 장치.
  11. 청구항 8에 있어서,
    상기 제2 계층을 호출하는 동작은,
    상기 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대응되는 기 설정된 비즈니스 로직(business logic)에 기초하여 상기 제2 계층을 호출하는, 게시판 서비스 제공 장치.
  12. 청구항 8에 있어서,
    상기 제2 계층은,
    상기 하나 이상의 세부 로직 별로 구분된 하나 이상의 저수준(low level) API를 포함하는, 게시판 서비스 제공 장치.
  13. 청구항 8에 있어서,
    상기 수행하는 동작은,
    상기 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나를 구현하기 위한 데이터 처리와 관련된 데이터베이스에 접근하는 하나 이상의 쿼리(query)를 실행하는, 게시판 서비스 제공 장치.
  14. 청구항 13에 있어서,
    상기 데이터베이스는,
    하나 이상의 NoSQL 기반 데이터베이스를 포함하는, 게시판 서비스 제공 장치.
KR1020200105075A 2020-08-21 2020-08-21 게시판 서비스 제공 장치 및 방법 KR102449105B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200105075A KR102449105B1 (ko) 2020-08-21 2020-08-21 게시판 서비스 제공 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200105075A KR102449105B1 (ko) 2020-08-21 2020-08-21 게시판 서비스 제공 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20220023400A KR20220023400A (ko) 2022-03-02
KR102449105B1 true KR102449105B1 (ko) 2022-09-29

Family

ID=80815450

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200105075A KR102449105B1 (ko) 2020-08-21 2020-08-21 게시판 서비스 제공 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102449105B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101909420B1 (ko) 2018-04-17 2018-12-19 부산대학교 산학협력단 모놀리식 애플리케이션을 마이크로서비스 단위로 구성하는 장치 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112015019003B1 (pt) 2013-02-10 2022-06-28 Wix.Com Ltd Dispositivo para um sistema de construção de website, e método para um sistema de construção de website
KR20180120991A (ko) * 2017-04-28 2018-11-07 한국전자통신연구원 마이크로서비스 응용의 분산 설치 장치 및 방법
KR102370568B1 (ko) * 2017-04-28 2022-03-03 엘제트랩스 게엠베하 모놀리식 레거시 애플리케이션들에 기초한 마이크로서비스들의 컨테이너화된 전개

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101909420B1 (ko) 2018-04-17 2018-12-19 부산대학교 산학협력단 모놀리식 애플리케이션을 마이크로서비스 단위로 구성하는 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"모바일 통합 웹 게시판 게이트웨이 개발", KNOM Review vol.16 no.1(pp. 24-33), 2012.

Also Published As

Publication number Publication date
KR20220023400A (ko) 2022-03-02

Similar Documents

Publication Publication Date Title
US11086873B2 (en) Query-time analytics on graph queries spanning subgraphs
RU2458399C2 (ru) Кэширование в памяти совместно используемых настраиваемых данных множества арендаторов
US10423396B1 (en) Transforming non-apex code to apex code
US9418176B2 (en) Graph-based system and method of information storage and retrieval
US20180129691A1 (en) Dynamic creation and maintenance of multi-column custom indexes for efficient data management in an on-demand services environment
US20140344435A1 (en) Computer implemented methods and apparatus for trials onboarding
US20160127358A1 (en) Providing a security mechanism on a mobile device
US10997260B2 (en) Extensible moderation framework
US20140006028A1 (en) Computer implemented methods and apparatus for selectively interacting with a server to build a local dictation database for speech recognition at a device
US20140013247A1 (en) Systems and methods for providing a customized user interface for publishing into a feed
CN111949693B (zh) 一种数据处理装置、数据处理方法、存储介质及电子设备
US8316420B2 (en) Access control on dynamically instantiated portal applications
US11138311B2 (en) Distributed security introspection
US10719506B2 (en) Natural language query generation
US11275806B2 (en) Dynamic materialization of feeds for enabling access of the feed in an online social network
US10599654B2 (en) Method and system for determining unique events from a stream of events
US10909103B2 (en) Techniques and architectures for data field lifecycle management
US10719374B1 (en) Application programming interface generator using database metadata
US20160216946A1 (en) Access operation with dynamic linking and access of data within plural data sources
US11726999B1 (en) Obtaining inferences to perform access requests at a non-relational database system
US20120310918A1 (en) Unique join data caching method
US11687568B2 (en) Data catalog system for generating synthetic datasets
US20180260211A1 (en) Techniques and architectures for maintaining metadata version controls
US20170220656A1 (en) Information Access System
KR102449105B1 (ko) 게시판 서비스 제공 장치 및 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant