Nothing Special   »   [go: up one dir, main page]

KR102449107B1 - Appratus and method for providing bulletin board service - Google Patents

Appratus and method for providing bulletin board service Download PDF

Info

Publication number
KR102449107B1
KR102449107B1 KR1020200109009A KR20200109009A KR102449107B1 KR 102449107 B1 KR102449107 B1 KR 102449107B1 KR 1020200109009 A KR1020200109009 A KR 1020200109009A KR 20200109009 A KR20200109009 A KR 20200109009A KR 102449107 B1 KR102449107 B1 KR 102449107B1
Authority
KR
South Korea
Prior art keywords
version
bulletin board
board service
client
request
Prior art date
Application number
KR1020200109009A
Other languages
Korean (ko)
Other versions
KR20220028255A (en
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 KR1020200109009A priority Critical patent/KR102449107B1/en
Publication of KR20220028255A publication Critical patent/KR20220028255A/en
Application granted granted Critical
Publication of KR102449107B1 publication Critical patent/KR102449107B1/en

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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • 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/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Human Computer Interaction (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

게시판 서비스 제공 장치 및 방법이 개시된다. 일 실시예에 따른 게시판 서비스 제공 방법은 복수의 버전(version)의 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대한 클라이언트(client)의 요청을 수신하는 동작, 클라이언트의 요청에 대응되는 게시판 서비스의 버전에 기초하여, 게시판 서비스를 제공하기 위한 모놀리식 아키텍처(Monolithic Architecture) 및 마이크로서비스(Micro services) 아키텍처 중 하나를 선택하는 동작 및 선택된 아키텍처에 기초하여, 클라이언트의 요청에 대응되는 작업을 수행하는 동작을 포함한다.An apparatus and method for providing a bulletin board service are disclosed. A bulletin board service providing method according to an embodiment includes an operation of receiving a request from a client for at least one of a plurality of functions provided through a bulletin board service of a plurality of versions, and a bulletin board service corresponding to the request of the client. Based on the version of , selects one of Monolithic Architecture and Micro services architecture for providing bulletin board services, and performs an operation corresponding to the client's request based on the selected architecture include actions to

Description

게시판 서비스 제공 장치 및 방법{APPRATUS AND METHOD FOR PROVIDING BULLETIN BOARD SERVICE}Device and method for providing bulletin board service {APPRATUS AND METHOD FOR PROVIDING BULLETIN BOARD SERVICE}

개시되는 실시예들은 게시판 서비스를 제공하는 기술에 관한 것이다.The disclosed embodiments relate to a technology for providing a bulletin board service.

오늘날 여러 사람들이 각자의 의견을 표출하는 사회 분위기가 고조됨에 따라, 문화, 경제, 정치, 사회 등의 다양한 분야에서 서로의 견해를 교환하며 성숙한 논의를 이루는 것을 어렵지 않게 볼 수 있다.Today, as the social atmosphere in which various people express their opinions is rising, it is not difficult to see mature discussions by exchanging opinions in various fields such as culture, economy, politics, and society.

이러한 논의는 현실에서뿐만 아니라, 시간과 공간의 제약으로부터 자유로운 웹(web) 또는 애플리케이션(application) 상에서 주로 이루어지는데, 이를 위해 필요한 것이 글을 비롯한 콘텐츠(contents)를 읽고, 쓰고, 수정하고, 삭제할 수 있는 게시판 서비스이다.These discussions take place not only in reality, but also on the web or application that is free from time and space constraints. It is a bulletin board service.

게시판 서비스를 제공하기 위해서는 여러 클라이언트(client)들과 서버(server) 사이에서 송수신되는 수많은 데이터를 관리해야하기 때문에, 종래에는 단일한 애플리케이션 프로그래밍 인터페이스(API; Application Programming Interface)를 통해 여러 클라이언트들에게 게시판 서비스를 제공하고 있었다.In order to provide a bulletin board service, it is necessary to manage a large number of data transmitted and received between multiple clients and servers. was providing service.

그러나, 단일한 API 기반의 아키텍처(architecture)는 안정성이 있는 대신, 새로운 기능을 추가할 경우 비용이 많이 소요되고, 클라이언트가 게시판 내 데이터를 가공하여 자유롭게 활용하기가 어렵다는 한계가 존재하였다.However, the single API-based architecture has limitations in that it is costly to add new functions instead of being stable, and it is difficult for clients to freely utilize the data in the bulletin board.

이에 따라, 복수의 계층화된 API 기반의 아키텍처를 고안하여 종래의 한계를 극복하고자 하나, 이 경우 종래의 단일한 API 기반의 아키텍처를 통해 게시판 서비스를 이용하고자 하는 클라이언트에게는 적절히 대응할 수 없는 문제점이 있다.Accordingly, a plurality of layered API-based architectures are devised to overcome the conventional limitations, but in this case, there is a problem in that it cannot properly respond to clients who want to use the bulletin board service through the conventional single API-based architecture.

대한민국 공개특허공보 제10-2019-0132573호 (2019.11.27. 공개)Republic of Korea Patent Publication No. 10-2019-0132573 (published on November 27, 2019)

개시되는 실시예들은 클라이언트(client)에게 레거시(legacy) 버전 및 최신 버전의 게시판 서비스를 두루 제공하기 위한 것이다.The disclosed embodiments are intended to provide both a legacy version and a latest version of the bulletin board service to a client.

개시되는 일 실시예에 따른 게시판 서비스 제공 방법은, 복수의 버전(version)의 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대한 클라이언트(client)의 요청을 수신하는 동작, 클라이언트의 요청에 대응되는 게시판 서비스의 버전에 기초하여, 게시판 서비스를 제공하기 위한 모놀리식 아키텍처(Monolithic Architecture) 및 마이크로서비스(Micro services) 아키텍처 중 하나를 선택하는 동작 및 선택된 아키텍처에 기초하여, 클라이언트의 요청에 대응되는 작업을 수행하는 동작을 포함한다.A bulletin board service providing method according to an embodiment of the present disclosure includes an operation of receiving a request from a client for at least one of a plurality of functions provided through a bulletin board service of a plurality of versions, and responding to the request of the client On the basis of the version of the bulletin board service being Includes actions to perform tasks.

선택하는 동작은, 클라이언트의 요청에 대응되는 게시판 서비스의 버전이 기 설정된 버전보다 앞선 레거시(legacy) 버전인 경우, 모놀리식 아키텍처를 선택하고, 클라이언트의 요청에 대응되는 게시판 서비스의 버전이 기 설정된 버전 이후의 버전인 경우, 마이크로서비스 아키텍처를 선택할 수 있다.In the selection operation, when the version of the bulletin board service corresponding to the client's request is a legacy version earlier than the preset version, the monolithic architecture is selected, and the version of the bulletin board service corresponding to the client's request is set in advance. For later versions, you can choose a microservices architecture.

선택하는 동작은, 하나 이상의 애플리케이션 프로그래밍 인터페이스(API; Application Programming Interface)를 포함하는 게이트웨이(gateway) 계층에서 이루어질 수 있다.The selection operation may be performed in a gateway layer including one or more application programming interfaces (APIs).

모놀리식 아키텍처는, 관계형 데이터베이스(RDB; Relational Database) 기반의 API를 하나 이상 포함하는 단일 계층의 아키텍처일 수 있다.The monolithic architecture may be a single layer architecture including at least one API based on a relational database (RDB).

마이크로서비스 아키텍처는, 작업을 수행하기 위한 하나 이상의 로직(logic) 별로 구분된 하나 이상의 고수준(high level) API를 포함하는 제1 계층; 및 하나 이상의 로직 각각을 분할한 하나 이상의 세부 로직 별로 구분된 하나 이상의 저수준(low level) API를 포함하는 제2 계층을 포함할 수 있다.The microservices architecture includes: a first layer including one or more high-level APIs divided by one or more logics for performing a task; and a second layer including one or more low-level APIs divided by one or more detailed logics obtained by dividing each of one or more logics.

하나 이상의 로직은, 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대응되는 기 설정된 비즈니스 로직(business logic)을 포함할 수 있다.The one or more logics may include preset business logic corresponding to at least one of a plurality of functions provided through the bulletin board service.

하나 이상의 세부 로직은, 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나를 구현하기 위한 데이터 처리와 관련된 데이터베이스에 접근하는 하나 이상의 쿼리(query)를 실행할 수 있다.The one or more detailed logic may execute one or more queries to access a database related to data processing for implementing at least one of a plurality of functions provided through the bulletin board service.

추가적인 실시예에 따른 게시판 서비스 제공 방법은, 클라이언트에서 지원되는 게시판 서비스의 버전이 기 설정된 버전보다 앞선 레거시 버전인 반면, 클라이언트의 요청에 대응되는 게시판 서비스의 버전은 기 설정된 버전 이후의 버전인 경우, 레거시 버전의 API를 호출함으로써 송신된 클라이언트의 요청을 기 설정된 버전 이후의 버전의 API를 호출함으로써 송신된 것으로 식별하는 동작 및 작업의 수행 결과 생성된 응답의 버전을 레거시 버전으로 변환하는 동작을 더 포함할 수 있다.In the bulletin board service providing method according to an additional embodiment, when the version of the bulletin board service supported by the client is a legacy version earlier than the preset version, while the version of the bulletin board service corresponding to the client's request is a version after the preset version, The operation of identifying the client's request transmitted by calling the legacy version of the API as being transmitted by calling the API of the version after the preset version and converting the version of the response generated as a result of performing the operation into the legacy version. can do.

개시되는 일 실시예에 따른 게시판 서비스 제공 장치는, 하나 이상의 프로세서 및 하나 이상의 프로세서에 의해 실행되도록 구성되는 하나 이상의 프로그램을 저장하는 메모리를 포함하는 장치로서, 프로그램은, 복수의 버전(version)의 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대한 클라이언트(client)의 요청을 수신하는 동작, 클라이언트의 요청에 대응되는 게시판 서비스의 버전에 기초하여, 게시판 서비스를 제공하기 위한 모놀리식 아키텍처(Monolithic Architecture) 및 마이크로서비스(Micro services) 아키텍처 중 하나를 선택하는 동작 및 선택된 아키텍처에 기초하여, 클라이언트의 요청에 대응되는 작업을 수행하는 동작을 실행하기 위한 명령어들을 포함한다.A bulletin board service providing apparatus according to an embodiment of the present disclosure includes one or more processors and a memory for storing one or more programs configured to be executed by one or more processors, wherein the programs include a plurality of versions of the bulletin board. A monolithic architecture for providing a bulletin board service based on an operation of receiving a client's request for at least one of a plurality of functions provided through the service and a version of the bulletin board service corresponding to the client's request Architecture) and microservices, and instructions for executing an operation of performing an operation corresponding to a request of a client based on an operation of selecting one of the architectures and the selected architecture.

선택하는 동작은, 클라이언트의 요청에 대응되는 게시판 서비스의 버전이 기 설정된 버전보다 앞선 레거시(legacy) 버전인 경우, 모놀리식 아키텍처를 선택하고, 클라이언트의 요청에 대응되는 게시판 서비스의 버전이 기 설정된 버전 이후의 버전인 경우, 마이크로서비스 아키텍처를 선택할 수 있다.In the selection operation, when the version of the bulletin board service corresponding to the client's request is a legacy version earlier than the preset version, the monolithic architecture is selected, and the version of the bulletin board service corresponding to the client's request is set in advance. For later versions, you can choose a microservices architecture.

선택하는 동작은, 하나 이상의 애플리케이션 프로그래밍 인터페이스(API; Application Programming Interface)를 포함하는 게이트웨이(gateway) 계층에서 이루어질 수 있다.The selection operation may be performed in a gateway layer including one or more application programming interfaces (APIs).

모놀리식 아키텍처는, 관계형 데이터베이스(RDB; Relational Database) 기반의 API를 하나 이상 포함하는 단일 계층의 아키텍처일 수 있다.The monolithic architecture may be a single layer architecture including at least one API based on a relational database (RDB).

마이크로서비스 아키텍처는, 작업을 수행하기 위한 하나 이상의 로직(logic) 별로 구분된 하나 이상의 고수준(high level) API를 포함하는 제1 계층 및 하나 이상의 로직 각각을 분할한 하나 이상의 세부 로직 별로 구분된 하나 이상의 저수준(low level) API를 포함하는 제2 계층을 포함할 수 있다.A microservices architecture includes a first layer including one or more high-level APIs divided by one or more logics for performing a task, and one or more divided by one or more detailed logics that are each divided by one or more logics. It may include a second layer including a low level API.

하나 이상의 로직은, 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대응되는 기 설정된 비즈니스 로직(business logic)을 포함할 수 있다.The one or more logics may include preset business logic corresponding to at least one of a plurality of functions provided through the bulletin board service.

하나 이상의 세부 로직은, 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나를 구현하기 위한 데이터 처리와 관련된 데이터베이스에 접근하는 하나 이상의 쿼리(query)를 실행할 수 있다.The one or more detailed logic may execute one or more queries to access a database related to data processing for implementing at least one of a plurality of functions provided through the bulletin board service.

추가적인 실시예에 따른 게시판 서비스 제공 장치는, 클라이언트에서 지원되는 게시판 서비스의 버전이 기 설정된 버전보다 앞선 레거시 버전인 반면, 클라이언트의 요청에 대응되는 게시판 서비스의 버전은 기 설정된 버전 이후의 버전인 경우, 레거시 버전의 API를 호출함으로써 송신된 클라이언트의 요청을 기 설정된 버전 이후의 버전의 API를 호출함으로써 송신된 것으로 식별하는 동작 및 작업의 수행 결과 생성된 응답의 버전을 레거시 버전으로 변환하는 동작을 실행하기 위한 명령어들을 더 포함할 수 있다.In the bulletin board service providing apparatus according to an additional embodiment, when the version of the bulletin board service supported by the client is a legacy version earlier than the preset version, whereas the version of the bulletin board service corresponding to the client's request is a version after the preset version, Execute an operation of identifying a client request sent by calling a legacy version of the API as being transmitted by calling an API of a version after a preset version and converting a version of a response generated as a result of performing the operation into a legacy version It may further include instructions for.

개시되는 실시예들에 따르면, 클라이언트의 요청에 대응되는 게시판 서비스의 버전(version)에 따라 게시판 서비스를 제공하는 아키텍처를 선택함으로써, 클라이언트에게 최신 버전의 게시판 서비스뿐만 아니라 레거시(legacy) 버전의 게시판 서비스 역시 제공할 수 있다.According to the disclosed embodiments, by selecting an architecture for providing a bulletin board service according to a version of the bulletin board service corresponding to a client's request, not only the latest version of the bulletin board service but also the legacy version of the bulletin board service can also be provided.

또한 개시되는 실시예들에 따르면, 마이크로서비스 아키텍처에 기초하여 게시판 서비스를 제공하는 경우, 클라이언트의 요청에 따른 프로세스를 여러 계층의 애플리케이션 프로그래밍 인터페이스(API; Application Programming Interface)에서 로직(logic) 및 세부 로직 단위로 수행함으로써, 클라이언트에게 게시판 서비스의 새로운 기능을 쉽게 제공할 수 있고, 클라이언트로 하여금 게시판 내 데이터를 자유롭게 활용하도록 할 수 있다.Also, according to the disclosed embodiments, when a bulletin board service is provided based on a microservice architecture, a process according to a client's request is performed using logic and detailed logic in several layers of an application programming interface (API). By performing as a unit, it is possible to easily provide a new function of the bulletin board service to the client and to allow the client to freely utilize the data in the bulletin board.

도 1은 일 실시예에 따라 제공되는 게시판 서비스 화면을 나타내는 예시도
도 2는 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
도 3은 일 실시예에 따른 게시판 서비스 제공 방법을 설명하기 위한 흐름도
도 4는 일 실시예에 따른 아키텍처의 선택 방법을 상세히 설명하기 위한 흐름도
도 5는 추가적인 실시예에 따른 게시판 서비스 제공 방법을 설명하기 위한 흐름도
도 6은 일 실시예에 따른 게시판 서비스 제공 과정을 나타내는 예시도
1 is an exemplary diagram illustrating a bulletin board service screen provided according to an embodiment;
2 is a block diagram illustrating and explaining a computing environment including a computing device according to an embodiment;
3 is a flowchart illustrating a method for providing a bulletin board service according to an embodiment;
4 is a flowchart illustrating in detail a method of selecting an architecture according to an embodiment;
5 is a flowchart illustrating a method of providing a bulletin board service according to an additional embodiment;
6 is an exemplary diagram illustrating a bulletin board service provision process according to an embodiment;

이하, 도면을 참조하여 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 개시되는 실시예들은 이에 제한되지 않는다.Hereinafter, specific embodiments will be described with reference to the drawings. The following detailed description is provided to provide a comprehensive understanding of the methods, apparatus, and/or systems described herein. However, this is merely an example and the disclosed embodiments are not limited thereto.

실시예들을 설명함에 있어서, 관련된 공지기술에 대한 구체적인 설명이 개시되는 실시예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 개시되는 실시예들에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.In describing the embodiments, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the disclosed embodiments, the detailed description thereof will be omitted. And, the terms to be described later are terms defined in consideration of functions in the disclosed embodiments, which may vary according to intentions or customs of users and operators. Therefore, the definition should be made based on the content throughout this specification. The terminology used in the detailed description is for the purpose of describing the embodiments only, and should in no way be limiting. Unless explicitly used otherwise, expressions in the singular include the meaning of the plural. In this description, expressions such as “comprising” or “comprising” are intended to indicate certain features, numbers, steps, acts, elements, some or a combination thereof, one or more other than those described. It should not be construed to exclude the presence or possibility of other features, numbers, steps, acts, elements, or any part or combination thereof.

이하의 실시예들에서, '게시판 서비스'는 게시판 서비스를 이용하는 사용자, 게시판 서비스를 제공하는 운영자 등이 작성한 게시물, 댓글 또는 이와 관련된 콘텐츠를 웹(web) 또는 애플리케이션(application) 상에서 종합하여 제공하는 일련의 서비스를 의미한다.In the following embodiments, 'Bulletin Board Service' is a series of providing posts, comments, or related contents written by users who use bulletin board services, operators providing bulletin board services, etc. means the service of

도 1은 일 실시예에 따라 제공되는 게시판 서비스 화면(100)을 나타내는 예시도이다.1 is an exemplary diagram illustrating a bulletin board service screen 100 provided according to an embodiment.

도 1에서는, 게임 '리니지(Lineage)'에 대한 웹 페이지 상의 '서버' 탭에서 제공되는 게시판 서비스가 예시적으로 도시되었다.In FIG. 1 , a bulletin board service provided in the 'Server' tab on the web page for the game 'Lineage' is illustrated as an example.

도 1을 참조하면, 중앙부 좌측의 '우리서버 서버지기&최신기사' 란에는 현재 설정된 우리서버('데포로쥬')의 서버지기('이웃집할배') 및 해당 서버지기가 기고한 최신기사의 목록이 노출된다. 한편, 중앙부 우측의 '전체 서버지기 최신기사' 란에는 리니지의 전체 서버 각각의 서버지기들이 기고한 최신기사들의 목록이 노출된다.Referring to FIG. 1, in the 'My Server Server Keeper & Latest Articles' column on the left side of the central part, there is a list of the currently set server keepers ('Grandpas next door') of our server ('Deporoju') and the latest articles contributed by the server keepers. are exposed On the other hand, in the 'All Server Keepers Latest Articles' column on the right side of the center part, a list of the latest articles contributed by each server manager of all Lineage servers is exposed.

또한, 도 1의 하단부에는 각 서버에서 게임을 플레이하는 클라이언트들이 작성한 게시물의 제목, 그림 첨부 표시, 좋아요 숫자, 댓글 숫자 등이 목록 형태로 노출된다.In addition, in the lower part of FIG. 1 , the title of the post written by the clients playing the game on each server, the picture attached display, the number of likes, the number of comments, etc. are exposed in the form of a list.

이처럼, 일 실시예에서, 게시판 서비스를 제공하는 서버는 게시물의 제목, 그림 첨부 표시, 좋아요 숫자, 댓글 숫자 등과 관련된 기능, 최근에 작성된 최신기사와 관련된 기능, 각 서버의 서버지기와 관련된 기능 등을 클라이언트에게 제공할 수 있다.As such, in one embodiment, the server providing the bulletin board service provides a function related to the title of a post, a picture attachment display, a number of likes, a number of comments, etc., a function related to the latest article written recently, a function related to the server keeper of each server, etc. can be provided to the client.

다시 말하면, 일 실시예에 따른 게시판 서비스는 게시판 서비스를 이용하는 사용자 또는 게시판 서비스를 제공하는 운영자 등이 작성한 게시물, 댓글 또는 이와 관련된 콘텐츠 그 자체와 관련된 서비스일 수도 있고, 이를 가공하여 새롭게 생성되는 정보와 관련된 서비스일 수도 있다.In other words, the bulletin board service according to an embodiment may be a service related to posts, comments, or related content itself written by a user who uses the bulletin board service or an operator providing the bulletin board service, and includes information and information newly created by processing it. It may be a related service.

도 2는 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다.2 is a block diagram illustrating and describing a computing environment 10 including a computing device according to an embodiment.

도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.In the illustrated embodiment, each component may have different functions and capabilities other than those described below, and may include additional components in addition to those described below.

도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 게시판 서비스 제공 장치일 수 있다. 컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.The illustrated computing environment 10 includes a computing device 12 . In one embodiment, the computing device 12 may be a bulletin board service providing device. Computing device 12 includes at least one processor 14 , computer readable storage medium 16 , and communication bus 18 . The processor 14 may cause the computing device 12 to operate in accordance with the exemplary embodiments discussed above. For example, the processor 14 may execute one or more programs stored in the computer-readable storage medium 16 . The one or more programs may include one or more computer-executable instructions that, when executed by the processor 14, configure the computing device 12 to perform operations in accordance with the exemplary embodiment. can be

컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.Computer-readable storage medium 16 is configured to store computer-executable instructions or program code, program data, and/or other suitable form of information. The program 20 stored in the computer readable storage medium 16 includes a set of instructions executable by the processor 14 . In one embodiment, computer-readable storage medium 16 includes memory (volatile memory, such as random access memory, non-volatile memory, or a suitable combination thereof), one or more magnetic disk storage devices, optical disk storage devices, flash It may be memory devices, other forms of storage medium that can be accessed by computing device 12 and store desired information, or a suitable combination thereof.

통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.Communication bus 18 interconnects various other components of computing device 12 , including processor 14 and computer readable storage medium 16 .

컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.Computing device 12 may also include one or more input/output interfaces 22 and one or more network communication interfaces 26 that provide interfaces for one or more input/output devices 24 . The input/output interface 22 and the network communication interface 26 are coupled to the communication bus 18 . Input/output device 24 may be coupled to other components of computing device 12 via input/output interface 22 . Exemplary input/output device 24 may include a pointing device (such as a mouse or trackpad), a keyboard, a touch input device (such as a touchpad or touchscreen), a voice or sound input device, various types of sensor devices, and/or imaging devices. input devices and/or output devices such as display devices, printers, speakers and/or network cards. The exemplary input/output device 24 may be included in the computing device 12 as a component constituting the computing device 12 , and may be connected to the computing device 12 as a separate device distinct from the computing device 12 . may be

도 3은 일 실시예에 따른 게시판 서비스 제공 방법을 설명하기 위한 흐름도이다.3 is a flowchart illustrating a method for providing a bulletin board service according to an embodiment.

도 3에 도시된 방법은 예를 들어, 상술한 컴퓨팅 장치(12)에 의해 수행될 수 있다.The method illustrated in FIG. 3 may be performed, for example, by the computing device 12 described above.

우선, 컴퓨팅 장치(12)는 복수의 버전(version)의 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대한 클라이언트(client)의 요청을 수신한다(310).First, the computing device 12 receives a request from a client for at least one of a plurality of functions provided through a bulletin board service of a plurality of versions ( 310 ).

이후, 컴퓨팅 장치(12)는 클라이언트의 요청에 대응되는 게시판 서비스의 버전에 기초하여, 게시판 서비스를 제공하기 위한 모놀리식 아키텍처(Monolithic Architecture) 및 마이크로서비스 아키텍처(Micro services Architecture) 중 하나를 선택한다(320).Then, the computing device 12 selects one of a monolithic architecture and a micro services architecture for providing a bulletin board service, based on the version of the bulletin board service corresponding to the request of the client. (320).

실제로, 수많은 클라이언트들의 다양한 요청 중에는 상대적으로 이전 버전의 게시판 서비스에 대한 요청도 있을 수 있으며, 반대로 최신 버전의 게시판 서비스에 대한 요청도 있을 수 있다. 그런데 게시판 서비스의 버전을 업데이트 하는 과정에서 게시판 서비스를 제공하기 위한 아키텍처는 변형될 수 있기 때문에, 상술한 바와 같이 미리 구현된 아키텍처 중 하나를 선택하여 게시판 서비스를 제공할 필요가 있다.In fact, among various requests from numerous clients, there may be a request for a relatively old version of the bulletin board service, and conversely, there may also be a request for the latest version of the bulletin board service. However, since the architecture for providing the bulletin board service may be modified in the process of updating the version of the bulletin board service, it is necessary to provide the bulletin board service by selecting one of the previously implemented architectures as described above.

이하의 실시예들에서, '모놀리식 아키텍처'는 하나의 서비스 또는 애플리케이션이 갖는 일체형 아키텍처를 의미한다. 구체적으로, 모놀리식 아키텍처는 내부 컴포넌트들이 서로 강하게 결합되어 있어, 서비스나 애플리케이션의 업데이트 시 전체가 동시에 업데이트되어야 한다는 특징을 지닌다.In the following embodiments, 'monolithic architecture' means an integrated architecture of one service or application. Specifically, the monolithic architecture has a characteristic that internal components are strongly coupled to each other, so that when a service or application is updated, the whole must be updated at the same time.

한편 이하의 실시예들에서, '마이크로서비스 아키텍처'는 복잡하고 다양한 소프트웨어의 기능들을 작고 독립적이며 느슨하게 결합된 여러 모듈로 분해하여 서비스를 제공하는 아키텍처를 의미한다. 구체적으로, 마이크로서비스 아키텍처는 각 바운디드 컨텍스트(bounded context) 별로 모듈들이 결합되어 있다는 특징을 지닌다.Meanwhile, in the following embodiments, the 'microservice architecture' refers to an architecture that provides services by decomposing complex and diverse software functions into small, independent, and loosely coupled modules. Specifically, the microservice architecture has the characteristic that modules are combined for each bounded context.

일 실시예에 따르면, 컴퓨팅 장치(12)는 하나 이상의 애플리케이션 프로그래밍 인터페이스(API; Application Programming Interface)를 포함하는 게이트웨이(gateway) 계층에서 상술한 선택하는 동작(320)을 수행할 수 있다.According to an embodiment, the computing device 12 may perform the above-described selecting operation 320 in a gateway layer including one or more application programming interfaces (APIs).

이하의 실시예들에서, 'API'는 애플리케이션에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 의미한다. 구체적으로, API는 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공하나, 반드시 이에 한정되는 것은 아니다.In the following embodiments, 'API' refers to an interface made to control a function provided by an operating system or a programming language to be used by an application. Specifically, the API provides an interface for file control, window control, image processing, character control, and the like, but is not limited thereto.

한편 이하의 실시예들에서, '게이트웨이 계층'은 어느 하나의 네트워크에서 다른 네트워크로 들어가는 입구 역할을 하는 네트워크 포인트를 의미하며, 구체적으로는 클라이언트의 요청에 따른 프로세스가 진행되는 네트워크 공간이 클라이언트 측에서 게시판 서비스를 제공하기 위한 아키텍처 측으로 전환되는 포인트를 의미한다.Meanwhile, in the following embodiments, the 'gateway layer' refers to a network point serving as an entrance to another network from one network, and specifically, the network space in which the process according to the client's request is performed is located on the client side. It means a point that is switched to the architecture side for providing bulletin board service.

이때, 통신 네트워크는 인터넷, 하나 이상의 로컬 영역 네트워크(local area networks), 광역 네트워크(wire area networks), 셀룰러 네트워크, 모바일 네트워크, 그 밖에 다른 종류의 네트워크들, 또는 이러한 네트워크들의 조합을 포함할 수 있다.In this case, the communication network may include the Internet, one or more local area networks, wire area networks, cellular networks, mobile networks, other types of networks, or a combination of these networks. .

일 실시예에 따르면, 모놀리식 아키텍처는 관계형 데이터베이스(RDB; Relational Database) 기반의 API를 하나 이상 포함하는 단일 계층의 아키텍처일 수 있다.According to an embodiment, the monolithic architecture may be a single-layer architecture including one or more relational database (RDB)-based APIs.

이하의 실시예들에서, '관계형 데이터베이스'는 키(key)와 데이터 값들의 관계를 테이블(Table) 형태로 저장하는 데이터베이스를 의미한다.In the following embodiments, the 'relational database' refers to a database that stores a relationship between a key and data values in the form of a table.

일 실시예에 따르면, 마이크로서비스 아키텍처는 클라이언트의 요청에 대응되는 작업을 수행하기 위한 하나 이상의 로직(logic) 별로 구분된 하나 이상의 고수준(high level) API를 포함하는 제1 계층 및 하나 이상의 로직 각각을 분할한 하나 이상의 세부 로직 별로 구분된 하나 이상의 저수준(low level) API를 포함하는 제2 계층을 포함할 수 있다. According to one embodiment, the microservices architecture includes a first layer including one or more high-level APIs divided by one or more logics for performing a task corresponding to a request of a client, and one or more logics, respectively. A second layer including one or more low-level APIs divided by one or more divided detailed logic may be included.

이하에서, '로직'은 클라이언트의 요청을 수행하기 위한 전체 프로세스를 하나 이상의 세부적인 프로세스로 세분화한 것을 의미한다.Hereinafter, 'logic' means subdividing the entire process for performing a client's request into one or more detailed processes.

일 실시예에 따르면, 하나 이상의 로직은 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대응되는 기 설정된 비즈니스 로직(business logic)을 포함할 수 있다.According to an embodiment, the one or more logics may include preset business logic corresponding to at least one of a plurality of functions provided through the bulletin board service.

이하의 실시예들에서, '비즈니스 로직'은 업무에 필요한 데이터 처리를 수행하는 애플리케이션의 일부를 의미하며, 구체적으로는 각종 데이터의 입력, 수정, 조회 및 보고서 처리 등을 수행하기 위한 로직을 의미한다.In the following embodiments, 'business logic' refers to a part of an application that performs data processing necessary for business, and specifically refers to logic for performing input, modification, inquiry and report processing of various data. .

예를 들어, 비즈니스 로직은 "게시글에 댓글을 쓰는 경우, 댓글 수가 1 증가하는 로직", "게시글을 쓴 경우, 작성된 게시글이 '내가 쓴 게시글 목록'에 표시되는 로직" 등을 포함할 수 있으며, 이외에도 게시판 서비스를 통해 제공되는 다양한 기능들과 관련된 로직을 포함할 수 있다.For example, the business logic may include "logic to increment the number of comments by 1 when a comment is written on a post", "logic to display a written post in 'My post list' when a post is written", etc. In addition, logic related to various functions provided through the bulletin board service may be included.

이하의 실시예들에서, '고수준 API'는 하나 이상의 로직 각각에 대응되는 API를 의미하며, 상세하게는 마이크로서비스 아키텍처 내에서 하나 이상의 로직에 따라 데이터베이스(DB; Database)에 간접적으로 접근하는 API를 의미한다. 이를 위해, 각 고수준 API는 제2 계층 상에서 하나 이상의 세부 로직 각각에 대응되는 API를 호출할 수 있다.In the following embodiments, 'high-level API' means an API corresponding to each of one or more logics, and specifically, an API that indirectly accesses a database (DB) according to one or more logics within a microservice architecture. it means. To this end, each high-level API may call an API corresponding to each of one or more detailed logics on the second layer.

이하의 실시예들에서, '저수준 API'는 하나 이상의 세부 로직 각각에 대응되는 API를 의미하며, 상세하게는 마이크로서비스 아키텍처 내에서 하나 이상의 세부 로직에 따라 데이터베이스에 직접적으로 접근하는 API를 의미한다. 이를 위해, 각 저수준 API는 대응되는 세부 로직에 따라 데이터베이스에 접근하여 기 설정된 조건에 부합하는 데이터에 대해 입력, 수정, 조회 및 보고서 처리 등을 수행할 수 있다.In the following embodiments, the 'low-level API' refers to an API corresponding to each of one or more detailed logics, and specifically refers to an API that directly accesses a database according to one or more detailed logics within a microservice architecture. To this end, each low-level API can access the database according to the corresponding detailed logic and perform input, modification, inquiry, report processing, etc. on data that meets preset conditions.

일 실시예에 따르면, 하나 이상의 세부 로직은 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나를 구현하기 위한 데이터 처리와 관련된 데이터베이스에 접근하는 하나 이상의 쿼리(query)를 실행할 수 있다.According to an embodiment, the one or more detailed logic may execute one or more queries to access a database related to data processing for implementing at least one of a plurality of functions provided through the bulletin board service.

이하의 실시예들에서, '쿼리'는 데이터베이스에서 원하는 조건의 데이터를 조작하는 언어의 집합 또는 문장을 의미한다. 이러한 쿼리는 다양한 형태로 표현될 수 있으며, 예를 들어, 데이터베이스에 접근하는 메소드(method)를 호출하는 형태로 표현될 수 있다.In the following embodiments, 'query' refers to a set of languages or sentences for manipulating data of a desired condition in a database. Such a query may be expressed in various forms, for example, in the form of calling a method accessing a database.

구체적으로, 하나 이상의 쿼리가 접근하는 데이터베이스는 하나 이상의 NoSQL(Not only Structured Query Language) 기반 데이터베이스를 포함할 수 있다.Specifically, a database accessed by one or more queries may include one or more Not only Structured Query Language (NoSQL)-based databases.

이하의 실시예들에서, 'NoSQL 기반 데이터베이스'는 구조화 질의어(SQL; Structured Query Language)에 기반한 관계형 데이터베이스(RDB; Relational Database) 뿐만 아니라, SQL에 기반하지 않은 데이터베이스를 통칭한다. NoSQL 기반 데이터베이스는, 예를 들어, 아파치 카산드라(Apache Cassandra), 몽고DB(MongoDB), 아파치 HBase(Apache HBase) 등을 포함할 수 있으나, 반드시 이에 한정되는 것은 아니다.In the following embodiments, the 'NoSQL-based database' refers to a relational database (RDB) based on a structured query language (SQL) as well as a database not based on SQL. The NoSQL-based database may include, for example, Apache Cassandra, MongoDB, Apache HBase, and the like, but is not necessarily limited thereto.

즉, 일 실시예에 따른 컴퓨팅 장치(12)는 NoSQL 기반 데이터베이스에 접근하여 게시판 서비스를 제공함으로써 종래의 관계형 데이터베이스를 이용하여 제공되는 게시판 서비스에 대해 다음과 같은 비교우위를 지닐 수 있다. 그러나 이는 예시적인 것이며, 이외에도 추가적인 비교우위 요소가 존재할 수 있음은 자명하다.That is, the computing device 12 according to an embodiment provides the bulletin board service by accessing the NoSQL-based database, thereby having the following comparative advantage over the bulletin board service provided using the conventional relational database. However, this is only an example, and it is obvious that additional comparative advantage factors may exist.

(1) 다수의 클라이언트가 동시에 데이터를 읽고 쓰는 경우의 성능 향상(1) Performance improvement when multiple clients read and write data at the same time

(2) 데이터베이스 관리 시스템의 일부에 고장이 발생하더라도 데이터베이스 사용 가능(2) The database can be used even if a part of the database management system fails

(3) 데이터 트래픽(traffic) 증가에 대응하기 위한 데이터베이스 장비의 수평적 확장(Scale-out) 용이(3) Ease of horizontal scale-out of database equipment to cope with increase in data traffic (traffic)

(4) 다양한 구조의 데이터를 포함함에 따라 객체 관계 매핑(ORM; Objective Relational Mapping) 프레임워크(Framework)의 불필요(4) No need for Objective Relational Mapping (ORM) framework as it includes data of various structures

이후, 컴퓨팅 장치(12)는 선택된 아키텍처에 기초하여, 클라이언트의 요청에 대응되는 작업을 수행한다(330).Thereafter, the computing device 12 performs a task corresponding to the request of the client based on the selected architecture ( 330 ).

이후, 일 실시예에 따르면, 컴퓨팅 장치(12)는 작업의 수행 결과에 기초하여 클라이언트의 요청에 대한 응답을 생성할 수 있다.Thereafter, according to an embodiment, the computing device 12 may generate a response to the client's request based on the result of performing the task.

구체적으로, 클라이언트의 요청에 대한 응답은 클라이언트의 요청에 대응되는 데이터의 읽기, 쓰기, 수정, 삭제 중 적어도 하나를 포함할 수 있으나, 반드시 이에 한정되는 것은 아니며 게시판 서비스를 통해 제공되는 기능들에 해당하는 다양한 응답이 생성될 수 있음은 자명하다.Specifically, the response to the client's request may include at least one of reading, writing, modifying, and deleting data corresponding to the client's request, but is not limited thereto and corresponds to the functions provided through the bulletin board service. It is self-evident that various responses may be generated.

이후, 일 실시예에 따르면, 컴퓨팅 장치(12)는 클라이언트의 요청에 대한 응답을 클라이언트에게 송신할 수 있다.Then, according to an embodiment, the computing device 12 may transmit a response to the client's request to the client.

일 실시예에 따르면, 컴퓨팅 장치(12)는 마이크로서비스 아키텍처를 선택하여 클라이언트의 요청을 처리한 경우, 요청 처리 시와는 역순으로, 제2 계층, 제1 계층 및 게이트웨이 계층을 이용하여 클라이언트의 요청에 대한 응답을 송신할 수 있다.According to an embodiment, when the computing device 12 selects the microservice architecture and processes the client's request, the second layer, the first layer, and the gateway layer are used to process the client's request in the reverse order from when the request is processed. You can send a response to

도시된 흐름도에서는 상기 동작을 복수 개의 동작으로 나누어 기재하였으나, 적어도 일부의 동작들은 순서를 바꾸어 수행되거나, 다른 동작과 결합되어 함께 수행되거나, 생략되거나, 세부 동작들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 동작이 부가되어 수행될 수 있다.In the illustrated flowchart, the operation is divided into a plurality of operations, but at least some of the operations are performed in a different order, are performed in combination with other operations, are omitted, are divided into detailed operations, or are not shown. One or more operations may be added and performed.

도 4는 일 실시예에 따른 아키텍처의 선택 방법을 상세히 설명하기 위한 흐름도이다.4 is a flowchart for describing in detail a method of selecting an architecture according to an embodiment.

도 4에 도시된 방법은 예를 들어, 상술한 컴퓨팅 장치(12)에 의해 수행될 수 있다.The method illustrated in FIG. 4 may be performed, for example, by the computing device 12 described above.

우선, 컴퓨팅 장치(12)는 클라이언트의 요청에 대응되는 게시판 서비스의 버전을 식별한다(410).First, the computing device 12 identifies the version of the bulletin board service corresponding to the request of the client ( 410 ).

이후, 컴퓨팅 장치(12)는 식별된 게시판 서비스의 버전을 기 설정된 버전과 비교한다(420).Thereafter, the computing device 12 compares the identified version of the bulletin board service with a preset version ( 420 ).

이후, 컴퓨팅 장치(12)는 식별된 게시판 서비스의 버전이 기 설정된 버전보다 앞선 레거시(legacy) 버전인 경우, 게시판 서비스를 제공하기 위한 아키텍처로 모놀리식 아키텍처를 선택한다(430).Thereafter, when the identified version of the bulletin board service is a legacy version earlier than the preset version, the computing device 12 selects a monolithic architecture as an architecture for providing the bulletin board service ( 430 ).

이하의 실시예들에서, '레거시'는 상대적으로 이전의 기술, 방법론, 컴퓨터 시스템, 소프트웨어 등을 일컫는 개념어를 의미한다.In the following embodiments, 'legacy' refers to a concept term referring to relatively old technology, methodologies, computer systems, software, and the like.

한편, 컴퓨팅 장치(12)는 식별된 게시판 서비스의 버전이 기 설정된 버전 이후의 버전인 경우, 게시판 서비스를 제공하기 위한 아키텍처로 마이크로서비스 아키텍처를 선택한다(440).Meanwhile, when the identified version of the bulletin board service is a version after the preset version, the computing device 12 selects a microservice architecture as an architecture for providing the bulletin board service ( 440 ).

도시된 흐름도에서는 상기 동작을 복수 개의 동작으로 나누어 기재하였으나, 적어도 일부의 동작들은 순서를 바꾸어 수행되거나, 다른 동작과 결합되어 함께 수행되거나, 생략되거나, 세부 동작들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 동작이 부가되어 수행될 수 있다.In the illustrated flowchart, the operation is divided into a plurality of operations, but at least some of the operations are performed in a different order, are performed in combination with other operations, are omitted, are divided into detailed operations, or are not shown. One or more operations may be added and performed.

도 5는 추가적인 실시예에 따른 게시판 서비스 제공 방법을 설명하기 위한 흐름도이다.5 is a flowchart illustrating a method for providing a bulletin board service according to an additional embodiment.

도 5에 도시된 방법은 예를 들어, 상술한 컴퓨팅 장치(12)에 의해 수행될 수 있다.The method illustrated in FIG. 5 may be performed, for example, by the computing device 12 described above.

우선, 컴퓨팅 장치(12)는 복수의 버전의 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대한 클라이언트의 요청을 수신한다(310).First, the computing device 12 receives a request from a client for at least one of a plurality of functions provided through a plurality of versions of the bulletin board service ( 310 ).

이후, 컴퓨팅 장치(12)는 클라이언트에서 지원되는 게시판 서비스의 버전이 기 설정된 버전보다 앞선 레거시 버전인지, 클라이언트의 요청에 대응되는 게시판 서비스의 버전은 기 설정된 버전 이후의 버전인지 판단한다(510).Thereafter, the computing device 12 determines whether the version of the bulletin board service supported by the client is a legacy version earlier than the preset version, and whether the version of the bulletin board service corresponding to the client's request is a version after the preset version ( 510 ).

이후, 클라이언트에서 지원되는 게시판 서비스의 버전이 기 설정된 버전보다 앞선 레거시 버전이며, 클라이언트의 요청에 대응되는 게시판 서비스의 버전은 기 설정된 버전 이후의 버전이라 판단되는 경우, 컴퓨팅 장치(12)는 레거시 버전의 API를 호출함으로써 송신된 클라이언트의 요청을 기 설정된 버전 이후의 버전의 API를 호출함으로써 송신된 것으로 식별한다(520).Thereafter, when it is determined that the version of the bulletin board service supported by the client is a legacy version earlier than the preset version, and the version of the bulletin board service corresponding to the client's request is a version after the preset version, the computing device 12 returns the legacy version The request of the client, transmitted by calling the API of , is identified as being transmitted by calling the API of the version after the preset version ( 520 ).

이후, 컴퓨팅 장치(12)는 클라이언트의 요청에 대응되는 게시판 서비스의 버전에 기초하여, 게시판 서비스를 제공하기 위한 모놀리식 아키텍처 및 마이크로서비스 아키텍처 중 하나를 선택한다(320).Thereafter, the computing device 12 selects one of a monolithic architecture and a microservices architecture for providing the bulletin board service based on the version of the bulletin board service corresponding to the client's request ( 320 ).

이후, 컴퓨팅 장치(12)는 선택된 아키텍처에 기초하여, 클라이언트의 요청에 대응되는 작업을 수행한다(330).Thereafter, the computing device 12 performs a task corresponding to the request of the client based on the selected architecture ( 330 ).

이후, 컴퓨팅 장치(12)는 클라이언트의 요청에 대응되는 작업을 수행한 결과 생성된 응답의 버전을 레거시 버전으로 변환한다(530).Thereafter, the computing device 12 converts the version of the response generated as a result of performing the task corresponding to the request of the client into the legacy version ( 530 ).

이후, 일 실시예에 따르면, 컴퓨팅 장치(12)는 변환된 버전의 응답을 클라이언트에게 송신할 수 있다.Thereafter, according to one embodiment, the computing device 12 may transmit the translated version of the response to the client.

예를 들어, 레거시 버전의 게시판 서비스를 지원하는 클라이언트에서 최신 버전의 게시판 서비스를 요청하는 경우, 컴퓨팅 장치(12)는 마이크로서비스 아키텍처에 기초하여 해당 요청에 대응되는 작업을 수행하고, 작업의 수행 결과 에 기초하여 해당 요청에 대한 응답을 생성한다. 이 경우, 생성된 응답의 버전은 최신 버전일 것이나, 이는 클라이언트에서 지원되는 버전이 아니므로 컴퓨팅 장치(12)는 생성된 응답을 레거시 버전으로 변환하여 클라이언트에게 송신한다.For example, when a client supporting the legacy version of the bulletin board service requests the latest version of the bulletin board service, the computing device 12 performs an operation corresponding to the request based on the microservice architecture, and the result of the operation based on the response to the request. In this case, the version of the generated response may be the latest version, but since this is not a version supported by the client, the computing device 12 converts the generated response into a legacy version and transmits it to the client.

일 실시예에 따르면, 컴퓨터 장치(12)는 상술한 510, 520 및 530 동작 중 적어도 하나 이상의 동작을 게이트웨이 계층에서 수행할 수 있다.According to an embodiment, the computer device 12 may perform at least one of the above-described operations 510, 520, and 530 in the gateway layer.

한편, 클라이언트에서 지원되는 게시판 서비스의 버전이 레거시 버전에 해당하지 않거나, 클라이언트의 요청에 대응되는 게시판 서비스의 버전이 기 설정된 버전 이후의 버전에 해당하지 않는 것으로 판단되는 경우, 컴퓨팅 장치(12)는 상술한 520 및 530 동작을 수행하지 않고 도 3에서 상술한 320 및 330 동작만을 수행하여 게시판 서비스를 제공한다.On the other hand, when it is determined that the version of the bulletin board service supported by the client does not correspond to the legacy version or the version of the bulletin board service corresponding to the client's request does not correspond to a version after the preset version, the computing device 12 The bulletin board service is provided by performing only operations 320 and 330 described above in FIG. 3 without performing operations 520 and 530 described above.

도시된 흐름도에서는 상기 동작을 복수 개의 동작으로 나누어 기재하였으나, 적어도 일부의 동작들은 순서를 바꾸어 수행되거나, 다른 동작과 결합되어 함께 수행되거나, 생략되거나, 세부 동작들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 동작이 부가되어 수행될 수 있다.In the illustrated flowchart, the operation is divided into a plurality of operations, but at least some of the operations are performed in a different order, are performed in combination with other operations, are omitted, are divided into detailed operations, or are not shown. One or more operations may be added and performed.

도 6은 일 실시예에 따른 게시판 서비스 제공 과정(600)을 나타내는 예시도이다.6 is an exemplary diagram illustrating a bulletin board service providing process 600 according to an embodiment.

도시된 바와 같이, 일 실시예에 따른 게시판 서비스의 요청 및 제공은 클라이언트(610)로부터 게이트웨이 계층(620), 모놀리식 아키텍처(630) 및 데이터베이스(640)를 거치거나, 클라이언트(610)로부터 게이트웨이 계층(620), 마이크로서비스 아키텍처(650) 및 데이터베이스(660)를 거치며 이루어진다.As shown, the request and provision of the bulletin board service according to an embodiment go through the gateway layer 620 , the monolithic architecture 630 and the database 640 from the client 610 , or the gateway from the client 610 . This is done through a layer 620 , a microservices architecture 650 , and a database 660 .

도 6에서 클라이언트(610)는 K개(이때, K는 3 이상의 자연수), 제1 계층(651)의 API는 N개(이때, N은 3 이상의 자연수), 제2 계층(653)의 API는 M개(이때, M은 N보다 큰 자연수)인 것으로 도시되었으나, 이는 설명의 편의를 위한 것이며 클라이언트(610)의 개수, 제1 계층(651)의 API 개수 및 제2 계층(653)의 API 개수는 실시예에 따라 변경될 수 있다.In FIG. 6 , there are K clients 610 (in this case, K is a natural number greater than or equal to 3), N APIs of the first layer 651 (in this case, N is a natural number greater than or equal to 3), and APIs of the second layer 653 are Although it is illustrated as being M (in this case, M is a natural number greater than N), this is for convenience of description and the number of clients 610, the number of APIs in the first layer 651, and the number of APIs in the second layer 653 may be changed according to the embodiment.

도 6을 참조하면, 클라이언트 #1부터 클라이언트 #K까지 총 K개의 클라이언트(610)는 각각 게이트웨이 계층(620)의 API를 호출함으로써 게시판 서비스를 통해 제공되는 적어도 하나의 기능에 대해 요청할 수 있다.Referring to FIG. 6 , a total of K clients 610 from client #1 to client #K may request at least one function provided through the bulletin board service by calling the API of the gateway layer 620 , respectively.

이어서, 게이트웨이 계층(620)은 클라이언트의 요청에 대응되는 게시판 서비스의 버전을 식별하여 기 설정된 버전과 비교할 수 있다.Next, the gateway layer 620 may identify a version of the bulletin board service corresponding to the client's request and compare it with a preset version.

그 결과, 식별된 게시판 서비스의 버전이 레거시 버전인 경우, 게이트웨이 계층(620)의 API는 각 클라이언트의 요청에 따른 레거시 버전의 게시판 서비스를 제공하기 위해 모놀리식 아키텍처(630) 내 하나 이상의 API를 호출할 수 있다.As a result, when the version of the identified bulletin board service is the legacy version, the API of the gateway layer 620 uses one or more APIs in the monolithic architecture 630 to provide the bulletin board service of the legacy version according to the request of each client. can be called

이어서, 모놀리식 아키텍처(630)의 각 API는 레거시 버전의 게시판 서비스를 구현하기 위한 데이터 처리와 관련된 데이터베이스(640)에 접근하고, 클라이언트의 요청에 대한 응답을 생성할 수 있다.Subsequently, each API of the monolithic architecture 630 may access the database 640 related to data processing for implementing the legacy version of the bulletin board service, and generate a response to the client's request.

이때, 접근 대상이 되는 데이터베이스(640)는 하나 이상의 SQL(Structured Query Language) 기반의 관계형 데이터베이스를 포함할 수 있다.In this case, the database 640 to be accessed may include one or more Structured Query Language (SQL)-based relational databases.

한편, 식별된 게시판 서비스의 버전이 기 설정된 버전 이후의 버전(이하, '신규 버전'이라 지칭한다)인 경우, 게이트웨이 계층(620)의 API는 각 클라이언트의 요청에 따른 신규 버전의 게시판 서비스를 제공하기 위해 마이크로서비스 아키텍처(650) 내 제1 계층(651)에 포함된 API #1부터 API #N까지 각 로직 별로 구분된 총 N개의 고수준 API를 호출할 수 있다.On the other hand, when the identified version of the bulletin board service is a version after the preset version (hereinafter, referred to as a 'new version'), the API of the gateway layer 620 provides a new version of the bulletin board service according to the request of each client. In order to do this, a total of N high-level APIs divided for each logic from API #1 to API #N included in the first layer 651 in the microservice architecture 650 may be called.

이어서, 제1 계층(651)의 각 API는 프로세스에 따른 하나 이상의 로직에 기초하여, 제2 계층(653)에 포함된 API #1부터 API #M까지 각 세부 로직 별로 구분된 총 M개의 저수준 API를 호출할 수 있다.Then, each API of the first layer 651 is divided by each detailed logic from API #1 to API #M included in the second layer 653, based on one or more logics according to the process, for a total of M low-level APIs. can be called

도시된 실시예에서, 제1 계층(651)의 API #1은 담당하는 로직에 종속된 세부 로직이 1개인 바, 해당 세부 로직을 담당하는 제2 계층(653)의 API #2를 호출하고, 제1 계층(651)의 API #2는 담당하는 로직에 종속된 세부 로직이 2개인 바, 해당 두 세부 로직을 담당하는 제2 계층(653)의 API #1 및 API #M을 호출한다.In the illustrated embodiment, API #1 of the first layer 651 has one detailed logic dependent on the logic in charge, and calls API #2 of the second layer 653 in charge of the detailed logic, Since API #2 of the first layer 651 has two detailed logics dependent on the corresponding logic, API #1 and API #M of the second layer 653 responsible for the two detailed logics are called.

이어서, 제2 계층(653)의 각 API는 각각의 세부 로직을 수행하여, 게시판 서비스를 구현하기 위한 데이터 처리와 관련된 데이터베이스(660)에 접근하고, 세부 로직의 수행 결과에 기초하여 클라이언트의 요청에 대한 응답을 생성할 수 있다.Then, each API of the second layer 653 performs each detailed logic, accesses the database 660 related to data processing for implementing the bulletin board service, and responds to the request of the client based on the execution result of the detailed logic response can be generated.

이때, 접근 대상이 되는 데이터베이스(660)는 하나 이상의 NoSQL 기반 데이터베이스를 포함할 수 있다.In this case, the database 660 to be accessed may include one or more NoSQL-based databases.

도시된 실시예에서, 각 구성들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 구성을 포함할 수 있다. In the illustrated embodiment, each of the components may have different functions and capabilities other than those described below, and may include additional components in addition to those described below.

또한, 일 실시예에서, 게이트웨이 계층(620), 모놀리식 아키텍처(630) 및 마이크로서비스 아키텍처(650)는 물리적으로 구분된 하나 이상의 장치를 이용하여 구현되거나, 하나 이상의 프로세서 또는 하나 이상의 프로세서 및 소프트웨어의 결합에 의해 구현될 수 있으며, 도시된 예와 달리 구체적 동작에 있어 명확히 구분되지 않을 수 있다.Further, in one embodiment, gateway layer 620, monolithic architecture 630, and microservices architecture 650 are implemented using one or more physically separate devices, or one or more processors or one or more processors and software. may be implemented by a combination of , and may not be clearly distinguished in specific operation unlike the illustrated example.

한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램, 및 상기 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 프로그램의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.Meanwhile, an embodiment of the present invention may include a program for performing the methods described in this specification on a computer, and a computer-readable recording medium including the program. The computer-readable recording medium may include program instructions, local data files, local data structures, etc. alone or in combination. The medium may be specially designed and configured for the present invention, or may be commonly used in the field of computer software. Examples of computer-readable recording media include hard disks, magnetic media such as floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and program instructions specially configured to store and execute program instructions such as ROMs, RAMs, flash memories, and the like. Hardware devices are included. Examples of the program may include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.Although representative embodiments of the present invention have been described in detail above, those of ordinary skill in the art to which the present invention pertains will understand that various modifications are possible within the limits without departing from the scope of the present invention with respect to the above-described embodiments. . Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined by the claims described below as well as the claims and equivalents.

10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
10: Computing Environment
12: computing device
14: Processor
16: computer readable storage medium
18: communication bus
20: Program
22: input/output interface
24: input/output device
26: network communication interface

Claims (16)

게시판 서비스 제공 장치에 의해 수행되는 게시판 서비스 제공 방법에 있어서,
복수의 버전(version)의 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대한 클라이언트(client)의 요청을 수신하는 동작;
상기 클라이언트의 요청에 대응되는 게시판 서비스의 버전에 기초하여, 게시판 서비스를 제공하기 위한 모놀리식 아키텍처(Monolithic Architecture) 및 마이크로서비스(Micro services) 아키텍처 중 하나를 선택하는 동작; 및
상기 선택된 아키텍처에 기초하여, 상기 클라이언트의 요청에 대응되는 작업을 수행하는 동작을 포함하며,
상기 선택하는 동작은,
상기 클라이언트의 요청에 대응되는 게시판 서비스의 버전이 기 설정된 버전보다 앞선 레거시(legacy) 버전인 경우, 상기 모놀리식 아키텍처를 선택하고,
상기 클라이언트의 요청에 대응되는 게시판 서비스의 버전이 상기 기 설정된 버전 이후의 버전인 경우, 상기 마이크로서비스 아키텍처를 선택하는, 게시판 서비스 제공 방법.
In the bulletin board service providing method performed by the bulletin board service providing device,
receiving a request from a client for at least one of a plurality of functions provided through a bulletin board service of a plurality of versions;
selecting one of a monolithic architecture and a micro services architecture for providing a bulletin board service based on the version of the bulletin board service corresponding to the request of the client; and
Based on the selected architecture, comprising the operation of performing a task corresponding to the request of the client,
The selection operation is
If the version of the bulletin board service corresponding to the client's request is a legacy version earlier than the preset version, selecting the monolithic architecture,
and selecting the microservice architecture when the version of the bulletin board service corresponding to the client's request is a version after the preset version.
삭제delete 청구항 1에 있어서,
상기 선택하는 동작은,
하나 이상의 애플리케이션 프로그래밍 인터페이스(API; Application Programming Interface)를 포함하는 게이트웨이(gateway) 계층에서 이루어지는, 게시판 서비스 제공 방법.
The method according to claim 1,
The selection operation is
A method of providing a bulletin board service, which is made in a gateway layer including one or more application programming interfaces (APIs).
청구항 1에 있어서,
상기 모놀리식 아키텍처는,
관계형 데이터베이스(RDB; Relational Database) 기반의 API를 하나 이상 포함하는 단일 계층의 아키텍처인, 게시판 서비스 제공 방법.
The method according to claim 1,
The monolithic architecture is
A method of providing a bulletin board service, which is a single-layer architecture that includes one or more APIs based on a relational database (RDB).
청구항 1에 있어서,
상기 마이크로서비스 아키텍처는,
상기 작업을 수행하기 위한 하나 이상의 로직(logic) 별로 구분된 하나 이상의 고수준(high level) API를 포함하는 제1 계층; 및
상기 하나 이상의 로직 각각을 분할한 하나 이상의 세부 로직 별로 구분된 하나 이상의 저수준(low level) API를 포함하는 제2 계층을 포함하는, 게시판 서비스 제공 방법.
The method according to claim 1,
The microservices architecture is
a first layer including one or more high-level APIs divided by one or more logics for performing the task; and
and a second layer including one or more low-level APIs divided by one or more detailed logics obtained by dividing each of the one or more logics.
청구항 5에 있어서,
상기 하나 이상의 로직은,
상기 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대응되는 기 설정된 비즈니스 로직(business logic)을 포함하는, 게시판 서비스 제공 방법.
6. The method of claim 5,
The one or more logic is
and a predetermined business logic corresponding to at least one of a plurality of functions provided through the bulletin board service.
청구항 5에 있어서,
상기 하나 이상의 세부 로직은,
상기 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나를 구현하기 위한 데이터 처리와 관련된 데이터베이스에 접근하는 하나 이상의 쿼리(query)를 실행하는, 게시판 서비스 제공 방법.
6. The method of claim 5,
The one or more detailed logic is
and executing one or more queries to access a database related to data processing for implementing at least one of a plurality of functions provided through the bulletin board service.
청구항 1에 있어서,
상기 클라이언트에서 지원되는 게시판 서비스의 버전이 기 설정된 버전보다 앞선 레거시 버전인 반면, 상기 클라이언트의 요청에 대응되는 게시판 서비스의 버전은 상기 기 설정된 버전 이후의 버전인 경우,
상기 레거시 버전의 API를 호출함으로써 송신된 상기 클라이언트의 요청을 상기 기 설정된 버전 이후의 버전의 API를 호출함으로써 송신된 것으로 식별하는 동작; 및
상기 작업의 수행 결과 생성된 응답의 버전을 상기 레거시 버전으로 변환하는 동작을 더 포함하는, 게시판 서비스 제공 방법.
The method according to claim 1,
When the version of the bulletin board service supported by the client is a legacy version earlier than the preset version, while the version of the bulletin board service corresponding to the client's request is a version after the preset version,
identifying the request of the client, transmitted by calling the legacy version of the API, as being transmitted by calling the API of a version after the preset version; and
and converting a version of a response generated as a result of performing the task into the legacy version.
하나 이상의 프로세서; 및
상기 하나 이상의 프로세서에 의해 실행되도록 구성되는 하나 이상의 프로그램을 저장하는 메모리를 포함하는 장치로서,
상기 프로그램은,
복수의 버전(version)의 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대한 클라이언트(client)의 요청을 수신하는 동작;
상기 클라이언트의 요청에 대응되는 게시판 서비스의 버전에 기초하여, 게시판 서비스를 제공하기 위한 모놀리식 아키텍처(Monolithic Architecture) 및 마이크로서비스(Micro services) 아키텍처 중 하나를 선택하는 동작; 및
상기 선택된 아키텍처에 기초하여, 상기 클라이언트의 요청에 대응되는 작업을 수행하는 동작을 실행하기 위한 명령어들을 포함하며,
상기 선택하는 동작은,
상기 클라이언트의 요청에 대응되는 게시판 서비스의 버전이 기 설정된 버전보다 앞선 레거시(legacy) 버전인 경우, 상기 모놀리식 아키텍처를 선택하고,
상기 클라이언트의 요청에 대응되는 게시판 서비스의 버전이 상기 기 설정된 버전 이후의 버전인 경우, 상기 마이크로서비스 아키텍처를 선택하는, 게시판 서비스 제공 장치.
one or more processors; and
an apparatus comprising a memory storing one or more programs configured to be executed by the one or more processors,
The program is
receiving a request from a client for at least one of a plurality of functions provided through a bulletin board service of a plurality of versions;
selecting one of a monolithic architecture and a micro services architecture for providing a bulletin board service based on the version of the bulletin board service corresponding to the request of the client; and
Based on the selected architecture, comprising instructions for executing an operation to perform a task corresponding to the request of the client,
The selection operation is
If the version of the bulletin board service corresponding to the client's request is a legacy version earlier than the preset version, selecting the monolithic architecture,
and selecting the microservice architecture when the version of the bulletin board service corresponding to the client's request is a version after the preset version.
삭제delete 청구항 9에 있어서,
상기 선택하는 동작은,
하나 이상의 애플리케이션 프로그래밍 인터페이스(API; Application Programming Interface)를 포함하는 게이트웨이(gateway) 계층에서 이루어지는, 게시판 서비스 제공 장치.
10. The method of claim 9,
The selection operation is
A bulletin board service providing device made in a gateway layer including one or more application programming interfaces (APIs).
청구항 9에 있어서,
상기 모놀리식 아키텍처는,
관계형 데이터베이스(RDB; Relational Database) 기반의 API를 하나 이상 포함하는 단일 계층의 아키텍처인, 게시판 서비스 제공 장치.
10. The method of claim 9,
The monolithic architecture is
A bulletin board service providing device that is a single-layer architecture that includes one or more APIs based on a relational database (RDB).
청구항 9에 있어서,
상기 마이크로서비스 아키텍처는,
상기 작업을 수행하기 위한 하나 이상의 로직(logic) 별로 구분된 하나 이상의 고수준(high level) API를 포함하는 제1 계층; 및
상기 하나 이상의 로직 각각을 분할한 하나 이상의 세부 로직 별로 구분된 하나 이상의 저수준(low level) API를 포함하는 제2 계층을 포함하는, 게시판 서비스 제공 장치.
10. The method of claim 9,
The microservices architecture is
a first layer including one or more high-level APIs divided by one or more logics for performing the task; and
and a second layer including one or more low-level APIs divided by one or more detailed logics obtained by dividing each of the one or more logics.
청구항 13에 있어서,
상기 하나 이상의 로직은,
상기 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나에 대응되는 기 설정된 비즈니스 로직(business logic)을 포함하는, 게시판 서비스 제공 장치.
14. The method of claim 13,
The one or more logic is
and a preset business logic corresponding to at least one of a plurality of functions provided through the bulletin board service.
청구항 13에 있어서,
상기 하나 이상의 세부 로직은,
상기 게시판 서비스를 통해 제공되는 복수의 기능 중 적어도 하나를 구현하기 위한 데이터 처리와 관련된 데이터베이스에 접근하는 하나 이상의 쿼리(query)를 실행하는, 게시판 서비스 제공 장치.
14. The method of claim 13,
The one or more detailed logic is
and executing one or more queries to access a database related to data processing for implementing at least one of a plurality of functions provided through the bulletin board service.
청구항 9에 있어서,
상기 클라이언트에서 지원되는 게시판 서비스의 버전이 기 설정된 버전보다 앞선 레거시 버전인 반면, 상기 클라이언트의 요청에 대응되는 게시판 서비스의 버전은 상기 기 설정된 버전 이후의 버전인 경우,
상기 레거시 버전의 API를 호출함으로써 송신된 상기 클라이언트의 요청을 상기 기 설정된 버전 이후의 버전의 API를 호출함으로써 송신된 것으로 식별하는 동작; 및
상기 작업의 수행 결과 생성된 응답의 버전을 상기 레거시 버전으로 변환하는 동작을 실행하기 위한 명령어들을 더 포함하는, 게시판 서비스 제공 장치.
10. The method of claim 9,
When the version of the bulletin board service supported by the client is a legacy version earlier than the preset version, while the version of the bulletin board service corresponding to the client's request is a version after the preset version,
identifying the request of the client, transmitted by calling the legacy version of the API, as being transmitted by calling the API of a version after the preset version; and
and instructions for executing an operation of converting a version of a response generated as a result of performing the task into the legacy version.
KR1020200109009A 2020-08-28 2020-08-28 Appratus and method for providing bulletin board service KR102449107B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200109009A KR102449107B1 (en) 2020-08-28 2020-08-28 Appratus and method for providing bulletin board service

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200109009A KR102449107B1 (en) 2020-08-28 2020-08-28 Appratus and method for providing bulletin board service

Publications (2)

Publication Number Publication Date
KR20220028255A KR20220028255A (en) 2022-03-08
KR102449107B1 true KR102449107B1 (en) 2022-09-29

Family

ID=80813509

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200109009A KR102449107B1 (en) 2020-08-28 2020-08-28 Appratus and method for providing bulletin board service

Country Status (1)

Country Link
KR (1) KR102449107B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101909420B1 (en) * 2018-04-17 2018-12-19 부산대학교 산학협력단 Device and method for constructing monolithic application as microservice based unit

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040028830A (en) * 2004-01-19 2004-04-03 이영열 Homepage Builder using table structure
KR20110070069A (en) * 2009-12-18 2011-06-24 주식회사 케이티 A system and method for providing integrated web service of enterprise
IL309008A (en) 2013-02-10 2024-01-01 Wix Com Ltd Third party application communication api
BR112019022546A2 (en) * 2017-04-28 2020-05-19 Lzlabs Gmbh scalable container-based system and method for creating and operating a scalable container-based system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101909420B1 (en) * 2018-04-17 2018-12-19 부산대학교 산학협력단 Device and method for constructing monolithic application as microservice based unit

Also Published As

Publication number Publication date
KR20220028255A (en) 2022-03-08

Similar Documents

Publication Publication Date Title
US10909064B2 (en) Application architecture supporting multiple services and caching
RU2458399C2 (en) In-memory caching of shared customisable multi-tenant data
US12032551B2 (en) Techniques and architectures for data field lifecycle management
US11138311B2 (en) Distributed security introspection
CN111949693B (en) Data processing device, data processing method, storage medium and electronic equipment
US11275806B2 (en) Dynamic materialization of feeds for enabling access of the feed in an online social network
US10042956B2 (en) Facilitating application processes defined using application objects to operate based on structured and unstructured data stores
US10719374B1 (en) Application programming interface generator using database metadata
US10459718B2 (en) Techniques and architectures for maintaining metadata version controls
US11687568B2 (en) Data catalog system for generating synthetic datasets
US11681829B2 (en) Approaches for managing restrictions for middleware applications
US8965879B2 (en) Unique join data caching method
US10289617B2 (en) Accessing on-premise and off-premise datastores that are organized using different application schemas
US20170337197A1 (en) Rule management system and method
KR102449107B1 (en) Appratus and method for providing bulletin board service
KR102449105B1 (en) Appratus and method for providing bulletin board service
US11625325B2 (en) Partitioned mid-tier cache based on user type
CN111680069B (en) Database access method and device
KR102449109B1 (en) Appratus and method for providing bulletin board service, apparatus and method for requesting bulletin board service
US20200210257A1 (en) Deduplication of Application Program Interface Calls
US10963444B2 (en) Techniques and architectures for providing functionality to undo a metadata change
US11914575B2 (en) Data persistency models for software applications
US12141313B2 (en) Security semantics for database queries
US20230222107A1 (en) Database record bit
US20240265026A1 (en) Distributed Data Processing Using Embedded Hermetic and Deterministic Language

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant