PostgreSQL - 배열, 문자열 관련 메서드
- generate_subscripts(배열명, 아래 첨자): 배열의 요소를 서브스크립트 형식으로 변환해서 반환한다.
- 배열 arr = {a, b, c} .... (1은 아래 첨자) 이라고 하면
- 배열의 각 요소에 아래 첨자를 붙여서 [a1, b1, c1]를 반환한다.
- string_agg(필드명, '구분자'):
- 그룹별로 id로 구분해서 필드 name 값을 모두 콤마로 이어붙일 수 있다.
generate_subscripts(array, 1)
string_agg(name, ',')
에러 해결
- 오류: BindingException
- 원인 : Mapper 인터페이스에 정의한 메서드명과 sql.xml 파일에 정의한 메서드명이 일치해야한다.
- 해결
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): kr.co.models.mapper.modelMapper.selectModelList
at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:235)
org.apache.ibatis.binding.BindingException: Mapper method 'kr.co.n2.model.mapper.insertModel' has an unsupported return type: class java.lang.String
- 오류: BindingException
- 원인: Mapper 인터페이스 안에 있는 insertModel() 메서드의 반환 타입을 String으로 설정했는데 쿼리의 반환값이 String이 아니라서 오류가 생겼다.
- 해결
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'rdfFormMtcdArray' in 'class kr.co.n2m.platform.meta.rdf.rdfclass.domain.RdfClassSearchVo'
- 오류
- 원인
- 해결
업무 관련 배경 지식
- 회사에서 metadata 관련 부서로 옮기면서 업무 내용이 많이 달라졌다.
- metadata와 RDF 관련 업무를 맡게 되서 관련 내용을 알아보려고 한다.
메타데이터란?
- 메타데이터(MetaData): 데이터에 관한 구조화된 데이터를 말한다.
- 데이터를 기술하기 위해 사용되는 언어를 메타 언어라고 한다.
- 데이터를 빨리 찾기 위해 인덱스 역할을 하는 메타 데이터가 존재한다.
- 아래과 같은 종류가 있다.
- 기술 메타데이터(Descriptive Metadata)
- 구조 메타데이터(Structual Metadata)
- 관리 메타데이터(Administrative Metadata)
RDF(Resource Description Framework, 자원 기술 프레임워크) 란?
- RDF란 자원의 정보를 표현하고 상호 연결 및 교환하기 위해서 월드 와이드 웹 컨소시엄(W3C, World Wide Web Consortium)에 의해 개발되고 있는 언어 규격이다.
- 여기서 자원이란 웹 상에 존재하는 대부분의 객체를 의미한다. 사람이나, 웹 페이지, 저작물과 같은 특정지을 수 있는 개체들이 해당된다.
- RDF는 그래프 형태로 연결되어 다양한 관계를 표현할 수 있다.
- 즉, RDF는 그래프 구조를 통해 데이터 간의 연결성을 표현하고 검색할 수 있도록 한다.
- RDF는 이런 자원들의 메타데이터를 표현하기 위해 개발된 규격이다.
- resource:URI를 갖는 모든 자원
- description: 자원들의 속성, 특성, 관계를 기술한다.
- framework: 자원과 속성을 기술하기 위한 모델, 언어, 문법
참고)
https://velog.io/@whanhee97/DCAT-v2
https://givemetarte.github.io/knowledge-graph/what-is-rdf/
Turtle 과 Owl
- Turtle과 Owl은 모두 RDF 데이터 모델을 기반으로 한 웹 상의 정보 표현을 위한 언어이다.
- Turtle: RDF 데이터를 텍스트 형식으로 표현하기 위해 간단하고 가독성 좋다.
- Owl: 상대적으로 복잡한 온톨로지 구조를 표현하기 위한 언어로 Turtle 보다 표현력이 좋다.
- RDF 데이터를 텍스트 형식으로 표현하기 위한 간단하고 가독성 좋은 구문이다.
- 이를 사용해서 RDF그래프를 작성할 수 있으며 텍스트 파일로 저장하거나 전송가능하다.
SPARQL (SPARQL Protocol And RDF Query Language)
- W3C 표준 언어로 DB에서 RDF를 쿼리하는데 사용된다.
- 웹에 공개된 각종 RDF 데이터로부터 원하는 데이터를 꺼내올 수 없기 때문에 SPARQL을 사용한다.
- RDBMS에서 SQL를 사용한다면 RDF에는 SPARQL이 있다.
- 기본적으로 트리플 패턴으로 사용자가 찾고자하는 결과를 찾아온다. (S: 주어/ P: 서술어/ O: 목적어)
디지털 트윈과 시뮬레이션의 차이점
- digital twin: 물리적인 물체를 정확하게 반영하도록 설계된 가상 모델이다.
- 시뮬레이션과 디지털 트윈은 모두 디지털 모델을 통해서 시스템의 다양한 프로세스를 복제하지만 디지털 트윈은 실제적인 가상 환경이기 때문에 연구 대상이 더욱 풍부하다.
- 시뮬레이션은 일반적으로 하나의 특정 프로세스를 연구한다면 디지털 트윈은 다양한 프로세스를 연구하도록 유용한 시뮬레이션을 얼마든지 실행하는 게 가능하다.
- 시뮬레이션에서는 실시간 데이터가 필요 없다.
참고)
https://www.ibm.com/kr-ko/topics/what-is-a-digital-twin
core와 스레드
- Core(코어): CPU(중앙 처리 장치) 안에서 실제 연산과 처리를 담당하는 부분이다. 컴퓨터에서 데이터를 처리하기 위해 존재하는 물리적인 요소이다.
- CPU 칩 안에 내장되어 있다
- 각 코어는 독립적으로 명령어를 실행하고 연산을 수행할 수 있다.
- 하나의 CPU에는 여러 개의 코어가 있을 수 있다.
- 코어는 일련의 전기 신호와 클록 속도에 의해 동작한다.
- 클록: CPU 내에서 발생하는 신호이다. 일정 속도로 코어의 동작을 조정한다.
- 프로세스와 스레드를 실행하고 관리한다.
- 코어는 스레드 간의 스케줄링과 작업 분배를 담당하고 프로세스의 처리를 조정한다.
- 코어는 병렬성을 통해 여러 작업을 동시에 실행하고 전체적인 속도를 향상시킨다.
- 코어가 많을수록 작업 처리 속도가 빨라진다.
- ex) 코어 - 요리사, 스레드 - 가스레인지 화구 수 라고 생각할 수 있다.
- CPU의 사양을 결정하는 요소에는 코어의 수, 동작 속도를 뜻하는 클럭(clock) 수치, 자주 이용하는 데이터를 임시 저장해둬서 작업 속도를 높이는 캐시(cache) 메모리의 용량 등이 있다.
- Thread(스레드)
- 프로세스(OS로부터 자원을 할당받아 실행중인 프로그램)의 실행 단위를 스레드라고 한다.
- 스레드가 많을수록 작업 처리 속도가 빨라진다.
- 원래는 코어 하나당 스레드 하나가 기본 구성이었으나 효율을 높이기 위해 스레드를 여러 개 사용할 수 있도록 만들었다.
'개발 일지 > 주간 개발 일지' 카테고리의 다른 글
[08월 1주차] MyBatis bacth 처리 방법(INSERT, DELETE), Vue.js 3 폼 유효성 검증 (0) | 2023.08.04 |
---|---|
[07월 3주차] axios 요청으로 컬렉션 데이터 전달하기, PostgreSQL 배열(_VARCHAR) 필드 관리 방법 (0) | 2023.07.21 |
[06월 5주차] 반응형 객체 만드는 방법(ref, reactive), Postman 에서 만든 API 공유하는 방법(export) (0) | 2023.07.01 |
[06월 4주차] 프론트엔드 element plus 사용 방법 (0) | 2023.06.24 |
[06월 1주차] Spring VM 옵션 설정 방법, JVM 구조 (4) | 2023.06.05 |