2021.02.16

구글 고(Go) 언어, 그래프 기반 ORM 제공

Paul Krill | InfoWorld
구글 고(Go) 언어용 오픈소스 엔티티 프레임워크 ‘이엔티(ent)’는 모든 데이터베이스 스키마 또는 그래프 구조를 고 객체로 모델링하기 위한 API를 제공한다.  
 
ⓒPaweł Czerwiński (CC0)

이스라엘 텔아비브에 있는 한 페이스북 개발팀에서 오픈소스 프로젝트 이엔티(ent)를 통해 구글 고(Go) 언어에 엔티티 프레임워크를 제공하고 있다. 이는 복잡한 데이터 모델로 고(Go) 애플리케이션을 더 쉽게 구축하고 유지 관리할 수 있도록 하기 위한 것이다.  

데이터 모델링 및 쿼리를 위한 ‘ORM(Object Relational Mapping, 객체-관계 매핑)’을 제공하는 ent 프레임워크는 모든 데이터베이스 스키마를 고(Go) 객체로 모델링하기 위한 API를 제공한다. 이를 통해 쿼리와 어그리게이션을 실행하고, 그래프 구조를 탐색할 수 있다. ent의 기본 요소는 다음의 규칙을 따른다. 

• 데이터베이스 스키마를 그래프 구조로 모델링
• 스키마를 프로그래마틱 고(Go) 코드로 정의
• 코드 생성을 기반으로 한 정적 입력
• 쓰기 쉬운 데이터베이스 쿼리 및 그래프 탐색 
• 고(Go) 템플릿을 사용하여 확장 및 사용자 정의


한편 이엔티(ent)의 스키마 구성은 ‘entc(ent codegen)’에 의해 입증된다. 이엔티 코드젠(ent codegen)은 관용적이고 정적으로 형식화된 API를 생성한다. 이엔티(ent) 프레임워크는 마이SQL(MySQL), 그렘린(Gremlin) 그리고 주로 테스트용 SQ라이트(SQLite)를 지원한다. 이 기술은 페이스북에서 고 언어용 그래프 기반 ORM을 개발하면서 지난 2019년 10월 처음 공개됐다.    

가장 최신 릴리즈인 버전 0.6.0은 2월에 출시됐으며, 깃허브에서 액세스할 수 있다. 이엔티(ent) 버전 1.0의 로드맵에는 JSON 타입 서술어(JSON type predicates) 및 수평 분할(horizontal sharding) 등의 기능이 포함될 예정이다. ciork@idg.co.kr
 



2021.02.16

구글 고(Go) 언어, 그래프 기반 ORM 제공

Paul Krill | InfoWorld
구글 고(Go) 언어용 오픈소스 엔티티 프레임워크 ‘이엔티(ent)’는 모든 데이터베이스 스키마 또는 그래프 구조를 고 객체로 모델링하기 위한 API를 제공한다.  
 
ⓒPaweł Czerwiński (CC0)

이스라엘 텔아비브에 있는 한 페이스북 개발팀에서 오픈소스 프로젝트 이엔티(ent)를 통해 구글 고(Go) 언어에 엔티티 프레임워크를 제공하고 있다. 이는 복잡한 데이터 모델로 고(Go) 애플리케이션을 더 쉽게 구축하고 유지 관리할 수 있도록 하기 위한 것이다.  

데이터 모델링 및 쿼리를 위한 ‘ORM(Object Relational Mapping, 객체-관계 매핑)’을 제공하는 ent 프레임워크는 모든 데이터베이스 스키마를 고(Go) 객체로 모델링하기 위한 API를 제공한다. 이를 통해 쿼리와 어그리게이션을 실행하고, 그래프 구조를 탐색할 수 있다. ent의 기본 요소는 다음의 규칙을 따른다. 

• 데이터베이스 스키마를 그래프 구조로 모델링
• 스키마를 프로그래마틱 고(Go) 코드로 정의
• 코드 생성을 기반으로 한 정적 입력
• 쓰기 쉬운 데이터베이스 쿼리 및 그래프 탐색 
• 고(Go) 템플릿을 사용하여 확장 및 사용자 정의


한편 이엔티(ent)의 스키마 구성은 ‘entc(ent codegen)’에 의해 입증된다. 이엔티 코드젠(ent codegen)은 관용적이고 정적으로 형식화된 API를 생성한다. 이엔티(ent) 프레임워크는 마이SQL(MySQL), 그렘린(Gremlin) 그리고 주로 테스트용 SQ라이트(SQLite)를 지원한다. 이 기술은 페이스북에서 고 언어용 그래프 기반 ORM을 개발하면서 지난 2019년 10월 처음 공개됐다.    

가장 최신 릴리즈인 버전 0.6.0은 2월에 출시됐으며, 깃허브에서 액세스할 수 있다. 이엔티(ent) 버전 1.0의 로드맵에는 JSON 타입 서술어(JSON type predicates) 및 수평 분할(horizontal sharding) 등의 기능이 포함될 예정이다. ciork@idg.co.kr
 

X