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

쿠카이든님의 프로필 이미지
쿠카이든

작성한 질문수

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

회원 조회 API

count 변수로 조회된 데이터 숫자를 세는 부분

작성

·

608

0

안녕하세요, 영한님 강의를 듣다가 궁금한 부분을 질문드립니다!

return new Result(collect.size(), collect);


static class Result<T>{
	private int count;
	private T data;
}

->  count값은 강의에서 4

위와 같은 조회 부분에서 Dto 클래스인 Result에  count 변수를 선언하면 collect.size()로 바로 연결이 됨을 볼 수 있었는데,

이는 2개의 파라미터가 순서대로 적용되어 Result라는 객체가 생성되어서 그렇다고 이해하면 되는지 궁금합니다.

너무 기초적인 질문 같은데 초보라서 그렇다고 너그럽게 이해 부탁드립니다.

항상 감사합니다..

답변 2

1

쿠카이든님의 프로필 이미지
쿠카이든
질문자

아 생성자에서 인자값을 지정할 때, 컬렉션의 숫자세는 것을 첫번째 파라미터로 잡았군요.

이해가 되었습니다.. 답변 정말 감사드립니다..!!^^

이해가 되었다니 다행입니다.

열공하세요!

화이팅!!

1

안녕하세요 LucasBae님

이해하신게 맞습니다만 강의에서 사용하신 코드를 보면 스트림에 제네릭까지 쓰기 때문에 조금 어렵게 느껴지셨을 수도 있겠네요. 구조가 복잡하니 알고 있던 내용이더라도 어렵게 다가올 수 있을 것 같습니다. 그래서 

저 같은 경우엔 어렵게 느껴지는 부분이 있다면 제가 알고 있는 내용으로 비슷하게 바꿔서 이해하려고 합니다.

@GetMapping("/people")
public Team getMembers() {
Person person1 = new Person(1L, "아이유");
Person person2 = new Person(2L, "김영한");
Person person3 = new Person(3L, "OMG");
List<Person> people = List.of(person1, person2, person3);

return new Team(people.size(), people);
}

@Data
@AllArgsConstructor
static class Team {
private int count;
private List<Person> person;
}
@AllArgsConstructor
@Data
@NoArgsConstructor
public class Person {
private Long id;
private String name;
}


팀 클래스는 회원 수와 회원들을 <List>로 갖을 수 있고, 스트림 대신 명시적으로 리스트에 값을 대입하는 방식으로 바꿔보았는데요, 이러한 구조 속에서 이해하신대로 제가 작성한 예시로 본다면 첫번째 인자로 count를, 두번째 인자로 List를 필요로 한다고 할 수 있습니다.

인텔리제이를 사용하신다면 아래와 같이 new Team(<커서위치>) 커서 위치에서 ctrl + p 누르면 어떤 값을 인자로 받는지 볼 수 있거든요, 이걸 참고하시면 클래스의 변수 순서를 봐야하는 번거로움을 줄 일 수 있습니다.

또한 결과 출력 화면에서도 볼 수 있다시피 count 이후에 person을, id 이후에 name의 순서를 띄는것을 볼 수 있구요.

이해가 안가거나 보충 설명이 필요하시면 댓글 남겨주세요.

감사합니다.

쿠카이든님의 프로필 이미지
쿠카이든

작성한 질문수

질문하기