STL의 단점은?

geekforum의 이미지

/.에 흥미로운 토론이 올라왔네요.

craybob queries: "I'm a developer for a small software group that will soon migrate from using Rouge Wave to using the C++ STL. I just left the week-long Software Developers 2002 conference, where I heard the great minds in software tell us all of the best ways to take full advantage of the STL. (I just wanted to give a quick thanks to Stephen Dewhurst and Scott Meyers) From this I came away with the feeling that this is the Holy Grail of C++. I'm sure these guys are right and that it is great, but the truth is that I'm a skeptic, so what are the downsides to the STL?"

여러분이 생각하는 STL의 장/단점은 뭔가요?

익명 사용자의 이미지

음..STL이라....

컴파일때 오타 때문에 에러가 이상하게 나는 문제가 있죠? 대부분 프로그래머들은 잘 아실것입니다...이정도야 감수하면서 써야죠..

속도는 상당히 빠르고 좋습니다.(런타임~)
malloc을 쓸때보다 빠르긴한데...쓰래드를 같이 사용해서 쓸때...흠....것참...쪼금 신경을 써야되더군요.. 쩝... 이것도 봐줄 만한데..

디버깅 할때...가끔식 오타 때문에 곤욕을 치르죠..그 오타가 사람 피를 말립니다. 화면의 i와 1을 구분 하지 못한다면 아마도 하루 3갑의 담배가 필요치 않을까요?

그래서 STL의 단점이라면...디버깅 할때 연초 소비량을 늘려서 몸을 않좋게 하는것이라고 생각합니다..

이상이에용~
아슈~

익명 사용자의 이미지

아! 그리고...디버깅용으로 컴파일할때 컴파일 시간이 상당히 길고, 용량도 상당히 큽니다...디버깅 코드 없이 컴팔하면 12000byte이더라도 디버깅용으로 컴팔하면 300000byte까지 불어나는 우동같은 성질이 있죠?

익명 사용자의 이미지

저는 경력 3년차의 C++ 프로그래머이고
많은 대규모 프로젝트에서 STL 을 사용하였습니다.

STL 때문에 문제가 생긴적은 한번도 없으며
STL 은 충분히 믿을만한 라이브러리 라고 생각합니다.

사실 컨테이너/알고리즘 개발에 시간을 쏟을 여유도 없으며
그것을 디버깅하고 안정화 시키는 수고를 하고싶지도 않습니다.
모든것을 떠나서, STL 보다 잘 만들 자신도 없습니다. :)

단지 STL 의 단점이라면
그 사용법을 정확히 파악하지 못했을때에
문제가 생기는것일 뿐일테지요.

eogusl의 이미지

웃기는 얘기 같지만, STL 이라는 것을
C++에서 봤다는 기억도 못하고 있다가, 이곳에서 얼마전에
올라왔던 stl 이야기를 보고 이제 막 vector의 놀라움에

stl 튜토리얼, 이펙티프 stl 두권의 책을 덜컥 사기만하고

정보는 웹사이트에서 끄적끄적 보고있는데,

저같은 허접은 가부를 떠나서

그저 놀랍기만 할 따름이죠.. ㅡ,.ㅡ

knight2000_의 이미지

저도요.... ㅜ.ㅜ;

익명 사용자의 이미지

제가 참여한 C++ 프로젝트에서도 STL을 썼습니다..
데이터베이스에 접근해서 데이터를 가져오는 프로그램이었습니다...

스트링 객체나, 리스트, 맵 같은 것들을 만들어 쓸 수 없는 이상 괜찮은 라이브러리를 찾아서 써야 하는 건 당연한 거구요... 로그웨이브사에서 나온 라이브러리가 그 프로젝트에 사용하던 머신(hpux) 컴파일러에 들어있기는 했는데... STL 을 썼습니다...

에러 메시지도 조금 익숙해 진다면, 그다지 어렵지 않게 쓰실 수 있습니다...

그리고 제가 참여한 것은 아니지만, 제가 있는 회사에서 만든 SMS 문자 전송 서버프로그램도 STL 로 작성했다고 합니다.. STL은 업무용/상용 프로그램등에서 실제로 쓰이고 있습니다..

리눅스 소스 혹은 다른 시스템 프로그램들과 같이 C된 코드에서는 STL을 안 쓰겠지만... 업무용/상용에서는 개발 시간을 줄이고, 유지보수를 용이하게 하는 것이 중요한 만큼, STL을 쓰는 것이 유리합니다..
그리고 STL을 쓰기 때문에 느려졌다는 이야기는 못들은 것 같네요.. 느리다면 더 나은 구현을 가진 STL을 사서 쓰는 게 STL을 안 쓰고 직접 구현하는 것 보다는 훨씬 낫겠지요..

익명 사용자의 이미지

무겁다.

익명 사용자의 이미지

STL의 단점이라...

STL의 단점은
1) compile 시간이 오래 걸린다.
--> compile time에 code를 생성하기 때문이죠

