ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [boost] boost란 무엇인가?
    C_C++ 프로그래밍/boost 2019. 7. 11. 14:36

          로재의 개발 일기      

    Boost란?

    boost는 C++ 기반의 라이브러리로 방대한 양의 lib를 가지고 있다

    심지어 library가 아닌 libraries로 구성이 되어 있을 정도..

    boost 사이트

    그렇다면 이 boost를 왜 사용할까?

    알아보자



      우선 C++

    우선 cpp에 대해서 설명을 할 필요가 있다.

    cpp은 STL이라는 표준 라이브러리를 제공하고 있다.

    ( 이 글을 읽는 분들이라면 STL 미경험자는 없다고 생각합니다. 심지어, 자신의 편의에 맞추어 STL을 재구성한 분들도 있을테니.. )

    이 처럼, C++에서 제공하는 기능과 C에서 제공하는 기능을 비교를 해보면 Cpp이 방대하게 제공을 하고 있다고 말할 수 있는데..

    Sometimes I do write C++ instead of C. C++ I think is basically too big a language, although there's a reason for almost everything that's in it. When I write a C program of any size, I probably will wind-up using 75, 80, 90% of the language features. In other words, most of the language is useful in almost any kind of program. By contrast, if I write in C++ I probably don't use even 10% of the language, and in fact the other 90% I don't think I understand. In that sense I would argue that C++ is too big, but C++ does give you may of the things that you need to write big programs: it does really make it possible for you to create objects, to protect the internal representation of information so that it presents a nice facade that you can't look behind. C++ has an enormous amount of mechanism that I think is very useful, and that C doesn't give you.

    Brian Kernighan

    (c++이라고 검색하면 바로 이 문단을 찾을 수 있다.)


    귀찮아서 바로 Papago를 돌렸다.


    때때로 나는 C 대신에 C++를 쓴다. C++ 내 생각에는 기본적으로 너무 큰 언어인 것 같다. 비록 그 안에 있는 거의 모든 것에 대한 이유가 있지만 말이다. 내가 어떤 크기의 C 프로그램을 쓸 때, 나는 아마도 75, 80, 90%의 언어 기능을 사용할 것이다. 다시 말해서, 대부분의 언어는 거의 모든 종류의 프로그램에서 유용하다. 이와는 대조적으로 C++로 글을 쓰면 아마도 10%의 언어를 사용하지 않을 것이고, 사실 나머지 90%는 내가 이해할 수 없다고 생각한다. 그런 의미에서 나는 C++가 너무 크다고 주장하겠지만, C++는 여러분이 큰 프로그램을 작성하는 데 필요한 것들을 제공해준다. 그것은 여러분이 물건을 만드는 것을 가능하게 하고, 여러분이 뒤쳐질 수 없는 멋진 면을 보여주기 위해 정보의 내부 표현을 보호하는 것을 가능하게 한다. C++는 내가 생각하기에 매우 유용하며, C는 당신에게 주지 않는 엄청난 양의 메커니즘을 가지고 있다.

    참고로 브라이언 커니핸님은 1972년 Dennis Ritchie와 함께 AWK 요소를 발전시켜 C 언어를 만든 분이다.

    C++이 얼마나 방대한 언어인지 알 수 있겠다.

    심지어 C++10, C++14.. 버전 업도 되고 있으니 말이다.



      다시 boost

    앞에서 말한 대로, Cplustplus (C++)은 방대하고 복잡한 언어이다.

    심지어 "C는 2시간 배워서 20년을 써먹고, C++은 20년을 배워서 2시간을 써 먹는다." 라는 말이 있을 정도니 말이다.


    이 C++의 STL의 부족한 부분을 보완하기 위해서 프로그래머가 라이브러리를 직접 작성하는 경우가 많은데,

    boost를 사용하므로 인해서 이 부분들을 보완할 수 있는 것이다. (혹은 boost를 수정하거나)

    STL에서 메모리를 할당하고 사이에 남는 부분을 별도의 처리를 하지 않고 남겨두지만,

    Boost의 경우에는 할당하고 남는 부분에 메모리에 추가되때 메모리 주소를 사용하여 메모리 주소를 관리한다.

    심지어 엄청 빠르다. 하지만 어렵다.


    그리고 boost를 만든 분들은 천재적인 C++ 프로그래머들이며

    이에 대한 bug나 error는 전 세계에 많은 C++ 프로그래머들에 의해서 보고가 되고 있기 때문에 bug는 거의 없다고 봐도 무방할 것 이다.



    마무리

    boost를 공부하면 c++에 대해서 좀 더 깊이 들어가는 느낌이 들 것 같다.

    신기하당.


    관련글


    ※ 본 글은 개인 포트폴리오 혹은 공부용으로 사용하기 때문에, 무단 복사 유포는 금지하지만, 개인 공부 용도로는 얼마든지 사용하셔도 좋습니다




    반응형
Designed by Tistory.