본문 바로가기
STUDY/다스리는 개발병아리🐥

mapper / repository 차이

by 스리스리12345 2023. 3. 28.

문득 

회사 컴퓨터에서 mapper가 보이는데, 이게 repository 의 역할인 것 같은데...........!......?.....

검색을 해도 비슷한 역할이라 함.

그래도 왜 repository를 안쓰고 mapper를 쓰는지? 검색해봄.

 

( + PM님께 여쭤본 결과,

mybatis(ORM(Object-relational mapping)역할)를 사용하면서 >> @mapper 어노테이션 사용했을 때, db검색해서 해당 객체와 sql문 작성하고, 연결 

아? 그럼 mybatis 사용안하면 @mapper도 사용안하겠네여? ㅇㅇ/

@repository는 db조회 중점)이라고 답주심! )

 

그래도 검색검색!!🔍


마이바티스란?

 

마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크(Java Persistence Framework)이다. 마이바티스는 JDBC로 처리하는 상당부분의 코드와 파라미터 설정 및 결과 매핑을 대신해준다. 마이바티스는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO 를 설정해서 매핑하기 위해 XML과 애노테이션을 사용할 수 있다. (MyBatis 3 | Introduction)

 

 

리포지터리란?

리포지터리는 엔티티에 의해 생성된 데이터베이스 테이블에 접근하는 메서드들(예: findAll, save 등)을 사용하기 위한 인터페이스이다. 데이터 처리를 위해서는 테이블에 어떤 값을 넣거나 값을 조회하는 등의 CRUD(Create, Read, Update, Delete)가 필요하다. 이 때 이러한 CRUD를 어떻게 처리할지 정의하는 계층이 바로 리포지터리이다. (https://wikidocs.net/160890), (https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/stereotype/Repository.html)

 

 

참고 사이트 :

 

https://pamyferret.tistory.com/69

 

Mapper와 Repository의 차이

DB에 연결해서 데이터를 가져오는 것에 아무 생각 없이 @Repository 어노테이션을 붙여서 개발을 하고 있었다. 그러던 중 지인이 @Mapper와 @Repository의 차이에 물어왔고 생각해보니 그 둘의 차이점을

pamyferret.tistory.com