반응형

프로젝트를 진행하면서, DB에서 데이터 처리를 하는 것과 WAS에서 데이터 처리하는 것에 대해 필요성이 생겨 정리한다. 우리가 흔히, 웹개발을 하면서 데이터를 WAS에서 처리를 하거나 DB에서 데이터를 처리하곤 한다. 이제, 대용량 데이터 같은 경우에는 확실히 DB에서 처리하는게 좋다고 알고 있다.

 

이렇게 기록하는 것도 프로젝트를 하면서 유지보수가 용이하다는 장점만 가지고, 모든 것을 WAS에서 처리하려고 하니 성능이 나오질 않아 기록한다.

 

1. WAS에서 데이터 처리

1) 장점

i) 적은 데이터에 대해서는 속도가 빠르다. 그 이유는 DB 커넥션을 안붙어도 되기 때문에.

ii) 메모리에 담거나 하면 응답하는 속도도 빠르다.

 

2) 단점

i) 메모리 관리가 정말 힘들다. 정산과 같이, 데이터 로우가 1만개가 넘어갈 때 WAS에서 데이터 처리를 하기에는 메모리가 정말 많이 필요하고, WAS에서 heap space도 터져버리기 일쑤다.

ii) 

 

2. DB에서 데이터 처리

1) 장점

i) 대용량의 데이터에 대해서 데이터 처리 속도가 WAS에서 하는 것보다 속도가 빠르다.

- 예를 들어, 자바로 10,000개의 row를 테이블에 insert를 해야 할 때 반복문으로 1만번을 반복해야 하지만, DB에서 데이터 처리를 해야 하는 경우에는 SELECT를 해서 몇 백개씩 바로 INSERT를 할 수 있기 때문에 속도 측면에서도 빠르다.

 

ii) WAS에서는 여러 개의 스텝으로 여러 번 DB 커넥션을 붙어야 하는 로직이 있으면, DB에서 1개의 프로시저를 통해 1번의 DB 커넥션으로 처리를 할 수 있어 빠르다.

 

2) 단점

i) 프로시저로 짜기에는 로직이 힘들 수도 있다.

ii) 프로시저의 에러 관리를 하기 힘들다. 어디서 에러가 발생했는지 exception을 정말 잘 넣어서 관리를 해야 한다.

 

솔직히 말해 지금까지 와닿은 것은 heap space 에러와 프로시저로 처리하는 속도에 대한 것이 절실하게 느껴진다. 지금 정산 데이터만 해도 2000데이터 insert하는 것도 너무 오래걸린다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기