2) compile error가 나면 하나가 100 line을 넘을 수도 있다. (과장이 심한가 ^^)
--> 저는 error 분석 할때 error message를 cpoy해서 메모장 같은데서 분석 합니다.

그러나, 이같은 단점이라도 STl은 쓸만 합니다.

앞으로도 많이 쓰일것은 틀림 없습니다.

익명 사용자의 이미지

많은 굵직굵직한 오픈소스 프로젝트들을 보면 STL 하물며
C++을 쓰는것도 드문 현실인데.
STL이 얼마나 효용가치가 있는것일까요?
STL로 진행거나 완료된 mission critical하고 robust한
프로젝트가 있나요?

익명 사용자의 이미지

제가있는 회사는 STL을 씁니다
Multicast 방송서버를 만드는 일을 하는데(제가 참여한것은 아님)
소스파일마다 STL이 안쓰인 곳이 없을 정도로 많이 씁니다
회사에 STL 관련 원서만 약 10권정도 -_-;;
저의회사는 월요일마다 각자 돌아가면서 세미나를 하는데
단골로 등장하는 내용이 STL관련 내용입니다
여러가지 장단점을 들어봤지만
역시 STL의 단점이라면 소스코드가 비대하게 커지는거......이게 좀 문제겠죠

익명 사용자의 이미지

상용화된 온라인 게임의 서버 파트에 STL을 사용하는곳이 아주
많습니다. 그정도면 충분히 critical 하고 robust하지 않을까
하느데요.

익명 사용자의 이미지

미션 크리티컬한 것만 프로그램인 것은 아니죠...

현장에서는 C++, STL 자주 사용합니다.
(저희 현장에서만 사용하는 건지는 몰라도요)

STL이 미션크리티컬한 작업에 쓰이기 힘드니, 효용가치가
없다라는 건, perl 이미션크리티컬한 작업에 쓰이기
힘드니 효용가치가 없다라는것과 마찬가의 말입니다.

저희 같은 경우 C, C++, perl, stl 어쨋뜬 각 부분에
가장 잘 맞는다고 생각되는 언어 골라서 프로그래밍 합니다.
이유는 개발기간 단축과 편해질 인생을 위해서죠.

자료구조 알고리즘 구현할려고 며칠걸려서 수백라인 코딩하고
디버깅한거 STL로 몇시간 뚝딱해서 수십라인 정도로 작성되는거 보면
거의 환상입니다.

STL은 게임 개발등에 있어서도 자료저장과 저장된 자료에 대한 알고리즘
적용을 위한 방법으로도 널리 사용됩니다.

lovehis의 이미지

주제에는 약간 동떨어진 얘기라서...

아무튼... STL에 대해 제가느끼는 단점...

"너무 늦게 나왔다"... 임니다.

한참 C++공부할때는 없더니....
나중에 나와서...날 슬프게 하더군요.

이젠 STL을 잘 모르는데, C++을 할 수 있다고 말하기도 민망하고, 절 C++못하는 사람으로 만든거 단점.... ^^;;;
--
늘...

익명 사용자의 이미지

제가 잘 몰라서 그런건지는 몰라두...

STL 녀석들 모두 템플릿이라 코드상에서는 단순해도

디버깅시에는 원래 이름으로 나와버려서

디버깅하기가 매우 힘들더군요. ㅜ.ㅜ;;

(해결책을 아시는 분을 답변달아주시면 좋겠습니다 ^^)

doogle

익명 사용자의 이미지

Effective STL저자의 홈페이지에 가면...

STL에러 메세지를 보기 좋게 처리해서 보여주는 프로그램이 있었던 걸로

기억이 납니다...

GCC, VC등등 왠만한 컴파일러는 다 지원하고, Perl로 만들어졌던 걸로

찾아보세여...

manson의 이미지

('') 위에 쓰신 분 때문에 이런게 있는지도 알았네요.... 감사합니다.

그리고 ^^* 그 저자 페이지 인지는 모르겠지만...

말씀하신 거시기 찾았습니다.

유용하게 사용하세요~~

http://www.bdsoft.com/tools/stlfilt.html

이곳입니다.

Renn의 이미지

단점이라 생각하긴 힘들겠지만... STL, 컨테이너랑 알고리즘 만드는 곳이 제각각이어서 각 제품에 따라 어떻게 쓰느냐에 따라 효율성이 지극히 틀려지는 것을 말 할 수 있을 것 같습니다. (from Effective STL)

어떻게 보면 장점처럼 작용할지도 모르겠지만... ;-)
--
Seo, Hee-Seung.
http://anitype.net/hirenn/

익명 사용자의 이미지

Good!!

익명 사용자의 이미지

장점 - 좋다
단점 - 나쁘다

knight2000_의 이미지

조금 더 붙여서...
장점 - 코딩이 쉽다
단점 - 디버깅이 어렵다.

Anonymous wrote...
> 장점 - 좋다
> 단점 - 나쁘다

익명 사용자의 이미지

훌륭하십니다

익명 사용자의 이미지

감사.
당신도 훌륭합니다.