CS

Jayce_97·2023년 8월 1일
0

Computer Science

목록 보기
7/7
post-thumbnail

이번시간에는 코딩 공부 또는 데이터 AI에 관련하여 학습하다보면 나오는 단어들에 대해 학습해 보려고 합니다. 해당 단어들의 간단한 개념을 잡아보기 위해 작성하는 것이므로 더욱 자세한 내용은 추후 다시 작성하도록 하겠습니다.


Schema(스키마)

스키마는 데이터베이스에서 데이터 구조, 형식 및 관계를 정의하는 데 사용되는 구조화된 설계입니다. 데이터베이스의 테이블, 열, 제약 조건 등을 정의하고 데이터의 구조를 결정하는 데 도움을 줍니다. 다른 데이터베이스 시스템에서도 사용되지만, 여기서는 관계형 데이터베이스의 스키마를 중심으로 설명하겠습니다.

역할

  • 구조 정의
    데이터베이스의 테이블, 열, 관계 및 제약 조건을 뜻 합니다. 스키마를 사용하여 테이블 간의 관계를 설정하고, 각 열의 데이터 유형과 제약 조건(NULL 값 허용 여부, 고유한 값 여부 등)을 정할 수 있습니다.

  • 유효성 검사
    정의된 스키마에 따라 데이터가 저장되고 업데이트될 때 데이터의 일관성과 무결성을 유지하기 위해 스키마 제약 조건이 적용됩니다.

  • 일관성 유지
    예시로 테이블 간의 관계를 정의하고, 데이터가 일관되고 정확한 방식으로 저장되도록 합니다.

  • 데이터베이스 설계 문서화
    스키마를 통해 데이터 구조와 관계를 명확하게 표현하고, 데이터베이스 사용자 및 관리자에게 데이터 구조에 대한 이해를 제공합니다.\

즉, 스키마란 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것이며,자세히 보면 개체 특성을 나타내는 속성(Attribute), 속동들의 집합으로 이루어진 개체(Entity), 개체 사에 존재하는 관계(Relation), 이들을 유지할 제약조건들 입니다.

Architecture(아키텍처)

아키텍처는 시스템이나 소프트웨어의 구조와 구성 요소, 상호 작용 방식, 설계 원칙 등을 설계하고 정의하는 개념입니다. 아키텍처는 시스템 또는 소프트웨어의 기능, 성능, 확장성, 보안 등을 결정하는 중요한 역할을 합니다.

역할

  • 시스템 구조
    시스템의 구성 요소, 계층, 모듈, 인터페이스 등을 설계하고 구성함으로써 전체 시스템의 구조를 결정합니다. 이는 시스템의 기능과 성능에 영향을 미칩니다.

  • 상호 작용 방식
    시스템 내부 및 외부의 데이터 흐름, 메시지 교환, 인터페이스 설계 등을 결정함으로써 시스템의 동작 방식을 정의합니다.

  • 설계 원칙과 패턴
    코드의 구조, 모듈화, 재사용성, 확장성, 유지 보수성 등을 개선하는 데 도움을 줍니다.

  • 기능과 성능
    시스템의 요구 사항과 목표를 고려하여 기능의 분배, 성능 최적화, 확장성, 가용성 등을 고려하여 아키텍처를 설계합니다.

  • 표준화와 재사용
    일관된 설계 원칙과 패턴을 적용하고 구성 요소를 재사용할 수 있도록 함으로써 개발 효율성과 유지 보수성을 향상시킵니다.

아키텍처는 소프트웨어 시스템, 정보 시스템, 컴퓨터 시스템 등 다양한 영역에서 사용되며, 소프트웨어 아키텍처, 기업 아키텍처, 네트워크 아키텍처 등 다양한 종류의 아키텍처가 있습니다. 아키텍처는 시스템의 안정성, 성능, 확장성, 보안 등을 결정하는 중요한 설계 요소로, 효율적이고 품질 높은 시스템을 개발을 돕습니다. 즉, "하나의, 서비스가 어떻게 구성되며 어떻게 동작이 된다”를 표현하는 것입니다.

GPU와 NPU

두 단어 모두 컴퓨터 시스템에서 특정한 종류의 처리를 수행하는 프로세서 유닛이며, 병렬 처리에 최적화된 구조입니다.

GPU(Graphics Processing Unit, 그래픽처리장치)

  • GPU는 그래픽 처리에 특화된 프로세서로, 주로 2D 및 3D 그래픽 렌더링, 이미지 처리, 비디오 디코딩 및 게임 그래픽 등과 같은 작업을 수행하는 데 사용됩니다. 초기에는 컴퓨터의 그래픽과 화면 출력을 처리하기 위해 설계되었지만, 현재는 일반적인 병렬처리 작업을 가속화하는 데 사용되는 고성능 프로세서로서 인공지능 분야에서도 널리 활용되고 있습니다.
  • 딥러닝과 같은 인공지능 모델의 학습과 추론은 행렬 연산이 많이 요구되며, GPU는 이러한 병렬화 작업을 효율적으로 처리할 수 있는 장치입니다. 따라서 GPU는 인공지능 분야에서 널리 사용되는 하드웨어 가속기 중 하나입니다. (CPU는 복잡한 계산을 하기 적합하여 딥러닝 같은 단순 연산이 많은 경우 활용도가 부족하여, GPU를 이용하는 경우가 많습니다.)

NPU (Neural Processing Unit, 신경망처리장치)

  • NPU는 인공지능과 딥러닝 작업에 특화된 하드웨어 가속기입니다. GPU와 마찬가지로, NPU도 딥러닝 모델의 연산을 가속화하는 데 사용됩니다. 하지만 NPU는 특히 딥러닝 모델의 가중치(W)와 행렬 연산을 처리하는 데 초점을 맞춘다는 점에서 GPU와 다릅니다.
  • NPU는 딥러닝에서 사용되는 특정 연산을 하드웨어 수준에서 최적화하여 처리하기 때문에 GPU보다 더 빠르고 효율적인 결과를 얻을 수 있습니다. 이는 모델 학습과 추론에서 높은 성능을 발휘하며, 모바일 기기나 임베디드 시스템에서 딥러닝 작업을 효율적으로 수행하는 데 유용합니다.

NPU를 쉽게 설명하자면 1+1을 계산시 GPU는 1+1을 직접 풀어서 답을 내놓는 반면, NPU는 인간의 뇌의 처리 방법을 모방한 반도체로써 사람처럼 이미 학습한 내용이라면 계산하지 않고 2라는 답을 도출하게 됩니다.

결론

GPU는 다양한 병렬 처리 작업과 그래픽 처리에 특화된 하드웨어 가속기이며, NPU는 주로 인공지능 분야의 딥러닝 작업을 최적화한 하드웨어 가속기입니다. 두 가속기 모두 인공지능 분야에 사용됩니다.


이번 시간에는 여러가지 공부를 하는 도중에 기본적으로 알만한 내용들을 정리해 보았습니다.

😁 power through to the end 😁

profile
Dreamer

1개의 댓글

comment-user-thumbnail
2023년 8월 1일

좋은 정보 얻어갑니다, 감사합니다.

답글 달기