c 언어 공부
글쓴이: grasia08 / 작성시간: 월, 2013/12/02 - 6:35오후
대학교에서 자바와 객체지향을 위주로 배우다가 c 언어를 사용하는 곳에 취직했습니다.
당장은 할 줄 아는 게 적어서 avr를 작성하는 간단한 업무를 위주(일은 학교와 다르더군요)로 하고 있습니다. (밀려 있는 업무를 보면 임베디드도 하고 통신도 하고 진짜 이것저것 다 해야 하더군요.)
제가 배운 객체지향이나 디자인 패턴은 결국 프로그램을 작성하는데 그리고 유지보수하는데 좀 더 빨르고 편하게 하기 위해서라고 요약하고 있습니다.
- 제 의견이 틀릴 수도 있지만 개인적인 판단입니다. 아직은 미숙한 결론이 아닌가 고민하고 있긴 합니다만.
아무튼 그런 상황에서 c 언어를 사용하여 프로그램을 작성하고 있는데 c 언어에 대한 디자인 패턴을 찾아 보고 싶어도 대부분 oop에 관한 이야기더군요.
그럼 c 언어는 객체지향이나 디자인 패턴을 사용하기에 적합하지 않는 언어 인건가요?
c 언어로 작성하는 것이 노가다라는 소리를 들은 적이 있는데 이게 진실이라서 디자인 패턴이건 머건없는 건가요?
물론 객체지향이나 디자인 패턴을 그대로 c 언어에 쓰면서 하는 소리는 아닙니다.
학교에서 엉터리?로 나마 배웠지만 어떻게 더 공부해야 할지 감이 잡히지 편이라 조언을 구해 봅니다.
ps. 어느 게시판에 올려야 할지 몰라서 일단 자유 게시판에 올립니다.
ps2. 꽤나 학교에서 배운 어설픈 지식이 방해되는 경우가 만더군요. 단지 아에 모르지만 않을 뿐이라는 느낌입니다.
Forums:
C언어라도 모듈 독립성/재사용성 높은 설계는 결국 OOP입니다.
제가 C언어를 한 사람이 아니지만 감히 아래와 같이 말씀드립니다.
OOP는 잊고 일단은 C언어 답게 기술을 늘려 하고자 하는 업무 적용에 성공적으로 할 수 있는 일에 먼저 집중을 하세요.
C언어라도 모듈 독립성 & 재사용성 높은 설계는 결국 OOP입니다.
증거는 GTK 입니다.
다만 C 언어 영역중 디바이스 접근 같은 하드웨어 제어쪽은 객체 지향 설계랑 전혀 관계가 없지요.
어짜피 C++ 는 C 언어 다음 세대 언어이기에 C 언어쪽 깊이 파시면 C++ 탄생하게 된 이유를 전부는 아니여도 하나씩 이해하시는 때가 오실겁니다.
그러니 앞에 말씀 드린 업무 전문가가 우선적으로 되시는것을 추천해 드립니다.
감사합니다.
안그래도 내가 c도 어설픈 상태에서 oop를 괜히 시도하는 건가? 하는 생각도 이글을 통해 들었습니다.
물론 조금이나마 적용시키려고 발버둥을 치는 건 계속 할것이지만 당장 중요한게 무엇인지는 다시 생각해 보게 되었습니다.
C로도 OOP구현이 가능합니다.
http://www.planetpdf.com/codecuts/pdfs/ooc.pdf 이런거 한번 읽어보시면 좋지 않을까 합니다. "Object Orientated Programming in ANSI-C" 라는 책입니다.
하지만 문제는 보통 말씀하신 업무에 투입될 경우 사용가능한 자원이 매우 빠듯하고 기존 코드를 수정하는 일이 잦아 저런 기술을 이용하기가 쉽지 않다는 것. 그래도 본인이 새로 설계하는 것부터 조금씩 바꿔나가면 좋은 결과가 있겠지요.
--
오히려 제가 좋은책을 알았네요.
좋은 문서 주셔서 감사합니다..(꾸벅)
-----새벽녘의 흡혈양파-----
c 언어에도 확실하게 있긴 있는 거군요.
mpu가 일을 처리하는데 자원이 부족해서 자원을 할당 하는 부분에서 꽤나 고생하고 있습니다.
아무래도 자원을 할당해야 한다는 걸 말로만 알고 있다가 ... mpu하나 태워먹었습니다.
그래도 능력을 기르고야 적용할 수 있겠지만 원하는 것을 알려주셔서 감사합니다.