검수요청.png검수요청.png

매핑

해시넷
이동: 둘러보기, 검색

매핑(mapping)이란 하나의 값을 다른 값으로 대응시키는 것을 말한다. 한자로는 사상(寫像)이라고 한다. '맵핑'이 아니라 '매핑'이 올바른 표기법이다. 매핑은 지도를 뜻하는 맵(map)에서 나온 말이다. 지도에 표시한 정보가 현실 세계와 1:1로 대응하듯이, 매핑을 통해 하나의 값을 다른 값으로 1:1 대응시키는 것을 말한다. 네임서버도메인 이름IP 주소로 매핑시키는 역할을 한다. 컴퓨터의 기억장치를 각각의 루틴이나 데이터 영역에 할당하는 것도 매핑의 일종이다.

개요[편집]

매핑이란 연관성을 관계하여 연결시켜주는 의미를 지녔으며[1], 해당 값이 다른 값을 가리키도록 하는 것이다. 다른 데이터 셋과 대응 관계를 가지고 있는 일련의 데이터 셋을 지칭하며, 메모리나 디스크 상에 현재 저장되어 있는 데이터나 객체 목록을 뜻한다. 디스크 드라이브에 경로나 디스크 문자 (A:, C:, R: 등)를 할당하는 것으로, 특히 드라이브 매핑이라고 부르기도 한다.

일련의 객체들을 한 장소에서 다른 곳으로 이동시키는 것이다. 예를 들면, 디스크 상의 프로그램 모듈들은 메모리에 사상된다. 메모리 내의 그래픽 이미지는 비디오 화면상에 사상되며 하나의 주소는 다른 주소에 사상된다. 논리적 데이터베이스 구조는 물리적 데이터베이스에 사상되기도 한다. 매필을 위해서는 대체로 한 형식에서 다른 형식으로 변환하는 것이 필요하다. 일련의 객체들을 다른 객체들에 관련시키는 것이다.

또한,「지도를 만들다」라는 뜻이지만 일반적으로 메모리 맵(memory map)을 제작하는 것을 말한다. 또 사상에는 수학적인 「사상하다」라는 의미도 있으며, 이것으로부터 코드 변환(code conversion)이나 어드레스 변환(address conversion) 등도 생각할 수 있다. 컴퓨터에서는 기억 장치의 사용 방법의 배분을 결정하는 것. 어셈블리 언어로 프로그래밍할 때는 사용자 프로그램으로 행하는 것이 많지만, 운영 체제 관리하에서 컴파일러 언어로 프로그래밍할 때는 시스템 프로그램이 작업을 대행하고 결과를 리스트해서 알려준다. 그 외에도 운영 체제가 스스로 관리하고 있다. 메모리 내에서 프로그램이나 스택(stack), 인터럽트 테이블 등을 할당하는 것이다. 유연성 디스크(flexible disk)에 파일을 판독할 때에 디스크 할당 테이블(disk allocation table)을 대응시키면서 그 위치를 결정하는 것을 나타낸다. 특히 실제로 컴퓨터를 사용하여 지도 데이터를 작성하는 일 또는 지도 데이터를 컴퓨터에 입력하는 과정을 말하거나 롤 플레잉 게임(role playing game) 등의 배경이 되는 미로나 지도를 플레이어(player)가 작성하는 것도 사상이라고 한다.[2]

특징[편집]

커뮤니티 구성원들이 함께 사회문화나 지역의 이슈, 안전, 도시 재생과 같은 특정 주제에 대한 정보를 현장에서 수집하고 이를 지도로 만들어 공유하고 이용하는 과정이 있다.

  • 커뮤니티 : 사회 구성원들이 모여 특정 주제에 대한 지역의 정보를 수집한다. 수집 과정에서 남들과 다른 본인만의 경험이 녹아든 가치 있는 정보도 있다.
  • 소통 : 개개인이 수집한 정보를 한데 모으며 본인의 경험과 지역의 정보를 서로 공유한다.
  • 지도 : 수집한 정보를 숫자나 문자뿐만 아니라 지도 상에 출력하여 보다 직관적이고 간편하게 한 눈에 볼 수 있어 정보간의 연관성을 쉽게 찾을 수 있다.

쉽고 빠르게 정보를 수집할 수 있으며 모인 정보를 PC와 모바일에서 지도로 간편하게 볼 수 있다.[3]

