Cộng đồng Hỏi & Đáp của Inflearn
count 변수로 조회된 데이터 숫자를 세는 부분
Viết
·
738
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라는 객체가 생성되어서 그렇다고 이해하면 되는지 궁금합니다.
너무 기초적인 질문 같은데 초보라서 그렇다고 너그럽게 이해 부탁드립니다.
항상 감사합니다..
Quiz
API 개발에서 JPA 엔티티 객체를 요청 파라미터나 응답 값으로 직접 사용하는 것을 지양해야 하는 주된 이유는 무엇일까요?
데이터베이스 성능이 저하되기 때문입니다.
API의 스펙이 엔티티의 변화에 직접적으로 영향을 받기 때문입니다.
클라이언트 측의 데이터 파싱 로직이 복잡해지기 때문입니다.
네트워크 전송량이 불필요하게 증가하기 때문입니다.
Câu trả lời 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의 순서를 띄는것을 볼 수 있구요.

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






이해가 되었다니 다행입니다.
열공하세요!
화이팅!!