비지니스 로직을 서비스에서 처리해야하는 이유(scale up, scale out)

홍헌·2023년 11월 21일
0

java

목록 보기
3/4

최근에 부장님과 얘기하던 중 현재 프로젝트는 sql기반으로 되어 있으니까 java기반으로 바꾸라고 말씀하셨다. 이 의미를 이해하지 못해 재차 물어보니 현재 프로젝트에는 sql에 너무 쓸데 없이 case, if 등의 비지니스로직이 많다고 하셨다. 그래서 나중에 부하가 많이 발생했을 때, WAS는 서버 늘리면 되는데 DB는 그게 어려우니 java기반으로 변경하라는 의미였다. 이에 관련해 좀 찾아보니 scaling과 관련된 이슈 때문에 이야기 하셨던 거 같아 아주 간략히 정리해놓으려고 한다.

Scale Up(Vertical Scaling)

보통 RDB에서 많이 적용하는 방식이라고 한다. DB에 데이터량, 부하가 많아지는 등의 이슈가 생기면 DB의 cpu, ssd, ram등의 성능을 업그레이드 시켜줘야 하는 경우에 사용한다고 한다. 이는 만약에 단순히 여러 개의 서버로 데이터를 분산시킬 경우 데이터 정합성 유지 혹은 데이터를 나누는 기준의 모호함 등의 이유 때문에 뒤에 나올 scale out이 쉽지 않기 때문에 많이 선택한다고 한다. 또한 성능 업그레이드는 단순히 개수를 늘리는 scale out에 비해 비용이 많이 들기 때문에 되도록 자제하는 게 좋다.

Scale Out(Horizontal Scaling)

단순하게 말해 서버를 여러 개로 늘리는 것이다. WAS 같은 경우 부하가 늘었을 때, 단순히 서버의 개수를 늘리면 된다. WAS내의 로직은 누가 시키던 같은 일을 하는 것이라 이 컴퓨터에서 하던지 다른 컴퓨터에서 하던지 상관없기 때문이다.

결론적으로 부장님이 하셨던 말씀은 RDB를 사용하는 현재 프로젝트에서 부하가 늘면 Scale Up시키기 어려우니 되도록이면 WAS에서 비지니스로직을 처리해 추후 부하가 늘었을 때 Scale Out하기 쉽게 하라는 의미였다.

결론: 상사 말은 잘 듣다 찾아보자.

혹시 잘못된 정보가 있어 정정해주시면 공부에 많은 도움이 됩니다.

0개의 댓글