[완료] ACE vs boost 비교평을 좀 듣고 싶습니다.

oosap의 이미지

http://kldp.org/node/120847

이 쓰레드에서 얘기가 된 적이 있는 주제입니다.

제가 지금 ACE 를 공부하고 있는데 책이 참 쉽지 않게 씌여져있는 것 같습니다. 아마도 POSA 1,2 인가요? 그런 책 혹은 다른 방법으로라도 해당 디자인 패턴들을 공부한 사람이라면 쉬울지 모르겠습니다.

그런데 boost 가 향후 C++ 의 표준에 포함된다는 이야기를 얼핏 보았습니다. 아니 이런 참 첨부터 boost 나 볼걸 그랬나 싶어지는 군요.

게다가 kaug 라는 구글 그룹스의 토론글도 2007년 이후로는 없고 신규 회원 신청도 받지도 않구요... 단지 comp.soft-sys.ace 에서는 슈미트 교수님으로부터 답변도 받을 수 있긴 하더군요.

1. boost 는 좋은 책이 있나요? 혹은 배우기 수월한가요? ACE 보다요..
2. boost 가 C++ 표준에 들어간다는 건 무슨 의미인가요?
3. ACE 보다 boost 가 대세일까요?

혼자공부하니 이런 것들이 궁금합니다.

감사합니다.

http://ko.wikipedia.org/wiki/C%2B%2B11

C++0x 라는 2011년에 ISO 가 승인한 C++ 최신판(2012년 4월 현재)에 대한 설명인데 참조링크로 적어둡니다. 저 포함 관심있을 누군가를 위해서요..

winner의 이미지

Douglas Schmidt 로부터 직접 답변을 받아보셨나요? 왠지 부러운... ^_^
언제부턴가는 ACE, Boost 와 함께 POCO 라는 것도 인기있는 모양이더군요.

대충 검색해보면 Boost가 ACE 보다 modern 하게 만들어졌다는 이야기가 많습니다.

그런데 Boost 가 C++ 표준에 들어간다는 이야기는 들어본 적이 없습니다.
Boost 중 일부가 C++ 에 차용된 것은 알고 있습니다.
이미 TR1 으로 준 표준으로 채택되었던 것들이 있죠. 그것 이상은 들어본 적이 없네요.
TR1 도 Boost 를 그대로 차용하지 않고 살짝 살짝 redesign 했죠.
대표적으로 hash_map -> unordered_map 의 변경이 있죠.

오히려 C++11 의 언어차원에서 lambda 가 등장하면서 Boost lambda 는 흑역사(^_^)가 된 것은 알고 있습니다.

http://channel9.msdn.com/Events/GoingNative/GoingNative-2012
에서 둘째날 Herb Sutter의 keynote 말미에 앞으로 C++ 표준에는 library 가 대거 도입되어야 한다고 역설하는데요.
대표적으로 ACE, Boost, POCO 등을 이야기합니다.

antaran의 이미지

Poco를 구글링으로 알 게 되어 상용 프로젝트에 적용했습니디만 아주 고생했습니다.

홈페이지에 있는 자료나 다큐먼트를 보면 컨셉이나 샘플 코드가 맘에 들어 간단한 상용의 비즈니스 로직을 단순화 시킨
프로토타이핑도 해보고 상용에 적용시켰습니다.

그런데 상용에 들어오니 이것 저것 커스터마이징에 예외처리에 민감해지면서 포코의 문제점이 하나 둘 드러나더라구요.
(물론 제가 포코에 대한 이해가 부족한 것도 한 원인이겠습니다만 그거에 더해 포코 자체가 가지는 한계점이 있습니다)

그 이후 포코를 상용에서 쓸 생각은 접었습니다. 혹 다른 분들도 http 기반 서비스를 포코로 생각하고 계신다면 말리고 싶네요.

그럼 이만...

bluekms의 이미지

ASIO에 비해 스레드 조작과 HTTP, SSL 등의 지원이 된다고 해서 좀 알아보려다 글을 발견하고 이렇게 답글 남깁니다.
상당히 옛날 글이라 지금과는 다소 차이가 있을 수 있지만 어떤 한계로 인해 포코사용을 접게 되셨는지 여쭤봐도 될까요?

oosap의 이미지


'흑역사' 가 무언가 찾아보았습니다.
http://ko.wikipedia.org/wiki/%ED%9D%91%EC%97%AD%EC%82%AC
위키백과에는 없는게 없네요.

재밌는 용어를 쓰시는 군요. ^^

오랜만에 익숙한 아이디를 발견해서 무척 반갑습니다. ^^

언제나 해박하시고요..

슈미트 교수님이 주로 답변하시더라구요. 누구든 comp.soft-sys.ace 에서 질문하면 교수님이 직접 답변해주시는 것 같아요.
토론 그룹이 그렇게 시끌벅적하지 않더군요. 하루에 한두개 정도 질문이 올라오는 것 같아요. 저도 처음에 교수님이 직접 답변을 주어서 깜짝 놀랐었어요.

boost 가 C++표준에 들어간다는 이야기가 있던 블로그를 지금 찾으려니 안찾아지네요..
그런데 위너님 설명을 들으니 마음이 놓입니다. ACE 가 혹시 버려지고 있지않나 싶었는데 그런건 아니군요.

감사합니다. 덕분에 용기를 내서 ACE 를 꼭 마스터 하고 말겠습니다. ^^;

Thanks for being one of those who care for people and mankind.
I'd like to be one of those as well.

winner의 이미지

사실 그 무엇도 완벽한 것은 없겠지요.
그랬다면 Boost ASIO 도 POCO 도 기존에 있던 ACE 를 나두고 만들지 않았을 겁니다.
이종언어 호환을 위한 CORBA 역시 인기가 없으니 TAO 같은 것도 맥을 못추는 걸테고요.
C++의 인기가 과거에 비해서 떨어진 것도 이유가 될 것 같습니다.
마스터라는 단어를 쓰셨으니 생각나는 것이 있는데요. 제가 전문서적의 70% 이상을 이해했다는 생각이 드는 시점은 책의 오류가 보이거나 기술적 비판을 할 수 있는 시점이었습니다. 전문서적이라는 것이 집필도 어렵겠지만 또한 사람마다 인식도 다르고 책이 나왔다는 것은 어떻게 보면 이미 과거의 기술이라는 것인데 비판할 여지도 분명히 생기겠지요.
그러니 정확하고 온전히 이해하기 위해서라도 다른 것들도 비교 검토하시면 좋을 것 같습니다.

winner의 이미지

oosap님의 질문 수준은 이미 국내에서 누군가가 잘 정리해 놓고 있는 것을 기대하기 어려울 정도입니다.

oosap의 이미지

제가 얘기한 마스터는 오해의 소지가 큽니다. 단지 그냥 쓸 줄 안다는 정도만 되면 저는 마스터라고 생각하거든요. ㅎㅎ
POSA 의 많은 심오한 패턴들의 자세한 구현의 디테일까지 이해하는 것은 자신이 없네요... 그리고 그럴 필요가 있을까 싶기도 하구요.. 그냥 그 패턴이 어떻게 쓰이고 인터페이스는 어떻게 하는지만 알아도 저같은 사람에게는 충분할 것 같아요...

좋은 정보 감사합니다. 그리고 알려주신 동영상도 좀 봐야겠네요. 흥미로운 내용들인 것 같네요!
감사합니다.

Thanks for being one of those who care for people and mankind.
I'd like to be one of those as well.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.