모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 게시물ID : it_7253
    작성자 : iT개발자
    추천 : 2
    조회수 : 2165
    IP : 182.172.***.147
    댓글 : 4개
    등록시간 : 2021/04/23 14:38:57
    http://todayhumor.com/?it_7253 모바일
    C언어의 잘못된 이해
    옵션
    • 창작글

       C언어의 잘못된 이해



    저는 C언어를 처음에 배웠고, 이후 자바, C++ 등 다른 언어를 배웠습니다.

    객체를 이해하는데 한 달 정도 걸렸습니다.

    안드로이드를 개발할 때는, 펌웨어 단(C,C++)에서 프레임웍을 거쳐서 APP단(JAVA) 까지 버그 분석을 한 경험이 있습니다.

    즉 C, C++, JAVA 3가지 언어를 동시에 보면서 버그를 분석 했습니다.


    C언어와 비교하여, 객체지향 언어에서는 '클래스'의 장점을 강조 합니다.

    필요한 클래스만 수정하면 되어서 편리하며, 이미 작성된 것을 사용하기에 유리하다는 이유입니다.

    하나의 파일에 하나의 클래스를 사용하는게 좋다고 권장하기도 합니다.


    결론부터 말씀드리면, 이것은 객체지향 언어 만의 장점이 아닙니다.

    C언어에는 헤더파일을 include 하는 기능이 있습니다.

    기능을 조각내어서, 파일로 잘 분리하여 선언과 정의를 해두면, 클래스와 유사하게 사용이 가능합니다.

    클래스를 상속하여 가져오는 것헤더파일을 include 하는 것유사한 기능입니다.

    include 한 것은 그냥 쓰면 되고, 나머지만 새로 정의 하여 개발하면 됩니다.

    파일내에서만 사용하는 함수는 내부함수가 되고, 헤더파일에 선언하여 외부에 공개하면 public의 개념이 됩니다.

    세부적 문법적 차이는 물론 있습니다만, 개념적인것은 동일합니다.


    "C언어는 메인함수 하나에 거의 모든 것에 들어간다."라는 것도 멍청한 생각입니다.

    파일로 나누어서, 여러 헤더파일로 정의 하여, 상속을 받는 것처럼 include 하여 사용하면 됩니다.

    너무나 당연한 것이며, 실제 복잡한 C프로그램의 대부분은 메인함수에 몇 줄의 코딩 밖에 존재하지 않습니다.

    부분적으로 코드를 수정할때도 전체 코드를 컴파일 해야한다는 것도, 컴파일러의 문제이지 언어자체의 문제는 절대 아닙니다.

    컴파일러 좋은 것을 쓰면 되는 문제입니다.


    왜 이런 오해들을 하게 되었을까요?

    저는 원인을 JAVA 홍보를 위해서 C언어와 비교를 하였는데, 그것이 20년 넘게 내려오고 있다고 봅니다.

    초기 자바 책에서 클래스와 객체지향이라는 우월성을 강조 하고 싶은 '광고'를 보고, 순진하게 믿었던 개발자들의 잘못입니다.

    자바 책에서는 '잘못 작성한 C코드'와 '훌륭하게 작성한 JAVA코드'를 비교하여 JAVA의 우월성만을 강조 하였습니다.

    비유하면 한국의 조기축구회와 프리미어리그의 축구를 비교하여, 한국의 수준은 이렇다고 말을 한 겁니다.

    잘못 작성한 JAVA코드와 훌륭하게 작성한 C코드를 비교하면 어떤 결과가 나올까요?

    JAVA코드로 하나의 클래스에 모든 기능을 정의하는 초보자는 없는 건가요?


    이상의 내용은 오래전 제가 객체를 이해하는 시기에 이해한 것입니다.

    아래와 같이 세련되게 표현이 가능하다는 것은 이후 알게 되었습니다.


    "객체지향 언어가 아니라 객체지향 설계이다."



    이 게시물을 추천한 분들의 목록입니다.
    [1] 2021/04/23 17:09:20  162.158.***.37  말미잘  18013
    [2] 2021/05/06 22:05:55  162.158.***.229  외쳐BB!!  213105
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    7272
    최첨단 범죄 조직스토킹 설명.png eatsleep 21/09/08 22:28 13453 0
    7270
    유니티에서 개발자들을 위한 공모전을 진행하고 있습니다! 유니티코리아 21/08/25 14:33 1237 0
    7268
    월 90이면 사용할 수 있는 로봇 [5] 펌글 항룽랑링롱륑 21/08/08 11:13 2503 2
    7267
    드라이빙패드 초기화 할 방법이 있나요? 외부펌금지 히소카 21/08/07 13:07 1254 0
    7265
    구형 에어컨을 1시간에 20분씩만 작동되게 하는 방법 없을까여? [6] 혹스터언 21/08/03 02:59 1782 0
    7262
    Google이(가) 계속 중단됨 [2] 베스트금지베오베금지본인삭제금지외부펌금지 제왕이회옥 21/06/22 15:21 2172 0
    7261
    커뮤니티 운영 수익/비용 창작글 피크닉복숭아 21/06/15 14:32 1655 0
    7259
    어도비가 안되요 ㅠㅜ [1] 차오처오 21/06/07 03:10 3052 0
    7258
    브라우저 인증서 문제 아시는 분 계신가요? [7] 우가가 21/06/04 19:18 1569 0
    7256
    컴파일러 없이 모듈하나 코딩하기 [5] 창작글 iT개발자 21/04/29 19:07 1913 2
    7255
    버그 검증에도 마음이 중요하다 [1] 창작글 iT개발자 21/04/29 11:36 1356 0
    7254
    자바 이클립스 질문 [2] 창작글 qing香 21/04/26 18:21 2656 0
    C언어의 잘못된 이해 [4] 창작글 iT개발자 21/04/23 14:38 2166 2
    7252
    3개월 개발기간 중, 2개월을 코딩 한 줄 안하다 [4] 창작글 iT개발자 21/04/20 15:16 2194 5
    7250
    개발자의 꿈 창작글 iT개발자 21/04/15 15:03 1527 0
    7249
    현존하는 사이트를 앱으로 만들려면.. [2] 본인삭제금지 시러시러 21/04/15 09:13 1455 0
    7248
    개발자의 꿈 _ 컴파일 씩이나 했다 [1] 창작글외부펌금지 iT개발자 21/04/13 04:09 1387 1
    7247
    멍청한 개발 경제학 [1] 창작글 iT개발자 21/04/08 15:55 1328 1
    7246
    print 함수가 쉽다는 분은 필독 [1] 창작글 iT개발자 21/04/08 14:32 1570 2
    7245
    상호배타 오류에 대한 설명 비교 [3] 창작글 iT개발자 21/04/08 14:21 1078 2
    7244
    프로그램 조기 교육에 반대 창작글 iT개발자 21/04/08 03:42 1193 1
    7243
    개발자는 왜 죄인이 되어야 하나 iT개발자 21/04/08 00:07 1126 1
    7242
    개발자의 꿈 _ 일등을 포기하면 행복해 질 수 있다 등 창작글외부펌금지 iT개발자 21/04/07 23:57 1024 1
    7241
    개발자의 꿈 _ 알고는 있으나 왜 행동은 다른 이유 [2] 창작글외부펌금지 iT개발자 21/04/03 22:37 1094 2
    7240
    개발자의 꿈 _ 무모한 야근 비판 등 [2] 창작글외부펌금지 iT개발자 21/04/03 20:12 1161 3
    7239
    개발자의 꿈 _ 프로그램의 본질 (비전공자도 이해 가능) [2] 창작글외부펌금지 iT개발자 21/04/03 15:55 1335 4
    7238
    개발자의 꿈 _ 낙하산을 깨다 [4] 창작글외부펌금지 iT개발자 21/04/03 11:18 1138 3
    7237
    개발자의 꿈 _ 반성문 쓸 때 근거자료 첨부 [2] 창작글외부펌금지 iT개발자 21/04/02 18:42 1077 4
    7236
    개발자의 꿈 2 외부펌금지 iT개발자 21/04/02 10:10 1029 5
    7235
    개발자의 꿈 [3] 외부펌금지 iT개발자 21/04/02 08:14 1481 5
    [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [다음10개▶]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