모바일 오유 바로가기
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도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    Lambda님의
    개인페이지입니다
    가입 : 11-12-03
    방문 : 1390회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_8000
    작성자 : Lambda
    추천 : 6
    조회수 : 22285
    IP : 121.133.***.1
    댓글 : 11개
    등록시간 : 2015/02/04 14:16:02
    http://todayhumor.com/?programmer_8000 모바일
    레퍼런스의 개념, 그리고 포인터
    <div><span style="font-size:9pt;line-height:1.5;">헷갈리기 쉬운 레퍼런스와 포인터 각각의 개념과 그 둘의 관계에 대해 적어 봤습니다.</span></div> <div><br></div> <div>* 오해를 방지하기 위해 레퍼런스(reference)에 대해 미리 언급을 하자면 여기서의 레퍼런스는</div> <div>c++에서 포인터와 동시에 사용하는 그 Reference를 직접적으로 지칭하는게 아닙니다.</div> <div>이론적인 개념으로서의 더 추상적인 의미의 레퍼런스를 말하는 겁니다.</div> <div><br></div> <div><br></div> <div>- 레퍼런스란?</div> <div>영어 뜻 그대로 "참조"라는 뜻입니다.</div> <div>참조는 대상이 있어야 의미가 있기 때문에 레퍼런스에는 항상 참조하고 있는 대상이 있게 됩니다.</div> <div>즉 레퍼런스 자체는 무언가를 참조하고 있는 놈이고 그 참조를 따라가면 대상이 나오게 됩니다.</div> <div><br></div> <div><br></div> <div>- 레퍼런스의 개념이 필요한 이유?</div> <div>효율성 때문에 그렇습니다.</div> <div>예를들어 설명하자면</div> <div>학술서적이나 논문 제일 뒤에 보면 참고 문헌이 나옵니다.</div> <div>본문에서 쓰인 이론적 바탕이나 인용문이 있는 문헌들입니다.</div> <div>그 문헌들을 사용할때 문헌 내용을 통째로 들고와서 논문 뒤에 붙이게 된다면 배보다 배꼽이 더 큰 상황이 됩니다.</div> <div>수십장의 논문을 쓰는데 참고문헌만 수백장이 붙어버리게 되는 형국입니다.</div> <div>너무나 비효율적입니다.</div> <div>그래서 이런 서적들에서도 레퍼런스를 사용하게 됩니다.</div> <div>실제 참조하고 있는 대상을 들고있지않고 그 대상에 대한 참조(여기선 제목, 저자 등의 정보)만 가지고 있는게 더 효율적입니다.</div> <div>컴퓨터 세계로 옮겨와서 이해해보면</div> <div>내가 사용하고 싶은 자료를 매번 통째로 가져와서 작업을 하면 공간을 크게 차지하니 공간 효율성이 떨어지고</div> <div>매번 내가 있는 장소로 모든 내용을 다 옮겨와야 하니 시간 효율성도 떨어지게 됩니다.</div> <div>대신 레퍼런스를 이용해서 자료가 있는 장소로 가서 해당 내용을 사용하면 됩니다.</div> <div>자료가 있는 장소로가는(역참조, dereference) 비용이 들지만 그 내용을 그대로 다 가져오는 비용에 비하면 훨씬 적습니다.</div> <div><br></div> <div><br></div> <div>- 포인터란?</div> <div>포인터는 레퍼런스의 구현 방법 중 하나입니다.</div> <div>포인터는 대상을 참조할 때 대상의 시작 메모리 주소를 이용하게 됩니다.</div> <div>포인터를 역참조(c에서는 * 연산자)하면 메모리상의 해당 주소로 찾아가게 되어 포인터의 대상 자료를 이용할 수 있게 됩니다.</div> <div>이런 구현방법은 만들기 나름이라서 대상을 찾아갈 수만 있으면 어떠한 방법을 써도 상관이 없습니다.</div> <div>앞선 서적의 예를 다시 들면 </div> <div>보통 참고문헌이 사용하는 레퍼런스 방법은 제목, 저자, 발표한 학회 등의 정보를 적어 두는 겁니다.</div> <div>다른 방법으로 구현하자면 모든 책에 고유한 일련번호를 붙이고 참고문헌에는 그 인련번호만 써두어도 가능할 겁니다.</div> <div> <div>(더 정확히 이야기 하면 포인터는 개발자에게 직접 메모리에 접근할 수 있는 방법을 제공하는 수단입니다.</div> <div>그리고 레퍼런스 기능은 그 메모리 접근 능력을 이용해 개발자가 직접 수행하도록 일임하는 겁니다.</div> <div>요즘의 언어는 레퍼런스 기능을 언어가 대신 수행해 줍니다.)</div></div> <div><br></div> <div><br></div> <div>- 레퍼런스와 포인터의 관계</div> <div>포인터는 레퍼런스의 구현방법 중 하나이기 때문에</div> <div>포인터는 레퍼런스라고 할 수 있습니다.</div> <div>하지만 레퍼런스를 포인터라고 하면 곤란합니다.</div> <div><br></div> <div><br></div> <div>- 포인터가 없는 언어에서의 레퍼런스</div> <div>대표적으로 자바와 같은 언어가 포인터가 없습니다.</div> <div>또 웹에서 주로 사용하는 자바스크립트에도 포인터가 없습니다.</div> <div>물론 이런 언어에서도 레퍼런스를 사용합니다.</div> <div>그런데 자바나 자바스크립트 사용하면서 레퍼런스에 대해 고민해본적 있나요?</div> <div>없을 겁니다.</div> <div>요즘 언어들은 레퍼런스의 사용방법을 사용자에게 노출시키지 않습니다.</div> <div>그걸 개발자가 일일히 생각해서 사용하면 실수할 여지가 많고 코딩이 복잡해지기 때문입니다.</div> <div>대신 해당 내용은 언어의 구현부분에서 사용자 모르게 은밀하게 처리 됩니다.</div> <div><br></div> <div><br></div> <div>- 그럼 포인터는 필요 없나?</div> <div>포인터는 메모리 단위로 매우 낮은수준의 컨트롤을 가능하게 해줍니다.</div> <div>때문에 높은 수준의 자유도를 얻을 수 있습니다.</div> <div>그래서 아주 잘만 쓴다면 언어가 직접 컨트롤하는 레퍼런스보다 더 효율적인 프로그램을 작성할 수 있게 됩니다.</div> <div>또한 하드웨어를 직접 조작해야하는 프로그래밍에서는 직접 메모리를 조작해야 하는 일이 많기 때문에</div> <div>여전히 그리고 앞으로도 사용하게 될 겁니다.</div> <div><br></div> <div><br></div> <div>끝.</div>

    이 게시물을 추천한 분들의 목록입니다.
    [1] 2015/02/04 14:34:07  116.34.***.146  레이즈  211735
    [2] 2015/02/04 14:37:38  112.175.***.201  navs  241922
    [3] 2015/02/04 15:06:20  123.212.***.153  슝슝3  284767
    [4] 2015/02/04 15:25:18  222.106.***.210  우리보리설이  210132
    [5] 2015/02/04 17:06:44  211.210.***.247  머래노  557976
    [6] 2015/02/05 15:34:23  223.194.***.95  신호처리  592795
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

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

    번호 제 목 이름 날짜 조회 추천
    9
    폭스바겐 배출가스 조작장치 3000cc 급까지 확대 [5] Lambda 15/11/03 11:01 140 3
    8
    가죽 두께에 대한 질문 [2] 베스트금지본인삭제금지 Lambda 15/09/04 16:00 20 0
    7
    우버택시 결국 입건 [5] Lambda 15/03/17 13:49 336 1
    레퍼런스의 개념, 그리고 포인터 [11] Lambda 15/02/04 14:16 52 6
    5
    선수협의 대응이 아쉽습니다. Lambda 14/12/16 15:08 82 2
    4
    비오는날 + 배수 안되는 도로 + 후륜구동 + 과속 = [9] Lambda 14/11/13 12:28 257 4
    3
    오늘 KBS1에서 급발진관한 시사기획 창 내용 좋네요 [3] Lambda 14/03/25 22:49 84 4
    2
    이번 쉐보레 에어백 결함 사건으로 보는 국내 모기업과의 유사점 [1] Lambda 14/03/14 14:11 141 1
    1
    쌍용차 이름 바꾼다고 합니다. [8] Lambda 14/03/10 16:12 302 2
    [1]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