stanford-oval/wikipedia huggingface dataset:
채채퐁 김치퐁
목소리 출연

최덕희 - 토치
박은숙 - 미로
서광재 - 바츄
임은정 - 뚜기
이진화 - 무무
함수정 - 파롱
배정미 - 쵸쵸
홍영란 - 나나 / 샤이팡
설영범 - 촌장 / 리페 박사
(故) 오세홍 - 클레이번
이종구 - 부라부
김정호 - 모랭롤랑
임성표 - 펀치리스
최옥희 - 토치 할머니
장승길 - 카론
(故) 김관진 - 캡틴 몰리
장광 - 대마왕 아시크니스 / 폴루스
김민석 - 딘버
유해무 - 라이롱 / 꼬랑깨비
(故) 박상일 - 두꺼붕가
방영 목록

| 회차 | 부제 (서브 타이틀) | 방송 일자 |
| --- | --- | --- |
| 1화 | 모험을 떠나자 | 2002년 8월 9일 |
| 2화 | 어둠의 나무가 꽃필 때 | 8월 16일 |
| 3화 | 합체! 채채퐁 | 8월 23일 |
| 4화 | 등장! 두 번째 김치퐁! | 8월 30일 |
| 5화 | 공포의 슈퍼골렘 | 9월 6일 |
| 6화 | 아르바이트 대작전 | 9월 13일 |
| 7화 | 데블 몬스터의 등장 | 9월 27일 |
| 8화 | 등대마을의 비밀 | 10월 4일 |
| 9화 | 열정의 김치 몬스터 무무! | 10월 18일 |
| 10화 | 리폐폰을 찾아라 | 10월 25일 |
| 11화 | 대륙횡단 메일맨 딘버 | 11월 1일 |
| 12화 | 부라부의 습격 | 11월 15일 |
| 13화 | 모래열차를 움직여라 | 11월 22일 |
| 14화 | 4번째 김치퐁 쵸쵸를 찾아라 | 11월 29일 |
| 15화 | 카론의 성 | 12월 6일 |
| 16화 | 샘물의 요정 아름이를 구하라 | 12월 13일 |
| 17화 | 불타는 산의 비밀 | 12월 20일 |
| 18화 | 차원의 피라미드 | 12월 27일 |
| 19화 | 피라미드의 시험 | 2003년 1월 3일 |
| 20화 | 마법연료 매직스톤 | 1월 10일 |
| 21화 | 빛의 탑 | 1월 17일 |
| 22화 | 하린의 성 | 1월 24일 |
| 23화 | 붉은 바다로 가자 | 2월 7일 |
| 24화 | 대마왕 아시크니스의 부활 | 2월 14일 |
| 25화 | 어둠의 성! 섀도우 캐슬 | 2월 21일 |
| 최종화(26) | 채채퐁 최종합체 | 2월 28일 |
수상 경력

제30회(2003년) 한국방송대상 애니메이션부문 작품상
노성군

| --- | --- |
    : 

《대동여지도》
노성군(魯城郡)은 부여군 초촌면 일부와 논산시 북부(노성면, 상월면, 광석면)에 있던 옛 고을이다.
1914년 이후

| 0 | 1 | 2 | 3 |
| --- | --- | --- | --- |
조선총독부령 제111호
구 행정구역: 신 행정구역
| 월오(月午)면 신리/중리/통산리/낙동리/충보리/(공주군 진두면) 공평동리 일부, 산소리/당산리 | 논산군 | 상월면 | 신충(新忠)리, 월오리 |
| 상도(上道)면 후동리/대명리 일부, 대우리/소우리, 신평리/궁동리/촌산리/안산리/반곡리/무동리 일부/대촌리 일부, 용동리/수정리/와야리/상리/석전리 일부/(공주군 익구곡면) 양화동리 일부, 석종리/행정리/석전리 일부/대명리 일부/(공주군 익구곡면) 양화동리 일부,  | 논산군 | 상월면 | 대명(大明)리, 대우(大牛)리, 대촌(大村)리, 상도리, 석종(石宗)리, 지경(地境)리 |
| 하도(下道)면 | 논산군 | 상월면 | 숙진(淑眞)리, 한천(寒川)리, 주곡(酒谷)리, 학당(鶴塘)리 |
| 하도(下道)면 | 논산군 | 노성면 | 하도리 |
| 읍내(邑內)면 | 논산군 | 노성면 | 교촌(校村)리, 두사리, 송당(松堂)리, 읍내리 |
| 화곡(禾谷)면 | 논산군 | 노성면 | 노치(蘆峙)리, 죽림(竹林)리, 호암(虎巖)리, 화곡리 |
| 장구(長久)면 내촌리/접지산리/주봉리/대병리/소병리, 사교리 일부/구동리 일부/(소사면) 대정리 일부, 사교리 일부/(소사면) 대정리 일부/(공주군 곡화천면) 용연동리 일부/하반룡리/효죽리/봉익리, 산직리/율리 일부, 평전리/서변리/율리 일부/오강리 일부 | 논산군 | 노성면 | 병사(丙舍)리, 장구리, 효죽(孝竹)리 |
| 장구(長久)면 내촌리/접지산리/주봉리/대병리/소병리, 사교리 일부/구동리 일부/(소사면) 대정리 일부, 사교리 일부/(소사면) 대정리 일부/(공주군 곡화천면) 용연동리 일부/하반룡리/효죽리/봉익리, 산직리/율리 일부, 평전리/서변리/율리 일부/오강리 일부 | 논산군 | 광석면 | 율리, 오강리 |
| 광석(光石)면 은동리/입석리 일부/갈산리 일부/(득윤면) 지동리 일부, 내리/광리/이사리 일부/입석리 일부, 신촌리/신신대리/수항리/이사리 일부, 입석리 일부/산동리 일부/논산리 일부/(은진군 화지산면) 반월리 일부/(연산군 부인처면) 창리 일부 | 논산군 | 광석면 | 갈산(葛山)리, 광(光)리, 이사(梨寺)리, 산동(山東)리 |
| 천동(泉洞)면 소척리/대중리/소중리 일부/(광석면) 이사리 일부, 대척리/소중리 일부/왕전리 일부/(두사면) 두리 일부/항월리 일부 | 논산군 | 광석면 | 천동리, 왕전(旺田)리 |
| 득윤(得尹)면 윤리/중리 일부/지동리 일부/(광석면) 갈산리 일부/(석성군 원북면) 음상리 일부/갈산리 일부, 소당리/신당리/사동리 일부/대당리 일부/(장구면) 덕포리, 상리/중리 일부/대당리 일부, 사동리 일부/(읍내면) 송아리 일부 | 논산군 | 광석면 | 득윤리, 신당(新堂)리, 중리(中里), 사월(沙月)리 |
| 두사(豆寺)면 합정리/서변리/오류동리/대동리 일부/항월리 일부 | 논산군 | 광석면 | 항월(恒月)리 |
| 소사(素沙)면 | 부여군 | 초촌면 | 산직(山直)리, 소사리, 송정(山直)리, 진호(眞湖)리 |
청강만화역사박물관

