인프런 커뮤니티 질문&답변

시원한 제비님의 프로필 이미지
시원한 제비

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

스프링 JdbcTemplate

Member

해결된 질문

작성

·

235

3

안녕하세요 개발자님, 강의 잘 듣고 있습니다. RowMapper <Member> 에서 <Member>를 사용하는 이유 (역할)가 뭔가요? 위에 오버라이드 된 부분에도 List<Member>라고 되어 있습니다. 같은 이유인가요? 검색해 봤는데 이걸 제네릭이라고 부르던데 맞나요?

답변 4

5

김영한님의 프로필 이미지
김영한
지식공유자

네 조금 더 보충을 해드리자면 다음과 같습니다.

List list -> list.add()로 세상의 모든 클래스로 만든 객체를 다 넣을 수 있음(Object, Member, Team 등등)

List<Member> list -> 리스트에 Member 클래스만 넣을 수 있음

List<Team> list -> 리스트에 Team 클래스만 넣을 수 있음

세상의 모든 클래스를 유연하게 다 담으면 편리할 것 같지만, 실상은 어떤 값이 들어가는 컬렉션인지 몰라서 꺼낼 때 일일이 하나하나 확인해야합니다. (오류도 많이 발생하구요^^)

제네릭이라는 것은 사실상 클래스의 타입을 사용해서 한계를 지정해주는 것이지요. 그러면 아 이 리스트에는 Member만 담을 수 있으니 Member만 조회되겠구나! 하고요. 그래서 제약에서 오는 장점을 활용할 수 있습니다.

도움이 되셨길 바래요^^

3

너무너무 감사드립니다. 입문 수업을 다 마치고 다음 수업도 꼭 들어 봐야겠습니다.

2

김영한님의 프로필 이미지
김영한
지식공유자

네 맞습니다. 자바같은 언어는 타입 정보가 중요한데, 이 타입 정보를 지정하는 것입니다. 예를 들어서 List<Member>라고 하면 Member 타입만 담을 수 있는 List라는 정보를 명확하게 명시할 수 있어서, 혹시라도 Team 같은 다른 객체를 입력하면 컴파일 오류가 발생합니다.

제네릭 관련해서는 자바 기본 문법인데 꼭! 공부해보시길 권장드려요^^

감사합니다.

0

답변 감사드립니다. Member 타입이라 하면 domain 폴더에 있는 Member class 안에 명시되어있는 정보만 올 수 있다는 말씀이신가요?

시원한 제비님의 프로필 이미지
시원한 제비

작성한 질문수

질문하기