매핑을 사용하면 한 테이블의 각 행을 다른 테이블의 여러 행에 연결하거나 그 반대로 행을 연결할 수 있다. 예를 들어, 각 작가를 해당 작가의 모든 저서에 연결하고 각 도서를 모든 해당 작가에 연결하도록 authors 테이블과 titles 테이블 사이에 다 대 다 관계를 만들 수 있다. 각 테이블에서 일 대 다 관계를 만드는 것만으로는 모든 도서가 한 명의 작가에게만 연결되거나 모든 작가가 한 권의 책만 쓴 것으로 잘못 표시될 수 있다.[4]

또한, 매핑은 키 데이터와 값 데이터를 짝지어 모아 두는 데이터 저장 방식이다. 데이터를 가리킬 때 순서대신 키를 이용하는 것이 특징이다.[5]

종류[편집]

다중성[편집]

  • 일대일 매핑 (one-to-one mapping) : 원소 하나에 다른 원소 하나가 대응
  • 일대다 매핑 (one-to-many mapping) : 원소 하나에 여러 다른 원소들이 대응
  • 다대일 매핑 (many-to-one mapping) : 여러 원소들에 원소 하나가 대응
  • 다대다 매핑 (many-to-many mapping) : 여러 원소들에 여러 다른 원소들이 대응

방향[편집]

테이블은 외래키 하나로 조인을 사용해서 양방향으로 쿼리가 가능하므로 사실상 방향이라는 개념이 없다. 반면 객체는 참조용 필드를 가지고 있는 객체만 연관된 객체를 조회할 수 있다.

  • 단방향 : 객체 관계에서 한 쪽만 다른 객체를 참조할 경우
  • 양방향 : 객체 양쪽이 서로 참조할 경우

연관관계의 주인[편집]

DB는 외래키 하나로 두 테이블의 연관관계를 맺는다. 반면에 객체는 양방향으로 연관관계를 맺기 때문에 A->B, B->A 두 객체에서 각 각 관리가 필요하다. 실무에서는 양방향관계는 거의 사용되지 않고, 단방향관계를 맺는 경우가 많다. 단방향 관계를 맺을 경우 두 객체 중 하나에서 외래키에 대해 관리하는데 이를 연관관계의 주인이라고 한다.

연관관계의 주인을 정하는 방법은 다음과 같다.

  1. 외래키를 가진 테이블과 매핑되는 엔티티가 연관관계의 주인이 된다.
  2. 일대다 관계라면 '다'에 해당하는 엔티티에서 외래키를 관리한다.

연관관계의 주인이 아니면 mappedBy속성을 사용해서 연관관계의 주인 필드 이름 값을 입력해야한다.

분야별 매핑[편집]

  • 코드(부호)화 : 부호어(코드어)로 불리우는 코드백터로 사상. 즉, 주어진 응용에 적합토록 코드(부호)의 속성 및 효율적인 코드로 변환시킨다. 부호화(Encoding)를 수학적 용어로는 매핑(mapping)이라고 말한다. 소스 부호화, 채널 부호화, 암호화, 선로 부호화 등이 있다.
  • 전송방식/동기식 다중화 : 서로 다른 계위체계 신호 간의 적응 과정, 다중화시에 다른 신호계위 체계를 갖는 낮은 계위체계의 하위 종속신호를 다른 계위체계의 상위 신호에 적응하여 맞추는 과정을 의미한다.
  • 컴퓨터 그래픽스(computer graphics) : 컴퓨터 그래픽스에서 한 좌표계에서 다른 좌표계로 데이터(픽셀 등)를 이동시키는 행위를 말한다.
  • 오패시티 매핑(opacity mapping) : 모델에 불투명한 부분과 투명한 부분을 지정하는 것을 말한다.
  • 리플렉션 매핑(reflection mapping) : 모델이 반사된 것처럼 보이게 하여 크롬, 금속, 유리 등 반사하는 형상을 만들어내는 기법이다.
  • 범프 매핑(bump mapping) : 표면이 일정치 않거나 굴곡이 있을 때 한 물체의 표면에서 일률적인 수치를 바꾸어줌으로써 엠보싱 효과를 내는 것을 말한다.
  • 커뮤니티 매핑(community mapping) : 커뮤니티 구성원들이 함께 사회문화나 지역의 이슈, 안전, 도시 재생과 같은 특정 주제에 대한 정보를 현장에서 수집하고 이를 지도로 만들어 공유하고 이용하는 과정이다.[3]

