안녕하세요
외주 개발업체에서 제작한 루비 소스를 인계 받아서 살펴 봤습니다.
저는 루비를 잘 모릅니다.
디비나 로그상에서 보면 특이하다고 해야 할지 이상한 부분이 있어서 의견을 구하고자 글을 올립니다
-----------------------------------------------------------------------------------------------------------------------------------------------------
기본적으로 데이타 요청/입력/수정 등이 모두 모델 객체 파일을 기본으로 하여 작동 하는것같습니다.
이를 ORM 이라고 부르는것 같습니다.
-----------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------
그런데 개발된 소스에서 거의 대부분 리스트의 쿼리가 요청 되는 부분을 살펴보면
리스트 건당 쿼리가 요청 되고 있는 것 같습니다.
-----------------------------------------------------------------------------------------------------------------------------------------------------
아마도 단일 테이블이면 한번의 요청으로 끝나지 않았을가 예상하는데
대부분 테이블을 조인하여 요청 되는 부분이라 belongs_to, has_many ? 등으로 엮인 테이블의 정보들이 리스트의 각 row 마다 요청 되고 있는것 같습니다
이걸 정상적인 걸로 봐야 할까요?
루비에 대한 경험이 없어서 그런데, 루비언어에서는 이렇게 작동 하는게 정상이라고 봐야 할까요?
다른 언어를 수년 해오면서, 이런식의 쿼리 요청이 굉장히 비정상적으로 보입니다.
실제 루비온레일스 실행시 로그를 보면 어떠한 리스트 페이지의 경우는 거의 100개 가까운 쿼리가 요청되는 경우도 보입니다
(일부 CACHE 로 처리되어 앞서 요청된 결과를 재활용 하는 것 같아 보이나, 이를 제외한다 해도 너무 과한 쿼리가 요청 되고 있습니다)
그래서 DB에서도 요청된 쿼리를 저장해서 살펴봐도 리스트 row 당 쿼리가 요청되어 이상해서 의견을 듣고 싶습니다
이렇게 되는게 정상일까요?