고성능 서버에 대한 자바를 위한 변론

emptynote의 이미지

자바를 아직까지도 좋아하여 자바로 만들었지만

자바가 c/c++ 보다 느린것 부정할 수 없는 사실이고

더 효율적인 고성능 서버를 개발하고자 한다면 다른 언어 추천하지만

비교할 모델이 있어야 다음 단계로 진화할 수 있으니

그 중간 단계로 자바로 만든 서버 사용할만 하다고 말하고 싶네요.

Necromancer의 이미지

실행속도말고 개발속도로 따지면 자바가 C/C++보다 월등합니다. 쉽게 말헤 적은 개발자 수로 단기간에 개발을 끝내서 현장에 투입할 수 있다는겁니다. (M/M이 줄어든다고 표현하죠)
소비자(서버 운영하는 개인이나 단체) 입장에서는 들이는 시간도 다 돈입니다.
경우에 따라서는 운영환경 변화에 빨리 대응하기 위한 유지보수가 중요한 경우가 있는데 이 측면에서도 자바가 C/C++에 비해 훨씬 유리합니다.

C/C++로 개발비 잔뜩 들려놓고 저사양 서버 돌리느냐, 자바로 개발비 적게 들이고 빵빵한 서버 돌리느냐의 비용대비 효용성으로 따지는데 컴퓨팅 성능이 올라간 지금 시대에는 C/C++이나 자바나 체감 차이는 별로 없고, 자바로 해서 개발비 덜 들이는게 싸게 먹히니 쓰는겁니다.

예시로 과거 컴퓨터가 어떤 작업을 처리하는데 자바로 10분, C/C++로 30초에 끝났고
똑같은 작업을 지금 컴퓨터로 하면 자바로 1초, C/C++로 0.05초에 끝났으며
이 작업을 하는 코드를 개발하는데 자바가 10 M/M, C/C++ 100 M/M이 들어간다고 칩시다.

과거 10분과 30초는 체감 차이가 엄청나니 M/M 10배 이상 들여서라도 C/C++로 했겠지만,
지금의 1초와 0.05초는 체감 차이가 별로 없으니 자바로 개발해서 M/M을 1/10로 깎아버리죠.
개발자 등급에 따라 다르지만 1 M/M도 엄청난 돈입니다.

Written By the Black Knight of Destruction

emptynote의 이미지

공감합니다.

개인적인 생각이지만 자바 같은 경우 인프라(?) 라고 해야 하나 살뜰한 라이브러리가 참 풍족합니다.

(1) logback : 로거 라이브러리

(2) dbcp : JDBC connection pool 라이브러리

(3) jooq : DB 생성성을 도와주는 도구

있다 없다 차이가 참 크다고 생각하는 제가 애용하는 라이브러리들입니다.

다른 언어 좋다지만 은근히 이게 발목(?)을 잡습니다.

그래서 자바로 개발할 경우 M/M 비용이 낮다는 말씀에 전적으로 동의합니다.