| 청강만화역사박물관 |
| --- | --- |
정식 명칭: 청강문화산업대학교 만화역사박물관
약칭: 만화역사박물관
유형: 역사 박물관
국가: 대한민국
소재지: 경기도 이천시 마장면 청강로 162
개관일: 2002년 12월 10일 (2002-12-10)
소장 작품 수: 2,688점 (2019)
운영자: 청강문화산업대학교
설립자: 청강문화산업대학
웹사이트: museum.ck.ac.kr
청강만화역사박물관(靑江漫畵歷史博物館)은 대한민국 경기도 이천시의 역사 박물관으로, 대한민국 만화 역사만을 다루는 전문 박물관이다. 청강문화산업대학교가 부속 기관으로 설치하고 있으며, 대한민국내 전문대학이 설립 및 운영하는 몇 안되는 박물관 중 하나이다.
연혁

2002년 12월 10일 청강문화산업대학 부속 만화역사박물관 개관
2011년 12월 청강문화산업대학교 만화역사박물관으로 명칭 변경
전시 안내

청강만화역사박물관은 상설 전시실과 기획/특별 전시실 등으로 나누어 대한민국 만화 역사에 관한 다양한 물품을 전시 및 교육하고 있다.
관람 안내

9:00 ~ 17:00 (공휴일, 토요일 휴관)
관람료 무료
청강문화산업대학교 캠퍼스 내 위치
같이 보기

청강문화산업대학교
1996년 동계 아시안 게임 쇼트트랙

| 1996년 동계 아시안 게임 쇼트트랙  |
| --- | --- |
  
경기장: 헤이룽장 스케이팅 홀
개최 도시: 
개최 기간: 1996년 2월 5일 - 2월 7일
참가국: 4개국
«  1990년1999년  »
1996년 동계 아시안 게임의 쇼트트랙은 1996년 동계 아시안 게임의 경기 종목으로 1996년 2월 5일부터 2월 7일까지 진행되었다.
메달 집계

| 순위 | 국가 |    |    |    |   합계 |
| --- | --- | --- | --- | --- | --- |
| 1 |  대한민국 | 5 | 8 | 5 | 18 |
| 2 |  중화인민공화국 | 5 | 1 | 3 | 9 |
| 3 |  일본 | 0 | 1 | 2 | 3 |
| 합계 | 합계 | 10 | 10 | 10 | 30 |
메달리스트

| 종목 | 금 | 은 | 동 |
| --- | --- | --- | --- |
| 남자 500m 자세히 | 리자쥔  중국 (CHN) | 김동성  대한민국 (KOR) | 장훙보  중국 (CHN) |
| 남자 1000m 자세히 | 채지훈  대한민국 (KOR) | 송재근  대한민국 (KOR) | 김동성  대한민국 (KOR) |
| 남자 1500m 자세히 | 리자쥔  중국 (CHN) | 채지훈  대한민국 (KOR) | 이준환  대한민국 (KOR) |
| 남자 3000m 자세히 | 채지훈  대한민국 (KOR) | 김동성  대한민국 (KOR) | 송재근  대한민국 (KOR) |
| 남자 5000m 계주 자세히 |  대한민국  채지훈 김동성 김선태 이준환 |  일본  고데라 다케히로 데라오 사토루 이마이 히데토 요코야마 히데하루 |  중화인민공화국  리자쥔 장훙보 펑카이 마옌쥔 |
| 여자 500m 자세히 | 왕춘루  중국 (CHN) | 쑨단단  중국 (CHN) | 양양 (S)  중국 (CHN) |
| 여자 1000m 자세히 | 전이경  대한민국 (KOR) | 원혜경  대한민국 (KOR) | 데시가와라 이쿠에  일본 (JPN) |
| 여자 1500m 자세히 | 양양 (A)  중국 (CHN) | 전이경  대한민국 (KOR) | 김윤미  대한민국 (KOR) |
| 여자 3000m 자세히 | 김윤미  대한민국 (KOR) | 원혜경  대한민국 (KOR) | 전이경  대한민국 (KOR) |
| 여자 3000m 계주 자세히 |  중화인민공화국  왕춘루 쑨단단 양양 (S) 양양 (A) |  대한민국  김윤미 원혜경 안상미 김소희 |  일본  오자와 사치 데시가와라 이쿠에 야마다 노부코 무라오카 미와코 |
| v t e1996년 동계 아시안 게임 경기 종목 |
| --- | --- |
 바이애슬론  쇼트트랙  스피드스케이팅  아이스하키  알파인스키  크로스컨트리  프리스타일  피겨스케이팅 
| v t e아시안 게임 쇼트트랙 |
| --- | --- | --- |
:  1986  1990  1996  1999  2003  2007  2011  2017 
 메달리스트 목록
Give Up

| Give Up> 포스털 서비스의 스튜디오 음반 |
| --- | --- |
출시: 2003년 2월 19일
장르: 일렉트로
레이블: 서브 팝
《Never Gonna Give You Up》는 2003년 2월 19일에 발매된 포스털 서비스의 음반이다. 서브 팝에 의해 발매되었다.
곡 목록

