ACE 사용하시나요?
글쓴이: aswip / 작성시간: 화, 2005/07/12 - 12:29오전
ACE 침대 이야기는 아닙니다. ^^;;
ACE(ADAPTIVE Communication Environment) 이야기입니다.
한달전 즈음에 구입한 'ACE 프로그래머'란 책을 통해서, ACE의 맛을 알아가고 있는 ACE 초보자입니다.
대부분 ACE를 소개하고 있는 Article을 보면, 표준 STL 보다 성능이 낫다, 디버깅이 쉽다. 호환성이 높다, 이식하기 수월하다, API 사용의 용이하다, 유니코드를 지원한다 등등의 장점을 내세우고 있습니다.
ACE의 여러가지 장점중 특히 성능 및 API 사용의 용이함 이라는, 두가지 매력에 사로잡혀 ACE를 배우고 있는데, 오늘 어떤분깨서..
" ACE는 성능이 낮아서 ... " 라는 말을 하시더라구요..
지나가는 말씀이었지만, 곰곰히 생각을 해보니 ACE를 배우기만 배웠지, 막상 ACE자체에 대한 구체적인 BMT 를 해본적이 없어서, 그 말이 사실일지도 모른다는 생각이 들었습니다.
KLDP 개발자 님깨서는 ACE 라는 라이브러리에 대해서 어떻게 생각하시나요?
실무에 적용할 수 있을 정도로 다듬어진 라이브러리인지도 궁금합니다. ^^
Forums:
ACE라는게 있는지도몰랐습니다 -_-;;;찾아보니 상당히 유용한 것
ACE라는게 있는지도몰랐습니다 -_-;;;
찾아보니 상당히 유용한 것 같군요.
kldp를 돌아다니면 좁은견문이 조금씩 조금씩 넓어지는걸 느낍니다 ^^;
좋습니다.쓰세요.
좋습니다.
쓰세요.
ACE 그자체로는 거의 퍼펙트 합니다. schmidt 교수님께서 우매한
ACE 그자체로는 거의 퍼펙트 합니다. schmidt 교수님께서 우매한 중생들을 교화하기 위해서 이론을 거의 완벽하게 구현해냈습니다.
ACE 응용프로그래머가 되고 싶다면 앞서 말씀하신 ACE 프로그래머 가이드 개열을 보면 됩니다.
ACE의 구현물 자체에 대한 보다 깊은 학습을 원하신다면 Pattern Oriented System Architecture: volume 2를 보시면 됩니다. schmidt 교수가 직접 썼고 책 내용도 예술입니다.
위에 있는 단점을 좀 집고 넘어가죠. 일단 성능이 구리다는건 구라입니다. 상당히 잘 만들었고 성능도 뛰어날뿐더러 구조도 잘 잡혀있습니다.
문제는
1. 덩치가 너무 크다.
2. 1로 인해 learning curve가 장난이 아니게 가파르고 길다.
이 정도입니다. 1이 문제가 되는건 소잡는 칼이라는 겁니다. 닭잡는데 쓰기에는 너무 크고 무겁습니다. 아마 소스 다운받아 보시면 압도 당하실겁니다.
그래서 2번이 문제가 됩니다. 간단한 걸 하기에도 배우고 알아야할게 많습니다. 즉 접근성이 떨어진다고 할 수 있죠.
네트웍 프로그래밍쪽에서 일하신다면 사용과 관계없이 위에 언급한 POSA2와 함께 반드시 넘어야할 산입니다. 쓰는것과는 완전히 별개로요.
이렇게 말을 했지만 저도 사용은 안합니다. ACE에서 디자인등은 정말 많이 배웠지만 실제 구현은 ACE 정신에 입각한 라이트 버전을 직접 만들게 되더라구요.
.neuk
예술입니다.
2003년 후반부터 ACE로 현업에서 개발한 개발자 입니다.
이런저런 말이 있겠지만, 분명한 것은 예술적으로 잘 갖추어진 프레임워크라는 사실은 분명한 것 같습니다.
물론 단순한 소켓라이브러리 정도로 착각해서 접근할 분량은 아니지만, 실제로 ACE를 이용해서 개발을 해보고 필요에 따라서 프레임워크를 분석하다 보면 진가를 아시게 될 겁니다.
새벽을 기다리는 밤의 적막속으로..!!
ACE 는 성능이 좋은 프래임워크가 아닙니다.멀티플랫폼에서 작동하기
ACE 는 성능이 좋은 프래임워크가 아닙니다.
멀티플랫폼에서 작동하기 위한 프래임워크라 효율은 오히려 떨어지지만
ACE 를 사용한다면 이식성이 높아진다는게 장점이겠지요.
[quote]이렇게 말을 했지만 저도 사용은 안합니다. ACE에서 디자인
이말에 올인입니다.
ACE 아주 좋지만 쓰기엔 아주 버겁습니다.
자신이 필요한 부분이 무엇인지 파악하고 ACE 의 철학을 빌려서 적당히 가볍게 만들어 쓰시거나 libevent 등을 쓰는것도 한방법입니다.
에코 서버라는게?
에코서버라는게 뭐죠?;;
이책 C++ network programming 의 서문에 나오는 말이던데;;
그냥 패킷 보내면 받아서 다시 클라이언트에게 보내주는 것을 말하는 건가요?
(__;;)
그립다는 것은 아직도 네가 내 안에 남아 있다는 뜻이다.
그립다는 것은 지금은 너를 볼 수 없다는 뜻이다.
볼 수는 없지만 보이지 않는 내 안 어느 곳에 네가 남아 있다는 뜻이다.
-이정하의 《혼자 사랑한다는 것은》중에서-
Re: 에코 서버라는게?
에코써버는, 클라이언트가 하는 말을 고대로 되돌려주는 서버입니다.
shell 스크립트의 echo "str" 과 같은일을 하는건데, 네트웍으로 해주는거죠.
에코를 시킬때, 그냥 str 을 되돌려주면 심심할 뿐만 아니라, 이것이 정말
네트웍을 타고 갔다 오는지 궁금하기때문에, str 에 약간의 장식을 해서
돌려주는것도 많이 쓰이는 방법입니다.
이를테면, "hello world" 라는 스트링을 보내면, "Hello World" 라고
돌려준다든지 말이죠..
삽질의 대마왕...
Re: ACE 사용하시나요?
사실 실무에 쓸필요가 없이 이론적/연구용으로 만든 라이브러리라면 이정도까지 방대하고 복잡한 구성은 아닐겁니다.
네트워크 라이브러리로는(독립 라이브러리든, 시스템라이브러리 중에 포함되어 있던) 아마 여지껏 이보다 복잡한 라이브러리는 없었을 것 같습니다. 그만큼 디폴트 동작이 100% 맘에 들지 않을때(프로그램 구조, 성능 등등에서) 세부적으로 파라미터 들을 바꾸거나 해서 동작을 조정 할수 있는 여지가 어떤 라이브러리 보다 많습니다.
예를 들자면 게임 서버 게발시에 윈도우 WFMO의 뛰어는 동접 처리을 이용할 수 없다는 이유로 다른 시스템을 꺼리는 사람들이 많던데, ACE에서는 기본적인 select reactor 외에서 WFMO reactor등을 제공합니다.
실무에서 쓰고 있는 곳이 있다면
주로 어떤 용도로 쓰고 계시는가요?
아무리 복잡하고 접근이 어려워도 성능과 이식성이 높다는 장점이 있다면 실무에서도 많이 쓰일거라 생각하는데, 현재 어떤 결과물이 있고 어디에서 주로 쓰는지 알고 싶습니다.
저 또한 책을 사놓기는 했지만 접근하기 어려워 지금은 뒤로 미뤄둔 상태입니다. TAO라는 미들웨어가 이 프레임워크를 기반으로 만들어져 있다는 정도만 알고 있습니다.
One must, In fact, Love your pursuit
My home is below...Well, just go own your gait!
[quote="ssehoony"]ACE 는 성능이 좋은 프래임워크가 아닙
성능이 좋지 않다고 말씀을 하시니 궁금합니다.
성능이 좋지 않은 이유나 근거가 있습니까?
혹은 다른 프래임워크와 비교한 자료가 있으면 보여주시지 않겠습니까?
ACE 가 성능이 좋지 않나요?잘은 모르지만 주위에서 하는 이야기에
ACE 가 성능이 좋지 않나요?
잘은 모르지만 주위에서 하는 이야기에 따르면
꽤 좋다고들 하던데요.
단지 그 덩치에 매우 당황스럽다는 이야기는 들어 봤지만.
ACE 의 장점은 성능보다는 이식성과 OOP 로 인한 유지보수의 장점아닌
ACE 의 장점은 성능보다는 이식성과 OOP 로 인한 유지보수의 장점아닌가요? 다른 모든 프레임웍들처럼요.
개인적으론 이식성이 좋다는것도 믿기 어렵고, 유지보수가 쉽다는것도 우습게 보입니다만..
정말 여러 머신에서 돌릴거라면 머신마다 ACE 컴파일하느니 성능포기하고 select 쓰고--사실select만해도대부분의경우충분합니다--, 유지보수측면이야.. ACE 를 먼저 공부하고 나서의 문제인데 ACE 쓰는사람이 얼마나 되나요. 업무등에서 ACE 쓰면 피곤해질게 눈에보이네요.
저는 ACE 는 그냥 공부용으로밖에 생각이 안되네요.
여기 쓰인 개념들은 꼭 알아둬야 하는것들이죠.
저는 APR(Apache Portable Runtime)을 서버 프레임웍
저는 APR(Apache Portable Runtime)을 서버 프레임웍으로 쓰고 있습니다.
그런대로 가볍고 여러가지 기능(APR-util 까지..)들이 다 들어 있어서 잘 쓰고 있긴 합니다만
소켓 부분은 성능 때문에 APR을 쓰고 있지 않습니다. 뭐 얼마나 차이가 있겠냐 싶으면서도 호환성과 기능이 뛰어날 수록 성능을 조금씩 깍아먹는다는건 부인할 수 없는 사실 같습니다.
성능 > 안정성 > 호환성 > 유지보수 순으로 생각하기 때문에.. =_=;
ACE 컴파일 옵션 보세요
ACE 문서에 보면 컴파일을 다양한 형태로 할 수 있습니다.
제가 빌드 했을때 1MB 분량으로 만들어서 임베디드 시스템에 적용해 봤습니다.
컴포넌트화가 잘 되어 있기 때문에 이보다 더 작게도 할 수 있을 겁니다.
댓글 달기