모바일 오유 바로가기
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
    조회수 : 2176
    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 초과시 해당없음)

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

    번호 제 목 이름 날짜 조회 추천
    7399
    국제인공지능대전 다녀왔습니다 [1] 베스트금지 단호보이 24/05/01 20:43 499 2
    7398
    여러분 나중에 AI로봇 상용화 성공하면 뭐 하고 싶으신가요?! [5] 할배궁디Lv4 24/04/09 16:31 747 1
    7397
    알집 매달 990원 납부하면서 (프로그래머 한 명이라도 살라고) [3] 똥꾸빵꾸똥싸개 24/03/28 09:43 883 2
    7396
    [자작앱홍보]시간관리 끝판왕으로 선언합니다.!(일정 무료 무제한 등록!) Daycrush 24/03/20 14:21 784 0
    7391
    휴대용 AI비서 래빗 r1이라는 제품 흥미롭습니다. 고독한하루 24/03/18 15:14 878 0
    7390
    동생이 만든 어플인데 UI/UX측면에서 어떤지 평가 좀 부탁드려요~~~ [2] 마린907 24/03/06 09:43 1034 0
    7386
    요즘알뜰 통신사가 Mini 데이터 센터 사업에도 진출했네요 창작글 미도원 24/01/02 11:17 1434 0
    7385
    챗GPT AI가 스스로 스토리부터 비디오까지 무인 자동 제작 도전기 [3] aitech 23/12/28 17:38 1510 1
    7383
    LG 관련해서 질문 하나 드립니다. 윰고슴도치 23/11/26 14:14 1613 0
    7381
    대학교 전산실 경험해보신분? 질문드립니다. [4] 베스트금지베오베금지본인삭제금지외부펌금지 웃대메템 23/10/18 10:18 2071 0
    7380
    넷플, 유튭 프리미엄, 스포티파이 등 구독계정 저렴하게 구독하는법 외부펌금지 나술나수리 23/10/12 10:10 1977 0
    7379
    부트캠프를 고르는 중이거나 수강 중인 분들은 설문참여하고 상품받아가세요! 창작글 부추캠프 23/10/07 10:11 1763 0
    7378
    [유니티 코리아] MWU 2023 투표하고 푸짐한 경품 받아가세요! engine1 23/10/06 18:52 1616 0
    7377
    AI를 너무 남발하네요 [1] 외부펌금지 닭사모 23/08/26 20:20 2416 0
    7376
    [유니티 코리아] MWU 코리아 어워드 2023 마감 임박! mwuaward2023 23/08/26 13:56 1813 0
    7375
    [유니티 코리아] MWU 코리아 어워드 2023 mwuaward2023 23/08/13 19:50 1891 0
    7374
    형님들 이 메인보드 모델명이 뭘까요 [3] 입에넣은고추 23/08/09 21:55 2084 0
    7373
    혹시 TV 잘아시는분 [1] 경찰차 23/07/25 19:54 2186 0
    7372
    진짜 절박해서 정말 1150원 첫끼간절해서 도움주실분ㅠ.. 명금123 23/07/17 22:27 2095 0
    7371
    겜트북 구매했다 간단글남긴다. 창작글 enfjenfej 23/07/06 13:49 2121 0
    7370
    [유니티 코리아] MWU 코리아 어워드 2023 mwuaward2023 23/07/04 16:47 1948 0
    7369
    부산이란 지역에서 프로그래머 구인을 할 수 있을지.. [4] 폴팡 23/05/31 12:19 2653 2
    7368
    모바일 카카오톡 링크열기 간단한 질문드립니다. ㅠㅠ [1] 안트로젠떡상 23/05/29 03:12 2275 0
    7365
    !! 마감임박 [스파르타코딩클럽] 국비지원 0원 내일배움단 모집중 공돌이공공 23/05/03 17:11 2315 0
    7358
    이런 사이트 주소 보신적 있으신가요? [3] 꿈꾸는수의사 23/04/24 08:19 2564 0
    7357
    엑셀에서 두줄로 된 금액을 두칸으로 나누는 법 좀 알려주세요 [9] 삼월이집 23/04/21 15:02 2759 0
    7356
    바탕화면에 디데이를 띄울 수 있는 앱입니다. Desktop :D-Day [1] 창작글 NALDA 23/04/21 02:51 3270 2
    7354
    혹시 ai로 그림 그리시는 고수분 계신가요? 판다팬더팬서 23/03/31 12:02 2628 1
    7353
    메인보드 질문합니다. [1] 창작글베스트금지본인삭제금지 kariust 23/03/21 21:05 2356 0
    7352
    오늘 공개된 OpenaAI의 GPT-4 핵심 요약 알파고5 23/03/15 13:38 2971 4
    [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [다음10개▶]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