게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
포인터와 블랙 박스 - 포인터의 몰락
게시물ID : programmer_16685짧은주소 복사하기
작성자 : 3dArtist
추천 : 3
조회수 : 943회
댓글수 : 18개
등록시간 : 2016/04/13 16:07:15
학기초 효과도 사라지고, (초보자 분들의 질문이 사라지고), 글 리젠이 바닥을 길 때, 선거도 했겠다, 바로 일 시작하기는 뭐 하니 광역 어그로를 끌어 볼까 합니다. 뭐냐구요? 당연히 포인터지요. 왜 포인터는 몰락하는가? 간단히 왜 안 쓰는가? 뭐 이런 얘깁니다.

길게 쓸 필요없이 포인터는 메모리 주소를 나타냅니다. 메모리 주소하면 하드웨어에 있는 주소지요. 그래서 어셈을 썼습니다. 그렇습니다. 포인터를 제대로 쓸려면 하드웨어 이해가 필수입니다. 이런 상황에서 c가 나름 대중화되면서 포인터의 몰락이 시작됩니다. 그러니까, 잘 안 쓰기 시작합니다. 아니, 대도록 안 써야 합니다. 왜냐구요? c언어의 철학적 기반인 함수에 그 답이 있습니다.

함수 정의가 뭘까요? 내부는 알 필요없다 입력과 출력만 알고 쓰겠다. 바로 블랙박스. 수학시간에 배우잖아요. 난 알고 싶지 않아, 그냥 가져다 쓰기만 할 거야. 이게 함수의 철학적 의미(그냥 정의) 입니다. 그러니까, 함수는 추상화를 전제로 하는 거고, 몰라도 된다면 몰라야 한다는 철학적 의미가 있습니다. 이런 c를 쓰면서 굳이 안 써도 되는 포인터를 쓴다면 철학적으로 c와 맞지 않는 거죠. 포인터는 꼭 필요할 때만 써야 하는 고급 기술(꼼수) 입니다.

c++이 나옵니다. 추상화 정도가 더 심해집니다. 오브젝트는 함수 수준 이상의 추상화입니다. 당연히 포인터는 더 안 써야합니다. 실제로도 그렇습니다. 포인터하면 생각나는 자료구조, 트리니 뭐 이런 거.. c로 만들 때는 나름 각자 만들어 쓰던 자료 구조, c++이 나오면  stl이란 것도 나오기 시작합니다. 그냥 스택, 큐 가져다 쓰면 됩니다. 굳이 메모리 단계까지 포인터로 이해할 필요가 없습니다. 쓰는 방법만 알면 가져다 쓰면 됩니다.

java가 나옵니다. 드디어 포인터는 언어 자체에서 사라집니다. 뭐 꼼수에 꼼수를 써서 구조 분석을 하는 분들이 있긴 한데, 언어의 철학과는 전혀 맞지 않습니다. 메모리 구조는 이제 더 이상 자세히 알 필요가 없습니다. 철학적인 화두로 국한된 것이 아니라 실제로 쓸 일이 없습니다. (꼼수 제외)

그래도, 게임 같은 경우 명백을 유지했지만, 요즘은 게임도 포인터 안 써도 됩니다. 엔진 가져다 쓰니까요. 스크립트 씁니다. 엔진을 엄청 잘 써서 최적화해 봤자 보통 프로그래머보다 속도면에서 그리 차이 나지 않습니다. 10% 정도? 하지만, 이미지 같은 거 잘 쓰면 100%까지 속도가 올라갑니다. 다른 말로 하면 프로그래머보다 컨텐츠 제작자 분들의 순련도가 떨어진다고 볼 수도 있습니다. 뭐 시간 좀 지나면 이쪽도 별 차이 없겠지만, 적어도 10년 전에는 그랬습니다. (너무 옛날인가? 아니야 포인터는 20년도 더 됐어..) 이제 포인터로 속도를 올리던 시대는 가고 속도에서조차 컨텐츠로 승부를 봐야 합니다. 

간단히 말해서 생산성과 언어 철학상, 블랙 박스, 즉 추상화 때문에, 하드웨어까지 접근하겠다는 포인터는 몰락하고 있습니다. 하드웨어까지 알아야 하는 경우, 임베디드 같은, 몇 몇 경우를 빼면 포인터는 몰락하고 있고.. 저한테는 이미 몰락했습니다. 몇 년 째 안 쓰고 있어요. 시작을 c라 우기던 b언어로 시작을 했는데, 어셈보다 느린 거 배워 봤자 결국 어셈 써야 된다는 소릴 들으면서 배웠는데, 이제는 포인터도 안 씁니다. 

그래서 광역 어그로를 끌어 볼까 합니다. 포인터 그거 대충 알고 넘어가세요. 학점 좀 포기하면 나중에 ,졸업 후 작업할 때, 크게 문제 될 거 없습니다.

p.s. 하지만, 취업할 때 면접에서 안 나온다는 소리는 안 했습니다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호