최근에 C를 배우며 느낀 점들

이제 개발자 4년차…

어떻게 어떻게 하다보니 아이폰개발쪽으로 공부하게 되었다.
학원 커리큘럼상 C를 한달 수강하고 Objective-C를 수강하게 되어있어서 지금은 C 수업을 열심히 듣는 중.
이제 2주 정도 C를 배웠는데 아직은 어렵지 않다. 처음이라 그런지 프로그래밍의 기초부분만 설명하고 있는데 문법만 약간 다를뿐 기초개념상으로는 액션스크립트와 맥락을 같이하는 부분이 대부분이다.
여튼 느끼는건…
C는 참 재미없다. 플래시는 태생적으로 그래픽적인 면을 강조했었기에 뭔가를 조금만 작업해도 화면이 확 변하고 예쁘고 아름답게 뭔가가 눈에 들어온다는 점이 좋았다. 그런데 C는 아무리 열심히 짜도 화면에 텍스트로만 출력되니 너무 답답하다. 뭔가 코드를 짜도 화면상에 변화가 적으니…
역시 옛날 언어라는 생각이 든다. 나온지 수십년이 지났으니 너무 당연하겠지만 편한 환경에서 코드를 짜던 내 입장에서는 이건 뭐 원시 시대로 돌아간 느낌. 컴파일러 수준에서 당연히 해줘야할 부분들… 예를 들면, 변수 선언시 자동초기화 같은 것들이 안되어 있으니 일일히 수동으로 다 해줘야된다. PHP, 자바스크립트도 좀 해봤는데 이러한 언어들도 지원하는 기능을 C가 지원하지 않는다니… 좀 놀라웠다.
게다가 학원에서는 Visual C 6.0으로 하는데 정말 컴퓨터 부셔버리고 싶을만큼 답답하다. 플래시 IDE의 에디터에서도 코드힌트 같은 어느정도의 편리성은 제공하는데 이건 뭐 에디터상으로 지원되는 기능이 너무 없다. Flash Builder(= 이클립스IDE)에서 지원되는 코드힌트, 자동완성, Code Snippet 같은게 있다면 얼마나 좋을까 싶다. 특정 메서드를 쓰면 관련 클래스파일을 자동임포트 해주는 것처럼 헤더파일을 자동입력해주면 좋겠는데 이런 기능도 없다. 최근에 나오는 Visual C는 어느정도 편의기능을 제공하는지 모르겠지만 여튼 Visual C 6.0은 정말 답답하다.
메모리의 접근이라는 새로운 화두가 던져지니 신기하기도 하고 불편하기도하고 그렇다. 이 역시 플래시에서는 컴파일러 차원에서 해결해주던 것을 심각하게 고민하며 코드를 짜야된다. 지금이야 커맨드라인에서 돌아가는 프로그램을 짜니 메모리에 대해 그럭저럭 잘 이해하는데 GUI 환경에서는 메모리에 대해 어떻게 관리하고 접근하는지 너무 궁금하다.
포인터라는 개념이 정말 어렵고 이에 대해 공부하다 포기하는 사람도 많다고해서 얼마나 어려운지 궁금했는데 들어보니 초기개념상으로는 생각보다 어렵지 않다. 일반 변수/함수는 ‘직접 참조’이고 포인터는 ‘간접 참조’라는 개념인데 이 대상이 ‘메모리 영역’이라는 점일뿐. 직간접 참조에 대한 이해와 사용은 그동안 코드에서도 써오던 개념들인데 그 대상이 눈에 안보이는 메모리 영역이라는 것이어서 좀더 생각을 해야하는 것 같다.
아직은 쉬운 코드만 보고 있어서 그런지 포인터의 효율성에 대해 이해가 잘 안된다. 좀더 복잡한 프로그램을 보며 그때 이해해야할 것 같다.
여튼 얼마간 C를 배워보니 다른 언어의 세계도 재미있고 생각만큼 그리 어렵게 생각할 필요도 없다는걸 알았다. 앞으로 더 재미있는 코드를 많이 연습해봐야될 것 같다.

6 Replies to “최근에 C를 배우며 느낀 점들”

  1. Visual C++ 6.0 는 제가 좋은 개발툴 다 써봤지만, 제일 간단하고 좋습니다.
    C언어라는 자체가 라이브러리가 크게 필요없습니다. 색깔만 잘 나오고 컴파일 잘 되면 좋은겁니다. 아직도 대학교에서는 이걸 쓰고 있습니다.

    1. 하하 그런가요? 전 너무너무 불편하더라구요. 기능상의 부족함도 그렇고 프로그램 자체가 계속 다운이 되버리고… ㅡㅡ;; 파일 삭제가 안되는 상황까지 발생해서 너무 불편해었거든요. 일단 배우는 단계니까 경험이라 생각하고 했었네요. ^^

  2. 안녕하세요. 지나가는길에 잠시 덧글남깁니다.
    C가 확실히 옛날 언어인것은 사실이고 기본적인 편의성조차 전혀 제공하고 있지 않지만
    그만큼 간결하고 속도도 빠릅니다.
    항상 최고의 사양이 필요한 게임업계에서 아직도 C/C++을 버리지 못하는 이유가 여기 있으며
    스마트폰의 확충으로 한껏 느려진 서버를 개선하기 위한 대안으고 C++이 뜨고있다는건
    개발자로써 눈여겨볼만한 동향인것 같습니다.

    물론 게임이나 서버업계가 아니라면 C/C++은 구시대의 유물일 뿐일지도요… ~_~;;

    1. 그러게요~ 속도는 매우 빠르다고 들었습니다. 전 너무 간단한 프로그램만 짜봐서 속도가 빠른지를 못 느끼겠더라구요.

      여튼 C++ 해보니 재미있고 메모리에 관련되어 이런저런 재미있는 내용들이 많더군요.

      나중에 시간이 나면 더 배워볼 생각입니다.

Leave a Reply

Your email address will not be published. Required fields are marked *