직접 매핑(Direct Mapping)[편집]

캐시에 저장된 데이터들은 메인 메모리에서와 동일한 배열을 가지도록 매핑하는 방법이다. 캐시의 태그와 주소상의 태그가 동일한지 확인한 후 같으면 붉은 영역을 통해 데이터를 읽으며 만일 태그가 다르다면 메모리에서 데이터를 가지고 오기 때문에 매우 단순하고 탐색이 쉽다. 하지만 적중률은 낮다.

연관 매핑(Associative Mapping)[편집]

직접 매핑의 단점을 보완하기 위해 등장한 매핑이다. 캐시에 저장된 데이터들은 메인 메모리의 순서와는 아무런 관련이 없다. 이와 같은 방식을 사용하기 때문에 캐시를 전부 뒤져서 태그가 같은 데이터가 있는지 확인해야 한다. 따라서 병렬검사를 위해 복잡한 회로를 가지고 있는 것이 단점이지만 적중률이 높다.

세트 연관 매핑[편집]

직접 매핑의 단순한 회로와 연관 매핑의 적중률 두 개의 장점만을 취하기 위해서 만들어진 방식의 매핑이다. 각 각의 라인들은 하나의 세트에 속해 있다. 세트 번호를 통해 영역을 탐색하므로 연관 매핑의 병렬 탐색을 줄일 수 있다. 그리고 모든 라인에 연관 매핑처럼 무작위로 위치하여 직접 매핑의 단점도 보완하였다. 세트 안의 라인 수에 따라 n-way 연관 매핑 이라고 한다.

장점[편집]

매핑은 개념 매핑, 브레인 스토밍과 거의 통일한 의미로 사용되지만 세 가지 다른 이름으로 부를 수 있다. 구성 및 연결, 마음지도, 다이어그램으로 나타낼 수 있다.

매핑을 사용했을 때의 장점은 다음과 같다.

  1. 매핑은 간편하고 유연하게 아이디어와 개념을 조작할 수 있다
  2. 시작적으로 유치하고 포괄적인 방법에서 정보를 볼 수 있다
  3. 조직 구조는 학생들이 효과적으로 지식을 이해하고 의사소통을 하는데 도움이 된다
  4. 교사는 수업 및 활동을 관리하기가 수월하다
  5. 강의 정보를 정리하고 요약하는데에 도움이 된다
  6. 자습서의 어려운 개념을 설명하기 위해 모두에 의해 사용될 수 있다
  7. 영상지도는 관심과 초점을 맞춰서 볼 수 있다
  8. 이 기술을 복용하고 생각하는 것은 활동적인 학습에 도움이 된다
  9. 문제를 밝혀 내고 해결하는데 도움이 된다

함축해서 표현하자면 사용자가 쉽고 다양한 정보를 연결하여 자신의 아이디어를 시각화하고 무료 교육지도하는 스타일을 만들 수 있다.[6]

단점[편집]

  1. 매핑한 객체가 관리하는 외래키가 다른 테이블에 있다.
  2. Team 테이블이 아닌 Member테이블에 team_id(FK)가 존재하므로 Insert 쿼리 한번으로 될 처리가 Update를 한번 더 거쳐야된다.
  3. 페이지 단위 정수배만 가능하다. 따라서 매핑하려는 파일 크기와 페이지의 정수배 크기 사이에 벌어진 차이는 여분의 공간으로 낭비된다.
  4. 프로세스 주소 공간에 맞아 떨어져야 한다. 32비트 주소 공간에서 크기가 각지 다른 매핑이 상당히 많다면 주소 공간 단편화를 초래하므로 충분히 크고 연속적인 공간을 찾아내기가 어렵다.
  5. 관련 자료 구조를 커널 내부에서 만들고 관리하는 작업에는 부하가 발생한다.

각주[편집]

  1. 로지, 〈용어 매핑(Mapping)이란?〉, 《블로그》, 2012-07-16
  2. 도표화〉, 《지식백과》
  3. 3.0 3.1 커뮤니티매핑센터 - 〈[1]
  4. 다 대 다 관계 매핑(Visual Database Tools)〉, 2017-01-19
  5. 박연오, 〈5.3 매핑〉, 《DISQUS》
  6. hug-♡, 〈매핑의 장점〉, 《블로그》, 2013-02-01

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 매핑 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.