Q. 페이징 처리에 관련된 코드 질문
우선 페이저블 객체를 사용하는것이 표준화되었다고 해서 페이저블 객체로 페이징을 구현해보았습니다.
페이징 처리에서 페이저블 객체를 사용하면 좋은점 조사
페이징 처리할 부분이 많아지면서 팀원 각자 기능에 페이징을 구현했는데, 추후 병합해보니 표현 방식이 조금 다른것을 발견했습니다.
동료는 페이저블 객체를 서비스 계층에서 사용했고, 컨트롤러의 매개변수에서 어노테이션으로 구현 한 것으로 차이가 있었습니다.
두 방식 중에 어떤 방식이 좋을지 판단이 어려워서 코드의 장단점을 조사해봤는데
두 코드의 차이점, 장단점 조사
•
성능적 차이가 발생할 만한 요소는 없는지도 궁금합니다.
•
또한 실무에서 어떤식 많이쓰는지, 단순히 개발자의 성향? 컨벤션을 정하는거에 따른것인지 궁금합니다.
A. 멘토님답변정리!
Q. 페이징에 대해 아래와 같이 접근해보았습니다.
책 나눔 이벤트와 도서 사이에 1대N의 관계가 입니다.
처음에는 책 나눔 이벤트에서 도서를 패치 조인하여 페이징을 시도했는데 메모리에서 페이징이 되어 오작동의 위험이 있다고 알게 되었습니다.
그래서 도서 쪽에서 패치 조인하여 페이징 처리를 진행했습니다.
이런 방식이 옳은 접근인지 궁금하고, 책 나눔 이벤트(1)에서 JPQL을 사용하여 직접 쿼리를 작성해 페이징을 시도할 때 발생하는 구체적인 문제점이 무엇인지 알려주실 수 있을까요?
그리고 도서 쪽(N)에서 페이징을 처리할 때 겹치는 문제나 다른 이슈가 있을 수 있는지도 여쭤보고 싶습니다
A. 멘토님답변정리!
Q. 코드 디버깅 중 특정 이슈에 직면했습니다. 디버깅을 통해 프로그램의 흐름을 멈췄음에도 불구하고 디버거를 통해 해당 객체를 조회하니 실제 쿼리가 전달되었습니다.
그 결과 디버거에서와 콘솔에서의 결과가 달라 혼란을 겪었습니다.
제가 문제를 탐색한 결과, Java와 ORM 프레임워크를 사용할 때 디버거로 객체의 상태를 확인하려고 할 때 그 객체에 설정된 지연 로딩이 동작하게 되어 이러한 문제가 발생하는 것을 알게 되었습니다.
이를 "디버거 지연로딩 트랩"이라고 하는 것 같더군요.
이에 대한 해결 방법이나 권장 사항이 있을까요?
특히 디버깅 중에 예상치 못한 데이터베이스 쿼리가 실행되는 것을 피하거나 데이터의 무결성 문제나 데이터 접근 문제를 방지하는 방법에 대한 조언을 얻고 싶습니다.
A. 멘토님답변정리!
Q. 동일 http 메소드(get, post, put, delete), 동일 endpoint에서 Request parameter만 다를 경우 별도의 컨트롤러 함수를 생성해서 전달되도록 하려 했으나 동일한 경로로 취급이 되는지 에러가 났습니다. 그래서 이를 하나로 합친 후 파라미터 값에 따라서 별도의 서비스 메소드를 출력하는 형태로 생성해서 구현했습니다.
1. 동일한 경로에도 입력받는 매개변수 목록에 따라서 별도의 컨트롤러 메소드를 생성하는 것이 가능한지 궁금합니다.
2. 이것이 불가능할 경우, 혹은 일반적으로 매개변수 목록을 구분해서 별도의 서비스 메소드를 호출하는 것이 좋은지, 하나의 서비스 메소드에서 모든 매개변수 목록을 입력받은 후 서비스에서 이를 처리하는 것이 좋은지 궁금합니다.
A. 멘토님답변정리!
Q. 도서 800mb 1000만건 도서 데이터를 수집했습니다.
저희가 생각하는 것은 우선 많은 데이터를 검색하는 쪽의 성능개선을 목표로하는데,
800mb짜리 1개의 파일과 같은 용량 자체가 큰 데이터를 처리하는것과
클라이언트로 전송하는 횟수와 서버에서 데이터를 처리하는 용량의 차이?
일반적인 기업은 이 중 어떤것을 중점으로 보는가?
A. 멘토님답변정리!
Q. AWS 및 Github 비용에 대한 검토 요청
멘토님.
최근에 대용량 데이터 처리 프로젝트를 진행 중인데 AWS 대한 비용을 예산하였습니다.
이렇게 설계된 비용이 적절한지 혹은 다른 방안이 있는지 검토 및 조언을 얻고 싶습니다.
AWS
EC2 (t3.micro): 40000원 (월 $30.12)
RDS (t3.micro, 100GB): 124000원 (월 $91.84)
LoadBalancer: 30000원 (월 $22.27)
S3: 11500원 (월 $8.61)
Redis (ElasticCache): 76000원 (월 $57)
AWS Data Transfer: ???
이렇게 총 예산을 작성하였는데 비용의 적절성 혹은 비용을 줄일 수 있는 방법 혹은 잘못 작성한 비용이 있는지 등에 대한 조언을 얻고 싶습니다.
특히, AWS Data Transfer의 비용이 Ec2에 안에도 있는데 Ec2와 독립적으로 비용이 드는지 여부와 혹시 비용이 발생된다면 대략적으로 예상되는 비용과 함께 어떻게 절약할 수 있는지 조언 부탁드립니다.
A. 멘토님답변정리!