모바일 오유 바로가기
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도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    ㄱㅡ님의
    개인페이지입니다
    가입 : 10-10-15
    방문 : 785회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_8519
    작성자 : ㄱㅡ
    추천 : 11
    조회수 : 1937
    IP : 118.45.***.254
    댓글 : 26개
    등록시간 : 2015/03/10 13:32:14
    http://todayhumor.com/?programmer_8519 모바일
    [펌][개발자 컬럼] C/C++ 를 학습해도 괜찮을까?
    <div>재미난 글을 봤습니다.</div> <div> </div> <div>어디선가 요즘은 c/c++보다 자바가 빠르다는 말도 안되는 소리도 하던데.... </div> <div> </div> <div>결론은 용도가 모두 다르다! 라는것</div> <div> </div> <div>아이폰이 나오면서 Object-c가 급상승하지만 요즘 하락세군요...... Object-c실컷 배웠는데...</div> <div> </div> <div>암튼 저는 아직도 자바를 싫어하는 1人... </div> <div> </div> <div>메모리는 내가 관리해야지.. 다른누군가가 관리해주는건 싫어 ㅠㅠ</div> <div> </div> <div>잡설은 여기까지 하고 재밋게 읽어주세여</div> <div> </div> <div>퍼온거니까 저한텐 머라하지 마세여 ㅋ</div> <div> </div> <div>출처 : <a target="_blank" href="http://skillsocius.com/220279437944" target="_blank">http://skillsocius.com/220279437944</a></div> <div> </div> <div><span style="font-family:'나눔고딕', NanumGothic;font-size:12pt;"><strong><font face="굴림">배경</font></strong></span></div> <div align="justify" style="text-align:justify;line-height:2;"><a class="con_link" href="http://www.quora.com/Is-learning-C++-still-worthwhile?redirected_qid=3295296" target="_blank"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">Quora에서 흥미로운 질문</font></span></a><font face="굴림"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">을 보았다. C++를 배우는게 아직 가치가 있는지에 대한 질문이었다. 이러한 질문을 이제 시작하는 분들에게 가끔 받기도 한다. 횟수로 벌써 </span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">14년 넘게 C/C++ 개발 경력을 가지고 있는 나에겐 참으로 의미있는 질문이었다. </span></font></div> <div align="justify" style="text-align:justify;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><font face="굴림"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">Quora에 가보면 알겠지만 대부분 C++를 공부하는 것에 대해 긍정적인 것을 알 수 있다. 나도 C/C++의 골수팬이지만 지금은 C#, Javascript, Java</span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">에 빠져있다. 이밖에 다른 언어를 사용하는 것이 재밌고 흥미롭다.</span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"> 예전에 나는 자바 개발자를 우습게 봤고 심지어는 자바라는 개발언어 자체가</span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"> 경멸의 대상이었다.</span></font></div> <div align="justify" style="text-align:justify;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">이제는 그러한 생각들이 어리석었다는 것을 안다. 이와 비슷한 주제로 "</font></span><a class="con_link" href="http://skillsocius.com/10172852435" target="_blank"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">어떤 개발언어를 공부할까?</font></span></a><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">"라는 글을 남기기도 했다. 이번에는 C/C++이라는 언어 자체에 대해 여러가지 생각을 정리해 보고자 한다.</font></span></div> <div align="justify" style="text-align:justify;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:12pt;"><strong><font face="굴림">C/C++의 위기론</font></strong></span></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">C/C++은 1990년 중순 자바가 등장하고 선풍적인 인기를 끌면서 모두들 망할 것이라 생각했다. MS 또한 자바를 베껴서 C#를 만든 사실만 보더라도 그 매력이 얼마나 대단했는지 알 수 있다. 일단 자바라는 개발언어 자체가 C++에 반감을 가지고 태어난 언어였다. 그때 당시 자바 개발자들은 C++은 진정한 OO가 아니라고 주장하기도 했다.</font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">그 이유 중 하나는 클래스 관리가 너무 복잡했기 때문이었다. 자바는 단순히 폴더로 정리하고 import만 시켜주면 클래스에 바로 접근 할 수 있었다. 패키징도 간단했다. </font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">​</font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><font face="굴림"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">반면 C++은 그렇게 단순하지 않았다. 빠르지만 멍청한 컴파일러 덕분에 include는 세심하게 순서를 맞춰줘야만 했다. 폴더의 위치가 같을 수도 있고 다를 수도 있었기 때문에 파일 관리를 따로 잘 해줘야 했다. 다른 라이브러리와의 충돌도 빈번했기 때문에 전체 라이브러리에 대한 관리도 필수적이었다. C의 기능을 그대로 가져왔기 때문에 네이밍 폴루션에 대한 주의도 요했다. </span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">결국 설계 시에 개발자 역량이 너무도 중요했다.</span></font></div> <div align="justify" style="text-align:justify;line-height:2;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">또 자바 개발자들이 C/C++에 대해 가장 불만스러워 했던 것 중 하나는 메모리 관리 문제였다. 메모리의 생성이 스택과 힙에 따라 다르다는 사실부터 골치아팠다. "."과 "->"로 구분해서 접근하는 것도 짜증났다. (대부분의 개발언어는 "."만 사용한다.) 툭하면 잘못된 메모리 접근이라며 프로그램이 죽어버린다. 여차하면 메모리 릭이 발생하여 전체 시스템을 먹통으로 만들고 대충 개발하다간 취약점도 넘쳐나서 보안 문제도 많이 발생시킨다.</font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">"실수하는게 인간인데 이렇게 골치아파서야 제대로 된 비지니스 로직을 세울수나 있겠는가?"라는 것이 C/C++를 싫어하는 분들의 생각이었다. 자바는 이런 문제에 대해선 확실히 강점을 가지고 있었다. 메모리 하나만 보더라도 개발자가 관리를 하지 않는다는 사실이 너무나도 매력적이었다. 거기다 <span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">플랫폼 독립적이라는 덤까지 주니 많은 C/C++ 개발자들이 자바로 넘어가기 시작했다.</span></font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><font face="굴림"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">OS 점유율 90% 이상을 잡고 있던 MS의 태도는 어떠했을까? Visual Studio.NET이 나오면서 C++ </span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">개발자들에게 비주얼 베이직과 같은 방식으로 개발하라고 강요했다. Visual Studio 2008까지 C++ 개발자의 반 이상이, 아니 대부분이 Visual C++ 6.0를 사용하고 있었으니 MS가 C++ 개발자들을 얼마나 홀대 하고 있었는지 알만하다. 대표적인 기능이 클래스 위저드 인데 이 기능이 Visual Studio.NET 부터 사라진 것이다.</span></font></div> <div align="justify" style="text-align:justify;line-height:2;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><font face="굴림"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">그때 </span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">당시 2000년도쯤</span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"> MSDN 세미나도 갔었는데, C#이나 자바가 개발언어를 주도 할</span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"> 것이고 C/C++은 이제 사라질 것이라 전망 </span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">했었다. </span></font></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">​</font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:12pt;"><strong><font face="굴림">​현재의 C/C++의 위치</font></strong></span></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">지금의 C/C++은 어떤 위치에 있을까? 그 전문가들의 말처럼 C/C++은 망하고 있을까? </font></span><a class="con_link" href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html" target="_blank"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">TIOBE</font></span></a><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">(2015년 2월)에서 발표한 내용을 살펴보자.</font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><img width="548" height="352" class="_photoImage" alt="" src="http://postfiles15.naver.net/20150222_110/yo2dh_1424539084489Dfojf_PNG/%C4%B8%C3%B3.PNG?type=w3"></div> <div align="justify" style="text-align:justify;line-height:2;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><font face="굴림"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">오히려 자바(15.345%)가 뚜렷한 하향세를 보이고 있는 것을 알 수 있다. C(16.488%)는 꾸준히 지속되고 있고 C++(6.612%)도 한풀 꺽였지만 Objective-C(6.024%)를 꺽고 3위로 도약한 모습이다. 참고로 C#(5.738%)은 5위고 자바스크립트(3.514%)는 6위다. </span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">C/C++를 하나로 묶으면 25%에 육박하는 압도적인 점유율을 보인다. </span></font></div> <div align="justify" style="text-align:justify;line-height:2;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">거기다 "</font></span><a class="con_link" href="http://www.lextrait.com/Vincent/implementations.html" target="_blank"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">The Programming Languages Beacon</font></span></a><font face="굴림"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">"의</span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">에 따르면 </span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">2013년도 소프트웨어 제품 기준으로 </span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">MS Windows, Linux, Apple MAXOS, Google Chrome OS, Apple iPhone OS, Google Android, RIM BlackBerry OS 4.x, Amazon Kindle OS, Gnome, Google Desktop Search, Microsoft Office, Adobe Systems Acrobat Reader, Evernote, Oracle Database, MySQL, IBM DB2, Microsoft SQL Server, MS Internet Explorer, Safari, Google Chrome, Java <span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">Virtual Machine 등등등이 모두 C 이나 C++로 개발되었다. 아마 현재 시점에는 조금 달라진 소프트웨어도 있겠지만 대부분은 그대로 가고 있는 것으로 안다.</span></span></font></div> <div align="justify" style="text-align:justify;line-height:2;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">C++를 내놓은 자식처럼했던 MS도 Visual Studio 2010부터 C++ 개발자를 끌어모으기 위해 클래스 위저드 기능을 넣었다. 거기다 구글도 핵심 소프트웨어들은 모두 C/C++를 사용하고 있다. 국내의 온라인 게임서버도 대부분은 C/C++인 것으로 안다.</font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:12pt;"><strong><font face="굴림">C++의 강점</font></strong></span></div> <div align="justify" style="text-align:justify;line-height:2;"><font face="굴림"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">지금 수백개의 개발언어가 나와있다. 현재 응용 소프트웨어를 C++로 개발하는 경우는 이제 몇 남지 않았다. 윈도우 응용은 MFC에서 C#으로 많이 개발하고 있으며, iOS는 Objective-C나 Swift로 대부분 개발할 것으로 보인다. (Objective-C++를 사용하면 C++로 많은 부분을 개발할 수 있긴 하다.) 웹앱 같은 경우에는</span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"> 프론트엔드든 백엔드든 간에 C/C++로 개발하는 경우는 정말 찾기 힘들다. 주요 모듈 단위로 C/C++을 사용하기도 한다.</span></font></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">​</font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">불편하<span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">고 </span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">어렵고 리스크가 큰</span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"> C/C++은 도대체 왜 주요 소프트웨어의 개발언어로 채용될까. C/C++의 </span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">강점을 정리하면 다음과 같다.</span></font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">​</font></span></span></div> <ul><li style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><strong><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">높은 </span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">성능 속도</span></strong>: 모두가 첫번째로 꼽는 이유다. 컴파일 시에 CPU에 해당하는 최적의 바이너리를 생산해낸다. 자바나 C#의 성능 속도가 C/C++를 거의 근접했다는 말은 사실이기도 하지만 뛰어 넘을 수는 없다. 물론, 개발자의 역량에 따라 자바나 C# 보다도 구린 결과를 내놓기도 한다. </span></div></li> <li style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><strong><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">컴퓨터 구조와의 밀접한 관계</span></strong>: C/C++은 컴퓨터 구조와 밀접한 관계를 가졌으며 이러한 자원을 활용한 개발이 가능하다. 즉, 하드웨어의 성능을 끌어올릴 수 있는 개발이 가능하다. 메모리를 직접 관리한다는 것이 단점일 수도 있지만 오히려 장점이 될 수도 있다는 의미다. 또한 멀티코어에 맞춰 다양한 병렬처리 기법을 직접 제어하기도 수월하다.</span></div></li> <li style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><strong><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">OS 개발언어</span></strong>: 결국 소프트웨어는 운영체제 위에서 동작한다. 그렇다면 운영체제가 개발된 언어가 가장 궁합이 잘 맞는다는 의미이기도 하다. 대부분의 운영체제는 모두 C/C++로 개발되었다. </span></div></li></ul><div align="justify" style="text-align:justify;line-height:2;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><font face="굴림"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">정리를 해놓고 보니까 </span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">모두 같은 말처럼 느껴진다. <strong><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">결국 성능 </span></strong></span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><strong><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">속도다.</span></strong> 이젠 안전성 좋고 성능 좋은 <a class="con_link" href="http://www.boost.org/" target="_blank">boost</a>와 같은 C/C++ 오픈소스가 지천에 널렸다. <a class="con_link" href="http://www.qt.io/" target="_blank">QT</a>와 같은 UI 프레임워크를 사용하면 플랫폼 독립적인 개발도 가능하다. 이제 위험한 코드를 양산할 확률이 예전만큼 크지 않다. 그리고 어떤 코드가 위험한지는 <a class="con_link" href="http://cwe.mitre.org/index.html" target="_blank"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">CWE(Common Weakness Enumeration)</span></a> 같은 곳을 잘 참조하면 많이 피해갈 수 있다. 이에 따라 정적/동적 분석툴들도 다양하게 배포되고 있다.</span></font></div> <div align="justify" style="text-align:justify;line-height:2;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">거기다 C/C++은 아직도 진화하고 있다. 불편했던 메모리 관리 문제나 다른 언어들의 좋은 장점들을 흡수하여 발표하고 있다. 현재 C는 C11, C++은 C++ 11까지 발표된 것으로 안다. (참고로 C와 C++은  같은 워킹 그룹이 아니다. 따로 발표하고 있으며 다른 언어로 인지하는 것이 옳다.)</font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><strong><span style="font-family:'나눔고딕', NanumGothic;font-size:12pt;"><font face="굴림">C/C++ 를 통해 얻을 수 있는 능력</font></span></strong></span></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">C/C++은 혼자 공부하기에는 분명 어려운 개발언어다. 대부분 "포인터"에서 많이 좌절하곤 한다. 결국 메모리에 대한 개념이 너무 어렵다. 그 이유는 운영체제에 대한 기반 지식 없이 무턱대고 C/C++를 공부하려하기 때문이다. C 언어는 유닉스라는 운영체제를 최초로 탄생시킨 개발언어다. (MAC OS X와 iOS 기반이 유닉스다.) 그만큼 운영체제와 매우 밀접한 관련이 있다.</font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">​</font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">그래서 C/C++ 입문자를 위해 다음과 같은 글도 남겼다.</font></span></div> <div align="justify" style="text-align:justify;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"></span></div> <div align="justify"> <table class="__se_tbl" style="border-width:1px 1px 0px 0px;border-style:solid solid none none;" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td style="border-width:0px 0px 1px 1px;border-style:none none solid solid;width:546px;height:72px;background-color:rgb(255,255,255);"> <div style="line-height:2;"> <a class="con_link" href="http://skillsocius.com/10180222475" target="_blank"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">초급 C/C++ 개발자를 위한 메모리 상식</font></span></a></div> <div style="line-height:2;"> <a class="con_link" href="http://skillsocius.com/220033223194" target="_blank"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">C/C++에서 메모리를 가지고 놀기위한 기술, 캐스팅 -1-</font></span></a></div> <div style="line-height:2;"> <a class="con_link" href="http://skillsocius.com/220123710367" target="_blank"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">C/C++에서 메모리를 가지고 놀기위한 기술, 캐스팅 -2-</font></span></a></div> <div style="line-height:2;"> <a class="con_link" href="http://skillsocius.com/220051523091" target="_blank"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">C/C++에서 바이트와 문자열(유니코드)의 이해</font></span></a></div></td></tr></tbody></table></div> <div align="justify" style="text-align:justify;line-height:2;"> </div> <div align="justify" style="text-align:justify;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"></span></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">결국 C/C++를 제대로 공부하면 메모리 관리, 파일시스템, 네트워킹과 같은 컴퓨터 구조에 대한 깊은 이해가 가능하다. 물론 이러한 지식을 얻기까지 꾸준한 정진이 필요한 건 사실이다. 경력이 10년이 넘어도 제대로 된 지식을 쌓지 못한 개발자들도 많이 봐왔기 때문이다. 이렇게 말하는 나도 부족함을 느낀다. </font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><strong><font face="굴림"><span style="font-family:'나눔고딕', NanumGothic;font-size:12pt;">개발자가 되려면</span><span style="font-family:'나눔고딕', NanumGothic;font-size:12pt;"> 무조건 C/C++를 공부해야 할까?</span></font></strong></span></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">배경에서 언급했던 이 질문을 대답해 보라면 나는 "아니오"다. 모든 개발자가 C/C++를 할 필요는 없다고 생각한다. 불과 몇년전만 하더라도 개발자가 되려면 반드시 C/C++를 공부해야 한다고 생각했다. 나 자신이 이를 통해 얻은 것이 너무도 많았기 때문이다. 그리고 C/C++를 모르면 프로그래밍에 대한 깊은 이해가 불가능하다고 생각했다.</font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">하지만 이제는 너무도 다양한 개발 분야가 존재한다는 사실을 깨달았다. 예를들어 오로지 프론트 앤드 개발자로 남고 싶다면 C/C++를 학습하는 것이 얼마나 도움이 될지 잘 모르겠다. 이 경우는 비지니스 로직에 세우는 능력이 더 중요하지 않을까 싶다.</font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><font face="굴림"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">굳이 비교하자면 </span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">C/C++를 학습한다는 의미는 </span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">운전면허 1종을 따는 것과 비슷하다. 1종 면허가 있으면 2종 차량을 운전할 자격이 있다. 바로 할 수는 없겠지만 1종이 있다면 사고나지 않을 정도로 </span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">그 </span><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;">만큼 쉽게 배울 수 있다는 의미다. </span></font></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">​</font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">반면 2종 보통인 경우 7년 무사고면 1종 면허로 갱신이 가능하다. 즉, 7년동안 2종에 충실하면 그제서야 1종을 몰더라도 쉽게 운전할 수 있다는 의미다. (하지만 2종 오토라면 1종 시험을 다시 봐야 한다.)</font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">C/C++를 제대로 사용하고 있는 개발자라면 자바라는 개발언어를 배우는 것이 그렇게 어렵지 않다. 다른 언어도 마찬가지다. Objective-C나 자바스크립트같이 패러다임이 달라진 것은 조금 공부를 해야겠지만 문법이나 흐름자체에서 헤매는 경우는 거의 없다. 내 경험상 C/C++ 경력은 다른 개발언어를 이해할 때 정말 큰 도움이 된다.</font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">반면 자바 개발자라면 C/C++를 학습한다는 것이 만만한 일이 아닐 것이다. 2종 보통 면허를 7년 무사고로 1종으로 가는 것처럼 자바에 능통하면 C/C++를 학습하는것이 조금은 쉬워질지도 모르겠다. 하지만 아마도 모든 것이 부조리해 보이지 않을까 싶다.</font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><br></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">C/C++은 다른 개발언어에 비해 확실히 진입장벽이 높다. 하지만 이는 경쟁력이 있다는 의미이기도 하다. 나에게 쉬운 것은 남에게도 쉽다는 사실을 잊지 말아야 한다. 영어를 잘하는 사람을 대우해주는 이유는 모두들 수많은 시간을 투자했지만 능통하기가 어렵다는 사실을 우리는 알고 있다. </font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">​</font></span></div> <div align="justify" style="text-align:justify;line-height:2;"><span style="font-family:'나눔고딕', NanumGothic;font-size:10pt;"><font face="굴림">C/C++을 모든 개발자가 학습할 필요는 없다. 자신이 가야하는 길에 프론트 앤드 개발자처럼 지금 상황에서도 전혀 사용할 일이 없다면 정말로 필요없다고 생각한다. 다만 코어 개발자를 노리거나 경쟁력을 원한다면 C/C++도 자신의 학습 로드맵에 넣어야 하지 않을까 생각해본다.</font></span></div> <div class="autosourcing-stub-extra"> <div style="margin:11px 0px 7px;padding:0px;font-family:Dotum;font-size:12px;font-style:normal;font-weight:normal;"><strong style="padding:0px 7px 0px 0px;">[출처]</strong> <a target="_blank" href="http://blog.naver.com/yo2dh/220279437944" target="_blank">[개발자 컬럼] C/C++ 를 학습해도 괜찮을까?</a><span style="padding:0px 7px 0px 5px;">|</span><strong style="padding:0px 7px 0px 0px;">작성자</strong> <a target="_blank" href="http://blog.naver.com/yo2dh" target="_blank">sensible</a></div></div>

    이 게시물을 추천한 분들의 목록입니다.
    [1] 2015/03/10 13:41:20  183.99.***.85  bboy엘리  274185
    [2] 2015/03/10 14:18:05  59.13.***.130  오렌지쥬스a  601374
    [3] 2015/03/10 14:21:10  218.236.***.161  돈로사리오  555749
    [4] 2015/03/10 16:08:31  222.109.***.99  MERGE  163312
    [5] 2015/03/10 19:03:22  121.67.***.202  mama  51369
    [6] 2015/03/10 19:46:59  223.62.***.66  게임할줄몰라  115133
    [7] 2015/03/10 23:17:14  118.41.***.83  자켄  542809
    [8] 2015/03/11 01:44:53  121.143.***.81  황금비  483546
    [9] 2015/03/11 14:02:44  175.223.***.210  이스터에그남  391278
    [10] 2015/03/11 15:49:25  117.111.***.232  쓰레드  517943
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

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

    번호 제 목 이름 날짜 조회 추천
    107
    아 경쟁전 다시는 안한다 ㄱㅡ 18/01/27 21:13 94 1
    106
    가상화폐의 존재의 목적은 무엇인가? [4] 창작글 ㄱㅡ 17/12/13 17:08 190 2
    105
    cpu도 중고로 팔리나요? [8] ㄱㅡ 17/12/01 17:17 122 0
    104
    아오.... 진짜 도로위의 구타유발자들 [5] ㄱㅡ 15/04/04 10:40 223 1/4
    103
    본삭금> 빛의 속도가 항상 일정하다는점이 참 궁금합니다. [10] ㄱㅡ 15/04/02 10:43 99 1
    102
    아오 롯데리아 씨댕 진짜(욕주의) ㄱㅡ 15/03/26 09:25 56 0
    101
    개발자욕하지 마세여 ㅠㅠ [6] ㄱㅡ 15/03/17 11:52 248 2
    [펌][개발자 컬럼] C/C++ 를 학습해도 괜찮을까? [12] ㄱㅡ 15/03/10 13:32 113 11
    99
    돌고래 올림픽2 [5] ㄱㅡ 14/12/23 19:58 70 6
    98
    메인보드 질문있습니다. [7] ㄱㅡ 14/12/23 14:34 33 0
    96
    미래는 백수천국? [1] ㄱㅡ 14/12/09 10:44 37 2
    95
    아~ 망했어요 ㅠㅠ [4] ㄱㅡ 14/10/28 11:30 187 2
    94
    견적상담합니당 [6] ㄱㅡ 14/10/20 22:36 45 0
    93
    자전거 타시는분들 부탁드립니다. [18] ㄱㅡ 14/09/26 12:49 110 2/7
    92
    투표 못할뻔했어요 ㄱㅡ 14/06/04 09:36 131 7
    91
    대구 시장 [3] ㄱㅡ 14/06/03 22:51 115 1
    90
    안드로이드로 갈아탄후 느낀점 [6] ㄱㅡ 14/05/26 13:57 87 2
    88
    여러분은 goto문 쓰시나요? [2] ㄱㅡ 14/03/22 01:17 32 0
    87
    c#이란 이름의 유래 아시나요? [2] ㄱㅡ 14/03/12 11:21 57 0
    86
    아이폰사면 주는 애플 스티커 [3] ㄱㅡ 14/03/10 14:23 101 0
    85
    저사양 견적문의입니다. [2] ㄱㅡ 14/03/06 10:14 40 0
    84
    흠흠..... 왜이런것만 보면 오유인들이 생각날까? [1] ㄱㅡ 14/01/27 16:10 203 0
    83
    치킨이라니... ㅠㅠ ㄱㅡ 14/01/14 17:25 29 0
    82
    선루프 좋은가요? [14] ㄱㅡ 14/01/10 15:03 243 0
    81
    불스원샷같은거 언제쯤 주입해주면 좋은가여? [7] ㄱㅡ 13/12/27 14:14 113 0
    80
    메가박스!!!!! 솔로 영화관 후기가 필요해!!! ㄱㅡ 13/12/26 11:11 28 0
    79
    스카이림 사양/os 질문 ㄱㅡ 13/12/16 13:59 44 0
    78
    물가가... 참 오르긴 마니 오르나바여 ㄱㅡ 13/12/16 10:12 49 1
    [1] [2] [3] [4]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