전체 작사·작곡: The Postal Service
| # | 제목 | 재생 시간 |
| --- | --- | --- |
| 1. | The District Sleeps Alone Tonight | 4:44 |
| 2. | Such Great Heights | 4:26 |
| 3. | Sleeping In | 4:20 |
| 4. | Nothing Better (featuring Jen Wood) | 3:46 |
| 5. | Recycled Air | 4:30 |
| 6. | Clark Gable | 4:54 |
| 7. | We Will Become Silhouettes | 5:00 |
| 8. | This Place Is a Prison | 3:54 |
| 9. | Brand New Colony | 4:12 |
| 10. | Natural Anthem | 5:08 |
| # | 제목 | 재생 시간 |
| --- | --- | --- |
| 1. | There's Never Enough Time |   |
| 2. | We Will Become Silhouettes (performed by The Shins) |   |
| 3. | Such Great Heights (performed by Iron & Wine) |   |
| 4. | Suddenly Everything Has Changed (The Flaming Lips cover) |   |
| 5. | The District Sleeps Alone Tonight (DJ Downfall Persistent Beat Mix) |   |
| 6. | Such Great Heights (John Tejada Remix) |   |
| 7. | Nothing Better (Styrofoam Remix) |   |
| # | 제목 | 재생 시간 |
| --- | --- | --- |
| 1. | The District Sleeps Alone Tonight | 4:43 |
| 2. | Such Great Heights | 4:26 |
| 3. | Sleeping In | 4:21 |
| 4. | Nothing Better | 3:46 |
| 5. | Recycled Air | 4:29 |
| 6. | Clark Gable | 4:54 |
| 7. | We Will Become Silhouettes | 5:00 |
| 8. | This Place Is a Prison | 4:12 |
| 9. | Brand New Colony | 4:12 |
| 10. | Natural Anthem | 5:07 |
| 11. | Turn Around | 3:45 |
| 12. | A Tattered Line of String | 2:56 |
| 13. | Be Still My Heart | 3:03 |
| 14. | There's Never Enough Time | 3:32 |
| 15. | Suddenly Everything Has Changed (The Flaming Lips cover) | 3:26 |
| 16. | Against All Odds (Take a Look at Me Now) (Phil Collins cover) | 4:17 |
| 17. | Grow Old with Me (John Lennon cover) | 2:31 |
| 18. | Such Great Heights (John Tejada Remix) | 5:49 |
| 19. | The District Sleeps Alone Tonight (DJ Downfall Persistent Beat Mix) | 6:54 |
| 20. | Be Still My Heart (Nobody Remix) | 3:54 |
| 21. | We Will Become Silhouettes (Matthew Dear's Not Scared Remix) | 5:05 |
| 22. | Nothing Better (Styrofoam Remix) | 3:27 |
| 23. | Recycled Air (Live on KEXP) | 2:59 |
| 24. | We Will Become Silhouettes (performed by The Shins) | 3:01 |
| 25. | Such Great Heights (performed by Iron & Wine) | 4:16 |
인증

| 국가 | 인증 | 판매량/출하량 |
| --- | --- | --- |
| 캐나다 (뮤직 캐나다) | 골드 | 50,000^ |
| 영국 (BPI) | 실버 | 60,000 |
| 미국 (RIAA) | 플래티넘 | 1,000,000^ |
^출하량을 기반으로 한 인증 판매량+스트리밍을 기반으로 한 인증
평가

| 전문가 평가> 총 점수.출처 | 전문가 평가> 총 점수.점수 |
| --- | --- |
메타크리틱: 79/100
평가 점수
출처: 점수
AllMusic: 
Alternative Press: 4/5
Billboard: 
Entertainment Weekly: A−
Mojo: 
NME: 8/10
Pitchfork: 8.0/10
Q: 
Rolling Stone: 
The Village Voice: A−
Give Peace a Chance

〈Give Peace a Chance〉(한국어: 평화에게 기회를 주세요)는 존 레논이 쓰고 레논-매카트니로 크레디트된 노래다. 캐나다 몬트리올에서 레논이 오노 요코와 공연했다. 1969년 플라스틱 오노 밴드의 싱글로 애플 레코드를 통해 발매되었다. 이것은 레논이 비틀즈의 멤버로 있을 때 발매한 레논의 첫 싱글이고, 1970년대까지 미국의 반전 운동 앤섬으로 쓰였다. 미국 빌보드 핫 100에서는 14위까지 올랐고, 영국 싱글 차트에서는 2위까지 올랐다.
작곡과 녹음

노래는 레논이 캐나다 몬트리올에서 한 베드 인 도중 작곡했다. 기자가 침대에 머물러서 무엇을 이루고자 하는지 물었을 때, 레논은 "그냥 평화에게 기회를 주고 싶어서요"라고 대답했다. 그는 베드 인 중에 몇 가지 말을 꺼냈다. 녹음은 1969년 6월 1일 몬트리올의 퀸 엘리자베스 호텔 1742번 방에서 안드레 페리가 근처의 스튜디오에서 4개의 마이크와 4개의 포 트랙 테이프 레코더를 빌려 진행됐다. 녹음 세션에는 티모시 리어리, 라비 에이브러험 페인버그, 조셉 슈왓츠, 로즈마리 우드러프 리어리, 페툴라 클락, 딕 그레고리, 앨런 긴즈버그, 로저 스콧, 머레이 더 케이, 그리고 드렉 테일러를 비롯한 수많은 저널리스트와 다양한 유명인이 참석했고 이들은 가사를 따라 부르기도 했다. 레논은 어쿠스틱 기타를 연주했고, 스모더스 브라더스의 토미 스모더스도 어쿠스틱 기타로 합류했다.
1969년에 나온 판은 레논-매카트니로 표기되었다. 나중에 발매된 것은 레논만 표기되어 있다. 레논은 후에 "정말로 같이 쓴 요코가 아닌, 내 첫 독집 싱글을 매카트니와의 공동 작사로 표기한 것에 죄책감이 든다."며 후회를 표했다. 하지만 이는 급하게 녹음된 〈The Ballad of John and Yoko〉를 도와준 매카트니에 대한 일종의 감사이기도 했다.
〈Give Peace a Chance〉의 샘플
이 파일을 듣기에 문제가 있으면 미디어 도움말을 참조하세요.
발매와 여파

〈Give Peace a Chance〉는 오노의 〈Remember Love〉를 뒷면에 싣고 영국에서 1969년 7월 4일에 발매했다. 그리고 며칠 후인 7월 7일 미국에서 발매했다. 영국 싱글 차트에서는 2위까지 올랐고, 빌보드 핫 100에서는 14위까지 올랐다.
노래는 빠르게 베트남 전쟁 반전 운동과 반문화 운동의 앤섬이 되었다. 그리고 1969년 11월 15일 워싱턴 D.C.에서 전개된 시위에서 피트 시거가 이끄는 50만 명의 시위대가 이 노래를 불렀다.
싱글의 발매 뒤, 1975년에 싱글 컴필레이션 《Shaves Fish》에 잘린 형태로 음반에 실렸다. 노래가 완전한 길이로 음반에 수록된 첫 음반은 《The John Lennon Collection》이다. 엄밀히 따져, 밴드가 아직 해체하지 않은 상태에서 비틀즈의 멤버가 첫 번째 "솔로" 싱글을 발표했음에도 불구하고, 존 레논이 아닌 플라스틱 오노 밴드로 음악가가 표기되었다. 레논이 사망한 직후, 팬들은 다코타 밖에서 모여 〈Give Peace a Chance〉를 불렀다. 싱글은 1981년 1월에 차트에 재진입했고 33위까지 올랐다. 이 노래는 〈Instant Karma!〉, 〈Imagine〉와 함께 로큰롤 명예의 전당에 이름이 올랐다.
참여 인원

존 레논 – 리드 보컬, 어쿠스틱 기타
톰 스모더스 – 어쿠스틱 기타
오노 요코와 다른 사람들 – 박수, 탬버린, 백 보컬
티모시 리어리, 페툴라 클락 – 백 보컬
안드레 페리 – 타악기, 제작
차트 성적

| 차트 (1969) | 최고 순위 |
| --- | --- |
호주 Ö3 오스트리아 탑 40: 2
벨기에 울트라탑: 2
캐나다 RPM 싱글 차트: 8
독일 미디어 컨트롤 차트: 4
네덜란드 메가차트: 1
노르웨이 VG-리스타: 11
스위스 슈바이처 히트파라데: 4
영국 싱글 차트: 2
미국 빌보드 핫 100: 14
미국 캐쉬박스 Top 100: 11
〈Give Peace a Chance〉의 녹음 장면. 왼쪽에서 오른쪽으로, 로즈마리 리어리, 토미 스모더스, 존 레논, 티모시 리어리, 오노 요코, 주디 마르코니, 그리고 폴 윌리엄스.
C 언어 변수

C 프로그래밍 언어에서 변수는 숫자의 표현에 관련해서 정수형과 실수형이 있다. 이것의 처리는 마이크로프로세서의 ALU와 연관되어 처리한다. 그리고 자료가 있는 위치값인 메모리 주소값으로 처리하는 포인터 변수가 있다. 이것은 CPU의 메모리 체계와 관련되어 있어 CPU 의존적이다. 그리고 관련된 정보 끼리 묶어 처리하는 struct 구조체 변수가 있다.
정수형의 표현은 char, int로존적이라 변수의 크기를 조정하는 short와 long을 사용한다. 그리고 음수와 양수를 규정하기 위해 signed와 unsigned가 있다. unsigned을 이용하여 양수 정수 만을 취급할 수 있다.
정수형 변수

이 부분의 본문은 C 언어 정수형 변수입니다.
정수형 변수 > char

이 부분의 본문은 char입니다.
정수형 변수 > int

이 부분의 본문은 int (C 프로그래밍 언어)입니다.
실수형 변수

이 부분의 본문은 C 언어 실수형 변수입니다.
실수를 처리하기 위해 float와 double을 사용한다. 실수를 2진수를 표현할 때는 부동소수점(Float-Point) 방식을 사용한다. 이것은 국제표준 IEEE 754 규격에 따른다.
struct

이 부분의 본문은 struct입니다.
포인터

포인터 변수 모두는 메모리의 주소를 지정하는 값을 가지고 있으면 값을 변화시킬 수 있기 때문에 CPU을 설계한 설계 기준에 따라 주소값의 길이와 방식이 결정된다. 일반적인 용도의 대부분의 CPU는 메모리를 지정하는 길이(비트수)는 동일하다. RAM이든 ROM/FLASH 이든 모든 주소는 같다. MCU(8051,...)은 오히려 많은 경우 메모리 영역을 나누어 다른 주소체계를 사용한다. 8051은 내부의 256바이트 내에 변수를 할당 한다. 256바이트는 매우 적기 때문에 많은 데이터 저장용으로 16비트의 저장 공간을 갖는 주소체계를 사용하고 기계어 코드를 분리 했다. 이럴 경우는 주소값이 8비트 또는 16비트가 필요하다.
C언어가 UNIX 계열의 OS 작성 할 때 사용하였으므로 커널의 프로그램 소스를 보면 상당히 많은 부분 포인터 변수를 볼 수 있다.
포인터 > 포인터 변수의 선언

포인터 변수는 *을 이용하여 선언 한다. 포인터는 메모리의 주소값을 가지고 데이터의 위치를 지정하기 때문에 다른 변수의 저장 공간의 주소를 알아야 한다. 따라서 정적 변수의 주소는 & 연산자를 사용한다.
int ival;
  int *pval;

  // ...

  pval = &ival; // ival의 &연산자는 ival가 존재하는 위치 주소값이다.
  *pval = 30;   // pval가 ival의 주소값을 가지고 있으므로,
                // 이 주소값을 먼저 읽어 30을 쓸 위치를 결정하고
                // 그 위치에 정수 값을 쓴다.
  printf("변수 pval가 존재하는 위치 주소값은 0x%08X, 정수형 데이터 저장공간 지정은 0x%08X\n", &pval, pval );
ival는 정수형 데이터가 들어가는 변수이다. 즉, 정수 숫자를 저장한다. 그러나 변수 pval은 데이터 공간의 위치를 지정하는 것이지 정수형 데이터를 저장하는 것은 아니다. CPU의 주소체계에서 메모리의 주소값을 저장 함으로써 데이터가 저장 될 주소값을 가지고 액세스 하는 것이다. 그러나 메모리 주소값도 하나의 이진수의 정수형의 일종이라고 생각 할 수 있다.
포인터 > 포인터 변수의 선언 > NULL 사용

포인터 변수는 다른 정적 변수나 동적함수(malloc(), new)에 의해 생성된 저장 공간을 지정하는 변수이다. 그러나 경우에 따라 데이터 저장공간을 지정하지 못한 상태에서 액세스 할 수 있다. 보통 저장공간 지정에 성공했는지를 판단하는 방법으로 NULL을 이용할 수 있다.
NULL  사용 예:
char data8;
  char *pval = NULL;  // 포인터가 데이터 저장공간을 지정하지 않았다.

   if (pval == NULL)
       pval = data8; // 변수 pval가 데이터 저장 공간을 변수 data8로 지정 한다.
   *pval = 10; // 위에서 지정한 data8에 10을 쓴다.
C/C++에서 NULL은 숫자 0으로 정의 되어 있다. 자료구조 등에서도 '없다'는 의미로 null을 사용하는데, 경우에 따라 정해진 비트수 만큼 이진수로 모두 1인 경우가 있다. 그러나 C/C++에서는 0으로 정의 되어 있으므로 메모리의 0번지에는 특수하게 사용하지 않는다.
만약 포인터 변수가 데이터 저장공간을 지정하지 않았다면 NULL을 사용하여 초기화 시키는 방식이 일반적이다.
포인터 > 포인터 변수형과 액세스

포인터 변수의 길이(변수의 비트수)는 마이크로프로세서에 의존 한다. 즉, 마이크로프로세서가 주소 공간과 액세스 체계를 이미 가지고 있기 때문에 C/C++언어의 컴파일러는 이를 따를 뿐이다. 즉, 포인터 변수의 길이는 CPU 의존적으로 결정되어 있으므로 모든 포인터의 길이는 같다. 그렇다면 왜 포인터 변수 선언 시, 앞에 변수형이 필요한가는 액세스 할 때 데이터 액세스 길이(비트수)를 결정하기 위해서이다.
32비트 CPU의 대부분은 32비트 주소공간과 32비트 데이터 액세스 단위를 가지므로
다음 예는 32비트라고 가정 하면:
// 다음 설명에서 나오는 비트 단위는 32비트 CPU의 경우

  char buff[1024];

  int *pdata = (int*) buff; // 형이 다르나 값을 액세스 할 때, 32비트 정수형으로 액세스 하기 위해 지정
  *pdata = 23;          // 32비트 정수형 쓰기, 따라서 23은 32비트 정수형이다.
  *((char*)pdata) = -1; // 그러나 char 8비트 정수형으로 변환하였으므로 -1은 8비트 정수형이다.
                        // 8비트 정수 -1 : 11111111b
  void *pval;      // 데이터 액세스 타입(액세스 비트 단위)가 없는 변수가능 하다.
                   // 모든 주소값은 32비트 이기 때문이다.
  pval= (void *) buff;  // 형이 맞지 않으므로 형 변경
  *pval = 10;       // '''error : 액세스 단위를 결정할 수 없다. 따라서 기계어 코드를 확정할 수 없다.
  *(char*)pval = 10; // 액세스 단위가 8비트 이므로, 10은 8비트 정수형이며 이 값이 써진다.
코드 중 *pval = 10;은 pval가 void형이므로 액세스 시, 10을 어떻게 규정할지 결정할 수가 없다. 보통 10은 정수형으로 취급 되지만 같은 정수형도 8,16,32비트로 다르다. 따라서 pval의 변수형에 따라서 비트수가 결정되는데 여기서는 void이므로 결정 불가능 하다.
포인터 > 예

#include <stdio.h>
#include <string.h>

/// Global Variables

char name[124];
char tel[] = "010-2345-6789";

// func.
char *read_name(char *pstr, int szmax);

int main(int argc, char**argv)
{
   char *pstr;

    pstr = read_name(name, 120);
    printf("이 름 = %s\n", pstr );
    printf("전화 번호 = %s\n", tel);

    return 0;
}

char *read_name(char *pstr, int szmax)
{
   size_t leng;
   static char bstr[256];

    gets(bstr);
    leng = strlen(bstr);
    if (leng >= (size_t)szmax)
        leng = szmax -1;
    strncpy (pstr,bstr,leng);
    *(pstr+leng) = 0;

    return pstr;
}
이 프로그램 예에서 실제 스트링 메모리 공간을 갖는 것은 name, tel, bstr 변수 들이다. 그러나 pstr변수는 스트링 데이터가 들어갈 변수가 아니고 데이터가 들어가야할 위치를 지정하는 변수이다. CPU의 주소체계에 의한 주소값으로 데이터의 위치를 지정하는 것이다. 이 포인터 변수는 메모리 주소값만 가지면 되므로 정해진 길이의 비트수를 가지고 동작 한다.
포인터 > 포인터 변수 자료형

포인터 변수는 데이터 저장 위치 주소값을 사용하는 변수이다. 보통 정적 변수의 경우 직접 액세스 모드(direct access mode)의  기계어 코드로 컴파일 된다.
포인터 변수의 예 :
char   *p8bitvar;       // 8비트 액세스
  short int  *p16bitvar;  // 16비트 액세스
  int    *pintvar;  // int형 액세스
  float  *pfvar;    // 32비트 [[부동소수점]] 데이터 액세스
  double *pdvar;    // 64비트 부동소수점 데이터 액세스
  void   *pvdata;   // 몇 비트 액세스 인지 규정 할 수 없다.

  struct SObject {
    int data;
    struct SObject *link;
  } *pstdata;         // 구조체의 위치를 지정 한다.
변수 자체의 길이는 CPU의 메모리 체계에 의해 결정된다. 32비트 CPU는 거의 다 32비트의 메모리 주소값을 갖는다. 따라서 위의 모든 변수의 크기는 4바이트이다.
앞에 변수형이 필요한 이유는 액세스 할 때, 몇 비트의 단위로 액세스 하는냐를 결정한다. void의 경우는 데이터가 몇 비트인지 결정할 수 없으므로 결국 액세스형 변환을 통해 몇비트 액세스 인지 결정 해야한다.
void 포인터 변수의 예 :
char num;
 void *pvdata = (void *) &num;
 *(char*) pvdata = 10;
 int ival;
 pvdata = (int *) &ival;
 *(int*) pvdata = 10;

 *pvdata = 10; // 오류 : 액세스 단위가 정의 되지 않음.
   //error C2100: illegal indirection
   //error C2440: '=' : cannot convert from 'int' to 'void *'
위 *pvdata = 10;에서 10이라는 숫자는 기본적으로 정수형인데,  pvdata의 액세스 단위가 결정되지 않았다. 즉, 이런경우 액세스 단위는 변수가 결정 한다. 따라서 이런 경우는 오류로 나타난다.
포인터 > 포인터 변수에서 주소값의 연산

포인터 변수가 갖는 메모리의 주소값은 결국 정수형의 2진수 숫자 일 뿐이다. 따라서 CPU내의 ALU을 통해 연산 된다.
일반적인 32비트 CPU의 주소체계는 주로 32비트 메모리 주소값을 사용한다. 따라서 CPU의 주소값을 정수형으로 보고 값의 치환, 비교, 연산 등이 가능하다.
#define SZ_DATA 100

int main()
{
  int ival[SZ_DATA];
  int *pval = NULL;

  pval = &ival; // ival의 &연산자는 ival가 존재하는 위치 주소값이다.
  for (int cnt = 0;cnt <  SZ_DATA;cnt++) {
      *pval = 0;
      pval++;
  }
  // ...
}
pval++에서 연산자 ++는 포인터의 주소값을 다음 위치로 하나 더 옮기라는 뜻이다. 보통의 정수형 변수라면 1을 더하는 것이겠지만 이런경우 주소값을 한 칸 더 옮기는 경우이다. 따라서 단순히 1을 더하는 것이 아니고 포인터 변수가 갖는 int형의 크기만큼 더해진다.
pval++에서 ++ 연산자 :
++ : 현재의 주소값 + sizeof(int) => 주소값 변경
예를 들어 현재 &ival[0] == pval == 0x00301200 이라면 :
0x00301200 + sizeof(int) :  0x00301200 + 4 => 0x00301204 ==> pval == &ival[1]
즉, ival의 인덱스가 0에서 1로 옮겨 간다.
#include <stdio.h>

#define SZ_DATA 100

char gname[SZ_DATA];
char gbuff[SZ_DATA];

int main()
{
  char *psstr = gname;
  char *pdstr = gbuff;
  gets(gname);
  while (*psstr && *psstr != ' ')
      *pdstr++ = *psstr++;
  *pdstr = 0;
  printf("%s\n", gbuff);
  return 0;
}
psstr++ 경우, 예를 들어 현재 psstr == 0x00301200 이라면 :
0x00301200 + sizeof(char) :  0x00301200 + 1 => 0x00301201 ==> psstr
이 때는 char 변수가 한 바이트 단위로 배열 되기 때문에 주소값이 1씩 ALU에 의해 더해 진다.
typedef struct {
   char *name;
   int  age;
} Man, *PMan;

Man man[] = {
  { "홍길동", 23 },
  { "Kim",    20 },
  { "Song",   19 },
};

#define SZ_MAN sizeof(man)/sizeof(man[0])

int main()
{
   PMan pman = man;
   printf("sizeof(Man) = %d, man=0x%08X\n", sizeof(Man), man );
   for (int cnt = 0;cnt < SZ_MAN;cnt++) {
      printf("0x%08X : %s, %d\n", pman+cnt, (pman+cnt)->name, (pman+cnt)->age);
   }
   return 0;
}
실행결과 :
sizeof(Man) = 8, man=0x00E070A8
0x00E070A8 : 홍길동, 23
0x00E070B0 : Kim, 20
0x00E070B8 : Song, 19
이 경우의 pman+cnt에서
cnt = 1일 때, 포인터의 값을 다음과 같이 계산할 수 있다:
0x00E070A8 + sizeof(Man)*cnt :  0x00E070A8 + 8*1 => 0x00E070B0 ==> &man[1]
포인터 > 포인터 변수의 길이

포인터 변수는 결국 메모리의 변수 위치의 주소값을 다루는 변수이다.따라서 CPU에 따라 길이가 결정된다. CPU에 메모리 주소체계가 컴파일러 보다 우선 설계되기 때문에 해당 CPU에 맞추어 포인터 컴파일러 설계를 한다. 주로 8비트 CPU의 16비트의 주소값을 갖는다. 그러나 8비트 중에 MCU 계열은 주소를 지정하기 위한 비트가 다양하다. 8비트와 16비트가 혼재하기도 한다. 같은 CPU라도 8비트와 16비트를 같이 사용한다는 이야기이다.
| --- | --- |
Z-80: 16비트 주소체계
8051: 8비트와 16비트 혼용
#define LEDPORT0  *(unsigned char xdata*) 0xc000  // 외부 메모리 주소 0xc000번지

xdata char gGrapLedData[1024]; // 외부 메모리 설정 - 16비트 주소 공간,
                               // 8051의 내부 RAM이 256바이트 이므로 큰 데이터 처리 불가
xdata char *pxled;   // sizeof(pxled) = 2 : 외부 메모리 설정 - 16비트 주소 공간

char g_ledData[4];   // 내부 메모리 설정 - 8비트 주소 공간
char *pledfont;      // sizeof(pledfont)=1 : 내부 메모리 사용 - 8비트 주소 공간

void main()
{
    // CPU 초기화

    while (1) {
       // ...
       LEDPORT0 = *pledfont++;
    }
}
CPU의 프로그램에서 CPU의 메모리 체계를 이해해야만 포인터 변수의 길이를 알 수 있다.
이에 비해 32비트는 주로 32비트의 주소 비트 수를 갖는다. 거의 모든 CPU가 32비트이므로 오히려 8비트 CPU 보다 길이가 통일되어 있다. 64비트로 가면 또 다른 비트 수를 가질 것이다.
| --- | --- |
x86(IA-32): 32비트 주소체계
68000계열: 32비트 주소체계
ARM: 32비트 주소체계
각각의 변수가 들어갈 메모리의 위치와 성격에 따라 메모리를 지정하는 주소값의 비트수는 CPU에 의해 결정되어 있으므로 어떤 컴파일이든 정해져 있다.
변수의 길이를 알아보는 방법의 예 :
#include <stdio.h>

 struct Man {
    char name[40];
    int age;
 } ;

 struct Man man;

int main(int argc, char**argv)
{
     int leng;

     printf("sizeof(int)=%d\n", sizeof(int) );
     printf("sizeof(int*)=%d\n", sizeof(int*) );
     printf("sizeof(struct Man)=%d\n", sizeof(struct Man) );
     printf("sizeof(struct Man *)=%d\n", sizeof(struct Man *) );

     // ...
     return 0;
}
일반적인 포인터 변수의 길이는
| CPU | 예 | 주소체계 | 포인트 | 포인터 길이 |
| --- | --- | --- | --- | --- |
| 8비트 CPU | 8080, Z-80 | 16비트 | 2 | sizeof(int*) = sizeof(char*) = sizeof(void*)=...= 2 |
| 8비트 MCU | 8051, SAM8 | 8/16비트 혼용 | 혼용 | 메모리 공간에 따라 1 또는 2바이트 - 컴파일러에 공간 할당 옵션 검토. |
| 32비트 CPU | x86(IA-32), 68000, ARM | 32비트 | 4 | sizeof(int*) = sizeof(char*) = sizeof(void*)=...= 4 |
32비트이 CPU에서 배열의 포인트를 예
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int a[10];
#define SZ_DATA  sizeof(a)/sizeof(a[0])
int *pa;

void fun(int *pa, int cnt);

void printvar(int length)
{
   int cnt;

   pa = a;
   printf("&a[0] = 0x%08X\n", &a[0]);
   printf("&pa = 0x%08X\n", &pa);
   printf("pa = 0x%08X\n", pa);
   printf("fun = 0x%08X\n", (int) fun);
   printf("Random Data\n");
   for(cnt = 0;cnt < length;cnt++)
       printf("%d ", a[cnt]);
   printf("\n");
}

void fun(int *pa, int cnt)
{
   while (cnt) {
      *pa = rand() % 1000 + 1;
       pa++;
       cnt--;
   }
}

int main(int argc, char *argv[], char**env)
{
   srand( (unsigned int) time(NULL));
   fun(a, SZ_DATA);
   printvar(SZ_DATA);
   return 0;
}
x86의 실행결과 값 예 :
&a[0] = 0x0040DF04
&pa = 0x0040DF00
pa = 0x0040DF04
fun= 0x00401060
Random Data
493 539 45 17 247 113 68 941 857 744
포인터 > 함수 포인터

함수 역시 기계어 코드가 특정 메모리를 점유하고 이것을 읽어 실행 하는 것이다. 따라서 코드의 위치를 주소값으로 표현할 수 있다.
함수의 위치 정보를 가지고 호출하는 방식으로 실행 시킬 수 있다. 이 변수의 선언은 괄호를 이용한다.
함수의 예 :
int add(int a, int b) { return a +b; }

  int main()
  {
    int (*fun)(int, int);  // 함수 포인터 변수를 선언 한다.
    fun = add;    // fun의 모양이 맞는 함수의 위치 값을 넣을 수 있다.
    printf("0x%08X : %d\n", (int) fun,  fun(10,20) );

    return 0;
  }
함수 포인터를 사용할 때는 위와 같이 인수까지 정의를 해야 한다. 초기와는 달리 현재의 표준화 된 C/C++언어에서는 인수가 달라지면 다른 함수가 되기 때문이다.
그러나 다음과 같이 함수 포인터 변수와 인수가 맞지 않으면 문제가 발생 한다. fun과 cadd함수는 인수가 다르다. 컴파일 오류가 발생 한다.
인수가 달라서 오류가 발생하는 예 :
int cadd(int a) { return a+10; }

    int (*fun)(int, int);
    fun = cadd; // error C2198: 'int (__cdecl *)(int,int)' : too few arguments for call
결국 함수 포인터 변수는 인수까지 정의가 되어야 한다.
배열 역시 가능하다.
배열 함수 포인터 사용 예:
#include <math.h>
#include <stdio.h>

#define PI 3.141592653589793

double mySin(double r);

double (*pMath[])(double) = {
	sin, cos, tan,
	mySin,
	NULL
};

double mySin(double r)
{
	double rad = r * PI / 180.;

	return sin(rad);
}

int main(int argc, char* argv[], char**env)
{
	int cnt;
	double r;

	printf("각도 입력 : "); scanf("%lf", &r);
	for (cnt = 0;pMath[cnt];cnt++)
		printf("0x%08X : %lf\n", pMath[cnt], pMath[cnt](r) );

	return 0;
}
실행결과 값 예 :
각도 입력 : 45
0x00D510E6 : 0.850904
0x00D51118 : 0.525322
0x00D510E1 : 1.619775
0x00D51159 : 0.707107
int 배열 포인터 변수 구조 예
다부치 류지

다부치 류지 (1973년 2월 16일 ~ )는 일본의 전 축구 선수이다. 과거 오츠카 제약, 콘사돌레 삿포로, 비셀 고베에서 활동하였다.
Give Me the Night

《Give Me the Night》는 미국의 재즈 기타리스트이자 가수인 조지 벤슨이 1980년에 녹음하고 발매한 음반이다.
반응

| 전문가 평가> 평가 점수.출처 | 전문가 평가> 평가 점수.점수 |
| --- | --- |
Allmusic: 
The Rolling Stone Jazz Record Guide: 
1980년 여름에 발매된 〈Give Me the Night〉는 퀸시 존스가 프로듀싱하고 워너 브라더스 레코드와 함께 존스의 신생 레이블인 큐웨스트 레코드에 발매되었다. 이 곡은 빌보드 200 차트 3위뿐만 아니라 톱 솔 음반과 재즈 음반 차트에서 모두 1위를 차지했다.
이 음반의 성공은 주로 〈Give Me the Night〉라는 제목의 리드 싱글이 솔 싱글 차트에서 1위를 차지했기 때문이다. 이 음반의 또 다른 선곡인 〈Moody's Moody〉는 R&B 가수 패티 오스틴과 함께 녹음되었다. 미국 음반 산업 협회에 의해 플래티넘 인증을 받은 《Give Me the Night》는 퀸시 존스가 벤슨을 위해 프로듀싱한 유일한 음반이다.
이 음반은 1981년 그래미 어워드를 3번 수상했고, 〈Moody's Mood〉는 재즈 보컬 퍼포먼스, 〈Off Broadway〉는 R&B 인스트루멘탈 퍼포먼스를 받았다. 퀸시 존스와 제리 헤이는 또한 〈Dinorah, Dinorah〉라는 곡으로 그래미 어워드 최우수 인스트루멘탈 편곡상을 수상했다.
곡 목록

| # | 제목 | 작사·작곡 | 재생 시간 |
| --- | --- | --- | --- |
| 1. | Love X Love | 로드 템퍼튼 | 4:45 |
| 2. | Off Broadway | 템퍼튼 | 5:23 |
| 3. | Moody's Mood (Feat. 패티 오스틴) | 에디 제퍼슨, 제임스 무디 | 3:24 |
| 4. | Give Me the Night | 템퍼튼 | 5:01 |
| 5. | What's on Your Mind | 글렌 발라드, 케리 채터 | 4:02 |
| 6. | Dinorah, Dinorah | 이반 린스, 비토 마틴스 | 3:39 |
| 7. | Love Dance | 린스, 길슨 페란제타, 폴 윌리엄스 | 3:18 |
| 8. | Star of a Story (X) | 템퍼튼 | 4:42 |
| 9. | Midnight Love Affair | 호크 월린스키 | 3:31 |
| 10. | Turn Out the Lamplight | 템퍼튼 | 4:43 |
인증

| 국가 | 인증 | 판매량/출하량 |
| --- | --- | --- |
| 오스트레일리아 (ARIA) | 플래티넘 | 50,000^ |
| 뉴질랜드 (RMNZ) | 플래티넘 | 15,000^ |
| 영국 (BPI) | 플래티넘 | 300,000^ |
| 미국 (RIAA) | 플래티넘 | 1,000,000^ |
^출하량을 기반으로 한 인증
춤이 시작됩니다

| 춤이 시작됩니다 Dance Begins |
| --- | --- |
감독: 모지은
국가: 한국
《춤이 시작됩니다》는 모지은 감독의 살사를 소재로 한 단편영화이다.
개요

영화 《좋은 사람 있으면 소개시켜 줘》를 연출한 모지은 감독의 한국영화아카데미 졸업작품
살사를 소재로 한 단편영화
김지영, 천정명 등 출연
시놉시스

담배가게를 하는 경숙은 몰래 춤을 배우고 있다. 춤이 금지되고 사람들이 잡혀간다. 경숙은 간신히 미지(未知)의 남자의 도움으로 위기를 모면한다. 무료한 경숙에게 未知의 남자로부터의 메시지가 들리기 시작하는데....
연출의도

한 사람의 이상 혹은 욕망은 가끔 환타지로 대변되는 것 같다. 이상은 현실에 치이고 위협당한다. 그러나 이상은 항상 개인 어딘가에 존재하고 지속되고 있다.
출연

김지영 : 경숙
천정명 : 형사1, 남자의 목소리
박동빈 : 형사2
양진혁 : 담배사는 남
유수정 : 청소하는 여
미디어

한국단편영화 21선 : 영화진흥위원회한국영화아카데미 (심의번호 2003-DVD155) 내에 수록
청자 음각운문 병

| --- | --- |
 대한민국의 보물

종목: 보물 제1035호  (1990년 5월 21일 지정)
수량: 1점
시대: 고려시대
소유: 이건희
위치
삼성미술관 리움삼성미술관 리움(대한민국)
주소: 서울특별시 용산구 이태원로55길 60-16,  삼성미술관 리움 (한남동)
좌표: 북위 37° 32′ 17″ 동경 126° 59′ 57″﻿ / ﻿북위 37.53806°  동경 126.99917° ﻿ / 37.53806; 126.99917
정보: 국가유산청 국가유산포털 정보
청자 음각 운문 병(靑磁 陰刻雲文 甁)은 서울특별시 용산구, 삼성미술관 리움에 있는 고려시대의 청자이다. 1990년 5월 21일 대한민국의 보물 제1035호로 지정되었다.
개요

고려시대 만들어진 청자 병으로 높이 29.0cm, 아가리 지름 5.9cm, 밑지름 9.5cm의 세련된 형태의 술병이다.
아가리 부분은 얇고 밖으로 넓게 벌어져 있으며 목이 길다. 어깨부위는 완만한 곡선을 이루고, 몸통의 아랫부분이 볼록하며 굽은 다소 높고 넓어서 전체적으로 안정감을 준다. 유약은 미세한 기포가 있고 얇고 투명하며 옅은 녹청색을 띤다.
아가리 아랫부분은 무늬의 배경을 넓게 파내어 양각의 효과를 내는 반양각(半陽刻) 기법으로 덩굴무늬를 새겨 넣었다. 어깨 윗부분은 줄무늬를 새겨 넣고, 아래에 꽃무늬를 반양각기법으로 장식하였다. 몸통에는 드문드문 작은 구름무늬를 새겼고, 몸통 아랫부분에는 연꽃무늬를 둘렀다.
같이 보기

청자
참고 자료

청자 음각운문 병 - 국가유산청 국가유산포털
윌리엄슨군 (일리노이주)

윌리엄슨군 또는 윌리엄슨 카운티(Williamson County)는 미국 일리노이주에 위치한 군이다. 2010년 기준으로 이 지역의 인구 수는 총 66,357명이다. 2018년 추산으로 이 지역의 총 인구 수는 67,056명이다.