뭘 해야될 지 모르겠어서
그냥 php를 해보기로 했다.
php의 기본은 LAMP라고 들었고,
일단 집에선 LAMP 설치를 완료했다.
감사합니다 생활코딩!
지금 이 컴터는 WAMP를 설치했다..
무려 4시간이나 걸렸다...
워낙 이것저것 깔려있어써.....ㅠㅠ
뭐 일단은
W windows
L linux
A apach
M MySQL
P php
등등의 약자더라
php는 웹을 위한 언어이기 때문에
java나 jsp처럼 깊게 생각할 필요없이
.php 파일에 그냥 디비고 뭐고 쑤셔넣어주면 된다.
마치 mvc이전같다.
웹 페이지에서 모든걸 처리한다...
어쨋든 php로
mysql에 테이블 생성
데이터 추가
데이터 읽기
데이터 웹이 뿌리기
등을연습했다.
어짜피 언어는 '도구'니까....쉽게 생각하고 깊게 이해하자.
덧. 기회, 인맥, ... ... 모르겠다. 그냥 혼자서 살아남자.
2014년 7월 28일 월요일
20140728 WAMP, LAMP 설정. php도 건드려 보자~!
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 7월 23일 수요일
20140724 취업이라는 험난한 길, 스타트업과 불확실성
돈 없인 못사는 세상이다.
근데 꿈이 있다면 돈 없이도 살 수 있다...(X)
내가 혼자 사는 것이 아니기 때문에 이제는 아니라고 대답할 수 있다.
내 평생 앵간하면 후회를 안하는데,
이 재밌는 프로그래밍을 왜 이렇게 늦게 배웠을까...
아니.. 사실은 초딩때 이미 경험은 했지만서도, 인희형을 만나지 않았으면 이렇게 눈뜨진 못했을 것 같다... 이렇게 따지면 늦은게 아니고 엄청 빠른거구나 -_-a
어쨋거나 취업 이라는 단어 속에는 (개인적으로 취업이란) "남의 일" 이라거나 "남 좋은 일 시키는 행위" 등의 뜻이 들어있다고 생각한다.
뭐 중요한 것은 아무리 내가 날고 긴다고 해도 "돈이 되는 생각"과 "돈이 되지않는 생각"을 구별해 내고 구현해 내는 능력이 없다면 취업을 할 수 밖에 없다는 것!
물론 내 개인적인 생각이니...
예전에는 "아니 회사가 (가)족같으면 그만 둬야지 왜 계속 다니냐?" 라고 말하던 세상물정 모르던 존맹구였는데, 마느님이 계신 작금의 현실에선 " 와 ㅅㅂ(수박) 아무리 (가)족같아도 가족을 생각해선 맘대로 그만두지도 못하는 구나..." 라는 생각이 골수사이를 휘젓고 다닌다.
참으로 안타깝다. 존니 뻐킹 유에스에이!
암튼 개소린 집어치우고 취직하려면 알야아 하는 아주 족으마한 질답들을 공략해보자.
1. MVC1 과 MVC2의 차이점
- Controller가 없고 있고의 차이
MVC1의 경우 jsp에서 뷰와 자바빈의 정보를 모두 취급
MVC2는 별도의 콘트롤러에서 자바빈 관련된 로직은 POJO(걍 자바파일)를 이용해 따로 관리하고 뷰의경우 JSP를 이용해 사용자에게 보여지게 된다.
2. 자바 VS 자바스크립트
- 완전 다른 언어이고 큰 차이는 자바는 컴파일이 필요하고 자바스크립트는 브라우저 상에서 바로 실행이 된다는 점
3. Void 와 Static
- Static은 프로그램 실행시 가장먼저 메모리에 상주
- Void는 함수의 리턴값이 아무것도 없을 때 사용
=솔직히 정확하게 모르겠다.
4. 아이바티스, 마이바티스, 하이버네이트
- 나를 매우 곤란하게 했던 질문 ㅠㅠ
머야이게 ㄷㄷㄷ
대충 예제만 치고 깊게 생각지 못했던 부분인데 다시 알아볼 수록 얼굴이 빨개면이 된다 ㅡ.,ㅡ;;
내가 진행한 프로젝트를 하이버네이트를 이용해서 했다는 멍멍이 소릴 해대고 왔으니.. 면접관이 소스를 봤다면 소스라치게 놀랬을 것 같다.
아이바티스 틴구들은 XML을 이용해서 DB설정을 하고 DAO에서 DB관련 로직을 수행하는 것이군....
하이버네이트 틴구는 무려"자동으로 SQL문을 생성한다!" 물론 눈으로 볼 수 있다고 하는데 알아서 생성해서 구현해준다.
물론 난 프로젝트에서 하이버네이트를 써본적이 없다.
하이버네이트 하면 "@(어노테이션)"이 생각나서 썻다고 했는데...ㅡ.ㅜ
어쨋든 실질 프로젝트를 진행해야 좀 더 구체적으로 느끼지 않을까 싶다.
'기본'을 중요시 한다고 했으면서 '기본이 안된'놈이 되었따 ㅋ
시간은 많고 갈길은 멀다...ㅡ,.ㅡ?읭?
불확실성에 대해선 누구나 두려와 하지 않을까 생각된다.
그래서 좀 더 구체적인 목표를 원하는 것 같고
솔직히 '된다'고 생각하고 달려들어도 힘든 판에
나도 '잘 모르는' 로직위에서 '되게 만든다'고 달려드는 것은 무모하다고 판단된다.
그럼 앞으로 '어떻게' 해야될까?
그에 대한 대답은 한 단어로 요약할 수 있겠지.... !
" 안알랴줌! "
= 뻐킹!
덧. 7.22일 하루동안 페이지 뷰가 42건이나 된다.. 그날 무슨일이 있었던 것이냐........ㄷㄷㄷ
그게 머야 몰라 무서웡!
덧2. 어쨋거나 구직에 실패할 때마다 기분이 좋지 않은건 사실이다. 얼마나 대단하길래? 라는 생각이 들지만. 대단하니까 나같은 핫바리는 면접보러 다니면서 조아리는 거다.
인사가 가장 어려운데... 참 어렵다.
면접보러 다니는 100만 실업자들이 참 불쌍하다. 우리 식구도 우리 친구들도 모두다....
좉같다 좃졷좆좉좇좄같다 뻐킹 대한민국!
근데 꿈이 있다면 돈 없이도 살 수 있다...(X)
내가 혼자 사는 것이 아니기 때문에 이제는 아니라고 대답할 수 있다.
내 평생 앵간하면 후회를 안하는데,
이 재밌는 프로그래밍을 왜 이렇게 늦게 배웠을까...
아니.. 사실은 초딩때 이미 경험은 했지만서도, 인희형을 만나지 않았으면 이렇게 눈뜨진 못했을 것 같다... 이렇게 따지면 늦은게 아니고 엄청 빠른거구나 -_-a
어쨋거나 취업 이라는 단어 속에는 (개인적으로 취업이란) "남의 일" 이라거나 "남 좋은 일 시키는 행위" 등의 뜻이 들어있다고 생각한다.
뭐 중요한 것은 아무리 내가 날고 긴다고 해도 "돈이 되는 생각"과 "돈이 되지않는 생각"을 구별해 내고 구현해 내는 능력이 없다면 취업을 할 수 밖에 없다는 것!
물론 내 개인적인 생각이니...
예전에는 "아니 회사가 (가)족같으면 그만 둬야지 왜 계속 다니냐?" 라고 말하던 세상물정 모르던 존맹구였는데, 마느님이 계신 작금의 현실에선 " 와 ㅅㅂ(수박) 아무리 (가)족같아도 가족을 생각해선 맘대로 그만두지도 못하는 구나..." 라는 생각이 골수사이를 휘젓고 다닌다.
참으로 안타깝다. 존니 뻐킹 유에스에이!
암튼 개소린 집어치우고 취직하려면 알야아 하는 아주 족으마한 질답들을 공략해보자.
1. MVC1 과 MVC2의 차이점
- Controller가 없고 있고의 차이
MVC1의 경우 jsp에서 뷰와 자바빈의 정보를 모두 취급
MVC2는 별도의 콘트롤러에서 자바빈 관련된 로직은 POJO(걍 자바파일)를 이용해 따로 관리하고 뷰의경우 JSP를 이용해 사용자에게 보여지게 된다.
2. 자바 VS 자바스크립트
- 완전 다른 언어이고 큰 차이는 자바는 컴파일이 필요하고 자바스크립트는 브라우저 상에서 바로 실행이 된다는 점
3. Void 와 Static
- Static은 프로그램 실행시 가장먼저 메모리에 상주
- Void는 함수의 리턴값이 아무것도 없을 때 사용
=솔직히 정확하게 모르겠다.
4. 아이바티스, 마이바티스, 하이버네이트
- 나를 매우 곤란하게 했던 질문 ㅠㅠ
머야이게 ㄷㄷㄷ
대충 예제만 치고 깊게 생각지 못했던 부분인데 다시 알아볼 수록 얼굴이 빨개면이 된다 ㅡ.,ㅡ;;
내가 진행한 프로젝트를 하이버네이트를 이용해서 했다는 멍멍이 소릴 해대고 왔으니.. 면접관이 소스를 봤다면 소스라치게 놀랬을 것 같다.
아이바티스 틴구들은 XML을 이용해서 DB설정을 하고 DAO에서 DB관련 로직을 수행하는 것이군....
하이버네이트 틴구는 무려"자동으로 SQL문을 생성한다!" 물론 눈으로 볼 수 있다고 하는데 알아서 생성해서 구현해준다.
물론 난 프로젝트에서 하이버네이트를 써본적이 없다.
하이버네이트 하면 "@(어노테이션)"이 생각나서 썻다고 했는데...ㅡ.ㅜ
어쨋든 실질 프로젝트를 진행해야 좀 더 구체적으로 느끼지 않을까 싶다.
'기본'을 중요시 한다고 했으면서 '기본이 안된'놈이 되었따 ㅋ
시간은 많고 갈길은 멀다...ㅡ,.ㅡ?읭?
불확실성에 대해선 누구나 두려와 하지 않을까 생각된다.
그래서 좀 더 구체적인 목표를 원하는 것 같고
솔직히 '된다'고 생각하고 달려들어도 힘든 판에
나도 '잘 모르는' 로직위에서 '되게 만든다'고 달려드는 것은 무모하다고 판단된다.
그럼 앞으로 '어떻게' 해야될까?
그에 대한 대답은 한 단어로 요약할 수 있겠지.... !
" 안알랴줌! "
= 뻐킹!
덧. 7.22일 하루동안 페이지 뷰가 42건이나 된다.. 그날 무슨일이 있었던 것이냐........ㄷㄷㄷ
그게 머야 몰라 무서웡!
덧2. 어쨋거나 구직에 실패할 때마다 기분이 좋지 않은건 사실이다. 얼마나 대단하길래? 라는 생각이 들지만. 대단하니까 나같은 핫바리는 면접보러 다니면서 조아리는 거다.
인사가 가장 어려운데... 참 어렵다.
면접보러 다니는 100만 실업자들이 참 불쌍하다. 우리 식구도 우리 친구들도 모두다....
좉같다 좃졷좆좉좇좄같다 뻐킹 대한민국!
라벨:
서론과 잡담사이
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 6월 13일 금요일
20140613 은거 기인과 실력
짧은 시간에 실력자가 되고 싶었다.
프로젝트를 진행하면서
택도 ㅇ벗는 소리란 것을 느꼇다.
걍 조용히하고
투자한 시간 + 노력 >= 습득한 기술;
의 공식에 가까워 졌으면 좋겠다.
사실 .equal()은 행운에 가까운 능력을 가진 사람들에게나 해당 될 것 같고,
나는 까먹지나 않았으면 좋겠다.
이제,
은거기인을 만나는 일만 남았다.
미리 감사합니다.^^
+. '이러 이러한거 말해도 될까?'
.. " 깝치지 말고 걍 아봉하고 살아, 할 말이 있고 못 할 말이 있지! 으이구! "
걍 아봉하고 살랜다... ㅎ ㅔㅎ ㅔ
프로젝트를 진행하면서
택도 ㅇ벗는 소리란 것을 느꼇다.
걍 조용히하고
투자한 시간 + 노력 >= 습득한 기술;
의 공식에 가까워 졌으면 좋겠다.
사실 .equal()은 행운에 가까운 능력을 가진 사람들에게나 해당 될 것 같고,
나는 까먹지나 않았으면 좋겠다.
이제,
은거기인을 만나는 일만 남았다.
미리 감사합니다.^^
+. '이러 이러한거 말해도 될까?'
.. " 깝치지 말고 걍 아봉하고 살아, 할 말이 있고 못 할 말이 있지! 으이구! "
걍 아봉하고 살랜다... ㅎ ㅔㅎ ㅔ
라벨:
서론과 잡담사이
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 6월 7일 토요일
20140607 String VS StringBuffer 이 둘의 차이점?
깊게는 모르겠는데 대충은 이렇다.
String 으로 선언한 문자열은 수정이 불가능하다.
String에서 문자를 추가할 때에는 StringBuffer 메소드를 이용한다.
이 과정에서 가비지가 생성되고 일정 시간이 지난 후 가비지 콜랙터가 쓰레기를 수거해 감.
큰 프로그램에서 이런 것들이 쌓이게 되면 프로그램에 과부하!
StringBuffer 의 경우 Char[]을 이용하게 되므로 내용의 수정이 자유롭다.
String a = "abc";
에서
a += "def";
를 하게되면 실제로는
String a = new StringBuffer("abc").append("def").toString();
라는 코드가 실행된다고 '카더라!'
String 으로 선언한 문자열은 수정이 불가능하다.
String에서 문자를 추가할 때에는 StringBuffer 메소드를 이용한다.
이 과정에서 가비지가 생성되고 일정 시간이 지난 후 가비지 콜랙터가 쓰레기를 수거해 감.
큰 프로그램에서 이런 것들이 쌓이게 되면 프로그램에 과부하!
StringBuffer 의 경우 Char[]을 이용하게 되므로 내용의 수정이 자유롭다.
String a = "abc";
에서
a += "def";
를 하게되면 실제로는
String a = new StringBuffer("abc").append("def").toString();
라는 코드가 실행된다고 '카더라!'
라벨:
학습
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 6월 1일 일요일
20140602 ORA-01407: NULL로 XXX 을 갱신할 수 없습니다
테이블 생성시 속성을 not null로 해놓고
외래키를 줄 때, on delete set null을 한 멍청한 경우다 ㅋ
속성을 바꾸던지 외래키 옵션을 바꿔주면 해결될것이라고 생강한다.
외래키를 줄 때, on delete set null을 한 멍청한 경우다 ㅋ
속성을 바꾸던지 외래키 옵션을 바꿔주면 해결될것이라고 생강한다.
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
20140602 자식 테이블이 딸린 부모 테이블의 데이터(row) 삭제
사실 테이블을 설계할 때 해줘야 할 일이 있던 것이다.
바로.
• ON DELETE CASCADE - 참조하는 자식 테이블이 있어도 부모 테이블에서 그 행의 삭제를 허용
• ON DELETE SET NULL - 참조하는 자식 테이블이 있는 경우 부모 테이블의 행을 삭제하면 자식 테이블의 해당(FK)값은 null이 된다.
둘중 하나다.
foreign key (bdv) references b (bdv) ON DELETE CASCADE
혹은
foreign key (bdv) references b (bdv) ON DELETE SET NULL
하면 된다.
.................껄? ㅋ
바로.
• ON DELETE CASCADE - 참조하는 자식 테이블이 있어도 부모 테이블에서 그 행의 삭제를 허용
• ON DELETE SET NULL - 참조하는 자식 테이블이 있는 경우 부모 테이블의 행을 삭제하면 자식 테이블의 해당(FK)값은 null이 된다.
둘중 하나다.
foreign key (bdv) references b (bdv) ON DELETE CASCADE
혹은
foreign key (bdv) references b (bdv) ON DELETE SET NULL
하면 된다.
.................껄? ㅋ
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 5월 28일 수요일
20140528 Spring 을 이용한 파일 저장하기 + DB 연동
지금은 디비 연동은 안한상태
1.
jsp 파일에서
<form method="post" enctype="multipart/form-data">
<input type="file" name="file" size="50">
...........
</form>
을 이용해 스프링과 매핑시켜준다.
2.
스프링 설정파일인 프로젝트명-servlet.xml 에
<!-- 파일 업로드를 위한 MultipartResolver -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:maxUploadSize="104857600" p:maxInMemorySize="104857600">
</bean>
을 추가한다.
기본형은
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
이다.
3.
위 input name="file"인것을 상기한 후
자바 파일(VO) 에다가
private MultipartFile file;
을 설정하고 개터와 새터를 불러온다!
get, set 설정 아시죠?
1.
jsp 파일에서
<form method="post" enctype="multipart/form-data">
<input type="file" name="file" size="50">
...........
</form>
을 이용해 스프링과 매핑시켜준다.
2.
스프링 설정파일인 프로젝트명-servlet.xml 에
<!-- 파일 업로드를 위한 MultipartResolver -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:maxUploadSize="104857600" p:maxInMemorySize="104857600">
</bean>
을 추가한다.
기본형은
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
이다.
3.
위 input name="file"인것을 상기한 후
자바 파일(VO) 에다가
private MultipartFile file;
을 설정하고 개터와 새터를 불러온다!
get, set 설정 아시죠?
4. jsp 에서 name 이나 VO의 필드가 file인 점을 잘 기억하시면서.
@RequestMapping(method = RequestMethod.POST)
public ModelAndView process(HttpSession session, ItemBean itemBean,
@RequestParam("file")MultipartFile file) {
// 여기 내용은 파일 저장 경로를 설정하고
// 넘어온 파일의 이름을 저장해서
// db연동하실꺼면 db에 넣기좋은 패스로 설정하시고
// db에 넣으신 후
// jsp 에서 불러오시는 것
}
의 내용으로 받아오시면 됩니다.
생각은 쉬운데 굉장히 어렵고 시간이 없읍니다 .ㅡㅜ
//참고 사이트 : http://winmargo.tistory.com/102
감사합니다 ㅠㅠ
//참고 사이트 : http://winmargo.tistory.com/102
감사합니다 ㅠㅠ
2014년 5월 27일 화요일
20140527 ORA-02292: 무결성 제약조건(SCOTT.SYS_C0011111)이 위배되었습니다- 자식 레코드가 발견되었습니다.
우리는 연습하는 사람으로서
100% scott tiger를 이용하지 않을까 싶다.
일단.(SCOTT.SYS_C0011111)여기에서
SYS_C0011111 이걸 복사해서
select CONSTRAINT_NAME, TABLE_NAME, R_CONSTRAINT_NAME
from user_constraints
where CONSTRAINT_NAME = 'SYS_C0011111'; <-- 여기에 복사한 후 실행한다.
뭐랑 뭐가 얽혔는지 알 수 있다.
얽힌 실타래 같은 가족같은 테이블들을 풀어주자.
이런거 모르겠다! 하시는 분은
얽힌 테이블 명을 기억한 후
drop table 얽힌 테이블명 CASCADE CONSTRAINTS;
명령어를 실행해주자 ^^; 찌밤 ^^a
다 뿌샤버리자!!
100% scott tiger를 이용하지 않을까 싶다.
일단.(SCOTT.SYS_C0011111)여기에서
SYS_C0011111 이걸 복사해서
select CONSTRAINT_NAME, TABLE_NAME, R_CONSTRAINT_NAME
from user_constraints
where CONSTRAINT_NAME = 'SYS_C0011111'; <-- 여기에 복사한 후 실행한다.
뭐랑 뭐가 얽혔는지 알 수 있다.
얽힌 실타래 같은 가족같은 테이블들을 풀어주자.
이런거 모르겠다! 하시는 분은
얽힌 테이블 명을 기억한 후
drop table 얽힌 테이블명 CASCADE CONSTRAINTS;
명령어를 실행해주자 ^^; 찌밤 ^^a
다 뿌샤버리자!!
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 5월 22일 목요일
20140523 콘트롤러에서 받은 리스트 사용하기 hashMap.put("aList", aList)
hashMap.put("aList", aList) 을 이용해
modelAndView로 컨트롤러에서 리턴을 해줬을때
나처럼 멍청하게
${aList.필드명}
으로 사용하지 말고
<c:forEach items="${aList}" var="list">
를 이용하자 ㅡ.ㅜ
1시간 삽질했다 ㅋ
modelAndView로 컨트롤러에서 리턴을 해줬을때
나처럼 멍청하게
${aList.필드명}
으로 사용하지 말고
<c:forEach items="${aList}" var="list">
를 이용하자 ㅡ.ㅜ
1시간 삽질했다 ㅋ
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
20140523 spring, controller// request와 session의 차이 // ModelAndView addobject VS request
Spring 에서 Controller를 사용할 때
session.setAttribute와
request.setAttribute가 있는데
Session의 경우 웹에 부하를 주게되고
Request의 경우 해당 페이지(나의경우 jsp)를 벗어나면 값을 반환한다.
따라서 로그인을 했니 안했니 하는건 Session으로
그외 기타 것들은 Request로 쾌적하게 설계하자.
근데 스프링 시큐어리티 공부해야될듯 ㅡ.,ㅡ 이건 한번도 들어본적도 없는데
전쟁터에선 난무하데!
모델엔뷰의 addobject 는 해당 jsp 페이지에서
request.getAttribute 로 받고
request 로 넘긴경우
EL로 ${}사용하면 된다
라고 생각하는 차이점이 있는거같다고 생각했다고 쓰고있다고 쓴다.
session.setAttribute와
request.setAttribute가 있는데
Session의 경우 웹에 부하를 주게되고
Request의 경우 해당 페이지(나의경우 jsp)를 벗어나면 값을 반환한다.
따라서 로그인을 했니 안했니 하는건 Session으로
그외 기타 것들은 Request로 쾌적하게 설계하자.
근데 스프링 시큐어리티 공부해야될듯 ㅡ.,ㅡ 이건 한번도 들어본적도 없는데
전쟁터에선 난무하데!
모델엔뷰의 addobject 는 해당 jsp 페이지에서
request.getAttribute 로 받고
request 로 넘긴경우
EL로 ${}사용하면 된다
라고 생각하는 차이점이 있는거같다고 생각했다고 쓰고있다고 쓴다.
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
20140522 EmptyResultDataAccessException 발생
jdbctemplate 을 사용해
queryforobject로 리턴값을 받을 때 1개 이상을 받아야 되는데 데이타가 없을때
예외가 발생한다.
try{
// 실행
}catch(EmptyResultDataAccessException e){
// null 일때!
}
이러면 해결 되는듯?
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 5월 21일 수요일
20140521 jsp 에서 core를 이용한 c if 에 관한 내용..ㅠㅠ
1. 일반적인 개발자의 소스코드
<c:if test="${writer == user}">
</c:if>
2. 내꺼
<c:if test="${writer} == ${userl }">
</c:if>
이 글을 읽는"당신" 님에게도 일어날 현상이다. 주의합시다.^^
<c:if test="${writer == user}">
</c:if>
2. 내꺼
<c:if test="${writer} == ${userl }">
</c:if>
이 글을 읽는
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 5월 18일 일요일
20140519 ORA-00911: 문자가 부적합합니다
StringBuffer 에
("select * from x;"); 세미콜론은 빼줍시다.
("select * from x
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 5월 13일 화요일
20140514 ORA-01465: 16진수의 지정이 부적합합니다
Binary Large Object 형식으로
테이블의 속성을 설정했을 경우
insert into 를 잘못하게 되면 나타나는 오류로,
해당 클래스의 필드를 String 이 아닌 byte[]로 바꿔 주거나
CLOB 타입으로 바꿔 String을 사용하는 방법이 맞다고 한다.
출처 : https://groups.google.com/forum/#!msg/ksug/NtCfT7XofJA/_-AcsbcEfNsJ
테이블의 속성을 설정했을 경우
insert into 를 잘못하게 되면 나타나는 오류로,
해당 클래스의 필드를 String 이 아닌 byte[]로 바꿔 주거나
CLOB 타입으로 바꿔 String을 사용하는 방법이 맞다고 한다.
출처 : https://groups.google.com/forum/#!msg/ksug/NtCfT7XofJA/_-AcsbcEfNsJ
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 5월 7일 수요일
20140507 우유부단 VS ㅄ생퀴
난 내가 우유부단한 줄 알았는데...
그냥 ㅄ새퀴였던것!
우유부단은 나한테 사치같은 단어인가보다.
나보고 내가 우유부단 하다고 하니까 그런소리 하지말고 넌 그냥 빙신이래요 ㅠㅠ
나는 자신감이 없는 쭈구리이고 키보드를 타야 말을할 줄 아는 사람이니까......ㅡ.ㅜ
에휴.....
아... 진짜 이 줫같은 성격좀 개조했으면 좋겠다.
제발 도와주세요 형! ㅠㅠ
그냥 ㅄ새퀴였던것!
우유부단은 나한테 사치같은 단어인가보다.
나보고 내가 우유부단 하다고 하니까 그런소리 하지말고 넌 그냥 빙신이래요 ㅠㅠ
나는 자신감이 없는 쭈구리이고 키보드를 타야 말을할 줄 아는 사람이니까......ㅡ.ㅜ
에휴.....
아... 진짜 이 줫같은 성격좀 개조했으면 좋겠다.
제발 도와주세요 형! ㅠㅠ
라벨:
서론과 잡담사이
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 4월 24일 목요일
20140425 NotNull cannot be resolved to a type
NotNull cannot be resolved to a type
@NotNull
등의 하이버네트가 오류날 때
http://mvnrepository.com/artifact/javax.validation/validation-api/1.0.0.GA
jar 파일을 라이브러리로!
@NotNull
등의 하이버네트가 오류날 때
http://mvnrepository.com/artifact/javax.validation/validation-api/1.0.0.GA
jar 파일을 라이브러리로!
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
20140424 applicationContext.xml 에서 에러가?!
applicationContext.xml에서 주의할 점
<aop:pointcut id="serviceMethods" expression="execution(* logic.ShopImpl.*(..))" /> <<-- *뒤에 한칸 띄우기
<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethods"/>
</aop:config>
<tx:attributes>
<tx:method name="entryUser" propagation="REQUIRED" rollback-for="Exception"/>
<tx:method name="checkout" propagation="REQUIRED" rollback-for="Exception"/>
<tx:method name="*" propagation="SUPPORTS" read-only="true"/>
</tx:attributes>
</tx:advice>
-->http://www.eclipse.org/aspectj/downloads.php 에서 aspectj-x.x.x.jar 파일 다운
에서 com.springsource.org.aopalliance-1.0.0.jar 파일 다운
라이브러리에 넣기
이런 에러가 보이면
aspectjweaver-1.6.2.jar 파일을 다운받아 라이브러리로
1. 띄어쓰기
<aop:config><aop:pointcut id="serviceMethods" expression="execution(* logic.ShopImpl.*(..))" /> <<-- *뒤에 한칸 띄우기
<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethods"/>
</aop:config>
2. lib파일 지정
<tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes>
<tx:method name="entryUser" propagation="REQUIRED" rollback-for="Exception"/>
<tx:method name="checkout" propagation="REQUIRED" rollback-for="Exception"/>
<tx:method name="*" propagation="SUPPORTS" read-only="true"/>
</tx:attributes>
</tx:advice>
-->http://www.eclipse.org/aspectj/downloads.php 에서 aspectj-x.x.x.jar 파일 다운
3. xml에서 aop설정시 필요한듯
http://grepcode.com/snapshot/repository.springsource.com/org.aopalliance/com.springsource.org.aopalliance/1.0.0에서 com.springsource.org.aopalliance-1.0.0.jar 파일 다운
라이브러리에 넣기
4. 역시나 라이브러리 문제
Error creating bean with name 블라블라이런 에러가 보이면
aspectjweaver-1.6.2.jar 파일을 다운받아 라이브러리로
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 4월 23일 수요일
20140423 Spring에 들어가면서..No message found under code 'user.userId.default' for locale 'ko_KR'.
스프링 jar 파일 모아놈
http://maven.springframework.org/release/org/springframework/spring/
구버전 모아놈
http://docs.spring.io/downloads/nightly/release-download.php?project=SPR
스프링틴구 이클립스에 설정
help-install new software
add 를 누르고
이름 : springide
주소 : http://springide.org/updatesite
www.olccenter.or.kr
영원히 공부할 사이트
No message found under code 'user.userId.default' for locale 'ko_KR'.
이런 에라 메세지가 뜬다면...
프로젝트 폴더에 Java Resources/src/messages.properties파일이 있나 확인하자.
message.properties라고 해서 한방 먹었다 ㅡ,.ㅡ
<!-- MessageSource -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>messages</value> <-- 이부분 설정을 잘 해줘야 되는거 같다.
</list>
</property>
</bean>
http://maven.springframework.org/release/org/springframework/spring/
구버전 모아놈
http://docs.spring.io/downloads/nightly/release-download.php?project=SPR
스프링틴구 이클립스에 설정
help-install new software
add 를 누르고
이름 : springide
주소 : http://springide.org/updatesite
www.olccenter.or.kr
영원히 공부할 사이트
No message found under code 'user.userId.default' for locale 'ko_KR'.
이런 에라 메세지가 뜬다면...
프로젝트 폴더에 Java Resources/src/messages.properties파일이 있나 확인하자.
message.properties라고 해서 한방 먹었다 ㅡ,.ㅡ
<!-- MessageSource -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>messages</value> <-- 이부분 설정을 잘 해줘야 되는거 같다.
</list>
</property>
</bean>
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 4월 17일 목요일
20140418 String Vs StringBuffer
con = ds.getConnection();
String sql = "insert into newbbs(num, name, email, homepage, subject, content, pos, depth, pass, count, ip) values(bbs_seq.nextval,?,?,?,?,?,?,?,?,?,?)";
pstmt = con.prepareStatement(sql);
pstmt.executeUpdate();
------------------
query.append("insert into newbbs(num, name, email, homepage, subject, content, pos, depth, pass, count, ip) values(bbs_seq.nextval,?,?,?,?,?,?,?,?,?,?)");
pstmt = con.prepareStatement(query.toString());
pstmt.executeUpdate();
------------------
존나 뻐킹하게 머가 다른지 모르겠는데
String 으로 하면 되고
StringBuffer로 하면 안된다... 누가 알려줬으면 좋겠다....
좆나 찌밤
------------------
20분 만에 알아낸 오류-_-
query = new StringBuffer()를 써야하는데
append를 했으니... 이런 쓔발!
String sql = "insert into newbbs(num, name, email, homepage, subject, content, pos, depth, pass, count, ip) values(bbs_seq.nextval,?,?,?,?,?,?,?,?,?,?)";
pstmt = con.prepareStatement(sql);
pstmt.executeUpdate();
------------------
query.append("insert into newbbs(num, name, email, homepage, subject, content, pos, depth, pass, count, ip) values(bbs_seq.nextval,?,?,?,?,?,?,?,?,?,?)");
pstmt = con.prepareStatement(query.toString());
pstmt.executeUpdate();
------------------
존나 뻐킹하게 머가 다른지 모르겠는데
String 으로 하면 되고
StringBuffer로 하면 안된다... 누가 알려줬으면 좋겠다....
좆나 찌밤
------------------
20분 만에 알아낸 오류-_-
query = new StringBuffer()를 써야하는데
append를 했으니... 이런 쓔발!
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
지금의 나를 부정하는 것은.
나를 믿어주는 사람들에 대한 거부이자,
그들을 바보로 만드는 짓거리가 틀림없다.
그래도 이런날이 있잖아.
다 놓고 그냥 멍 때리고 싶은 날.
그날이 오늘이다.
오늘도 깊이 느꼇지만. 난 정말 머리가 좃구리다.
좃좆졷좉좄좋구리다..... 뻐킹 유에스에이!
그들을 바보로 만드는 짓거리가 틀림없다.
그래도 이런날이 있잖아.
다 놓고 그냥 멍 때리고 싶은 날.
그날이 오늘이다.
오늘도 깊이 느꼇지만. 난 정말 머리가 좃구리다.
좃좆졷좉좄좋구리다..... 뻐킹 유에스에이!
2014년 4월 16일 수요일
20140417 게시판에서 IPv6 를 IPv4 형식으로 보이기(이클립스)
0:0:0:0:0:0:1 이란 형식을 우리가 아는 형식으로 바꿔줌
이클립스 메뉴 - run - run configurations
좌측에서 Tomcat 을 클릭
arguments 속성의 VM arguments 를 클릭
맨 아래 -Diava.net.preferIPv4Stack=ture
를 써 넣는다.
이클립스 메뉴 - run - run configurations
좌측에서 Tomcat 을 클릭
arguments 속성의 VM arguments 를 클릭
맨 아래 -Diava.net.preferIPv4Stack=ture
를 써 넣는다.
출처 : http://blog.naver.com/bebeallright?Redirect=Log&logNo=50190787159
2014년 4월 15일 화요일
20140416 이터레이터와 이노무레이션의 차이.,What is the difference between Enumeration and Iterator ?
http://javarevisited.blogspot.kr/2010/10/what-is-difference-between-enumeration.html
에 설명이 잘 나와있다.
Enumeration - 옛날것, 보안상 하자?, 읽기전용
Iterator - 최신것, 보안상 유리?(collection object을 이터레이팅 하는 동안에 다른 쓰레드가 접근하지 못하기 때문), 지우는것 가능
둘의 기능은 collection object을 검색하는것!
iterate
미국·영국 [|ɪtəreɪt]
예문보기
(계산・컴퓨터 처리 절차를) 반복하다
에 설명이 잘 나와있다.
Enumeration - 옛날것, 보안상 하자?, 읽기전용
Iterator - 최신것, 보안상 유리?(collection object을 이터레이팅 하는 동안에 다른 쓰레드가 접근하지 못하기 때문), 지우는것 가능
둘의 기능은 collection object을 검색하는것!

라벨:
학습
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 4월 10일 목요일
20140411 equal symbol expected// UTF-8 사용하기, 오라클 시퀀스 1부터 시작하기//ORA-01747: 열명을 올바르게 지정해 주십시오
/login.jsp (line: 12, column: 57) equal symbol expected
: 이 에러는 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core %>
uri에서 "" 요거 처리를 제대로 하지 않아서 발생! 뻐킹
=> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
------
response.setContentType("text/html; charset=UTF-8");
response.setCharcterEncoding("UTF-8");
둘의 차이!를 보고 사용하자.
// 시퀀스를 1부터 시작하기.
create sequence board_seq
MINVALUE 0
INCREMENT BY 1
START WITH 0;
--> 1부터 시작하게 해서 board_seq.nextval 을 하게되면 시작이 2다 -_- 진짜 컴터 멍청하다.
SELECT board_seq.NEXTVAL FROM DUAL;로 확인해도 그냥 쭉쭉 올라간다.
확인도 하지말자 ㅡ.ㅜ
--> 종종 JDBC를 이용한 명령문이 실패해도 시퀀스는 작동해서 숫자가 올라가 있는 경우가 있다. 단념하자.
근데 똑똑하다.ㅡ.ㅜ
----------------
ORA-01747: 열명을 올바르게 지정해 주십시오
String sql = "update board set title=?, author=?, content=?, where num=?";
ㅋㅋㅋ 내눈엔 안보여
: 이 에러는 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core %>
uri에서 "" 요거 처리를 제대로 하지 않아서 발생! 뻐킹
=> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
------
response.setContentType("text/html; charset=UTF-8");
response.setCharcterEncoding("UTF-8");
둘의 차이!를 보고 사용하자.
// 시퀀스를 1부터 시작하기.
create sequence board_seq
MINVALUE 0
INCREMENT BY 1
START WITH 0;
--> 1부터 시작하게 해서 board_seq.nextval 을 하게되면 시작이 2다 -_- 진짜 컴터 멍청하다.
SELECT board_seq.NEXTVAL FROM DUAL;로 확인해도 그냥 쭉쭉 올라간다.
확인도 하지말자 ㅡ.ㅜ
--> 종종 JDBC를 이용한 명령문이 실패해도 시퀀스는 작동해서 숫자가 올라가 있는 경우가 있다. 단념하자.
근데 똑똑하다.ㅡ.ㅜ
----------------
ORA-01747: 열명을 올바르게 지정해 주십시오
String sql = "update board set title=?, author=?, content=?, where num=?";
ㅋㅋㅋ 내눈엔 안보여
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 4월 7일 월요일
20140407 ORA-01002: 에러 ORA-03115: 에러 와 정보처리 실기.
: ORA-01002: 인출 시퀀스가 틀립니다
DB의 DML인 update 문을 수행하기전에 commit이 Autocommit로 실행 되면 에러가 발생
업데이트 하는동안 다른 process의 접근을 막기위해서 Autocommit을 막아놓고 모든 명령어 처리 후 다시 true로 실행
con.setAutoCommit( false );
//실행 내용
con.commit();
con.setAutoCommit(true);
로 종료
: ORA-03115:
DB의 DML인 update 명령을 실행하는데 이 명령어는 결과값이 없는 명령어.
계속 반환된 값을 불러올려고 하니까 나는 에러.
정보처리 실기.. 2주 남았는데
공부 안함.
클남.
오늘부터 해야됨.
ㅡ.ㅡ....될까? ㅠㅠ
DB의 DML인 update 문을 수행하기전에 commit이 Autocommit로 실행 되면 에러가 발생
업데이트 하는동안 다른 process의 접근을 막기위해서 Autocommit을 막아놓고 모든 명령어 처리 후 다시 true로 실행
con.setAutoCommit( false );
//실행 내용
con.commit();
con.setAutoCommit(true);
로 종료
: ORA-03115:
DB의 DML인 update 명령을 실행하는데 이 명령어는 결과값이 없는 명령어.
계속 반환된 값을 불러올려고 하니까 나는 에러.
정보처리 실기.. 2주 남았는데
공부 안함.
클남.
오늘부터 해야됨.
ㅡ.ㅡ....될까? ㅠㅠ
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 4월 4일 금요일
아 슈발 존나 뻐킹
쒯!
무슨 존나 뻐킹한 고진감래가 올려고 이 난리냐...
아 빡쳐 슈발 뻐킹!
무슨 존나 뻐킹한 고진감래가 올려고 이 난리냐...
아 빡쳐 슈발 뻐킹!
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 4월 3일 목요일
20140403 나태해졌다./ 404에러 500에러 + HTML5와 벌금
초심을 잃고 "어디있니 주차장"을 출시 후 나태해졌다.
다시 마음을 다잡았다.
역시 멍 때리며 지냈던 날들이 물 밀듯이 후회의 쓰나미가 되어 어둠의 다크니스마냥 나의 운명의 데스트니는....머래 ㅡ,ㅡ?
암튼... 요즘 웹을 배우고 있는데 웹을 들어가면서 멘탈의 분개가 왔다..
회계용어가 아니다... 젠장.
좁때 빡친다... 어렵다. 내 머리의 한계를 절실히 느끼고 있다.
그래도 포기하지 않고 다시 따라가본다.
--
웹을 하게되면 가장 많이 보게되는 에러....
404에러 / 어디있니 웹 페이지?!... 이거는 그냥 초보자의 입장에서 봤다면 99퍼센트 눈 탓이다.. 눈 크게뜨고 오타 잘 찾자 + 경로살피기
500에러 / 역시나 'null'틴구를 가장 많이 보며, 보통은 로직의 문제나 문법(?)의 문제가 가장 많다.
초보시절의 500에러는 그냥 귀여운 친구라고나 할까...
나중에 500에러 만나면 빡칠것 같다..ㅡ.ㅜ
--
항간에 웹 페이지를 HTML5로 개정해 놓지 않으면 벌금을 낸다는 루머가 돌았다.
나도 사실인지 알았지만 sosang92횽의 말에 의하면
장애인차별금지(?) 법에 의해서 벌금이나 실형을 때린다는데... 이게 말이냐 방구냐.
HTML5오면서 컨셉이 누구나 평등하게 웹을 누릴 권리? 가 있다는 것같은데.... HTML5로 바꾸지 않았다고 "악의적 차별"을 한게 아니므로 벌금을 때리기 굉장히 굉장하게 애매하다.
한때 이거 돈 좀 되겠는데 라고 생각했던 착각이 부끄러워졌다.
그나저나 진짜 요즘 너무 맘이 심숭생숭하다.
빨리 마음을 다잡아 보자. 봄바람 살랑살랑..
여름을 대비해 운동을 시작했다 라곤 하지만 운동이래봐야 집에서 팔굽혀 펴기하는게 전부다. 복근은 보기싫어서 운동을 안한다. 맘만먹으면 1달이면 6팩인데. ㅋ
군대에서 운동했던게 떠올랐다. 내 팔뚝은 내가봐도 존나 뚱뚱했다.. 그게 ... 그게 다 근유....ㅠㅠ 근데 지금은 이쑤시게, 까시 같다.ㅠㅠ
아.. 횡설수설한다..
악동뮤지션 노래나 듣고싶다. 끗-ㅅ-
다시 마음을 다잡았다.
역시 멍 때리며 지냈던 날들이 물 밀듯이 후회의 쓰나미가 되어 어둠의 다크니스마냥 나의 운명의 데스트니는....머래 ㅡ,ㅡ?
암튼... 요즘 웹을 배우고 있는데 웹을 들어가면서 멘탈의 분개가 왔다..
회계용어가 아니다... 젠장.
좁때 빡친다... 어렵다. 내 머리의 한계를 절실히 느끼고 있다.
그래도 포기하지 않고 다시 따라가본다.
--
웹을 하게되면 가장 많이 보게되는 에러....
404에러 / 어디있니 웹 페이지?!... 이거는 그냥 초보자의 입장에서 봤다면 99퍼센트 눈 탓이다.. 눈 크게뜨고 오타 잘 찾자 + 경로살피기
500에러 / 역시나 'null'틴구를 가장 많이 보며, 보통은 로직의 문제나 문법(?)의 문제가 가장 많다.
초보시절의 500에러는 그냥 귀여운 친구라고나 할까...
나중에 500에러 만나면 빡칠것 같다..ㅡ.ㅜ
--
항간에 웹 페이지를 HTML5로 개정해 놓지 않으면 벌금을 낸다는 루머가 돌았다.
나도 사실인지 알았지만 sosang92횽의 말에 의하면
장애인차별금지(?) 법에 의해서 벌금이나 실형을 때린다는데... 이게 말이냐 방구냐.
HTML5오면서 컨셉이 누구나 평등하게 웹을 누릴 권리? 가 있다는 것같은데.... HTML5로 바꾸지 않았다고 "악의적 차별"을 한게 아니므로 벌금을 때리기 굉장히 굉장하게 애매하다.
한때 이거 돈 좀 되겠는데 라고 생각했던 착각이 부끄러워졌다.
그나저나 진짜 요즘 너무 맘이 심숭생숭하다.
빨리 마음을 다잡아 보자. 봄바람 살랑살랑..
여름을 대비해 운동을 시작했다 라곤 하지만 운동이래봐야 집에서 팔굽혀 펴기하는게 전부다. 복근은 보기싫어서 운동을 안한다. 맘만먹으면 1달이면 6팩인데. ㅋ
군대에서 운동했던게 떠올랐다. 내 팔뚝은 내가봐도 존나 뚱뚱했다.. 그게 ... 그게 다 근유....ㅠㅠ 근데 지금은 이쑤시게, 까시 같다.ㅠㅠ
아.. 횡설수설한다..
악동뮤지션 노래나 듣고싶다. 끗-ㅅ-
라벨:
서론과 잡담사이
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 3월 29일 토요일
20140329 해보겠다는 도전정신과 의지만으론..
일자리를 구할 수 없다.
없을 것이다.
그냥 한 번 일자리를 구하려는 노력이나 해보자?
언제나 역지사지.
내가 사람을 뽑는데,
누가봐도 그런저런 굴곡없는 삶을 산, 노력같은건 별로 하지 않고, 흔히 말하는 대학서열의 줄세우기에 들지도 못하는 대학을 나온 사람이.
의지가 있습니다. 배우는 자세로 임하겠습니다.
나라면 뽑을까?
뽑아서 뽕뽑을까?
뽕 뽑을 꺼리도 안될까?
빨대도 즙이 있는 곳에 꽂아야 빨리나?
뭐래는거야... 에휴.
내일은 서울랜드 가서 여유를 즐기고 오겠다! 백수 화이팅!ㅠㅠ슙발!
없을 것이다.
그냥 한 번 일자리를 구하려는 노력이나 해보자?
언제나 역지사지.
내가 사람을 뽑는데,
누가봐도 그런저런 굴곡없는 삶을 산, 노력같은건 별로 하지 않고, 흔히 말하는 대학서열의 줄세우기에 들지도 못하는 대학을 나온 사람이.
의지가 있습니다. 배우는 자세로 임하겠습니다.
나라면 뽑을까?
뽑아서 뽕뽑을까?
뽕 뽑을 꺼리도 안될까?
빨대도 즙이 있는 곳에 꽂아야 빨리나?
뭐래는거야... 에휴.
내일은 서울랜드 가서 여유를 즐기고 오겠다! 백수 화이팅!ㅠㅠ슙발!
라벨:
서론과 잡담사이
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 3월 18일 화요일
20140318 루씬으로 검색엔진 개발하기.
Never 다음으로 사용될 엔진을 만들어 보고싶다!
라벨:
서론과 잡담사이
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 3월 17일 월요일
20140317 HTML5
HTML5
웹에서 표준 없이 난립하던(HTML4 표준) 테그 방식을 세계표준으로 정의
HTML4 -> HTML5
1. 웹 표준을 지켜라. -> 지키지 않을 시 벌금(법으로 정해짐)
2. 구조와 표현, 동작을 분리하라.
구조(Structure):HTML, XHTML
표현(Presentation):CSS
양식(Behavior):DOM, ECMAScript(공용, Javascript)
- DOM : Document Object Model 으로 트리 형식으로 문서를 표현
3. 최소한의 디버깅을 거쳐라. -> 표준이 맞는지 확인
http://validateor.w3.org - 브라우저유효성검사 (네이버 검색시 63개의 오류 발견됨)
http://jigsaw.w3.org/css-validator - css 유효성확인
http://www.stg.brown.edu/service/xmlvalid - XML 유효성확인
HTML5 추가 기능
- 멀티미디어 : 별도의 플러그인 없이 음악과 동영상 재생
- 그래픽 : 하드웨어 가속을 받아 2/3차원 그래픽 구현
- 통신 : 기존의 단 방향 통신에서 양 방향 통신을 가능하게 구현(웹소켓)
- 오프라인 및 저장소 : 인터넷이 연결되지 않은 상태에서도 앱이 죽지 않게 해줌(Offline Web Application)
- 시멘틱(Semantic:의미있는) 태그사용
등 중요한 것을 뽑아놨다.
웹에서 표준 없이 난립하던(HTML4 표준) 테그 방식을 세계표준으로 정의
HTML4 -> HTML5
1. 웹 표준을 지켜라. -> 지키지 않을 시 벌금(법으로 정해짐)
2. 구조와 표현, 동작을 분리하라.
구조(Structure):HTML, XHTML
표현(Presentation):CSS
양식(Behavior):DOM, ECMAScript(공용, Javascript)
- DOM : Document Object Model 으로 트리 형식으로 문서를 표현
3. 최소한의 디버깅을 거쳐라. -> 표준이 맞는지 확인
http://validateor.w3.org - 브라우저유효성검사 (네이버 검색시 63개의 오류 발견됨)
http://jigsaw.w3.org/css-validator - css 유효성확인
http://www.stg.brown.edu/service/xmlvalid - XML 유효성확인
HTML5 추가 기능
- 멀티미디어 : 별도의 플러그인 없이 음악과 동영상 재생
- 그래픽 : 하드웨어 가속을 받아 2/3차원 그래픽 구현
- 통신 : 기존의 단 방향 통신에서 양 방향 통신을 가능하게 구현(웹소켓)
- 오프라인 및 저장소 : 인터넷이 연결되지 않은 상태에서도 앱이 죽지 않게 해줌(Offline Web Application)
- 시멘틱(Semantic:의미있는) 태그사용
등 중요한 것을 뽑아놨다.
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 3월 15일 토요일
20140316 주차장 찾기/어디있니? 주차장 마켓에 등록!
이 글을 쓰는 것은 한 권의 책을 선물 받음으로 써 시작 되었습니다!
'주열이 형이 선물해준 안드로이드 마케팅에 관련 된 책'입니다.
이 글을 빌어(과연 보실까?) 주열이 형에게 감사의 마음을 전합니다. :)
사실, 처음에는 '혼자 쓸껀데?, 마켓에?, 내가?, 올려?, 이걸?' 뭐 이런 느낌이었습니다.
만!
뭔가 하다 보면 욕심도 생기고 재미도 생기면서, 시작할 때와는 다른 생각을 하게 되고, 확장되는 생각은 멈출 수가 없었습니다. 최근에 굉장한 행복?을 느끼고 있는 것 또한 사실입니다. 나도 '무엇'인가 할 수 있구나! 라는 생각을 하고 있으니까요. 한때(대학생) 저는 농담 1%를 가미해 스스로를 "똥 제조기"라고 부르곤 했습니다. XD
어쨋거나 우여곡절 끝에 앱을 출시하게 되었습니다.
과정은 이렇습니다.
- 종종 맛집을 찾으러 다닐 때, 맛은 못 보고 그 동네 지리만 구경하다 온 경험이 있습니다.
- '서울열린데이터광장'에 주차장 정보가 있습니다.
- 대학 교과 과정으로 따졌을 때 '1 과목 / 1 학기' = 60시간(대략 완전 이행 시)
- 나는 약 3 과목을 1 달 동안 배웠음
- 나만 쓸 생각으로 기획 -> 쓸데없는 기능은 다 빼고, 핵심 사항만 표현
- 내 위치 주변을 탐색한다.
- 목적지 위치 주변을 탐색한다.
- 소스에 반드시 '주석'달기
- 제가 맵 위에 마커를 통한 '목표지점 보여주기'형식의 재료는 오로지 '서울열린데이터광장'에서 제공해 준 '주소'밖에 없었습니다. 어떻게 하면 '주소'를 '위도,경도'로 변환할 수 있을까 생각하며 구글링을 했습니다. 이때 했던 생각은 '내가 구현하려는 모든 기능은 가능하다' 였던 것 같습니다. 또 하루를 투자하여 기능을 구현해 냈습니다.만, 구글에서 만든 일종의 제어장치? 때문에 하루에 2500건 이상의 서버로의 요청은 하지 못하는 관계로 다음날을 기약했습니다.
- 이제 원하는 주소의 목록(JSON)과 좌표(txt)를 얻었습니다. 이제 두 파일을 합쳐 하나의 DB로 형성하는 일만 남았습니다. 파일, 버퍼스트림, 토큰라이저, 서브스트링 등의 기능을 마구잡이로 사용해본 결과 하루만에 두 파일을 내가 원하는 형태로 만들 수 있었습니다. 드디어 DB의 최종 구현이 되었습니다.
- 이제 최종 구현된 DB의 '경도와 위도'를 이용해 맵 위에 표시하는 일만 남았습니다. 이것을 구현함으로 써 기본 구상의 90%는 달성한 것과 마찬가지 입니다. 기본적인 구상을 달성하는 데 만도 1주일이란 시간이 걸렸습니다. IT직군이 '왜 박봉인지'는 모르겠으나 '왜 야근을 하는가'에 대한 대답을 이해할 수 있는 시기였습니다. 구글 API 개발자 페이지를 참조해 무난하게 하루동안 맵 위에 주차장 위치를 찍어내는데 성공했습니다. 그리고 다음 날 일반/버스 전용/ 이륜차 전용 등의 아이콘도 추가하게 되었습니다.
- 마지막으로 내 위치 주변 반경을 통해 맵을 축소/확대 하고 목적지 위치를 검색해 그 주변의 맵을 확대/축소 하기만 하면 됩니다. 시간의 흐름 상 이미 구현은 해 놨지만 후반부에 이를 언급한 이유는 '까먹어서'입니다. 다시 중간에 끼워넣기가 번거롭고 글의 분량도 이렇게 늘릴 수 있지 않나;; 생각합니다. ㅎ ㅔㅎ ㅔ
앞으로 석류를 더욱 많이 먹어야겠습니....???읭?)
'멈춤'현상이 될 수 있다는 것을 인희형이 말씀해 주셔서 바로 고쳤습니다.
= 해결은 다중 스레드를 통한 상태 진행 바를 통하여 했습니다. 시각적으로 안정감을 주고 뭔가 멈추지 않고 작동되고 있다는 인상을 주면 충분했습니다.(애매한 설명?! ㅎ ㅔㅎ ㅔ)
- 둘째. '종각'을 치면 '미국 플로리다 우정의 종각'으로 이동되는 현상을 여친님께서 발견해 주셨습니다. 앞서 '왜?' 부분에서 언급했듯이 종각에 종종 갑니다. 이 계기를 통해 플로리다의 우정의 종각에 한번 쯤 가보고 싶어졌습니다. ^^;
= 해결은 '주소 검색창'에서 검색된 순간 '대한민국'이 아니면 "주소를 다시 입력하라"는 토스트를 띄움으로 써 땜빵해 놨습니다. 이 글을 쓰기 약 21시간 전에 더 좋은 아이디어가 생각났으나 집에선 해결할 수 없어서, 월요일 아침에 해결하기로 마음 먹었습니다.
- > 해결방법 : 주소 검색창에서 받아오는 스트링에 +"대한민국"을 넣으면 깔끔하게 해결될 것으로 기대하고 있습니다.
- 셋째. GPS가 켜져 있지 않으면 강제로 종료되는 현상
= 구글을 통해 GPS가 켜져 있지 않으면 설정 페이지로 이동하도록 넣어놨고, 혹시라도 사용자의 위치를 잡지 못하면 강제로 '독도'로 보내지게 설정해 놨습니다.(저의 코딩상 이론입니다. 실제는 잘 ..ㅡ,.ㅜ;)
- 넷째. 분명 기획상에는 3초 또는 5미터의 거리 변화가 있을 때 마다 지도위에 본인의 위치를 재 설정해서 보여줘야 하는데 정확하게 구현이 안됨.
= 실험을 통해 구현을 해 봤지만 이동시의 주소만 변경되고 위치는 잘 변경되지 않는 것으로 보였습니다. 이건 기회가 되면 차차 구현해볼 생각입니다. 이것만 제대로 작동하게 되면 '나만의 운동 앱'을 만들 수 있을 것 같습니다. 자전거를 타는 수많은 사람들을(사실 아버지)위해 만들어 볼 생각입니다.
- UI의 허접함
= 버튼, 텍스트, 텍스트 입력창 모두 안드로이드가 제공하는 기본 UI를 사용하다 보니 약간은 허접하게 보이는게 사실입니다. 검색 버튼을 아이콘으로 사용하는 이미지로 대체한다던지 등의 개선점이 많이 있지만 시간이 남으면 할 생각입니다. 어짜피 나만 쓰니까요 :)
이런 과정을 거쳤지만, 결국에는 만족도가 높지는 않은 앱이 되었습니다. '첫 술에 배부르랴' 라는 의미보다는 '기능인'의 관점에서 생각하고 싶은 것이 이번 'N+1번째 삶'에서의 '의지'이기 때문입니다.
끝으로, 사진으로 실행화면을 공개하고 마치겠습니다.(+ 깨알 홍보)
'주열이 형이 선물해준 안드로이드 마케팅에 관련 된 책'입니다.
이 글을 빌어(
사실, 처음에는 '혼자 쓸껀데?, 마켓에?, 내가?, 올려?, 이걸?' 뭐 이런 느낌이었습니다.
만!
뭔가 하다 보면 욕심도 생기고 재미도 생기면서, 시작할 때와는 다른 생각을 하게 되고, 확장되는 생각은 멈출 수가 없었습니다. 최근에 굉장한 행복?을 느끼고 있는 것 또한 사실입니다. 나도 '무엇'인가 할 수 있구나! 라는 생각을 하고 있으니까요. 한때(대학생) 저는 농담 1%를 가미해 스스로를 "
어쨋거나 우여곡절 끝에 앱을 출시하게 되었습니다.
과정은 이렇습니다.
1. 왜?!
- 여친느님의 친구 부부가 종각에서 일을 합니다.- 종종 맛집을 찾으러 다닐 때, 맛은 못 보고 그 동네 지리만 구경하다 온 경험이 있습니다.
- '서울열린데이터광장'에 주차장 정보가 있습니다.
2. 어떻게?
- 무려 1달, 주 5일, 하루 8시간 = 160시간(대략)을 공부함- 대학 교과 과정으로 따졌을 때 '1 과목 / 1 학기' = 60시간(대략 완전 이행 시)
- 나는 약 3 과목을 1 달 동안 배웠음
- 나만 쓸 생각으로 기획 -> 쓸데없는 기능은 다 빼고, 핵심 사항만 표현
3. 기본 구상
- 지도를 띄워 주차장을 표시한다.- 내 위치 주변을 탐색한다.
- 목적지 위치 주변을 탐색한다.
- 소스에 반드시 '주석'달기
4. 제작
- 최초 구글 맵의 이해없이 무작정 달려들어 3일이란 시간을 낭비하고 맵을 띄우는 방법을 알아냈습니다. 이전의 버전인 API V1 버전은 사용하지 않고 API V2 버전의 맵을 사용했습니다. 책을 통해 구현해 낸 것이 아니라 온전히 구글과 스텍오버플로를 통해 'Ctrl+ㅊ&ㅍ'을 사용하였습니다. 몇몇은 그렇게 붙여 넣는 것도 실력이 좋은 거라며 칭찬해줬지만, 다른 개발자 들이 두루의 블로그에서 'Ctrl + ㅊ&ㅍ'을 사용하는 것을 목표로 달릴 "생각!"입니다. 생각..:)- 제가 맵 위에 마커를 통한 '목표지점 보여주기'형식의 재료는 오로지 '서울열린데이터광장'에서 제공해 준 '주소'밖에 없었습니다. 어떻게 하면 '주소'를 '위도,경도'로 변환할 수 있을까 생각하며 구글링을 했습니다. 이때 했던 생각은 '내가 구현하려는 모든 기능은 가능하다' 였던 것 같습니다. 또 하루를 투자하여 기능을 구현해 냈습니다.만, 구글에서 만든 일종의 제어장치? 때문에 하루에 2500건 이상의 서버로의 요청은 하지 못하는 관계로 다음날을 기약했습니다.
- 이제 원하는 주소의 목록(JSON)과 좌표(txt)를 얻었습니다. 이제 두 파일을 합쳐 하나의 DB로 형성하는 일만 남았습니다. 파일, 버퍼스트림, 토큰라이저, 서브스트링 등의 기능을 마구잡이로 사용해본 결과 하루만에 두 파일을 내가 원하는 형태로 만들 수 있었습니다. 드디어 DB의 최종 구현이 되었습니다.
- 이제 최종 구현된 DB의 '경도와 위도'를 이용해 맵 위에 표시하는 일만 남았습니다. 이것을 구현함으로 써 기본 구상의 90%는 달성한 것과 마찬가지 입니다. 기본적인 구상을 달성하는 데 만도 1주일이란 시간이 걸렸습니다. IT직군이 '왜 박봉인지'는 모르겠으나 '왜 야근을 하는가'에 대한 대답을 이해할 수 있는 시기였습니다. 구글 API 개발자 페이지를 참조해 무난하게 하루동안 맵 위에 주차장 위치를 찍어내는데 성공했습니다. 그리고 다음 날 일반/버스 전용/ 이륜차 전용 등의 아이콘도 추가하게 되었습니다.
- 마지막으로 내 위치 주변 반경을 통해 맵을 축소/확대 하고 목적지 위치를 검색해 그 주변의 맵을 확대/축소 하기만 하면 됩니다. 시간의 흐름 상 이미 구현은 해 놨지만 후반부에 이를 언급한 이유는 '까먹어서'입니다. 다시 중간에 끼워넣기가 번거롭고 글의 분량도 이렇게 늘릴 수 있지 않나;; 생각합니다. ㅎ ㅔㅎ ㅔ
5. 완성
- 가장 먼저 든 생각은 '왜 나는 쓰레기를 만들었나' 하는 것입니다..ㅠㅠ 그만큼 형편없어 보였습니다. '처녀작 이니까', '1달 공부로 얼마나 하겠어' 따위의 생각은 하지 않았습니다. 너무나 초라해 보였습니다. 하지만 '다듬으면 되지'라는 생각으로 눈물을 머금고 다듬기에 들어갑니다., 만! 역시나 UI는 여성분들의 감각을 따라갈 수 없음을 다시 한 번 절실하게 느끼게 됩니다.(6. 문제점(대부분 테스트 & 테스터 의 중요성)
- 첫째. 맨 처음 화면에서 버튼을 누르면 '맵 로딩하는 시간& 주차장 마킹하는 시간'동안 '멈춰 보이는 현상'을 개발자인 저는 로그를 보면서 기다렸지만 다른사람 눈에는'멈춤'현상이 될 수 있다는 것을 인희형이 말씀해 주셔서 바로 고쳤습니다.
= 해결은 다중 스레드를 통한 상태 진행 바를 통하여 했습니다. 시각적으로 안정감을 주고 뭔가 멈추지 않고 작동되고 있다는 인상을 주면 충분했습니다.(
- 둘째. '종각'을 치면 '미국 플로리다 우정의 종각'으로 이동되는 현상을 여친님께서 발견해 주셨습니다. 앞서 '왜?' 부분에서 언급했듯이 종각에 종종 갑니다. 이 계기를 통해 플로리다의 우정의 종각에 한번 쯤 가보고 싶어졌습니다. ^^;
= 해결은 '주소 검색창'에서 검색된 순간 '대한민국'이 아니면 "주소를 다시 입력하라"는 토스트를 띄움으로 써 땜빵해 놨습니다. 이 글을 쓰기 약 21시간 전에 더 좋은 아이디어가 생각났으나 집에선 해결할 수 없어서, 월요일 아침에 해결하기로 마음 먹었습니다.
- > 해결방법 : 주소 검색창에서 받아오는 스트링에 +"대한민국"을 넣으면 깔끔하게 해결될 것으로 기대하고 있습니다.
- 셋째. GPS가 켜져 있지 않으면 강제로 종료되는 현상
= 구글을 통해 GPS가 켜져 있지 않으면 설정 페이지로 이동하도록 넣어놨고, 혹시라도 사용자의 위치를 잡지 못하면 강제로 '독도'로 보내지게 설정해 놨습니다.(
- 넷째. 분명 기획상에는 3초 또는 5미터의 거리 변화가 있을 때 마다 지도위에 본인의 위치를 재 설정해서 보여줘야 하는데 정확하게 구현이 안됨.
= 실험을 통해 구현을 해 봤지만 이동시의 주소만 변경되고 위치는 잘 변경되지 않는 것으로 보였습니다. 이건 기회가 되면 차차 구현해볼 생각입니다. 이것만 제대로 작동하게 되면 '나만의 운동 앱'을 만들 수 있을 것 같습니다. 자전거를 타는 수많은 사람들을(
- UI의 허접함
= 버튼, 텍스트, 텍스트 입력창 모두 안드로이드가 제공하는 기본 UI를 사용하다 보니 약간은 허접하게 보이는게 사실입니다. 검색 버튼을 아이콘으로 사용하는 이미지로 대체한다던지 등의 개선점이 많이 있지만 시간이 남으면 할 생각입니다. 어짜피 나만 쓰니까요 :)
이런 과정을 거쳤지만, 결국에는 만족도가 높지는 않은 앱이 되었습니다. '첫 술에 배부르랴' 라는 의미보다는 '기능인'의 관점에서 생각하고 싶은 것이 이번 'N+1번째 삶'에서의 '의지'이기 때문입니다.
끝으로, 사진으로 실행화면을 공개하고 마치겠습니다.(+ 깨알 홍보)
라벨:
서론과 잡담사이
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 3월 10일 월요일
20140311 내가 만든 앱을 Export 하기!
두 가지 에러와 싸웠다.
1. "app_name" is not translated in af, am, ar, be, bg, ca, cs, da, de, el, en-rGB, en-rIN, es, es-rUS, et, et-rEE, fa, fi, fr, fr-rCA, hi, hr, hu, hy-rAM, in, it, iw, ja, ka-rGE, km-rKH,
ko, lo-rLA, lt, lv, mn-rMN, ms, ms-rMY, nb, nl, pl, pt, pt-rBR, pt-rPT, ro, ru, sk, sl, sr, sv, sw, th, tl, tr, uk, vi, zh-rCN, zh-rHK, zh-rTW, zu
2. Conversion to dalvik format failed with error 1
해결 방법
1. In "Window" > "Preferences" > "Android" > "Lint Error Checking":
Find the MissingTranslation line, and set it to Warning
1. "app_name" is not translated in af, am, ar, be, bg, ca, cs, da, de, el, en-rGB, en-rIN, es, es-rUS, et, et-rEE, fa, fi, fr, fr-rCA, hi, hr, hu, hy-rAM, in, it, iw, ja, ka-rGE, km-rKH,
ko, lo-rLA, lt, lv, mn-rMN, ms, ms-rMY, nb, nl, pl, pt, pt-rBR, pt-rPT, ro, ru, sk, sl, sr, sv, sw, th, tl, tr, uk, vi, zh-rCN, zh-rHK, zh-rTW, zu
2. Conversion to dalvik format failed with error 1
해결 방법
1. In "Window" > "Preferences" > "Android" > "Lint Error Checking":
Find the MissingTranslation line, and set it to Warning
라니까 이클립스에서 똑같이 하면된다
근데 안드로이드 - 린트 에러 체킹에 가면 너무 많아서 몾찾으니 위 검색 바에
translate 를 쳐보자 혹은 missing 그 후 찾아보면 보인다.
2. 그냥 깔끔하게 소스 클린업을 해줫다.
이클립스에서 - source - clean up
혹은 프로젝트를 우클릭 해서 하면 될듯!
근데 난 카드가 없어.... 카드가... 은행갔다 와야겠다......
위치:
대한민국 서울특별시
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 3월 7일 금요일
20140308 ㅇㅇ?
1. 형!
그냥 같이 있으면 내 모자란 부분 따위는 잊게 해주는 형이 있다.
2. 의사소통 능력의 부재
나는 의사 전달을 잘 못한다. 얼른 도민준씨 같은 분들이 텔레파시를 개발해 주면 좋겠다.
3. 맛난거 리스트나 약속 리스트? 체크 리스트? 음.....
4. 집에서 항공모함 소리를 들어 본 적이 있는지?
아마 몇 명 있을 것 같다.
나는 집에 항공모함이 아니 최소한 음속의 비행을 할 수 있는 비행기가 있는 것 같다.
지금은 그저 크롬하나 띄웠을 뿐인데 비행기가 쾌속질주를 하고 앉아있다 --;
이거 터지는 것 아닌가 하는 생각도 든다.
그런데,
이런 컴퓨터를 전혀 탓하지 않는다.
컴퓨터의 3초는 인간의 30년보다 길다고 선생님이 그랬다.
나보다 형인데 어떻게 탓할 수 있겠는가?! 나는 그저 내 마음을 다스리는 도구로 사용할 뿐이다.
컴퓨터가 주옥같이 느릴 때, 보통 내 성격이 개같음을 상기시킨 후 적절히 마음을 다스리는 연습을 한다.
그래서 컴퓨터를 잘 안한다.
그래서 수양이 덜 된 검은 머리 짐승이다.
컴퓨터를 많이 해서 마음의 수양을 싸항야겠당.ㅡ.,ㅡa
기승병병....ㅠㅠ
5. 마음의 수양
지금은 머리, 지식보다는 가슴, 마음, 그릇을 넓히는 것이 우선일 것 같다.
흐트러 지지 말자. 그릇을 키우자!
입으로 글로 싸지만 말고, 진짜 해보자.
찌니 미안 ㅠㅠ
그냥 같이 있으면 내 모자란 부분 따위는 잊게 해주는 형이 있다.
2. 의사소통 능력의 부재
나는 의사 전달을 잘 못한다. 얼른 도민준씨 같은 분들이 텔레파시를 개발해 주면 좋겠다.
3. 맛난거 리스트나 약속 리스트? 체크 리스트? 음.....
4. 집에서 항공모함 소리를 들어 본 적이 있는지?
아마 몇 명 있을 것 같다.
나는 집에 항공모함이 아니 최소한 음속의 비행을 할 수 있는 비행기가 있는 것 같다.
지금은 그저 크롬하나 띄웠을 뿐인데 비행기가 쾌속질주를 하고 앉아있다 --;
이거 터지는 것 아닌가 하는 생각도 든다.
그런데,
이런 컴퓨터를 전혀 탓하지 않는다.
컴퓨터의 3초는 인간의 30년보다 길다고 선생님이 그랬다.
나보다 형인데 어떻게 탓할 수 있겠는가?! 나는 그저 내 마음을 다스리는 도구로 사용할 뿐이다.
컴퓨터가 주옥같이 느릴 때, 보통 내 성격이 개같음을 상기시킨 후 적절히 마음을 다스리는 연습을 한다.
그래서 컴퓨터를 잘 안한다.
그래서 수양이 덜 된 검은 머리 짐승이다.
컴퓨터를 많이 해서 마음의 수양을 싸항야겠당.ㅡ.,ㅡa
기승병병....ㅠㅠ
5. 마음의 수양
지금은 머리, 지식보다는 가슴, 마음, 그릇을 넓히는 것이 우선일 것 같다.
흐트러 지지 말자. 그릇을 키우자!
입으로 글로 싸지만 말고, 진짜 해보자.
찌니 미안 ㅠㅠ
라벨:
서론과 잡담사이
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
20140307 시작, 한 달... 그리고 앞으로!
벌써 한 달이 지났다.
새로운 삶을 살아보겠다고 다짐한 횟수가 약 N회는 될 건데... (솔직히 몇 번인지 모르겠다 8번까지는 기억이 난다.)
한 달 전, 새롭게 시작한 삶은 N+1번째 삶이라 명명하겠다. ㅋㅋ
처음 JDK 설치 하는 방법이 복잡해 보였지만,
수 차례 삽질의 결과로 이제는 다른 사람들의 블로그를 보면 쉽게? 설치 할 수 있다.
그리고 어느새 내 스스로 프로젝트를 기획하고 내가 만든 프로젝트를 Play store에 올리네 마네 하는 시간이 됐다.
짧다면 짧고 길다면 긴 한 달 동안, 고작
수 십 가지의 생각을 했고, 몇 권의 책을 봤으며, 정보처리기사 필기에 합격했다.
그런데 이토록 재밌게 살아본 적이 언제인지 기억이 까마득 하다.
아마도 중학교 때, 나름 B-boy 생활을 즐겼을 때, 고딩, 대딩 때 나쁜 친구한테 바이크를 배워 한참 한국을 누비고 다녔을 때(오늘도 전화 올 때가 됐는데 왜 안 오지 ㅡ,.ㅡ;).
그리고 잘 기억 나지는 않지만 즐거웠던 몇 번의 시절들을 더해도 10번은 안 될 것 같다.
요즘에는 집중이 안되는 차원을 넘어 섰다. 책을 읽다가 프로그래밍 생각을 하고 프로그래밍을 하다가 책 생각을 하고, 책 생각을 하다가 미래를 생각하고, 지금 얼마나 햄 볶는지 생각하고, 등등... 멀티 프로세싱도 안되는 나쁜 머리를 가지고... 곧 과부하가 올 것 같다.. 슬슬 머리가 아파진다.. :(
얼마 전, 굉장히 어마어마하게 불쾌한 날이 있었다. 자세한 이유는 모르겠다. 그걸 알면 기분도 나쁘지 않았을 것 같다. 그래서 더 짱난다. 주옥같다. 가족같다.
머 아무튼, 기승병병을 해보자면,
기초가 튼튼하지 못하면 모래성,
기초를 오래 다지면 오래 다질 수록, 막연한 불안감....
뭐 어쩌자는거야 ㅡ,.ㅡ
기초를 짧은 시간에 튼튼하고 굵게! 디지고싶다..........................-_-a
라벨:
서론과 잡담사이
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 3월 6일 목요일
20140307 Google MAP API V2 지도가 안보여요 ㅠㅠ
지도를 얻어올때
.getMap(); 에서 NullpointerException이 일어나는 아주 잣같은 현상이 자꾸만 나타난다
뭐 다른것들은 다 해봤으니
남은것은 하나.
<fragment
android:id="@+id/JjangMap"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<fragment
android:id="@+id/FckMap"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
위에것은 안드로이드 버전 11~ 을 지원하고
아랫것은 윗사람을 잘 따라야 한다....ㅡ,.ㅡ?
아랫것은 존나 올드한거다.
구글 api v2 를 사용할 때는 깃발도 꼽고 마크도 하고 이것저것 하실거니까
반드시 위에것으로 하시길!
뻐킹!
.getMap(); 에서 NullpointerException이 일어나는 아주 잣같은 현상이 자꾸만 나타난다
뭐 다른것들은 다 해봤으니
남은것은 하나.
<fragment
android:id="@+id/JjangMap"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<fragment
android:id="@+id/FckMap"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
위에것은 안드로이드 버전 11~ 을 지원하고
아랫것은 윗사람을 잘 따라야 한다....ㅡ,.ㅡ?
아랫것은 존나 올드한거다.
구글 api v2 를 사용할 때는 깃발도 꼽고 마크도 하고 이것저것 하실거니까
반드시 위에것으로 하시길!
뻐킹!
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 3월 4일 화요일
20140305 아 뻐킹! 3일간의 사투 끝에 드디어 폰에 맵을 띄웠다...
아......좁때 빡쳤다.
일단 기념으로 남겨두고 이제 시작해야겠다..ㅠㅠ
1. https://code.google.com/apis/console/ 에 접속해서
새로운 프로젝트를 만든 뒤 원하는 서비스에 google maps android api v2 를 On 시켜주고
api 키를 받는다.
- google maps android api v2 를 On 시켜주면 왼쪽의 메뉴 에서 API 어쩌고 하는 것을 클릭
- Simple API Access - key for browser 의 API키를 복사해두면 됨
2. 이클립스의 sdk 메니저에서 extras - google play services을 설치한다.
3. sdk가 있는 폴더명/extras/google/google_play_services/libproject/google-play-services_lib
을 import 해준다!
- 또는 New - other - Android project from existing code 에서 경로설정후 확인
4. 자신이 생성한 프로젝트의 우측 버튼을 클릭해 properties 로 들어간다.
- V1 버전에서와 반대로 타겟이 전혀 중요하지 않다! ㅋㅋㅋ
-에뮬레이터는 꺼두자. 필요없다! 무조건 자신의 폰 혹은 더미기계로 ㄱㄱ
프로퍼티에 라이브러리 추가를 해주자
-google-play-services_lib가 떠있을 것이다 그것만 추가해주고 위에 타겟은 맘대로 ㄱㄱ
5. 메니피스트 - 메인.xml - 프로젝트.java 파일 순으로 변경
5-1 manifest
전체를 복사해 넣을테니 비교하면서 붙여넣자 -_- 그냥 막 가따 쓰지 말자
굵은 부분이 내가 추가한 거 같다...ㅡ,.ㅡ;
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.app.findparking"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<permission
android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="여기에 자신이 받은 api 키를 집어 쑤셔 넣는다" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity
android:name="프로젝트 패키지.MainActivity" <-- 기본 생성되니 손대지 말자
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
5-2 main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<fragment
android:id="@+id/showmethemap"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
5-3 MainActivity.java
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.Menu;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Check status of Google Play Services
int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
// Check Google Play Service Available
try {
if (status != ConnectionResult.SUCCESS) {
}
} catch (Exception e) {
Log.e("Error: GooglePlayServiceUtil: ", "" + e);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
일단 기념으로 남겨두고 이제 시작해야겠다..ㅠㅠ
1. https://code.google.com/apis/console/ 에 접속해서
새로운 프로젝트를 만든 뒤 원하는 서비스에 google maps android api v2 를 On 시켜주고
api 키를 받는다.
- google maps android api v2 를 On 시켜주면 왼쪽의 메뉴 에서 API 어쩌고 하는 것을 클릭
- Simple API Access - key for browser 의 API키를 복사해두면 됨
2. 이클립스의 sdk 메니저에서 extras - google play services을 설치한다.
3. sdk가 있는 폴더명/extras/google/google_play_services/libproject/google-play-services_lib
을 import 해준다!
- 또는 New - other - Android project from existing code 에서 경로설정후 확인
4. 자신이 생성한 프로젝트의 우측 버튼을 클릭해 properties 로 들어간다.
- V1 버전에서와 반대로 타겟이 전혀 중요하지 않다! ㅋㅋㅋ
-에뮬레이터는 꺼두자. 필요없다! 무조건 자신의 폰 혹은 더미기계로 ㄱㄱ
프로퍼티에 라이브러리 추가를 해주자
-google-play-services_lib가 떠있을 것이다 그것만 추가해주고 위에 타겟은 맘대로 ㄱㄱ
5. 메니피스트 - 메인.xml - 프로젝트.java 파일 순으로 변경
5-1 manifest
전체를 복사해 넣을테니 비교하면서 붙여넣자 -_- 그냥 막 가따 쓰지 말자
굵은 부분이 내가 추가한 거 같다...ㅡ,.ㅡ;
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.app.findparking"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<permission
android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="여기에 자신이 받은 api 키를 집어 쑤셔 넣는다" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity
android:name="프로젝트 패키지.MainActivity" <-- 기본 생성되니 손대지 말자
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
5-2 main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<fragment
android:id="@+id/showmethemap"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
뭐 v1 에서는 MapView 였고 V2에서는 fragment 라는데 그딴거 모르겠다 그냥 좁때 신난다.
5-3 MainActivity.java
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.Menu;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Check status of Google Play Services
int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
// Check Google Play Service Available
try {
if (status != ConnectionResult.SUCCESS) {
}
} catch (Exception e) {
Log.e("Error: GooglePlayServiceUtil: ", "" + e);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
역시나 Stackoverflow 진짜 ㄷㄷㄷ하다..
일단 이렇게 하면 폰에 맵이 뜨는 신기한 현상을 경험한다.
나는 V1으로 하루 반나절 V2로 하루 반나절 총 3일간의 삽질을 했다.
그 이유는 폰이던 에뮬레이터던 맵이 안뜬다
그냥 격자무늬만 신나게 나오고.... 진짜 폭발할뻔 했는데 간신히 참았더니
3일째에 드디어 빛을 봤다.
근데 이게 시작인데...
간단해 보이는 것도 실제로 만드려니까 이렇게 힘들구나 하는 걸 느꼇다.
좁때 쉽게 만들고 싶다 ㅡ,.ㅜ
이제 또 맵 위에서 노는걸 연습해야겠다............. ㅎ ㅔㅎ ㅔ
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 3월 2일 일요일
20140303 당신이 진정 원하는 것은 무엇인가?
수 많은 책들이나 연설자들이 이야기 한다.
- 당신이 정말 원하는 것을 하세요.
비단 나만의 문제가 아닐....
= 나는 정말 내가 뭘 좋아하는 지 모르겠다.
나도 내가 원하는 것을 하고, 싫어하는 것은 하기 싫다.
근데 대부분의 사람이 아마도 원하는 것이 무엇인지도 모르고, 회사의 노예가 되어 살아가고 있을 것 같다.
나는 종종 이런 말을 듣곤 한다.
- 너는 회사원 체질이 아니야.
- 혹시 너 회사 차리면 나도 좀 불러줘라. 월 200만 원만 주면 열심히 일 할께.
1. 나는 정말 회사원(이라 쓰고 노예라 읽는다) 체질이 아닌 것인지 궁금하다.
그렇게 느끼는 이유는 사회 부적응자 마냥 사람들과 잘 어울리지 못하고, 아니다 싶은 것은 아니라고 말할 때도(드물게 ㅋ) 있기 때문인 것 같다.
종종 여자친구는 나보고 화를 다스리지 못한다고 하기도 하고,
이전 노예생활 할 때, 팀장님은 나보고 화가 많은 사람이고 절대 조용하지 않은 사람이라는 평가를 했다. 또한 회사원 체질이 아니라는 말도....
누구나 하는 노예 생활을 왜 나는 못 견뎌 하는 것일까?.
나는 남들보다 더 멍청하다는 장점을 가지고 있기 때문에, 상황 판단, 눈치(이를테면 센스) 같은 것이 많이 없다. 때문에 종종 다른 노예들과 마찰이 생기기도 하고 마찰을 주체하지 못할 때에는 모든 사람이 내가 화났다는 사실을 알게 되기도 한다(이전 노예 생활에서는 진짜 피떡을 만들고 싶은 상급(도 아니지만)노예와 마찰이 있었지만 내가 그 곳을 탈출하는 것으로 마무리 지었다.).
어쨋거나 나는 사회성이 없는 깜장머리 짐승으로 노예 생활과 잘 맞지는 않지만, 아봉하고 노예생활을 하면 어떻게든 견뎌낼 수 있을 것 같긴하다(물론 가정이 생긴다면 더 힘들겠지).
2. 나한테 회사원 체질이 아니라고 하는 사람들의 공통점.
내가 느끼기에는 그 사람들은 나한테 호의적이다. 어쩌면 반 이상은 연민을 가지고 이야기 한 것일 수 있다.
그리고, 그들은 나에게 항상 함께 일하자고 이야기한다.(약간의 모순?)
어쨋거나 나는 사회성이 결여된 검은머리 짐승이므로, 노예 생활(이것은 기분 나쁠 수 있지만 나에겐 사람들의 사회로 다가갈 수 없는 그곳을 이야기 한다.)은 나에겐 멀지만 극복 해야 하는 과제같은 생활이다.
3. 신기하게도 나는 소위 '유명인'이라는 사람들이 이야기하는 좋은?점이 내 이야기 같다.
사랑에 빠졌을 때 좋은 노래 가사가 내 이야기 같고, 이쁘고 아름다운 시는 날 위해 쓰여진 것 같으며, 행복한 결말의 드라마(혹은 영화)는 내 인생을 보는 것 같은 느낌이 드는 때가 있다(누구나 그럴 것 같은데?).
일종의 설레발 같지만, 내가 정말 회사를 차리면? 노예를 부리는 사악하고 돈 많은 아저씨들보다는 '우리 회사 사람들'은 정말 재밌게 인생을 살 수 있지 않을까 생각하곤 한다.
4. 나는 친구가 많이 없다(따로 글을 써도 될듯한 분량).
그래서 3번의 끝에 쓴 이야기가 정말 현실이 될 수 있을꺼라고 종종 생각하곤 한다.
어렸을 때에는(초딩?) 정말 조그만 동내에서 자랐기 때문에 그들과 평생 즐겁게 살 수 있을 줄 알았다.
그러나 하나 둘 동네를 떠나고, 나마저 떠나온 동네를 종종 가보면....
향수에 젖어 너무나 황홀한 기분이 든다. 여전히 사는 동네 형들과 시간을 보내는 것은 나에게는 정말 즐거운 시간이다.
...
어쨋거나
진짜 원하는 것을 하세요~ 하기 보다는
진짜 원하는 일이 있으신지 먼저 묻는 것이 순서 아닌가 싶다.
진짜 원하는 일을 찾기 위해서 나는 오늘도 방황한다.
원하는 일을 일찍 찾느냐 늦게 찾느냐 하는 것은 시간의 싸움일 뿐.
'그 누구와도 비교하지 않아야겠다.'고 다짐 해본다.'고 글을 쓴다.' 고 썻다.
맞춤법, 띄어쓰기 증말 어렵네 -_- 슈밤!
새벽에 써서 감정에 충실한기병병병 기승병병(기승전결?) 구조가 되었음을 나중에 내가 다시 봤을 때, 오글거리도록 기록으로 냄겨둔다.
그럼 잠을 자본다. 나는.
덧. 어제부터 Lang-8 이란 사이트를 들락거리기 시작했다. 재밌다.
덧2. 위 사이트를 하면서 또 느낀건데, 내가 좀 똑똑해졌으면 좋겠다. 왜 나는 좆나게 존나 멍청한걸까?.ㅠㅠ슈밤찌밤좉좆졷좃좋같네
- 당신이 정말 원하는 것을 하세요.
비단 나만의 문제가 아닐....
= 나는 정말 내가 뭘 좋아하는 지 모르겠다.
나도 내가 원하는 것을 하고, 싫어하는 것은 하기 싫다.
근데 대부분의 사람이 아마도 원하는 것이 무엇인지도 모르고, 회사의 노예가 되어 살아가고 있을 것 같다.
나는 종종 이런 말을 듣곤 한다.
- 너는 회사원 체질이 아니야.
- 혹시 너 회사 차리면 나도 좀 불러줘라. 월 200만 원만 주면 열심히 일 할께.
1. 나는 정말 회사원(이라 쓰고 노예라 읽는다) 체질이 아닌 것인지 궁금하다.
그렇게 느끼는 이유는 사회 부적응자 마냥 사람들과 잘 어울리지 못하고, 아니다 싶은 것은 아니라고 말할 때도(드물게 ㅋ) 있기 때문인 것 같다.
종종 여자친구는 나보고 화를 다스리지 못한다고 하기도 하고,
이전 노예생활 할 때, 팀장님은 나보고 화가 많은 사람이고 절대 조용하지 않은 사람이라는 평가를 했다. 또한 회사원 체질이 아니라는 말도....
누구나 하는 노예 생활을 왜 나는 못 견뎌 하는 것일까?.
나는 남들보다 더 멍청하다는 장점을 가지고 있기 때문에, 상황 판단, 눈치(이를테면 센스) 같은 것이 많이 없다. 때문에 종종 다른 노예들과 마찰이 생기기도 하고 마찰을 주체하지 못할 때에는 모든 사람이 내가 화났다는 사실을 알게 되기도 한다(이전 노예 생활에서는 진짜 피떡을 만들고 싶은 상급(도 아니지만)노예와 마찰이 있었지만 내가 그 곳을 탈출하는 것으로 마무리 지었다.).
어쨋거나 나는 사회성이 없는 깜장머리 짐승으로 노예 생활과 잘 맞지는 않지만, 아봉하고 노예생활을 하면 어떻게든 견뎌낼 수 있을 것 같긴하다(물론 가정이 생긴다면 더 힘들겠지).
2. 나한테 회사원 체질이 아니라고 하는 사람들의 공통점.
내가 느끼기에는 그 사람들은 나한테 호의적이다. 어쩌면 반 이상은 연민을 가지고 이야기 한 것일 수 있다.
그리고, 그들은 나에게 항상 함께 일하자고 이야기한다.(약간의 모순?)
어쨋거나 나는 사회성이 결여된 검은머리 짐승이므로, 노예 생활(이것은 기분 나쁠 수 있지만 나에겐 사람들의 사회로 다가갈 수 없는 그곳을 이야기 한다.)은 나에겐 멀지만 극복 해야 하는 과제같은 생활이다.
3. 신기하게도 나는 소위 '유명인'이라는 사람들이 이야기하는 좋은?점이 내 이야기 같다.
사랑에 빠졌을 때 좋은 노래 가사가 내 이야기 같고, 이쁘고 아름다운 시는 날 위해 쓰여진 것 같으며, 행복한 결말의 드라마(혹은 영화)는 내 인생을 보는 것 같은 느낌이 드는 때가 있다(누구나 그럴 것 같은데?).
일종의 설레발 같지만, 내가 정말 회사를 차리면? 노예를 부리는 사악하고 돈 많은 아저씨들보다는 '우리 회사 사람들'은 정말 재밌게 인생을 살 수 있지 않을까 생각하곤 한다.
4. 나는 친구가 많이 없다(따로 글을 써도 될듯한 분량).
그래서 3번의 끝에 쓴 이야기가 정말 현실이 될 수 있을꺼라고 종종 생각하곤 한다.
어렸을 때에는(초딩?) 정말 조그만 동내에서 자랐기 때문에 그들과 평생 즐겁게 살 수 있을 줄 알았다.
그러나 하나 둘 동네를 떠나고, 나마저 떠나온 동네를 종종 가보면....
향수에 젖어 너무나 황홀한 기분이 든다. 여전히 사는 동네 형들과 시간을 보내는 것은 나에게는 정말 즐거운 시간이다.
...
어쨋거나
진짜 원하는 것을 하세요~ 하기 보다는
진짜 원하는 일이 있으신지 먼저 묻는 것이 순서 아닌가 싶다.
진짜 원하는 일을 찾기 위해서 나는 오늘도 방황한다.
원하는 일을 일찍 찾느냐 늦게 찾느냐 하는 것은 시간의 싸움일 뿐.
'그 누구와도 비교하지 않아야겠다.'고 다짐 해본다.'고 글을 쓴다.' 고 썻다.
맞춤법, 띄어쓰기 증말 어렵네 -_- 슈밤!
새벽에 써서 감정에 충실한
그럼 잠을 자본다. 나는.
덧. 어제부터 Lang-8 이란 사이트를 들락거리기 시작했다. 재밌다.
덧2. 위 사이트를 하면서 또 느낀건데, 내가 좀 똑똑해졌으면 좋겠다. 왜 나는 좆나게 존나 멍청한걸까?.ㅠㅠ
라벨:
서론과 잡담사이
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
20140302 2014년 1회 정보처리기사 필기 합격 수기(가채점)
긴 글을 싫어하는 사람에게 한 단어로 요약 : 합격.
.....
나는 비 전공자다.
1. 그리고 나는 인터넷에 떠도는 유언비어를 믿지 않으려 노력한다.
" 저는 비 전공자 인데 1주일 공부하고 합격했어요! " 등의 허무맹랑한 이야기는 믿지 않는다
내가 취득한 수 개의 자격증 중에(모두 비 전공 ) 인터넷에 떠도는 허무맹랑한 이야기처럼 쉬운 것은 단 하나도 없었다.(물론 내 머리가 매우 좋지 않다. ㅠ.ㅠ)
2. 내가 위의 허무맹랑한 이야기를 사실이라 생각하고 열심히(?) 하지 않았다면 만약에 있을 불합격 소식에 나는 정말 나 자신을 비관하게 될 것이다. 그렇게 되면 진짜 쪽팔리지! 수 많은 합격자들 속에서 가면을 쓰고 울고 싶지는 않았다.
3. 지금 한 번에 합격해도 시간이 아까울 판에 똑같은 공부를 또 하고 싶지 않았다. 어떤 자격증 시험을 준비할 때도 같은 생각이었지만, 그래서 나는 한 번 떨어진 시험은 재 시험을 치지 않는다(사실은 그냥 재 시험 준비 했어야 좋았을 법 한 것도 있다.) .
4. 기분이 '존나 조쿤' 상태이다. ㅋㅋ 어쨋거나 초심(?)을 잃지 않고 지금 가는 이 길을 꾸준히 걸어가 볼련다........ 제발 머리가 좋아졌으면 좋겠다 ㅠㅠ
5. 시험 점수는 65/75/85/55/85 점으로 과락 없이 합격한 것 같다.
사실 나는 2과목과 5과목(전자계산기 구조, 데이터 통신... 맞나? ㅋ)에서 한 번씩 과락을 맞은적이 있다(기출).
그래서 그 부분을 집중적으로 팠고(전자계산기 구조와 데이터 통신이 과락이 젤 많이 나온다는 것 같음),
기출에서 1과목 데이터 베이스는 평균 85점 이상의 점수를 얻었었는데... 이번엔 ㄷㄷㄷ
그리고 4과목 소프트웨어 공학! 두둥!
이 과목은 기출풀 때 항상 고득점 했었는데 똥줄 지리는 점수가 나왔다 ㄷㄷㄷㄷㄷㄷㄷㄷ
3과목은 뭔지도 기억이 안나는데 항상 점수가 잘 나왔던 것 같다.
6. 합격을 위해 도와주신 유수 선생님께 감사를 드립니다.(친구가 정보처리 딸 생각이 있으면 반드시 유수 선생님 강의를 들으라고 추천해줌... 약 2년 전에..ㅠㅠ)
실기까지 합격한 후에 유수 선생님께 연락이 닿는다면(?) 콜라를 선물로 드릴 생각이다.
덧. 글을 대충 쓰고나니... 말투가 줩때 역겹네... 글싸기에 대해서 다시 한 번 고찰을 해 봐야겠다. -_-.........
끗! -ㅅ-!
라벨:
서론과 잡담사이
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 2월 27일 목요일
ADB.exe 오류가 날 때!(이클립스 꺼짐현솽)
이크립스에에서 ADB오류가 가끔 난다.. 나한테는 매우 자주 난다 ㅠ ㅠ
왜 그런진 모르겠다.
일단 할 조치는
1. 이클립스 끄기
2. usb 케이블 빼기
3. 작업관리자(콘트롤,알트,델리트)를 불러서 프로세스탭에서 adb.exe를 종료시키기(강제로)
그리고 다시 이클립스 켜고 -> 유에스비 연결
순서로 해보면 된다~!
라고 하는게 보통의 해결책이고,
sdk를 설치한 폴더를 쫒아간다.
플랫폼 툴 폴더를 들어간다
보통은 android-sdk-windows\platform-tools 폴더로 되어있을 것이고,
나는 3번까지 진행한 후에
cmd에서 저 폴더를 찾아간 후에(잘 안되면 cmd 들가자 마자 cd \ 치고 cd 폴더명 으로 꾸역꾸역 올라가자 폴더가 뭐가 있는지 파일이 뭐가 있는지 보려면 dir/w/p 정도?)
dir을 쳐? 보면 adb.exe파일이 보일것이고.
어쩌구 저쩌구(디렉토리)> adb reboot
쏼라쏼라(명령 진행)
어쩌구 저쩌구(디렉토리)> adb start-server
쏼라쏼라(명령 진행)
정도를 해준다.
그래도 안될 때 깊은 빡침을 느끼지만... 보통 usb 케이블을 연결하고 약 12초 정도면 adb가 잘 작동되고 그 후에 연결이 잘 된다...(약 70%) ㅎㅎ
나는 사실 안드로이드를 처음 시작할 때
이클립스가 자동으로 꺼지는 현상을 너무나 많이 경험했는데
좁때 빡치고 분노가 치밀어서 우분투를 깔고 우분투에 프로그래밍 환경을 다 구성해 놓았지만!!!!!!!!!
이클립스 EE for 디벨로뻐 버전을 받은 후 꺼지는 현상이 없어졌다.........-_-
뻐킹 자바디벨로퍼를 위한 버전은 나랑 안맞나부다..ㅠㅠ
좁때 천재가 되고싶다..........................................................
왜 그런진 모르겠다.
일단 할 조치는
1. 이클립스 끄기
2. usb 케이블 빼기
3. 작업관리자(콘트롤,알트,델리트)를 불러서 프로세스탭에서 adb.exe를 종료시키기(강제로)
그리고 다시 이클립스 켜고 -> 유에스비 연결
순서로 해보면 된다~!
라고 하는게 보통의 해결책이고,
sdk를 설치한 폴더를 쫒아간다.
플랫폼 툴 폴더를 들어간다
보통은 android-sdk-windows\platform-tools 폴더로 되어있을 것이고,
나는 3번까지 진행한 후에
cmd에서 저 폴더를 찾아간 후에(잘 안되면 cmd 들가자 마자 cd \ 치고 cd 폴더명 으로 꾸역꾸역 올라가자 폴더가 뭐가 있는지 파일이 뭐가 있는지 보려면 dir/w/p 정도?)
dir을 쳐? 보면 adb.exe파일이 보일것이고.
어쩌구 저쩌구(디렉토리)> adb reboot
쏼라쏼라(명령 진행)
어쩌구 저쩌구(디렉토리)> adb start-server
쏼라쏼라(명령 진행)
정도를 해준다.
그래도 안될 때 깊은 빡침을 느끼지만... 보통 usb 케이블을 연결하고 약 12초 정도면 adb가 잘 작동되고 그 후에 연결이 잘 된다...(약 70%) ㅎㅎ
나는 사실 안드로이드를 처음 시작할 때
이클립스가 자동으로 꺼지는 현상을 너무나 많이 경험했는데
좁때 빡치고 분노가 치밀어서 우분투를 깔고 우분투에 프로그래밍 환경을 다 구성해 놓았지만!!!!!!!!!
이클립스 EE for 디벨로뻐 버전을 받은 후 꺼지는 현상이 없어졌다.........-_-
뻐킹 자바디벨로퍼를 위한 버전은 나랑 안맞나부다..ㅠㅠ
좁때 천재가 되고싶다..........................................................
라벨:
학습
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
2014년 2월 20일 목요일
오라클 트리거 에러 ORA-04088, ORA-06512,
ORA-04088, ORA-06512,
에러는 주로 같이 나오는데!
트리거는 잘 생성 되었지만 컴파일 과정에서 발생하는 오류!
즉, A테이블에 걸려있는 트리거의 DML역시 A테이블을 참조할 때,
무한 루프에 빠지게 되어 오류가 생긴다.
아직 잡아내지 못했다.ㅡ,.ㅡ;;
잡아내고 글을 수정하겠다.ㅠㅠ
-- 테이블을 2개로 나눠서 잡아냈다.
하지만 두번째 데이터를 입력하니..
두둥!
ORA-01427 : 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다.
-_-;;;;;;;;;;;;;;;;;;
알고보니 서브쿼리에서 where절을 넣지 않고 흐리멍텅구리하게 잡아줬더니
똑바로 하라며 나를 질책한 것이다.
그래서 where 절을 삽입해 주고 실행하니!
끝 -
에러는 주로 같이 나오는데!
트리거는 잘 생성 되었지만 컴파일 과정에서 발생하는 오류!
즉, A테이블에 걸려있는 트리거의 DML역시 A테이블을 참조할 때,
무한 루프에 빠지게 되어 오류가 생긴다.
아직 잡아내지 못했다.ㅡ,.ㅡ;;
잡아내고 글을 수정하겠다.ㅠㅠ
-- 테이블을 2개로 나눠서 잡아냈다.
하지만 두번째 데이터를 입력하니..
두둥!
ORA-01427 : 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다.
-_-;;;;;;;;;;;;;;;;;;
알고보니 서브쿼리에서 where절을 넣지 않고 흐리멍텅구리하게 잡아줬더니
똑바로 하라며 나를 질책한 것이다.
그래서 where 절을 삽입해 주고 실행하니!
끝 -
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
프로그램잉?
프로그래밍 언어를 만들고 컴퓨터의 제반 학문?들을 적립해온 집단은 영어를 사용하는 그들이다.
우스 개소리로 (ㅋㅋ) 어떤 언어를 가장 먼저 배워야 할지 묻는 사람들에 많은 답을 차지한건 영어였다... (프로그래밍 언어가 아니라는 말.)
그 이유는 철저히 서양의 사고 방식으로 만들어졌기 때문!
근데 나는 영어를 공부? 하고 접할 때 마다 이렇게 생각한다.
-외국 애들은 멍청(?) 하다는데 영어가 얼마나 어렵겠어?
나는 내가 얼마나 멍청한지 알기 때문에 저런 생각도 대단하다고 느껴진다.
프로그래밍을 배우는 지금에도 마찬가지이다.
- 프로그래밍 그까이꺼 얼마나 어렵겠어?
우습게도 나는 프로그래밍을 배우는 지금 어려운 것이 하나도 없다.
내가 어려울 것이라 생각하는 것은 프로그래밍을 배운 후 응용하는 것이다.
나 같은 사람도 프로그래밍을 배우는데, 그 어는 누가 프로그래밍을 어렵다 할까?
어쨋거나 서론은 뭘 하던 그까이꺼~ 하면서 배우면 다 따라잡는다는 생각을 했다는 것이고,
나처럼 머리가 좋지 않고 둔한 사람도 뭔가 유종의 미를 거둘 수 있을 거라고 생각하기 때문에 블로그에 기록을 찔끔씩 남겨둔다는 생각이다.
기승전병이지만,
서구 문화의 사고와 가치관 등이 녹아있는 프로그래밍이라는 새로운 문화를 배우면서 잊지 말아야 할 우리의 문화에 대해서도 좋은 글이 있어 몰래 퍼와본다.
예전에 읽었던 글이지만, 언제고 다시 보고싶을 때, 시간이 너무 많이 남아서 지루할 때 읽고 읽고, 읽어볼 생각이다.
그럼 이하 본문
----------------------------------
우스 개소리로 (ㅋㅋ) 어떤 언어를 가장 먼저 배워야 할지 묻는 사람들에 많은 답을 차지한건 영어였다... (프로그래밍 언어가 아니라는 말.)
그 이유는 철저히 서양의 사고 방식으로 만들어졌기 때문!
근데 나는 영어를 공부? 하고 접할 때 마다 이렇게 생각한다.
-외국 애들은 멍청(?) 하다는데 영어가 얼마나 어렵겠어?
나는 내가 얼마나 멍청한지 알기 때문에 저런 생각도 대단하다고 느껴진다.
프로그래밍을 배우는 지금에도 마찬가지이다.
- 프로그래밍 그까이꺼 얼마나 어렵겠어?
우습게도 나는 프로그래밍을 배우는 지금 어려운 것이 하나도 없다.
내가 어려울 것이라 생각하는 것은 프로그래밍을 배운 후 응용하는 것이다.
나 같은 사람도 프로그래밍을 배우는데, 그 어는 누가 프로그래밍을 어렵다 할까?
어쨋거나 서론은 뭘 하던 그까이꺼~ 하면서 배우면 다 따라잡는다는 생각을 했다는 것이고,
나처럼 머리가 좋지 않고 둔한 사람도 뭔가 유종의 미를 거둘 수 있을 거라고 생각하기 때문에 블로그에 기록을 찔끔씩 남겨둔다는 생각이다.
기승전병이지만,
서구 문화의 사고와 가치관 등이 녹아있는 프로그래밍이라는 새로운 문화를 배우면서 잊지 말아야 할 우리의 문화에 대해서도 좋은 글이 있어 몰래 퍼와본다.
예전에 읽었던 글이지만, 언제고 다시 보고싶을 때, 시간이 너무 많이 남아서 지루할 때 읽고 읽고, 읽어볼 생각이다.
그럼 이하 본문
----------------------------------
◈ 한국역사의 특수성
○ 미국이 우주과학을 발전시키기 위해서 중·고등학교의 수학 교과과정을 바꾸었다면 우리는 우리를 알기 위해서 무엇을 해야 하는가, 결론은 그것 입니다.
-역사를 보는 방법도 대단히 다양한데요. 우리는 초등학교 때 이렇게 배웠습니다.
‘조선은 500년 만에 망했다.’ 아마 이 가운데서 초등학교 때 공부 잘하신 분들은 이걸 기억하실 것입니다.
500년 만에 조선이 망한 이유 4가지를 달달 외우게 만들었습니다. 기억나십니까?
“사색당쟁, 대원군의 쇄국정책, 성리학의 공리공론, 반상제도 등 4가지 때문에 망했다.” 이렇게 가르칩니다.
그러면 대한민국 청소년들은 어떻게 생각하느냐 하면 ‘아, 우리는 500년 만에 망한 민족이구나, 그것도 기분 나쁘게 일본에게 망했구나.’ 하는 참담한 심정을 갖게 되어 있습니다.
그런데 아까 나로호의 실패를 중국, 미국, 소련 등 다른 나라에 비추어 보듯이 우리 역사도 다른 나라에 비추어 보아야 됩니다.
조선이 건국된 것이 1392년이고 한일합방이 1910년입니다.
금년이 2010년이니까 한일합방 된 지 딱 100년이 되는 해입니다.
그러면 1392년부터 1910년까지 세계 역사를 놓고 볼 때 다른 나라 왕조는 600년, 700년, 1,000년 가고 조선만 500년 만에 망했으면 왜 조선은 500년 만에 망했는가 그 망한 이유를 찾는 것이 맞을 것입니다.
그런데 만약 다른 나라에는 500년을 간 왕조가 그 당시에 하나도 없고 조선만 500년 갔으면 어떻게 하겠습니까?
조선은 어떻게 해서 500년이나 갔을까 이것을 따지는 것이 맞을 것입니다.
-1300 년대의 역사 구도를 여러분이 놓고 보시면 전 세계에서 500년 간 왕조는 실제로 하나도 없습니다.
서구에서는 어떻게 됐느냐면, 신성로마제국이 1,200년째 계속되고 있었는데 그것은 제국이지 왕조가 아닙니다.
오스만투르크가 600년째 계속 되고 있었습니다. 그런데 그것도 제국이지 왕조는 아닙니다.
유일하게 500년 간 왕조가 하나 있습니다. 에스파냐왕국입니다.
그 나라가 500년째 가고 있었는데 불행히도 에스파냐왕국은 한 집권체가 500년을 지배한 것이 아닙니다.
예를 들면 나폴레옹이 ‘어, 이 녀석들이 말을 안 들어, 이거 안 되겠다. 형님, 에스파냐 가서 왕 좀 하세요.’ 그래서 나폴레옹의 형인 조셉 보나파르트가 에스파냐에 가서 왕을 했습니다.
이렇게 왔다 갔다 한 집권체이지 단일한 집권체가 500년 가지 못했습니다.
전세계에서 단일한 집권체가 518년째 가고 있는 것은 조선 딱 한 나라 이외에는 하나도 없습니다.
-그러면 잠깐 위로 올라가 볼까요.
고려가 500년 갔습니다. 통일신라가 1,000년 갔습니다. 고구려가 700년 갔습니다. 백제가 700년 갔습니다.
신라가 BC 57년에 건국됐으니까 BC 57년 이후에 세계 왕조를 보면 500년 간 왕조가 딱 두 개 있습니다.
러시아의 이름도 없는 왕조가 하나 있고 동남 아시아에 하나가 있습니다.
그 외에는 500년 간 왕조가 하나도 없습니다. 그러니까 통일신라처럼 1,000년 간 왕조도 당연히 하나도 없습니다.
고구려, 백제만큼 700년 간 왕조도 당연히 하나도 없습니다.
제가 지금 말씀드린 것은 과학입니다.
-그러면 이 나라는 엄청나게 신기한 나라입니다. 한 왕조가 세워지면 500년, 700년, 1,000년을 갔습니다. 왜 그럴까요?
그럴려면 두 가지 조건 중에 하나가 성립해야 합니다.
하나는 우리 선조가 몽땅 바보다, 그래서 권력자들, 힘 있는 자들이 시키면 무조건 굴종했다,그러면 세계 역사상 유례없이 500년, 700년, 1,000년 갔을 것입니다.
그런데 우리 선조들이 바보가 아니었다, 인간으로서의 권리를 주장하고 다시 말씀드리면 인권에 관한 의식이 있고 심지어는 국가의 주인이라고 하는 의식이 있다면,
또 잘 대드는 성격이 있다면, 최소한도의 정치적인 합리성, 최소한도의 경제적인 합리성, 조세적인 합리성, 법적인 합리성, 문화의 합리성 이러한 것들이 있지 않으면
전 세계 역사상 유례없는 이러한 장기간의 통치가 불가능할 것이라고 말씀드릴 수 있습니다.
◈ 기록의 정신
○ "조선왕조실록(朝鮮王朝實錄)"을 보면 25년에 한 번씩 민란이 일어납니다.
여러분이 아시는 동학란이나 이런 것은 전국적인 규모이고, 이 민란은 요새 말로 하면 대규모의 데모에 해당합니다. 우리는 상소제도를 가지고 있었습니다.
백성들이, 기생도 노비도 글만 쓸 수 있으면 ‘왕과 나는 직접 소통해야겠다, 관찰사와 이야기하니까 되지를 않는다.’ 왕한테 편지를 보냅니다.
그런데 이런 상소제도에 불만을 가진 사람들이 생겨났습니다.
왜? 편지를 하려면 한문 꽤나 써야 되잖아요. ‘그럼 글 쓰는 사람만 다냐, 글 모르면 어떻게 하느냐’ 그렇게 해서 나중에는 언문상소를 허락해 주었습니다.
그래도 불만 있는 사람들이 나타났습니다. ‘그래도 글줄 깨나 해야 왕하고 소통하느냐, 나도 하고 싶다’ 이런 불만이 터져 나오니까 신문고를 설치했습니다.
‘그럼 와서 북을 쳐라’ 그러면 형조의 당직관리가 와서 구두로 말을 듣고 구두로 왕에게 보고했습니다.
이래도 또 불만이 터져 나왔습니다. 여러분, 신문고를 왕궁 옆에 매달아 놨거든요.
그러니까 지방 사람들이 뭐라고 했냐면 ‘왜 한양 땅에 사는 사람들만 그걸하게 만들었느냐, 우리는 뭐냐’ 이렇게 된 겁니다.
그래서 격쟁(?錚)이라는 제도가 생겼습니다. 격은 칠격(?)자이고 쟁은 꽹과리 쟁(錚)자입니다.
왕이 지방에 행차를 하면 꽹과리나 징을 쳐라. 혹은 대형 플래카드를 만들어서 흔들어라,
그럼 왕이 ‘무슨 일이냐’ 하고 물어봐서 민원을 해결해 주었습니다. 이것을 격쟁이라고 합니다.
○ 우리는 이러한 제도가 흔히 형식적인 제도겠지 라고 생각하지만 그게 아닙니다.
예를 들어 정조의 행적을 조사해 보면, 정조가 왕 노릇을 한 것이 24년입니다.
24년 동안 상소, 신문고, 격쟁을 해결한 건수가 5,000건 입니다.
이것을 제위 연수를 편의상 25년으로 나누어보면 매년 200건을 해결했다는 얘기이고 공식 근무일수로 따져보면 매일 1건 이상을 했다는 것입니다.
영조 같은 왕은 백성들이 너무나 왕을 직접 만나고 싶어 하니까 아예 날짜를 정하고 장소를 정해서 ‘여기에 모이시오.’ 해서 정기적으로 백성들을 만났습니다.
여러분, 서양의 왕 가운데 이런 왕 보셨습니까? 이것이 무엇을 말하느냐면 이 나라 백성들은 그렇게 안 해주면 통치할 수 없으니까 이러한 제도가 생겼다고 봐야 합니다.
그러면 이 나라 국민들은 바보가 아닙니다. 그렇게 보면 아까 말씀 드린 두 가지 사항 가운데 후자에 해당합니다.
이 나라 백성들은 만만한 백성이 아니다. 그러면 최소한도의 합리성이 있었을 것이다.
그 합리성이 무엇인가 하는 것을 오늘 말씀 드리고자 합니다.
-첫째는 조금 김새시겠지만 기록의 문화입니다. 여러분이 이집트에 가 보시면, 저는 못 가봤지만 스핑크스가 있습니다. 그걸 딱 보면 어떠한 생각을 할까요?
중국에 가면 만리장성이 있습니다. 아마도 여기 계신 분들은 거의 다 이런 생각을 하셨을 것입니다.
‘이집트 사람, 중국 사람들은 재수도 좋다, 좋은 선조 만나서 가만히 있어도 세계의 관광달러가 모이는 구나’
여기에 석굴암을 딱 가져다 놓으면 좁쌀보다 작습니다. 우리는 뭐냐. 이런 생각을 하셨지요?
저도 많이 했습니다. 그런데 역사에 관심을 가지고 있다 보니까 그러한 유적이 우리에게 없는 것이 얼마나 다행인가 싶습니다.
베르사유의 궁전같이 호화찬란한 궁전이 없는 것이 얼마나 다행인가 싶습니다.
여러분, 만약 조선시대에 어떤 왕이 등극을 해서 피라미드 짓는 데 30만 명 동원해서 20년 걸렸다고 가정을 해보죠.
그 왕이 ‘국민 여러분, 조선백성 여러분, 내가 죽으면 피라미드에 들어가고 싶습니다. 그러니 여러분의 자제 청·장년 30만 명을 동원해서 한 20년 노역을 시켜야겠으니 조선백성 여러분, 양해하시오.’
그랬으면 무슨 일이 났을 것 같습니까? ‘마마, 마마가 나가시옵소서.’ 이렇게 되지 조선백성들이 20년 동안 그걸 하고 앉아있습니까? 안 하지요.
그러니까 우리에게는 그러한 문화적 유적이 남아 있을 수 없습니다. 만일 어떤 왕이 베르사유궁전 같은 것을 지으려고 했으면 무슨 일이 났겠습니까.
‘당신이 나가시오, 우리는 그런 것을 지을 생각이 없소.’ 이것이 정상적일 것입니다. 그러니까 우리에게는 그러한 유적이 있을 수가 없습니다.
-대신에 무엇을 남겨 주었느냐면 기록을 남겨주었습니다. 여기에 왕이 있다면, 바로 곁에 사관이 있습니다.
여러분, 이렇게 생각하시면 간단합니다. 여러분께서 아침에 출근을 딱 하시면, 어떠한 젊은이가 하나 달라붙습니다.
그래서 여러분이 하시는 말을 다 적고, 여러분이 만나는 사람을 다 적고, 둘이 대화한 것을 다 적고, 왕이 혼자 있으면 혼자 있다, 언제 화장실 갔으면 화장실 갔다는 것도 다 적고, 그것을 오늘 적고, 내일도 적고, 다음 달에도 적고 돌아가신 날 아침까지 적습니다.
기분이 어떠실 것 같습니까?
공식근무 중 사관이 없이는 왕은 그 누구도 독대할 수 없다고 경국대전에 적혀 있습니다.
우리가 사극에서 살살 간신배 만나고 장희빈 살살 만나고 하는 것은 다 거짓말입니다.
왕은 공식근무 중 사관이 없이는 누구도 만날 수 없게 되어 있습니다.
심지어 인조 같은 왕은 너무 사관이 사사건건 자기를 쫓아다니는 것이 싫으니까 어떤 날 대신들에게 ‘내일은 저 방으로 와, 저 방에서 회의할 거야.’ 그러고 도망갔습니다.
거기서 회의를 하고 있었는데 사관이 마마를 놓쳤습니다. 어디 계시냐 하다가 지필묵을 싸들고 그 방에 들어갔습니다.
인조가 ‘공식적인 자리가 아닌 데서 회의를 하는데도 사관이 와야 되는가?’ 그러니까 사관이 이렇게 말했습니다.
‘마마, 조선의 국법에는 마마가 계신 곳에는 사관이 있게 되어 있습니다.’ 그리고 적었습니다.
너무 그 사관이 괘씸해서 다른 죄목을 걸어서 귀향을 보냈습니다.
그러니까 다음 날 다른 사관이 와서 또 적었습니다. 이렇게 500년을 적었습니다.
사관은 종7품에서 종9품 사이입니다. 오늘날 대한민국의 공무원제도에 비교를 해보면 아무리 높아도 사무관을 넘지 않습니다.
그러한 사람이 왕을 사사건건 따라 다니며 다 적습니다. 이걸 500년을 적는데, 어떻게 했냐면 한문으로 써야 하니까 막 흘려 썼을 것 아닙니까?
그날 저녁에 집에 와서 정서를 했습니다. 이걸 사초라고 합니다.
그러다가 왕이 돌아가시면 한 달 이내, 이것이 중요합니다.
한 달 이내에 요새 말로 하면 왕조실록 편찬위원회를 구성합니다.
사관도 잘못 쓸 수 있잖아요. 그러니까 ‘영의정, 이러한 말 한 사실이 있소? 이러한 행동한 적이 있소?’ 확인합니다.
그렇게 해서 즉시 출판합니다. 4부를 출판했습니다. 4부를 찍기 위해서 목판활자, 나중에는 금속활자본을 만들었습니다.
여러분, 4부를 찍기 위해서 활자본을 만드는 것이 경제적입니까, 사람이 쓰는 것이 경제적입니까? 쓰는 게 경제적이지요.
그런데 왜 활판인쇄를 했느냐면 사람이 쓰면 글자 하나 빼먹을 수 있습니다.
글자 하나 잘못 쓸 수 있습니다. 하나 더 쓸 수 있습니다. 이렇게 해서 후손들에게 4부를 남겨주는데 사람이 쓰면 4부가 다를 수 있습니다.
그러면 후손들이 어느 것이 정본인지 알 수 없습니다. 그러니까 목판활자, 금속활자본을 만든 이유는 틀리더라도 똑같이 틀려라, 그래서 활자본을 만들었습니다.
이렇게 해서 500년 분량을 남겨주었습니다.
유네스코에서 조사를 했습니다. 왕의 옆에서 사관이 적고 그날 저녁에 정서해서 왕이 죽으면 한 달 이내에 출판 준비에 들어가서 만들어낸 역사서를 보니까 전 세계에 조선만이 이러한 기록을 가지고 있습니다.
이것이 6,400만자입니다. 6,400만자 하면 좀 적어 보이지요?
그런데 6,400만자는 1초에 1자씩 하루 4시간을 보면 11.2년 걸리는 분량입니다.
그러니까 우리나라에는 공식적으로 "조선왕조실록"을 다룬 학자는 있을 수가 없게 되어 있습니다.
-그런데 여러분, 이러한 생각 안 드세요? ‘사관도 사람인데 공정하게 역사를 기술했을까’ 이런 궁금증이 가끔 드시겠지요?
사관이 객관적이고 공정한 역사를 쓰도록 어떤 시스템을 가지고 있었는지를 말씀드리죠.
세종이 집권하고 나서 가장 보고 싶은 책이 있었습니다. 뭐냐 하면 태종실록입니다.
‘아버지의 행적을 저 사관이 어떻게 썼을까?’ 너무너무 궁금해서 태종실록을 봐야겠다고 했습니다. 맹사성이라는 신하가 나섰습니다.
‘보지 마시옵소서.’ ‘왜, 그런가.’ ‘마마께서 선대왕의 실록을 보시면 저 사관이 그것이 두려워서 객관적인 역사를 기술할 수 없습니다.’
세종이 참았습니다. 몇 년이 지났습니다. 또 보고 싶어서 환장을 했습니다.
그래서 ‘선대왕의 실록을 봐야겠다.’ 이번에는 핑계를 어떻게 댔느냐면 ‘선대왕의 실록을 봐야 그것을 거울삼아서 내가 정치를 잘할 것이 아니냐’
그랬더니 황 희 정승이 나섰습니다. ‘마마, 보지 마시옵소서.’ ‘왜, 그런가.’
‘마마께서 선대왕의 실록을 보시면 이 다음 왕도 선대왕의 실록을 보려 할 것이고 다음 왕도 선대왕의 실록을 보려할 것입니다. 그러면 저 젊은 사관이 객관적인 역사를 기술할 수 없습니다.
그러므로 마마께서도 보지 마시고 이다음 조선왕도 영원히 실록을 보지 말라는 교지를 내려주시옵소서.’ 그랬습니다.
이걸 세종이 들었겠습니까, 안 들었겠습니까? 들었습니다.
‘네 말이 맞다. 나도 영원히 안 보겠다. 그리고 조선의 왕 누구도 실록을 봐서는 안 된다’는 교지를 내렸습니다. 그래서 조선의 왕 누구도 실록을 못 보게 되어 있었습니다.
-그런데 사실은 중종은 슬쩍 봤습니다. 봤다는 기록이 남아 있습니다. 그러나 그 누구도 안보는 것이 원칙으로 되어 있었습니다.
여러분, 왕이 못 보는데 정승판서가 봅니까? 정승판서가 못 보는데 관찰사가 봅니까? 관찰사가 못 보는데 변 사또가 봅니까?
이런 사람이 못 보는데 국민이 봅니까? 여러분, 문제는 여기에 있습니다.
조선시대 그 어려운 시대에 왕의 하루하루의 그 행적을 모든 정치적인 상황을 힘들게 적어서 아무도 못 보는 역사서를 500년을 썼습니다. 누구 보라고 썼겠습니까?
대한민국 국민 보라고 썼습니다.
저는 이런 생각을 합니다. 이 땅은 영원할 것이다. 그리고 우리의 핏줄 받은 우리 민족이 이 땅에서 영원히 살아갈 것이다.
그러니까 우리의 후손들이여, 우리는 이렇게 살았으니 우리가 살았던 문화, 제도, 양식을 잘 참고해서 우리보다 더 아름답고 멋지고 강한 나라를 만들어라,
이러한 역사의식이 없다면 그 어려운 시기에 왕도 못 보고 백성도 못 보고 아무도 못 보는 그 기록을 어떻게 해서 500년이나 남겨주었겠습니까.
"조선왕조실록"은 한국인의 보물일 뿐 아니라 인류의 보물이기에, 유네스코가 세계기록문화유산으로 지정을 해 놨습니다.
○ ‘승정원일기(承政院日記)’가 있습니다. 승정원은 오늘날 말하자면 청와대비서실입니다.
사실상 최고 권력기구지요. 이 최고 권력기구가 무엇을 하냐면 ‘왕에게 올릴 보고서, 어제 받은 하명서, 또 왕에게 할 말’ 이런 것들에 대해 매일매일 회의를 했습니다.
이 일지를 500년 동안 적어 놓았습니다. 아까 실록은 그날 밤에 정서했다고 했지요.
그런데 ‘승정원일기’는 전월 분을 다음 달에 정리했습니다. 이 ‘승정원일기’를 언제까지 썼느냐면 조선이 망한 해인 1910년까지 썼습니다.
누구 보라고 써놓았겠습니까? 대한민국 국민 보라고 썼습니다.
유네스코가 조사해보니 전 세계에서 조선만이 그러한 기록을 남겨 놓았습니다.
그런데 ‘승정원일기’는 임진왜란 때 절반이 불타고 지금 288년 분량이 남아있습니다.
이게 몇 자냐 하면 2억 5,000만자입니다. 요새 국사편찬위원회에서 이것을 번역하려고 조사를 해 보니까 잘하면 앞으로 50년 후에 끝나고 못하면 80년 후에 끝납니다.
이러한 방대한 양을 남겨주었습니다. 이것이 우리의 선조입니다.
○ ‘일성록(日省錄)’이라는 책이 있습니다. 날 日자, 반성할 省자입니다. 왕들의 일기입니다.
정조가 세자 때 일기를 썼습니다. 그런데 왕이 되고 나서도 썼습니다.
선대왕이 쓰니까 그 다음 왕도 썼습니다. 선대왕이 썼으니까 손자왕도 썼습니다. 언제까지 썼느냐면 나라가 망하는 1910년까지 썼습니다.
아까 ‘조선왕조실록’은 왕들이 못 보게 했다고 말씀 드렸지요.
선대왕들이 이러한 경우에 어떻게 정치했는가를 지금 왕들이 알게 하려면 어떻게 해야 되는가를 정조가 고민해서 기왕에 쓰는 일기를 체계적, 조직적으로 썼습니다.
국방에 관한 사항, 경제에 관한 사항, 과거에 관한 사항, 교육에 관한 사항 이것을 전부 조목조목 나눠서 썼습니다.
여러분, 150년 분량의 제왕의 일기를 가진 나라를 전 세계에 가서 찾아보십시오.
저는 우리가 서양에 가면 흔히들 주눅이 드는데 이제부터는 그럴 필요 없다고 생각을 합니다.
저는 언젠가는 이루어졌으면 하는 꿈과 소망이 있습니다. 이러한 책들을 전부 한글로 번역합니다.
이 가운데 ‘조선왕조실록’은 개략적이나마 번역이 되어 있고 나머지는 손도 못 대고 있습니다.
이것을 번역하고 나면 그 다음에 영어로 하고 핀란드어로 하고 노르웨이어로 하고 덴마크어로 하고 스와힐리어로 하고 전 세계 언어로 번역합니다.
그래서 컴퓨터에 탑재한 다음날 전 세계 유수한 신문에 전면광고를 냈으면 좋겠습니다.
‘세계인 여러분, 아시아의 코리아에 150년간의 제왕의 일기가 있습니다.
288년간의 최고 권력기구인 비서실의 일기가 있습니다. 실록이 있습니다.
혹시 보시고 싶으십니까? 아래 주소를 클릭하십시오. 당신의 언어로 볼 수 있습니다.’
해서 이것을 본 세계인이 1,000만이 되고, 10억이 되고 20억이 되면 이 사람들은 코리안들을 어떻게 생각할 것 같습니까.
‘야, 이놈들 보통 놈들이 아니구나. 어떻게 이러한 기록을 남기는가, 우리나라는 뭔가.’이러한 의식을 갖게 되지 않겠습니까.
그게 뭐냐면 국격이라고 하는 것입니다. 한국이라고 하는 브랜드가 그만큼 세계에서 올라가는 것입니다.
우리의 선조들은 이러한 것을 남겨주었는데 우리가 지금 못 하고 있을 뿐입니다.
○ 이러한 기록 중에 지진에 대해 제가 조사를 해 보았습니다. '삼국사기(三國史記)'에는 지진이 87회 기록되어 있습니다.
‘삼국유사(三國遺事)’에는 3회 기록되어 있습니다. ‘고려사(高麗史)’에는 249회의 지진에 관한 기록이 있습니다.
‘조선왕조실록’에는 2,029회 나옵니다. 다 합치면 2,368회의 지진에 관한 기록이 있습니다.
우리 방폐장, 핵발전소 만들 때 이것을 참고해야 한다고 생각합니다. 이것을 통계를 내면 어느 지역에서는 155년마다 한 번씩 지진이 났었을 수 있습니다.
어느 지역은 200년마다 한 번씩 지진이 났었을 수 있습니다.
이러한 지역을 다 피해서 2000년 동안 지진이 한 번도 안 난 지역에 방폐장, 핵발전소 만드는 것이 맞을 것입니다.
이렇게 해서 방폐장, 핵발전소 만들면 세계인들이 틀림없이 산업시찰을 올 것입니다.
그러면 수력발전소도 그런 데 만들어야지요. 정문에 구리동판을 세워놓고 영어로 이렇게 썼으면 좋겠습니다.
‘우리 민족이 가진 2,000년 동안의 자료에 의하면 이 지역은 2,000년 동안 단 한번도 지진이 발생하지 않았다. 따라서 이곳에 방폐장, 핵발전소, 수력발전소를 만든다. 대한민국 국민 일동.’
이렇게 하면 전 세계인들이 이것을 보고 ‘정말 너희들은 2,000년 동안의 지진에 관한 기록이 있느냐?’고 물어볼 것이고, 제가 말씀드린 책을 카피해서 기록관에 하나 갖다 놓으면 됩니다.
이 지진의 기록도 굉장히 구체적입니다. 어떻게 기록이 되어 있느냐 하면 ‘우물가의 버드나무 잎이 흔들렸다’ 이것이 제일 약진입니다.
‘흙담에 금이 갔다, 흙담이 무너졌다, 돌담에 금이 갔다, 돌담이 무너졌다, 기왓장이 떨어졌다,기와집이 무너졌다‘ 이렇게 되어 있습니다.
현재 지진공학회에서는 이것을 가지고 리히터 규모로 계산을 해 내고 있습니다.
대략 강진만 뽑아보니까 통일신라 이전까지 11회 강진이 있었고 고려시대에는 11회 강진이,조선시대에는 26회의 강진이 있었습니다. 합치면 우리는 2,000년 동안 48회의 강진이 이 땅에 있었습니다.
이러한 것을 계산할 수 있는 자료를 신기하게도 선조들은 우리에게 남겨주었습니다.
◈ 정치, 경제적 문제
○ 그 다음에 조세에 관한 사항을 보시겠습니다.
세종이 집권을 하니 농민들이 토지세 제도에 불만이 많다는 상소가 계속 올라옵니다. 세종이 말을 합니다.
‘왜 이런 일이 나는가?’ 신하들이 ‘사실은 고려 말에 이 토지세 제도가 문란했는데 아직까지 개정이 안 되었습니다.’
세종의 리더십은 ‘즉시 명령하여 옳은 일이라면 현장에서 해결 한다’는 입장입니다. 그래서 개정안이 완성되었습니다.
세종12년 3월에 세종이 조정회의에 걸었지만 조정회의에서 부결되었습니다.
왜 부결 되었냐면 ‘마마, 수정안이 원래의 현행안보다 농민들에게 유리한 것은 틀림없습니다.그러나 농민들이 좋아할지 안 좋아할지 우리는 모릅니다.’ 이렇게 됐어요.
‘그러면 어떻게 하자는 말이냐’ 하다가 기발한 의견이 나왔어요.
‘직접 물어봅시다.’ 그래서 물어보는 방법을 찾는 데 5개월이 걸렸습니다.
세종12년 8월에 국민투표를 실시했습니다. 그 결과 찬성 9만 8,657표, 반대 7만 4,149표 이렇게 나옵니다. 찬성이 훨씬 많지요.
세종이 조정회의에 다시 걸었지만 또 부결되었습니다.
왜냐하면 대신들의 견해는 ‘마마, 찬성이 9만 8,000, 반대가 7만 4,000이니까 찬성이 물론 많습니다. 그러나 7만 4,149표라고 하는 반대도 대단히 많은 것입니다.
이 사람들이 상소를 내기 시작하면 상황은 전과 동일합니다.’ 이렇게 됐어요.
세종이 ‘그러면 농민에게 더 유리하도록 안을 만들어라.’해서 안이 완성되었습니다.
그래서 실시하자 그랬는데 또 부결이 됐어요. 그 이유는 ‘백성들이 좋아할지 안 좋아할지 모릅니다.’였어요.
‘그러면 어떻게 하자는 말이냐’하니 ‘조그마한 지역에 시범실시를 합시다.’ 이렇게 됐어요.
시범실시를 3년 했습니다. 결과가 성공적이라고 올라왔습니다.
‘전국에 일제히 실시하자’고 다시 조정회의에 걸었습니다. 조정회의에서 또 부결이 됐어요.
‘마마, 농지세라고 하는 것은 토질이 좋으면 생산량이 많으니까 불만이 없지만 토질이 박하면 생산량이 적으니까 불만이 있을 수 있습니다.
그래서 이 지역과 토질이 전혀 다른 지역에도 시범실시를 해 봐야 됩니다.’ 세종이 그러라고 했어요.
다시 시범실시를 했어요. 성공적이라고 올라왔어요.
세종이 ‘전국에 일제히 실시하자’고 다시 조정회의에 걸었습니다. 또 부결이 됐습니다.
이유는 ‘마마, 작은 지역에서 이 안을 실시할 때 모든 문제점을 우리는 토론했습니다. 그러나 전국에서 일제히 실시할 때 무슨 문제가 나는지를 우리는 토론한 적이 없습니다.’
세종이 토론하라 해서 세종25년 11월에 이 안이 드디어 공포됩니다.
조선시대에 정치를 이렇게 했습니다.
세종이 백성을 위해서 만든 개정안을 정말 백성이 좋아할지 안 좋아할지를 국민투표를 해 보고 시범실시를 하고 토론을 하고 이렇게 해서 13년만에 공포·시행했습니다.
대한민국정부가 1945년 건립되고 나서 어떤 안을 13년 동안 이렇게 연구해서 공포·실시했습니까.
저는 이러한 정신이 있기 때문에 조선이 500년이나 간 것이 아닌가 하는 생각을 하고 있습니다.
◈ 법률 문제
○ 법에 관한 문제를 보시겠습니다.
우리가 오늘날 3심제를 하지 않습니까? 조선시대에는 어떻게 했을 것 같습니까?
조선시대에 3심제는 없었습니다. 그런데 사형수에 한해서는 3심제를 실시했습니다.
원래는 조선이 아니라 고려 말 고려 문종 때부터 실시했는데, 이를 삼복제(三覆制)라고 합니다.
조선시대에 사형수 재판을 맨 처음에는 변 사또 같은 시골 감형에서 하고, 두 번째 재판은 고등법원, 관찰사로 갑니다.
옛날에 지방관 관찰사는 사법권을 가지고 있었습니다. 마지막 재판은 서울 형조에 와서 받았습니다.
재판장은 거의 모두 왕이 직접 했습니다. 왕이 신문을 했을 때 그냥 신문한 것이 아니라 신문한 것을 옆에서 받아썼어요.
조선의 기록정신이 그렇습니다. 기록을 남겨서 그것을 책으로 묶었습니다.
그 책 이름이 ‘심리록(審理錄)’이라는 책입니다. 정조가 1700년대에 이 '심리록'을 출판했습니다.
오늘날 번역이 되어 큰 도서관에 가시면 ‘심리록’이라는 책이 있습니다.
왕이 사형수를 직접 신문한 내용이 거기에 다 나와 있습니다.
왕들은 뭐를 신문했냐 하면 이 사람이 사형수라고 하는 증거가 과학적인가 아닌가 입니다.
또 한 가지는 고문에 의해서 거짓 자백한 것이 아닐까를 밝히기 위해서 왕들이 무수히 노력합니다.
이 증거가 맞느냐 과학적이냐 합리적이냐 이것을 계속 따집니다.
이래서 상당수의 사형수는 감형되거나 무죄 석방되었습니다.
이런 것이 조선의 법입니다. 이렇기 때문에 조선이 500년이나 간 것이 아닌가 하는 생각을 합니다.
◈ 과학적 사실
○ 다음에는 과학에 대해 말씀 드리겠습니다.
코페르니쿠스가 태양이 아니라 지구가 돈다고 지동설을 주장한 것이 1543년입니다.
그런데 코페르니쿠스의 주장에는 이미 다 아시겠지만 물리학적 증명이 없었습니다.
물리학적으로 지구가 돈다는 것을 증명한 것은 1632년에 갈릴레오가 시도했습니다.
종교법정이 그를 풀어주면서도 갈릴레오의 책을 보면 누구나 지동설을 믿을 수밖에 없으니까 책은 출판금지를 시켰습니다.
그 책이 인류사에 나온 것은 그로부터 100년 후입니다. 1767년에 인류사에 나왔습니다.
-동양에서는 어떠냐 하면 지구는 사각형으로 생겼다고 생각했습니다. 하늘은 둥글고 지구는 사각형이다, 이를 천원지방설(天圓地方說)이라고 얘기합니다.
그런데 실은 동양에서도 지구는 둥글 것이라고 얘기한 사람들이 상당히 많았습니다.
대표적인 사람이 여러분들이 아시는 성리학자 주자입니다, 주희.
주자의 책을 보면 지구는 둥글 것이라고 나와 있습니다.
황진이의 애인, 고려시대 학자 서화담의 책을 봐도 ‘지구는 둥글 것이다, 지구는 둥글어야 한다, 바닷가에 가서 해양을 봐라 지구는 둥글 것이다’ 이렇게 주장했습니다.
-그런데 이것을 어떠한 형식이든 증명한 것이 1400년대 이순지(李純之)라고 하는 세종시대의 학자입니다.
이순지는 지구는 둥글다고 선배 학자들에게 주장했습니다.
그는 ‘일식의 원리처럼 태양과 달 사이에 둥근 지구가 들어가고 그래서 지구의 그림자가 달에 생기는 것이 월식이다, 그러니까 지구는 둥글다.’ 이렇게 말했습니다.
이것이 1400년대입니다. 그러니까 선배 과학자들이 ‘그렇다면 우리가 일식의 날짜를 예측할 수 있듯이 월식도 네가 예측할 수 있어야 할 것 아니냐’고 물었습니다.
이순지는 모년 모월 모시 월식이 생길 것이라고 했고 그날 월식이 생겼습니다.
이순지는 ‘교식추보법(交食推步法)’이라는 책을 썼습니다. 일식, 월식을 미리 계산해 내는 방법이라는 책입니다. 그 책은 오늘날 남아 있습니다.
이렇게 과학적인 업적을 쌓아가니까 세종이 과학정책의 책임자로 임명했습니다.
이때 이순지의 나이 약관 29살입니다. 그리고 첫 번째 준 임무가 조선의 실정에 맞는 달력을 만들라고 했습니다.
여러분, 동지상사라고 많이 들어보셨지요? 동짓달이 되면 바리바리 좋은 물품을 짊어지고 중국 연변에 가서 황제를 배알하고 뭘 얻어 옵니다.
다음 해의 달력을 얻으러 간 것입니다. 달력을 매년 중국에서 얻어 와서는 자주독립국이 못될뿐더러, 또 하나는 중국의 달력을 갖다 써도 해와 달이 뜨는 시간이 다르므로 사리/조금의 때가 정확하지 않아요.
그러니까 조선 땅에 맞는 달력이 필요하다 이렇게 됐습니다.
수학자와 천문학자가 총 집결을 했습니다. 이순지가 이것을 만드는데 세종한테 그랬어요.
‘못 만듭니다.’
‘왜?’
‘달력을 서운관(書雲觀)이라는 오늘날의 국립기상천문대에서 만드는데 여기에 인재들이 오지 않습니다.’
‘왜 안 오는가?’
‘여기는 진급이 느립니다.’ 그랬어요.
오늘날 이사관쯤 되어 가지고 국립천문대에 발령받으면 물 먹었다고 하지 않습니까?
행정안전부나 청와대비서실 이런 데 가야 빛 봤다고 하지요? 옛날에도 똑같았어요. 그러니까 세종이 즉시 명령합니다.
‘서운관의 진급속도를 제일 빠르게 하라.’
‘그래도 안 옵니다.’
‘왜?’
‘서운관은 봉록이 적습니다.’
‘봉록을 올려라.’ 그랬어요.
‘그래도 인재들이 안 옵니다.’
‘왜?’
‘서운관 관장이 너무나 약합니다.’
‘그러면 서운관 관장을 어떻게 할까?’
‘강한 사람을 보내주시옵소서. 왕의 측근을 보내주시옵소서.’
세종이 물었어요. ‘누구를 보내줄까?’
누구를 보내달라고 했는 줄 아십니까?
‘정인지를 보내주시옵소서.’ 그랬어요. 정인지가 누구입니까? 고려사를 쓰고 한글을 만들고 세종의 측근 중의 측근이고 영의정입니다.
세종이 어떻게 했을 것 같습니까? 영의정 정인지를 서운관 관장으로 겸임 발령을 냈습니다.
그래서 1,444년에 드디어 이 땅에 맞는 달력을 만드는 데 성공했습니다.
이순지는 당시 가장 정확한 달력이라고 알려진 아라비아의 회회력의 체제를 몽땅 분석해 냈습니다.
일본학자가 쓴 세계천문학사에는 회회력을 가장 과학적으로 정교하게 분석한 책이 조선의 이순지著 ‘칠정산외편(七政算外篇)’이라고 나와 있습니다.
그런데 달력이 하루 10분, 20분, 1시간 틀려도 모릅니다. 한 100년, 200년 가야 알 수 있습니다.
이 달력이 정확한지 안 정확한지를 어떻게 아냐면 이 달력으로 일식을 예측해서 정확히 맞으면 이 달력이 정확한 것입니다.
이순지는 '칠정산외편'이라는 달력을 만들어 놓고 공개를 했습니다.
1,447년 세종 29년 음력 8월 1일 오후 4시 50분 27초에 일식이 시작될 것이고 그날 오후 6시55분 53초에 끝난다고 예측했습니다.
이게 정확하게 맞아떨어졌습니다. 세종이 너무나 반가워서 그 달력의 이름을 ‘칠정력’이라고 붙여줬습니다. 이것이 그 후에 200년간 계속 사용되었습니다.
여러분 1,400년대 그 당시에 자기 지역에 맞는 달력을 계산할 수 있고 일식을 예측할 수 있는 나라는 전 세계에 세 나라밖에 없었다고 과학사가들은 말합니다.
하나는 아라비아, 하나는 중국, 하나는 조선입니다.
그런데 이순지가 이렇게 정교한 달력을 만들 때 달력을 만든 핵심기술이 어디 있냐면 지구가 태양을 도는 시간을 얼마나 정교하게 계산해 내는가에 달려 있습니다.
‘칠정산외편’에 보면 이순지는 지구가 태양을 도는 데 걸리는 시간은 365일 5시간 48분 45초라고 계산해 놓았습니다.
오늘날 물리학적인 계산은 365일 5시간 48분 46초입니다. 1초 차이가 나게 1400년대에 계산을 해냈습니다. 여러분, 그 정도면 괜찮지 않습니까?
------------------------ 여기서부턴 수학에 관한 내용인데, 관심있는분만 읽어보셔요 ------------------
-홍대용이라는 사람은 수학을 해서 ‘담헌서(湛軒書)’라는 책을 썼습니다.
‘담헌서’는 한글로 번역되어 큰 도서관에는 다 있습니다.
이 ‘담헌서’ 가운데 제5권이 수학책입니다. 홍대용이 조선시대에 발간한 수학책의 문제가 어떤지 설명 드리겠습니다.
‘구체의 체적이 6만 2,208척이다. 이 구체의 지름을 구하라.’ cos, sin, tan가 들어가야 할 문제들이 쫙 깔렸습니다.
조선시대의 수학책인 ‘주해수용(籌解需用)’에는 이렇게 되어 있습니다.
sinA를 한자로 正弦, cosA를 餘弦, tanA를 正切, cotA를 餘切, secA를 正割, cosecA를 如割, 1-cosA를 正矢, 1-sinA를 餘矢 이렇게 되어 있습니다.
그러면 이런 것이 있으려면 삼각함수표가 있어야 되잖아요. 이 ‘주해수용’의 맨 뒤에 보면 삼각함수표가 그대로 나와 있습니다. 제가 한 번 옮겨봤습니다.
예를 들면 正弦 25도 42분 51초, 다시 말씀 드리면 sin25.4251도의 값은 0.4338883739118 이렇게 나와 있습니다.
제가 이것을 왜 다 썼느냐 하면 소수점 아래 몇 자리까지 있나 보려고 제가 타자로 다 쳐봤습니다. 소수점 아래 열세 자리까지 있습니다. 이만하면 조선시대 수학책 괜찮지 않습니까?
다른 문제 또 하나 보실까요? 甲地와 乙地는 동일한 子午眞線에 있다.
조선시대 수학책 문제입니다. 이때는 子午線이라고 안 하고 子午眞線이라고 했습니다.
이런 것을 보면 이미 이 시대가 되면 지구는 둥글다고 하는 것이 보편적인 지식이 되어 있는 것 같습니다.
甲地와 乙地는 동일한 子午線上에 있다. 甲地는 北極出地, 北極出地는 緯度라는 뜻입니다. 甲地는 緯度 37도에 있고 乙地는 緯度 36도 30분에 있다. 甲地에서 乙地로 직선으로 가는데 고뢰(鼓?)가 12번 울리고 종료(鍾鬧)가 125번 울렸다. 이때 지구 1도의 里數와 지구의 지름, 지구의 둘레를 구하라. 이러한 문제입니다.
이 고뢰(鼓? ) , 종료(鍾鬧)는 뭐냐 하면 여러분 김정호가 그린 대동여지도를 초등학교 때 사회책에서 보면 오늘날의 지도와 상당히 유사하지 않습니까?
옛날 조선시대의 지도가 이렇게 오늘날 지도와 비슷했을까? 이유는 축척이 정확해서 그렇습니다. 대동여지도는 십리 축척입니다.
십리가 한 눈금으로 되어 있는데 이것이 왜 정확하냐면 기리고거(記里鼓車)라고 하는 수레를 끌고 다녔습니다.
기리고거가 뭐냐 하면 기록할 記자, 리는 백리 2백리 하는 里자, 里數를 기록하는, 고는 북 鼓자, 북을 매단 수레 車, 수레라는 뜻입니다.
어떻게 만들었냐 하면 수레가 하나 있는데 중국의 동진시대에 나온 수레입니다.
바퀴를 정확하게 원둘레가 17척이 되도록 했습니다. 17척이 요새의 계산으로 하면 대략 5미터입니다.
이것이 100바퀴를 굴러가면 그 위에 북을 매달아놨는데 북을 ‘뚱’하고 치게 되어 있어요.
북을 열 번 치면 그 위에 종을 매달아놨는데 종을 ‘땡’하고 치게 되어 있어요. 여기 고뢰, 종료라고 하는 것이 그것입니다.
그러니까 이것이 5km가 되어서 딱 10리가 되면 종이 ‘땡’하고 칩니다. 김정호가 이것을 끌고 다녔습니다.
우리 세종이 대단한 왕입니다. 몸에 피부병이 많아서 온양온천을 자주 다녔어요.
그런데 온천에 다닐 때도 그냥 가지 않았습니다. 이 기리고거를 끌고 갔어요.
그래서 한양과 온양 간이라도 길이를 정확히 계산해 보자 이런 것을 했었어요.
이것을 가지면 지구의 지름, 지구의 둘레를 구할 수 있다는 얘기입니다.
그러니까 원주를 파이로 나누면 지름이다 하는 것이 이미 보편적인 지식이 되어 있었습니다.
◈ 수학적 사실
○ 그러면 우리 수학의 씨는 어디에 있었을까 하는 것인데요,
여러분 불국사 가보시면 건물 멋있잖아요. 석굴암도 멋있잖아요. 불국사를 지으려면 건축학은 없어도 건축술은 있어야 할 것이 아닙니까,
최소한 건축술이 있으려면 물리학은 없어도 물리술은 있어야 할 것 아닙니까.
물리술이 있으려면 수학은 없어도 산수는 있어야 할 것 아닙니까?
이게 제가 고등학교 3학년 때 가졌던 의문입니다, 이것을 어떻게 지었을까.
그런데 저는 ‘삼국사기’의 저자 김부식 선생님을 너무 너무 존경합니다.
여러분 세계에서 가장 오래된 대학이 어디인 줄 아십니까? 에스파냐, 스페인에 있습니다.
1490년대에 국립대학이 세워졌습니다. 여러분이 아시는 옥스퍼드와 캠브리지는 1600년대에 세워진 대학입니다.
우리는 언제 국립대학이 세워졌느냐, ‘삼국사기’를 보면 682년, 신문왕 때 국학이라는 것을 세웁니다.
그것을 세워놓고 하나는 철학과를 만듭니다. 관리를 길러야 되니까 논어, 맹자를 가르쳐야지요.
그런데 학과가 또 하나 있습니다. 김부식 선생님은 어떻게 써놓았냐면 ‘산학박사와 조교를 두었다.’ 이렇게 되어 있습니다.
명산과입니다. 밝을 明자, 계산할 算자, 科. 계산을 밝히는 과, 요새 말로 하면 수학과입니다.
수학과를 세웠습니다. ‘15세에서 30세 사이의 청년 공무원 가운데 수학에 재능이 있는 자를 뽑아서 9년 동안 수학교육을 실시하였다.’ 이렇게 되어 있습니다.
여기를 졸업하게 되면 산관(算官)이 됩니다. 수학을 잘 하면 우리나라는 공무원이 됐습니다.
전 세계에서 가서 찾아보십시오. 수학만 잘 하면 공무원이 되는 나라 찾아보십시오.
이것을 산관이라고 합니다. 삼국시대부터 조선이 망할 때까지 산관은 계속 되었습니다.
이 산관이 수학의 발전에 엄청난 기여를 하게 됩니다. 산관들은 무엇을 했느냐, 세금 매길 때,성 쌓을 때, 농지 다시 개량할 때 전부 산관들이 가서 했습니다.
세금을 매긴 것이 산관들입니다.
그런데 그때의 수학 상황을 알려면 무슨 교과서로 가르쳤느냐가 제일 중요하겠지요?
정말 제가 존경하는 김부식 선생님은 여기다가 그 당시 책 이름을 쫙 써놨어요. 삼개(三開), 철경(綴經), 구장산술(九章算術), 육장산술(六章算術)을 가르쳤다고 되어 있습니다.
그 가운데 오늘날 우리가 볼 수 있는 것은 구장산술이라는 수학책이 유일합니다.
구장산술은 언제인가는 모르지만 중국에서 나왔습니다.
최소한도 진나라 때 나왔을 것이라고 얘기하고 있습니다.
어떤 사람은 주나라 문왕이 썼다고 하는데 중국에서는 좋은 책이면 무조건 다 주나라 문왕이 썼다고 하는 경향이 있습니다.
이 책의 제 8장의 이름이 방정입니다. 방정이 영어로는 equation입니다.
방정이라는 말을 보고 제 온 몸에 소름이 쫙 돋았습니다. 저는 사실은 중학교 때 고등학교 때부터 방정식을 푸는데, 방정이라는 말이 뭘까가 가장 궁금했습니다.
어떤 선생님도 그것을 소개해 주지 않았습니다.
그런데 이 책에 보니까 우리 선조들이 삼국시대에 이미 방정이라는 말을 쓴 것을 저는 외국수학인 줄 알고 배운 것입니다.
○ 9 장을 보면 9장의 이름은 구고(勾股)입니다. 갈고리 勾자, 허벅다리 股자입니다.
맨 마지막 chapter입니다. 방정식에서 2차 방정식이 나옵니다. 그리고 미지수는 다섯 개까지 나옵니다. 그러니까 5원 방정식이 나와 있습니다.
중국 학생들은 피타고라스의 정리라는 말을 모릅니다. 여기에 구고(勾股)정리라고 그래도 나옵니다. 자기네 선조들이 구고(勾股)정리라고 했으니까.
여러분 이러한 삼각함수 문제가 여기에 24문제가 나옵니다.
24문제는 제가 고등학교 때 상당히 힘들게 풀었던 문제들이 여기에 그대로 나옵니다.
이러한 것을 우리가 삼국시대에 이미 교육을 했습니다. 그런데 우리는 이러한 것들이 전부 서양수학인 줄 알고 배우고 있습니다.
여기에는 밀률(密率)이라는 말도 나옵니다.
비밀할 때 密, 비율 할 때 率. 밀률의 값은 3으로 한다고 되어 있습니다. 고려시대의 수학교과서를 보면 밀률의 값은 3.14로 한다. 이렇게 되어 있습니다.
아까 이순지의 칠정산외편, 달력을 계산해 낸 그 책에 보면 ‘밀률의 값은 3.14159로 한다.’ 이렇게 되어 있습니다. 우리 다 그거 삼국시대에 했습니다.
그런데 어떻게 해서 우리는 오늘날 플러스, 마이너스, 정사각형 넓이, 원의 넓이, 방정식, 삼각함수 등을 외국수학으로 이렇게 가르치고 있느냐는 겁니다.
저는 이런 소망을 강력히 가지고 있습니다.
우리 초등학교나 중·고등 학교 책에 플러스, 마이너스를 가르치는 chapter가 나오면 우리 선조들은 늦어도 682년 삼국시대에는 플러스를 바를 正자 정이라 했고 마이너스를 부채, 부담하는 부(負)라고 불렀다.
그러나 편의상 正負라고 하는 한자 대신 세계수학의 공통부호인 +-를 써서 표기하자, 또 π를 가르치는 chapter가 나오면 682년 그 당시 적어도 삼국시대에는 우리는 π를 밀률이라고 불렀다,
밀률은 영원히 비밀스런 비율이라는 뜻이다, 오늘 컴퓨터를 π를 계산해 보면 소수점 아래 1조자리까지 계산해도 무한소수입니다.
그러니까 무한소수라고 하는 영원히 비밀스런 비율이라는 이 말은 철저하게 맞는 말이다,
그러나 밀률이라는 한자 대신 π라고 하는 세계수학의 공통 부호를 써서 풀기로 하자 하면 수학시간에도 민족의 숨결을 느낄 수 있습니다.
출처: 허성도 서울대학교 중어중문학과 교수의 강연 중
○ 미국이 우주과학을 발전시키기 위해서 중·고등학교의 수학 교과과정을 바꾸었다면 우리는 우리를 알기 위해서 무엇을 해야 하는가, 결론은 그것 입니다.
-역사를 보는 방법도 대단히 다양한데요. 우리는 초등학교 때 이렇게 배웠습니다.
‘조선은 500년 만에 망했다.’ 아마 이 가운데서 초등학교 때 공부 잘하신 분들은 이걸 기억하실 것입니다.
500년 만에 조선이 망한 이유 4가지를 달달 외우게 만들었습니다. 기억나십니까?
“사색당쟁, 대원군의 쇄국정책, 성리학의 공리공론, 반상제도 등 4가지 때문에 망했다.” 이렇게 가르칩니다.
그러면 대한민국 청소년들은 어떻게 생각하느냐 하면 ‘아, 우리는 500년 만에 망한 민족이구나, 그것도 기분 나쁘게 일본에게 망했구나.’ 하는 참담한 심정을 갖게 되어 있습니다.
그런데 아까 나로호의 실패를 중국, 미국, 소련 등 다른 나라에 비추어 보듯이 우리 역사도 다른 나라에 비추어 보아야 됩니다.
조선이 건국된 것이 1392년이고 한일합방이 1910년입니다.
금년이 2010년이니까 한일합방 된 지 딱 100년이 되는 해입니다.
그러면 1392년부터 1910년까지 세계 역사를 놓고 볼 때 다른 나라 왕조는 600년, 700년, 1,000년 가고 조선만 500년 만에 망했으면 왜 조선은 500년 만에 망했는가 그 망한 이유를 찾는 것이 맞을 것입니다.
그런데 만약 다른 나라에는 500년을 간 왕조가 그 당시에 하나도 없고 조선만 500년 갔으면 어떻게 하겠습니까?
조선은 어떻게 해서 500년이나 갔을까 이것을 따지는 것이 맞을 것입니다.
-1300 년대의 역사 구도를 여러분이 놓고 보시면 전 세계에서 500년 간 왕조는 실제로 하나도 없습니다.
서구에서는 어떻게 됐느냐면, 신성로마제국이 1,200년째 계속되고 있었는데 그것은 제국이지 왕조가 아닙니다.
오스만투르크가 600년째 계속 되고 있었습니다. 그런데 그것도 제국이지 왕조는 아닙니다.
유일하게 500년 간 왕조가 하나 있습니다. 에스파냐왕국입니다.
그 나라가 500년째 가고 있었는데 불행히도 에스파냐왕국은 한 집권체가 500년을 지배한 것이 아닙니다.
예를 들면 나폴레옹이 ‘어, 이 녀석들이 말을 안 들어, 이거 안 되겠다. 형님, 에스파냐 가서 왕 좀 하세요.’ 그래서 나폴레옹의 형인 조셉 보나파르트가 에스파냐에 가서 왕을 했습니다.
이렇게 왔다 갔다 한 집권체이지 단일한 집권체가 500년 가지 못했습니다.
전세계에서 단일한 집권체가 518년째 가고 있는 것은 조선 딱 한 나라 이외에는 하나도 없습니다.
-그러면 잠깐 위로 올라가 볼까요.
고려가 500년 갔습니다. 통일신라가 1,000년 갔습니다. 고구려가 700년 갔습니다. 백제가 700년 갔습니다.
신라가 BC 57년에 건국됐으니까 BC 57년 이후에 세계 왕조를 보면 500년 간 왕조가 딱 두 개 있습니다.
러시아의 이름도 없는 왕조가 하나 있고 동남 아시아에 하나가 있습니다.
그 외에는 500년 간 왕조가 하나도 없습니다. 그러니까 통일신라처럼 1,000년 간 왕조도 당연히 하나도 없습니다.
고구려, 백제만큼 700년 간 왕조도 당연히 하나도 없습니다.
제가 지금 말씀드린 것은 과학입니다.
-그러면 이 나라는 엄청나게 신기한 나라입니다. 한 왕조가 세워지면 500년, 700년, 1,000년을 갔습니다. 왜 그럴까요?
그럴려면 두 가지 조건 중에 하나가 성립해야 합니다.
하나는 우리 선조가 몽땅 바보다, 그래서 권력자들, 힘 있는 자들이 시키면 무조건 굴종했다,그러면 세계 역사상 유례없이 500년, 700년, 1,000년 갔을 것입니다.
그런데 우리 선조들이 바보가 아니었다, 인간으로서의 권리를 주장하고 다시 말씀드리면 인권에 관한 의식이 있고 심지어는 국가의 주인이라고 하는 의식이 있다면,
또 잘 대드는 성격이 있다면, 최소한도의 정치적인 합리성, 최소한도의 경제적인 합리성, 조세적인 합리성, 법적인 합리성, 문화의 합리성 이러한 것들이 있지 않으면
전 세계 역사상 유례없는 이러한 장기간의 통치가 불가능할 것이라고 말씀드릴 수 있습니다.
◈ 기록의 정신
○ "조선왕조실록(朝鮮王朝實錄)"을 보면 25년에 한 번씩 민란이 일어납니다.
여러분이 아시는 동학란이나 이런 것은 전국적인 규모이고, 이 민란은 요새 말로 하면 대규모의 데모에 해당합니다. 우리는 상소제도를 가지고 있었습니다.
백성들이, 기생도 노비도 글만 쓸 수 있으면 ‘왕과 나는 직접 소통해야겠다, 관찰사와 이야기하니까 되지를 않는다.’ 왕한테 편지를 보냅니다.
그런데 이런 상소제도에 불만을 가진 사람들이 생겨났습니다.
왜? 편지를 하려면 한문 꽤나 써야 되잖아요. ‘그럼 글 쓰는 사람만 다냐, 글 모르면 어떻게 하느냐’ 그렇게 해서 나중에는 언문상소를 허락해 주었습니다.
그래도 불만 있는 사람들이 나타났습니다. ‘그래도 글줄 깨나 해야 왕하고 소통하느냐, 나도 하고 싶다’ 이런 불만이 터져 나오니까 신문고를 설치했습니다.
‘그럼 와서 북을 쳐라’ 그러면 형조의 당직관리가 와서 구두로 말을 듣고 구두로 왕에게 보고했습니다.
이래도 또 불만이 터져 나왔습니다. 여러분, 신문고를 왕궁 옆에 매달아 놨거든요.
그러니까 지방 사람들이 뭐라고 했냐면 ‘왜 한양 땅에 사는 사람들만 그걸하게 만들었느냐, 우리는 뭐냐’ 이렇게 된 겁니다.
그래서 격쟁(?錚)이라는 제도가 생겼습니다. 격은 칠격(?)자이고 쟁은 꽹과리 쟁(錚)자입니다.
왕이 지방에 행차를 하면 꽹과리나 징을 쳐라. 혹은 대형 플래카드를 만들어서 흔들어라,
그럼 왕이 ‘무슨 일이냐’ 하고 물어봐서 민원을 해결해 주었습니다. 이것을 격쟁이라고 합니다.
○ 우리는 이러한 제도가 흔히 형식적인 제도겠지 라고 생각하지만 그게 아닙니다.
예를 들어 정조의 행적을 조사해 보면, 정조가 왕 노릇을 한 것이 24년입니다.
24년 동안 상소, 신문고, 격쟁을 해결한 건수가 5,000건 입니다.
이것을 제위 연수를 편의상 25년으로 나누어보면 매년 200건을 해결했다는 얘기이고 공식 근무일수로 따져보면 매일 1건 이상을 했다는 것입니다.
영조 같은 왕은 백성들이 너무나 왕을 직접 만나고 싶어 하니까 아예 날짜를 정하고 장소를 정해서 ‘여기에 모이시오.’ 해서 정기적으로 백성들을 만났습니다.
여러분, 서양의 왕 가운데 이런 왕 보셨습니까? 이것이 무엇을 말하느냐면 이 나라 백성들은 그렇게 안 해주면 통치할 수 없으니까 이러한 제도가 생겼다고 봐야 합니다.
그러면 이 나라 국민들은 바보가 아닙니다. 그렇게 보면 아까 말씀 드린 두 가지 사항 가운데 후자에 해당합니다.
이 나라 백성들은 만만한 백성이 아니다. 그러면 최소한도의 합리성이 있었을 것이다.
그 합리성이 무엇인가 하는 것을 오늘 말씀 드리고자 합니다.
-첫째는 조금 김새시겠지만 기록의 문화입니다. 여러분이 이집트에 가 보시면, 저는 못 가봤지만 스핑크스가 있습니다. 그걸 딱 보면 어떠한 생각을 할까요?
중국에 가면 만리장성이 있습니다. 아마도 여기 계신 분들은 거의 다 이런 생각을 하셨을 것입니다.
‘이집트 사람, 중국 사람들은 재수도 좋다, 좋은 선조 만나서 가만히 있어도 세계의 관광달러가 모이는 구나’
여기에 석굴암을 딱 가져다 놓으면 좁쌀보다 작습니다. 우리는 뭐냐. 이런 생각을 하셨지요?
저도 많이 했습니다. 그런데 역사에 관심을 가지고 있다 보니까 그러한 유적이 우리에게 없는 것이 얼마나 다행인가 싶습니다.
베르사유의 궁전같이 호화찬란한 궁전이 없는 것이 얼마나 다행인가 싶습니다.
여러분, 만약 조선시대에 어떤 왕이 등극을 해서 피라미드 짓는 데 30만 명 동원해서 20년 걸렸다고 가정을 해보죠.
그 왕이 ‘국민 여러분, 조선백성 여러분, 내가 죽으면 피라미드에 들어가고 싶습니다. 그러니 여러분의 자제 청·장년 30만 명을 동원해서 한 20년 노역을 시켜야겠으니 조선백성 여러분, 양해하시오.’
그랬으면 무슨 일이 났을 것 같습니까? ‘마마, 마마가 나가시옵소서.’ 이렇게 되지 조선백성들이 20년 동안 그걸 하고 앉아있습니까? 안 하지요.
그러니까 우리에게는 그러한 문화적 유적이 남아 있을 수 없습니다. 만일 어떤 왕이 베르사유궁전 같은 것을 지으려고 했으면 무슨 일이 났겠습니까.
‘당신이 나가시오, 우리는 그런 것을 지을 생각이 없소.’ 이것이 정상적일 것입니다. 그러니까 우리에게는 그러한 유적이 있을 수가 없습니다.
-대신에 무엇을 남겨 주었느냐면 기록을 남겨주었습니다. 여기에 왕이 있다면, 바로 곁에 사관이 있습니다.
여러분, 이렇게 생각하시면 간단합니다. 여러분께서 아침에 출근을 딱 하시면, 어떠한 젊은이가 하나 달라붙습니다.
그래서 여러분이 하시는 말을 다 적고, 여러분이 만나는 사람을 다 적고, 둘이 대화한 것을 다 적고, 왕이 혼자 있으면 혼자 있다, 언제 화장실 갔으면 화장실 갔다는 것도 다 적고, 그것을 오늘 적고, 내일도 적고, 다음 달에도 적고 돌아가신 날 아침까지 적습니다.
기분이 어떠실 것 같습니까?
공식근무 중 사관이 없이는 왕은 그 누구도 독대할 수 없다고 경국대전에 적혀 있습니다.
우리가 사극에서 살살 간신배 만나고 장희빈 살살 만나고 하는 것은 다 거짓말입니다.
왕은 공식근무 중 사관이 없이는 누구도 만날 수 없게 되어 있습니다.
심지어 인조 같은 왕은 너무 사관이 사사건건 자기를 쫓아다니는 것이 싫으니까 어떤 날 대신들에게 ‘내일은 저 방으로 와, 저 방에서 회의할 거야.’ 그러고 도망갔습니다.
거기서 회의를 하고 있었는데 사관이 마마를 놓쳤습니다. 어디 계시냐 하다가 지필묵을 싸들고 그 방에 들어갔습니다.
인조가 ‘공식적인 자리가 아닌 데서 회의를 하는데도 사관이 와야 되는가?’ 그러니까 사관이 이렇게 말했습니다.
‘마마, 조선의 국법에는 마마가 계신 곳에는 사관이 있게 되어 있습니다.’ 그리고 적었습니다.
너무 그 사관이 괘씸해서 다른 죄목을 걸어서 귀향을 보냈습니다.
그러니까 다음 날 다른 사관이 와서 또 적었습니다. 이렇게 500년을 적었습니다.
사관은 종7품에서 종9품 사이입니다. 오늘날 대한민국의 공무원제도에 비교를 해보면 아무리 높아도 사무관을 넘지 않습니다.
그러한 사람이 왕을 사사건건 따라 다니며 다 적습니다. 이걸 500년을 적는데, 어떻게 했냐면 한문으로 써야 하니까 막 흘려 썼을 것 아닙니까?
그날 저녁에 집에 와서 정서를 했습니다. 이걸 사초라고 합니다.
그러다가 왕이 돌아가시면 한 달 이내, 이것이 중요합니다.
한 달 이내에 요새 말로 하면 왕조실록 편찬위원회를 구성합니다.
사관도 잘못 쓸 수 있잖아요. 그러니까 ‘영의정, 이러한 말 한 사실이 있소? 이러한 행동한 적이 있소?’ 확인합니다.
그렇게 해서 즉시 출판합니다. 4부를 출판했습니다. 4부를 찍기 위해서 목판활자, 나중에는 금속활자본을 만들었습니다.
여러분, 4부를 찍기 위해서 활자본을 만드는 것이 경제적입니까, 사람이 쓰는 것이 경제적입니까? 쓰는 게 경제적이지요.
그런데 왜 활판인쇄를 했느냐면 사람이 쓰면 글자 하나 빼먹을 수 있습니다.
글자 하나 잘못 쓸 수 있습니다. 하나 더 쓸 수 있습니다. 이렇게 해서 후손들에게 4부를 남겨주는데 사람이 쓰면 4부가 다를 수 있습니다.
그러면 후손들이 어느 것이 정본인지 알 수 없습니다. 그러니까 목판활자, 금속활자본을 만든 이유는 틀리더라도 똑같이 틀려라, 그래서 활자본을 만들었습니다.
이렇게 해서 500년 분량을 남겨주었습니다.
유네스코에서 조사를 했습니다. 왕의 옆에서 사관이 적고 그날 저녁에 정서해서 왕이 죽으면 한 달 이내에 출판 준비에 들어가서 만들어낸 역사서를 보니까 전 세계에 조선만이 이러한 기록을 가지고 있습니다.
이것이 6,400만자입니다. 6,400만자 하면 좀 적어 보이지요?
그런데 6,400만자는 1초에 1자씩 하루 4시간을 보면 11.2년 걸리는 분량입니다.
그러니까 우리나라에는 공식적으로 "조선왕조실록"을 다룬 학자는 있을 수가 없게 되어 있습니다.
-그런데 여러분, 이러한 생각 안 드세요? ‘사관도 사람인데 공정하게 역사를 기술했을까’ 이런 궁금증이 가끔 드시겠지요?
사관이 객관적이고 공정한 역사를 쓰도록 어떤 시스템을 가지고 있었는지를 말씀드리죠.
세종이 집권하고 나서 가장 보고 싶은 책이 있었습니다. 뭐냐 하면 태종실록입니다.
‘아버지의 행적을 저 사관이 어떻게 썼을까?’ 너무너무 궁금해서 태종실록을 봐야겠다고 했습니다. 맹사성이라는 신하가 나섰습니다.
‘보지 마시옵소서.’ ‘왜, 그런가.’ ‘마마께서 선대왕의 실록을 보시면 저 사관이 그것이 두려워서 객관적인 역사를 기술할 수 없습니다.’
세종이 참았습니다. 몇 년이 지났습니다. 또 보고 싶어서 환장을 했습니다.
그래서 ‘선대왕의 실록을 봐야겠다.’ 이번에는 핑계를 어떻게 댔느냐면 ‘선대왕의 실록을 봐야 그것을 거울삼아서 내가 정치를 잘할 것이 아니냐’
그랬더니 황 희 정승이 나섰습니다. ‘마마, 보지 마시옵소서.’ ‘왜, 그런가.’
‘마마께서 선대왕의 실록을 보시면 이 다음 왕도 선대왕의 실록을 보려 할 것이고 다음 왕도 선대왕의 실록을 보려할 것입니다. 그러면 저 젊은 사관이 객관적인 역사를 기술할 수 없습니다.
그러므로 마마께서도 보지 마시고 이다음 조선왕도 영원히 실록을 보지 말라는 교지를 내려주시옵소서.’ 그랬습니다.
이걸 세종이 들었겠습니까, 안 들었겠습니까? 들었습니다.
‘네 말이 맞다. 나도 영원히 안 보겠다. 그리고 조선의 왕 누구도 실록을 봐서는 안 된다’는 교지를 내렸습니다. 그래서 조선의 왕 누구도 실록을 못 보게 되어 있었습니다.
-그런데 사실은 중종은 슬쩍 봤습니다. 봤다는 기록이 남아 있습니다. 그러나 그 누구도 안보는 것이 원칙으로 되어 있었습니다.
여러분, 왕이 못 보는데 정승판서가 봅니까? 정승판서가 못 보는데 관찰사가 봅니까? 관찰사가 못 보는데 변 사또가 봅니까?
이런 사람이 못 보는데 국민이 봅니까? 여러분, 문제는 여기에 있습니다.
조선시대 그 어려운 시대에 왕의 하루하루의 그 행적을 모든 정치적인 상황을 힘들게 적어서 아무도 못 보는 역사서를 500년을 썼습니다. 누구 보라고 썼겠습니까?
대한민국 국민 보라고 썼습니다.
저는 이런 생각을 합니다. 이 땅은 영원할 것이다. 그리고 우리의 핏줄 받은 우리 민족이 이 땅에서 영원히 살아갈 것이다.
그러니까 우리의 후손들이여, 우리는 이렇게 살았으니 우리가 살았던 문화, 제도, 양식을 잘 참고해서 우리보다 더 아름답고 멋지고 강한 나라를 만들어라,
이러한 역사의식이 없다면 그 어려운 시기에 왕도 못 보고 백성도 못 보고 아무도 못 보는 그 기록을 어떻게 해서 500년이나 남겨주었겠습니까.
"조선왕조실록"은 한국인의 보물일 뿐 아니라 인류의 보물이기에, 유네스코가 세계기록문화유산으로 지정을 해 놨습니다.
○ ‘승정원일기(承政院日記)’가 있습니다. 승정원은 오늘날 말하자면 청와대비서실입니다.
사실상 최고 권력기구지요. 이 최고 권력기구가 무엇을 하냐면 ‘왕에게 올릴 보고서, 어제 받은 하명서, 또 왕에게 할 말’ 이런 것들에 대해 매일매일 회의를 했습니다.
이 일지를 500년 동안 적어 놓았습니다. 아까 실록은 그날 밤에 정서했다고 했지요.
그런데 ‘승정원일기’는 전월 분을 다음 달에 정리했습니다. 이 ‘승정원일기’를 언제까지 썼느냐면 조선이 망한 해인 1910년까지 썼습니다.
누구 보라고 써놓았겠습니까? 대한민국 국민 보라고 썼습니다.
유네스코가 조사해보니 전 세계에서 조선만이 그러한 기록을 남겨 놓았습니다.
그런데 ‘승정원일기’는 임진왜란 때 절반이 불타고 지금 288년 분량이 남아있습니다.
이게 몇 자냐 하면 2억 5,000만자입니다. 요새 국사편찬위원회에서 이것을 번역하려고 조사를 해 보니까 잘하면 앞으로 50년 후에 끝나고 못하면 80년 후에 끝납니다.
이러한 방대한 양을 남겨주었습니다. 이것이 우리의 선조입니다.
○ ‘일성록(日省錄)’이라는 책이 있습니다. 날 日자, 반성할 省자입니다. 왕들의 일기입니다.
정조가 세자 때 일기를 썼습니다. 그런데 왕이 되고 나서도 썼습니다.
선대왕이 쓰니까 그 다음 왕도 썼습니다. 선대왕이 썼으니까 손자왕도 썼습니다. 언제까지 썼느냐면 나라가 망하는 1910년까지 썼습니다.
아까 ‘조선왕조실록’은 왕들이 못 보게 했다고 말씀 드렸지요.
선대왕들이 이러한 경우에 어떻게 정치했는가를 지금 왕들이 알게 하려면 어떻게 해야 되는가를 정조가 고민해서 기왕에 쓰는 일기를 체계적, 조직적으로 썼습니다.
국방에 관한 사항, 경제에 관한 사항, 과거에 관한 사항, 교육에 관한 사항 이것을 전부 조목조목 나눠서 썼습니다.
여러분, 150년 분량의 제왕의 일기를 가진 나라를 전 세계에 가서 찾아보십시오.
저는 우리가 서양에 가면 흔히들 주눅이 드는데 이제부터는 그럴 필요 없다고 생각을 합니다.
저는 언젠가는 이루어졌으면 하는 꿈과 소망이 있습니다. 이러한 책들을 전부 한글로 번역합니다.
이 가운데 ‘조선왕조실록’은 개략적이나마 번역이 되어 있고 나머지는 손도 못 대고 있습니다.
이것을 번역하고 나면 그 다음에 영어로 하고 핀란드어로 하고 노르웨이어로 하고 덴마크어로 하고 스와힐리어로 하고 전 세계 언어로 번역합니다.
그래서 컴퓨터에 탑재한 다음날 전 세계 유수한 신문에 전면광고를 냈으면 좋겠습니다.
‘세계인 여러분, 아시아의 코리아에 150년간의 제왕의 일기가 있습니다.
288년간의 최고 권력기구인 비서실의 일기가 있습니다. 실록이 있습니다.
혹시 보시고 싶으십니까? 아래 주소를 클릭하십시오. 당신의 언어로 볼 수 있습니다.’
해서 이것을 본 세계인이 1,000만이 되고, 10억이 되고 20억이 되면 이 사람들은 코리안들을 어떻게 생각할 것 같습니까.
‘야, 이놈들 보통 놈들이 아니구나. 어떻게 이러한 기록을 남기는가, 우리나라는 뭔가.’이러한 의식을 갖게 되지 않겠습니까.
그게 뭐냐면 국격이라고 하는 것입니다. 한국이라고 하는 브랜드가 그만큼 세계에서 올라가는 것입니다.
우리의 선조들은 이러한 것을 남겨주었는데 우리가 지금 못 하고 있을 뿐입니다.
○ 이러한 기록 중에 지진에 대해 제가 조사를 해 보았습니다. '삼국사기(三國史記)'에는 지진이 87회 기록되어 있습니다.
‘삼국유사(三國遺事)’에는 3회 기록되어 있습니다. ‘고려사(高麗史)’에는 249회의 지진에 관한 기록이 있습니다.
‘조선왕조실록’에는 2,029회 나옵니다. 다 합치면 2,368회의 지진에 관한 기록이 있습니다.
우리 방폐장, 핵발전소 만들 때 이것을 참고해야 한다고 생각합니다. 이것을 통계를 내면 어느 지역에서는 155년마다 한 번씩 지진이 났었을 수 있습니다.
어느 지역은 200년마다 한 번씩 지진이 났었을 수 있습니다.
이러한 지역을 다 피해서 2000년 동안 지진이 한 번도 안 난 지역에 방폐장, 핵발전소 만드는 것이 맞을 것입니다.
이렇게 해서 방폐장, 핵발전소 만들면 세계인들이 틀림없이 산업시찰을 올 것입니다.
그러면 수력발전소도 그런 데 만들어야지요. 정문에 구리동판을 세워놓고 영어로 이렇게 썼으면 좋겠습니다.
‘우리 민족이 가진 2,000년 동안의 자료에 의하면 이 지역은 2,000년 동안 단 한번도 지진이 발생하지 않았다. 따라서 이곳에 방폐장, 핵발전소, 수력발전소를 만든다. 대한민국 국민 일동.’
이렇게 하면 전 세계인들이 이것을 보고 ‘정말 너희들은 2,000년 동안의 지진에 관한 기록이 있느냐?’고 물어볼 것이고, 제가 말씀드린 책을 카피해서 기록관에 하나 갖다 놓으면 됩니다.
이 지진의 기록도 굉장히 구체적입니다. 어떻게 기록이 되어 있느냐 하면 ‘우물가의 버드나무 잎이 흔들렸다’ 이것이 제일 약진입니다.
‘흙담에 금이 갔다, 흙담이 무너졌다, 돌담에 금이 갔다, 돌담이 무너졌다, 기왓장이 떨어졌다,기와집이 무너졌다‘ 이렇게 되어 있습니다.
현재 지진공학회에서는 이것을 가지고 리히터 규모로 계산을 해 내고 있습니다.
대략 강진만 뽑아보니까 통일신라 이전까지 11회 강진이 있었고 고려시대에는 11회 강진이,조선시대에는 26회의 강진이 있었습니다. 합치면 우리는 2,000년 동안 48회의 강진이 이 땅에 있었습니다.
이러한 것을 계산할 수 있는 자료를 신기하게도 선조들은 우리에게 남겨주었습니다.
◈ 정치, 경제적 문제
○ 그 다음에 조세에 관한 사항을 보시겠습니다.
세종이 집권을 하니 농민들이 토지세 제도에 불만이 많다는 상소가 계속 올라옵니다. 세종이 말을 합니다.
‘왜 이런 일이 나는가?’ 신하들이 ‘사실은 고려 말에 이 토지세 제도가 문란했는데 아직까지 개정이 안 되었습니다.’
세종의 리더십은 ‘즉시 명령하여 옳은 일이라면 현장에서 해결 한다’는 입장입니다. 그래서 개정안이 완성되었습니다.
세종12년 3월에 세종이 조정회의에 걸었지만 조정회의에서 부결되었습니다.
왜 부결 되었냐면 ‘마마, 수정안이 원래의 현행안보다 농민들에게 유리한 것은 틀림없습니다.그러나 농민들이 좋아할지 안 좋아할지 우리는 모릅니다.’ 이렇게 됐어요.
‘그러면 어떻게 하자는 말이냐’ 하다가 기발한 의견이 나왔어요.
‘직접 물어봅시다.’ 그래서 물어보는 방법을 찾는 데 5개월이 걸렸습니다.
세종12년 8월에 국민투표를 실시했습니다. 그 결과 찬성 9만 8,657표, 반대 7만 4,149표 이렇게 나옵니다. 찬성이 훨씬 많지요.
세종이 조정회의에 다시 걸었지만 또 부결되었습니다.
왜냐하면 대신들의 견해는 ‘마마, 찬성이 9만 8,000, 반대가 7만 4,000이니까 찬성이 물론 많습니다. 그러나 7만 4,149표라고 하는 반대도 대단히 많은 것입니다.
이 사람들이 상소를 내기 시작하면 상황은 전과 동일합니다.’ 이렇게 됐어요.
세종이 ‘그러면 농민에게 더 유리하도록 안을 만들어라.’해서 안이 완성되었습니다.
그래서 실시하자 그랬는데 또 부결이 됐어요. 그 이유는 ‘백성들이 좋아할지 안 좋아할지 모릅니다.’였어요.
‘그러면 어떻게 하자는 말이냐’하니 ‘조그마한 지역에 시범실시를 합시다.’ 이렇게 됐어요.
시범실시를 3년 했습니다. 결과가 성공적이라고 올라왔습니다.
‘전국에 일제히 실시하자’고 다시 조정회의에 걸었습니다. 조정회의에서 또 부결이 됐어요.
‘마마, 농지세라고 하는 것은 토질이 좋으면 생산량이 많으니까 불만이 없지만 토질이 박하면 생산량이 적으니까 불만이 있을 수 있습니다.
그래서 이 지역과 토질이 전혀 다른 지역에도 시범실시를 해 봐야 됩니다.’ 세종이 그러라고 했어요.
다시 시범실시를 했어요. 성공적이라고 올라왔어요.
세종이 ‘전국에 일제히 실시하자’고 다시 조정회의에 걸었습니다. 또 부결이 됐습니다.
이유는 ‘마마, 작은 지역에서 이 안을 실시할 때 모든 문제점을 우리는 토론했습니다. 그러나 전국에서 일제히 실시할 때 무슨 문제가 나는지를 우리는 토론한 적이 없습니다.’
세종이 토론하라 해서 세종25년 11월에 이 안이 드디어 공포됩니다.
조선시대에 정치를 이렇게 했습니다.
세종이 백성을 위해서 만든 개정안을 정말 백성이 좋아할지 안 좋아할지를 국민투표를 해 보고 시범실시를 하고 토론을 하고 이렇게 해서 13년만에 공포·시행했습니다.
대한민국정부가 1945년 건립되고 나서 어떤 안을 13년 동안 이렇게 연구해서 공포·실시했습니까.
저는 이러한 정신이 있기 때문에 조선이 500년이나 간 것이 아닌가 하는 생각을 하고 있습니다.
◈ 법률 문제
○ 법에 관한 문제를 보시겠습니다.
우리가 오늘날 3심제를 하지 않습니까? 조선시대에는 어떻게 했을 것 같습니까?
조선시대에 3심제는 없었습니다. 그런데 사형수에 한해서는 3심제를 실시했습니다.
원래는 조선이 아니라 고려 말 고려 문종 때부터 실시했는데, 이를 삼복제(三覆制)라고 합니다.
조선시대에 사형수 재판을 맨 처음에는 변 사또 같은 시골 감형에서 하고, 두 번째 재판은 고등법원, 관찰사로 갑니다.
옛날에 지방관 관찰사는 사법권을 가지고 있었습니다. 마지막 재판은 서울 형조에 와서 받았습니다.
재판장은 거의 모두 왕이 직접 했습니다. 왕이 신문을 했을 때 그냥 신문한 것이 아니라 신문한 것을 옆에서 받아썼어요.
조선의 기록정신이 그렇습니다. 기록을 남겨서 그것을 책으로 묶었습니다.
그 책 이름이 ‘심리록(審理錄)’이라는 책입니다. 정조가 1700년대에 이 '심리록'을 출판했습니다.
오늘날 번역이 되어 큰 도서관에 가시면 ‘심리록’이라는 책이 있습니다.
왕이 사형수를 직접 신문한 내용이 거기에 다 나와 있습니다.
왕들은 뭐를 신문했냐 하면 이 사람이 사형수라고 하는 증거가 과학적인가 아닌가 입니다.
또 한 가지는 고문에 의해서 거짓 자백한 것이 아닐까를 밝히기 위해서 왕들이 무수히 노력합니다.
이 증거가 맞느냐 과학적이냐 합리적이냐 이것을 계속 따집니다.
이래서 상당수의 사형수는 감형되거나 무죄 석방되었습니다.
이런 것이 조선의 법입니다. 이렇기 때문에 조선이 500년이나 간 것이 아닌가 하는 생각을 합니다.
◈ 과학적 사실
○ 다음에는 과학에 대해 말씀 드리겠습니다.
코페르니쿠스가 태양이 아니라 지구가 돈다고 지동설을 주장한 것이 1543년입니다.
그런데 코페르니쿠스의 주장에는 이미 다 아시겠지만 물리학적 증명이 없었습니다.
물리학적으로 지구가 돈다는 것을 증명한 것은 1632년에 갈릴레오가 시도했습니다.
종교법정이 그를 풀어주면서도 갈릴레오의 책을 보면 누구나 지동설을 믿을 수밖에 없으니까 책은 출판금지를 시켰습니다.
그 책이 인류사에 나온 것은 그로부터 100년 후입니다. 1767년에 인류사에 나왔습니다.
-동양에서는 어떠냐 하면 지구는 사각형으로 생겼다고 생각했습니다. 하늘은 둥글고 지구는 사각형이다, 이를 천원지방설(天圓地方說)이라고 얘기합니다.
그런데 실은 동양에서도 지구는 둥글 것이라고 얘기한 사람들이 상당히 많았습니다.
대표적인 사람이 여러분들이 아시는 성리학자 주자입니다, 주희.
주자의 책을 보면 지구는 둥글 것이라고 나와 있습니다.
황진이의 애인, 고려시대 학자 서화담의 책을 봐도 ‘지구는 둥글 것이다, 지구는 둥글어야 한다, 바닷가에 가서 해양을 봐라 지구는 둥글 것이다’ 이렇게 주장했습니다.
-그런데 이것을 어떠한 형식이든 증명한 것이 1400년대 이순지(李純之)라고 하는 세종시대의 학자입니다.
이순지는 지구는 둥글다고 선배 학자들에게 주장했습니다.
그는 ‘일식의 원리처럼 태양과 달 사이에 둥근 지구가 들어가고 그래서 지구의 그림자가 달에 생기는 것이 월식이다, 그러니까 지구는 둥글다.’ 이렇게 말했습니다.
이것이 1400년대입니다. 그러니까 선배 과학자들이 ‘그렇다면 우리가 일식의 날짜를 예측할 수 있듯이 월식도 네가 예측할 수 있어야 할 것 아니냐’고 물었습니다.
이순지는 모년 모월 모시 월식이 생길 것이라고 했고 그날 월식이 생겼습니다.
이순지는 ‘교식추보법(交食推步法)’이라는 책을 썼습니다. 일식, 월식을 미리 계산해 내는 방법이라는 책입니다. 그 책은 오늘날 남아 있습니다.
이렇게 과학적인 업적을 쌓아가니까 세종이 과학정책의 책임자로 임명했습니다.
이때 이순지의 나이 약관 29살입니다. 그리고 첫 번째 준 임무가 조선의 실정에 맞는 달력을 만들라고 했습니다.
여러분, 동지상사라고 많이 들어보셨지요? 동짓달이 되면 바리바리 좋은 물품을 짊어지고 중국 연변에 가서 황제를 배알하고 뭘 얻어 옵니다.
다음 해의 달력을 얻으러 간 것입니다. 달력을 매년 중국에서 얻어 와서는 자주독립국이 못될뿐더러, 또 하나는 중국의 달력을 갖다 써도 해와 달이 뜨는 시간이 다르므로 사리/조금의 때가 정확하지 않아요.
그러니까 조선 땅에 맞는 달력이 필요하다 이렇게 됐습니다.
수학자와 천문학자가 총 집결을 했습니다. 이순지가 이것을 만드는데 세종한테 그랬어요.
‘못 만듭니다.’
‘왜?’
‘달력을 서운관(書雲觀)이라는 오늘날의 국립기상천문대에서 만드는데 여기에 인재들이 오지 않습니다.’
‘왜 안 오는가?’
‘여기는 진급이 느립니다.’ 그랬어요.
오늘날 이사관쯤 되어 가지고 국립천문대에 발령받으면 물 먹었다고 하지 않습니까?
행정안전부나 청와대비서실 이런 데 가야 빛 봤다고 하지요? 옛날에도 똑같았어요. 그러니까 세종이 즉시 명령합니다.
‘서운관의 진급속도를 제일 빠르게 하라.’
‘그래도 안 옵니다.’
‘왜?’
‘서운관은 봉록이 적습니다.’
‘봉록을 올려라.’ 그랬어요.
‘그래도 인재들이 안 옵니다.’
‘왜?’
‘서운관 관장이 너무나 약합니다.’
‘그러면 서운관 관장을 어떻게 할까?’
‘강한 사람을 보내주시옵소서. 왕의 측근을 보내주시옵소서.’
세종이 물었어요. ‘누구를 보내줄까?’
누구를 보내달라고 했는 줄 아십니까?
‘정인지를 보내주시옵소서.’ 그랬어요. 정인지가 누구입니까? 고려사를 쓰고 한글을 만들고 세종의 측근 중의 측근이고 영의정입니다.
세종이 어떻게 했을 것 같습니까? 영의정 정인지를 서운관 관장으로 겸임 발령을 냈습니다.
그래서 1,444년에 드디어 이 땅에 맞는 달력을 만드는 데 성공했습니다.
이순지는 당시 가장 정확한 달력이라고 알려진 아라비아의 회회력의 체제를 몽땅 분석해 냈습니다.
일본학자가 쓴 세계천문학사에는 회회력을 가장 과학적으로 정교하게 분석한 책이 조선의 이순지著 ‘칠정산외편(七政算外篇)’이라고 나와 있습니다.
그런데 달력이 하루 10분, 20분, 1시간 틀려도 모릅니다. 한 100년, 200년 가야 알 수 있습니다.
이 달력이 정확한지 안 정확한지를 어떻게 아냐면 이 달력으로 일식을 예측해서 정확히 맞으면 이 달력이 정확한 것입니다.
이순지는 '칠정산외편'이라는 달력을 만들어 놓고 공개를 했습니다.
1,447년 세종 29년 음력 8월 1일 오후 4시 50분 27초에 일식이 시작될 것이고 그날 오후 6시55분 53초에 끝난다고 예측했습니다.
이게 정확하게 맞아떨어졌습니다. 세종이 너무나 반가워서 그 달력의 이름을 ‘칠정력’이라고 붙여줬습니다. 이것이 그 후에 200년간 계속 사용되었습니다.
여러분 1,400년대 그 당시에 자기 지역에 맞는 달력을 계산할 수 있고 일식을 예측할 수 있는 나라는 전 세계에 세 나라밖에 없었다고 과학사가들은 말합니다.
하나는 아라비아, 하나는 중국, 하나는 조선입니다.
그런데 이순지가 이렇게 정교한 달력을 만들 때 달력을 만든 핵심기술이 어디 있냐면 지구가 태양을 도는 시간을 얼마나 정교하게 계산해 내는가에 달려 있습니다.
‘칠정산외편’에 보면 이순지는 지구가 태양을 도는 데 걸리는 시간은 365일 5시간 48분 45초라고 계산해 놓았습니다.
오늘날 물리학적인 계산은 365일 5시간 48분 46초입니다. 1초 차이가 나게 1400년대에 계산을 해냈습니다. 여러분, 그 정도면 괜찮지 않습니까?
------------------------ 여기서부턴 수학에 관한 내용인데, 관심있는분만 읽어보셔요 ------------------
-홍대용이라는 사람은 수학을 해서 ‘담헌서(湛軒書)’라는 책을 썼습니다.
‘담헌서’는 한글로 번역되어 큰 도서관에는 다 있습니다.
이 ‘담헌서’ 가운데 제5권이 수학책입니다. 홍대용이 조선시대에 발간한 수학책의 문제가 어떤지 설명 드리겠습니다.
‘구체의 체적이 6만 2,208척이다. 이 구체의 지름을 구하라.’ cos, sin, tan가 들어가야 할 문제들이 쫙 깔렸습니다.
조선시대의 수학책인 ‘주해수용(籌解需用)’에는 이렇게 되어 있습니다.
sinA를 한자로 正弦, cosA를 餘弦, tanA를 正切, cotA를 餘切, secA를 正割, cosecA를 如割, 1-cosA를 正矢, 1-sinA를 餘矢 이렇게 되어 있습니다.
그러면 이런 것이 있으려면 삼각함수표가 있어야 되잖아요. 이 ‘주해수용’의 맨 뒤에 보면 삼각함수표가 그대로 나와 있습니다. 제가 한 번 옮겨봤습니다.
예를 들면 正弦 25도 42분 51초, 다시 말씀 드리면 sin25.4251도의 값은 0.4338883739118 이렇게 나와 있습니다.
제가 이것을 왜 다 썼느냐 하면 소수점 아래 몇 자리까지 있나 보려고 제가 타자로 다 쳐봤습니다. 소수점 아래 열세 자리까지 있습니다. 이만하면 조선시대 수학책 괜찮지 않습니까?
다른 문제 또 하나 보실까요? 甲地와 乙地는 동일한 子午眞線에 있다.
조선시대 수학책 문제입니다. 이때는 子午線이라고 안 하고 子午眞線이라고 했습니다.
이런 것을 보면 이미 이 시대가 되면 지구는 둥글다고 하는 것이 보편적인 지식이 되어 있는 것 같습니다.
甲地와 乙地는 동일한 子午線上에 있다. 甲地는 北極出地, 北極出地는 緯度라는 뜻입니다. 甲地는 緯度 37도에 있고 乙地는 緯度 36도 30분에 있다. 甲地에서 乙地로 직선으로 가는데 고뢰(鼓?)가 12번 울리고 종료(鍾鬧)가 125번 울렸다. 이때 지구 1도의 里數와 지구의 지름, 지구의 둘레를 구하라. 이러한 문제입니다.
이 고뢰(鼓? ) , 종료(鍾鬧)는 뭐냐 하면 여러분 김정호가 그린 대동여지도를 초등학교 때 사회책에서 보면 오늘날의 지도와 상당히 유사하지 않습니까?
옛날 조선시대의 지도가 이렇게 오늘날 지도와 비슷했을까? 이유는 축척이 정확해서 그렇습니다. 대동여지도는 십리 축척입니다.
십리가 한 눈금으로 되어 있는데 이것이 왜 정확하냐면 기리고거(記里鼓車)라고 하는 수레를 끌고 다녔습니다.
기리고거가 뭐냐 하면 기록할 記자, 리는 백리 2백리 하는 里자, 里數를 기록하는, 고는 북 鼓자, 북을 매단 수레 車, 수레라는 뜻입니다.
어떻게 만들었냐 하면 수레가 하나 있는데 중국의 동진시대에 나온 수레입니다.
바퀴를 정확하게 원둘레가 17척이 되도록 했습니다. 17척이 요새의 계산으로 하면 대략 5미터입니다.
이것이 100바퀴를 굴러가면 그 위에 북을 매달아놨는데 북을 ‘뚱’하고 치게 되어 있어요.
북을 열 번 치면 그 위에 종을 매달아놨는데 종을 ‘땡’하고 치게 되어 있어요. 여기 고뢰, 종료라고 하는 것이 그것입니다.
그러니까 이것이 5km가 되어서 딱 10리가 되면 종이 ‘땡’하고 칩니다. 김정호가 이것을 끌고 다녔습니다.
우리 세종이 대단한 왕입니다. 몸에 피부병이 많아서 온양온천을 자주 다녔어요.
그런데 온천에 다닐 때도 그냥 가지 않았습니다. 이 기리고거를 끌고 갔어요.
그래서 한양과 온양 간이라도 길이를 정확히 계산해 보자 이런 것을 했었어요.
이것을 가지면 지구의 지름, 지구의 둘레를 구할 수 있다는 얘기입니다.
그러니까 원주를 파이로 나누면 지름이다 하는 것이 이미 보편적인 지식이 되어 있었습니다.
◈ 수학적 사실
○ 그러면 우리 수학의 씨는 어디에 있었을까 하는 것인데요,
여러분 불국사 가보시면 건물 멋있잖아요. 석굴암도 멋있잖아요. 불국사를 지으려면 건축학은 없어도 건축술은 있어야 할 것이 아닙니까,
최소한 건축술이 있으려면 물리학은 없어도 물리술은 있어야 할 것 아닙니까.
물리술이 있으려면 수학은 없어도 산수는 있어야 할 것 아닙니까?
이게 제가 고등학교 3학년 때 가졌던 의문입니다, 이것을 어떻게 지었을까.
그런데 저는 ‘삼국사기’의 저자 김부식 선생님을 너무 너무 존경합니다.
여러분 세계에서 가장 오래된 대학이 어디인 줄 아십니까? 에스파냐, 스페인에 있습니다.
1490년대에 국립대학이 세워졌습니다. 여러분이 아시는 옥스퍼드와 캠브리지는 1600년대에 세워진 대학입니다.
우리는 언제 국립대학이 세워졌느냐, ‘삼국사기’를 보면 682년, 신문왕 때 국학이라는 것을 세웁니다.
그것을 세워놓고 하나는 철학과를 만듭니다. 관리를 길러야 되니까 논어, 맹자를 가르쳐야지요.
그런데 학과가 또 하나 있습니다. 김부식 선생님은 어떻게 써놓았냐면 ‘산학박사와 조교를 두었다.’ 이렇게 되어 있습니다.
명산과입니다. 밝을 明자, 계산할 算자, 科. 계산을 밝히는 과, 요새 말로 하면 수학과입니다.
수학과를 세웠습니다. ‘15세에서 30세 사이의 청년 공무원 가운데 수학에 재능이 있는 자를 뽑아서 9년 동안 수학교육을 실시하였다.’ 이렇게 되어 있습니다.
여기를 졸업하게 되면 산관(算官)이 됩니다. 수학을 잘 하면 우리나라는 공무원이 됐습니다.
전 세계에서 가서 찾아보십시오. 수학만 잘 하면 공무원이 되는 나라 찾아보십시오.
이것을 산관이라고 합니다. 삼국시대부터 조선이 망할 때까지 산관은 계속 되었습니다.
이 산관이 수학의 발전에 엄청난 기여를 하게 됩니다. 산관들은 무엇을 했느냐, 세금 매길 때,성 쌓을 때, 농지 다시 개량할 때 전부 산관들이 가서 했습니다.
세금을 매긴 것이 산관들입니다.
그런데 그때의 수학 상황을 알려면 무슨 교과서로 가르쳤느냐가 제일 중요하겠지요?
정말 제가 존경하는 김부식 선생님은 여기다가 그 당시 책 이름을 쫙 써놨어요. 삼개(三開), 철경(綴經), 구장산술(九章算術), 육장산술(六章算術)을 가르쳤다고 되어 있습니다.
그 가운데 오늘날 우리가 볼 수 있는 것은 구장산술이라는 수학책이 유일합니다.
구장산술은 언제인가는 모르지만 중국에서 나왔습니다.
최소한도 진나라 때 나왔을 것이라고 얘기하고 있습니다.
어떤 사람은 주나라 문왕이 썼다고 하는데 중국에서는 좋은 책이면 무조건 다 주나라 문왕이 썼다고 하는 경향이 있습니다.
이 책의 제 8장의 이름이 방정입니다. 방정이 영어로는 equation입니다.
방정이라는 말을 보고 제 온 몸에 소름이 쫙 돋았습니다. 저는 사실은 중학교 때 고등학교 때부터 방정식을 푸는데, 방정이라는 말이 뭘까가 가장 궁금했습니다.
어떤 선생님도 그것을 소개해 주지 않았습니다.
그런데 이 책에 보니까 우리 선조들이 삼국시대에 이미 방정이라는 말을 쓴 것을 저는 외국수학인 줄 알고 배운 것입니다.
○ 9 장을 보면 9장의 이름은 구고(勾股)입니다. 갈고리 勾자, 허벅다리 股자입니다.
맨 마지막 chapter입니다. 방정식에서 2차 방정식이 나옵니다. 그리고 미지수는 다섯 개까지 나옵니다. 그러니까 5원 방정식이 나와 있습니다.
중국 학생들은 피타고라스의 정리라는 말을 모릅니다. 여기에 구고(勾股)정리라고 그래도 나옵니다. 자기네 선조들이 구고(勾股)정리라고 했으니까.
여러분 이러한 삼각함수 문제가 여기에 24문제가 나옵니다.
24문제는 제가 고등학교 때 상당히 힘들게 풀었던 문제들이 여기에 그대로 나옵니다.
이러한 것을 우리가 삼국시대에 이미 교육을 했습니다. 그런데 우리는 이러한 것들이 전부 서양수학인 줄 알고 배우고 있습니다.
여기에는 밀률(密率)이라는 말도 나옵니다.
비밀할 때 密, 비율 할 때 率. 밀률의 값은 3으로 한다고 되어 있습니다. 고려시대의 수학교과서를 보면 밀률의 값은 3.14로 한다. 이렇게 되어 있습니다.
아까 이순지의 칠정산외편, 달력을 계산해 낸 그 책에 보면 ‘밀률의 값은 3.14159로 한다.’ 이렇게 되어 있습니다. 우리 다 그거 삼국시대에 했습니다.
그런데 어떻게 해서 우리는 오늘날 플러스, 마이너스, 정사각형 넓이, 원의 넓이, 방정식, 삼각함수 등을 외국수학으로 이렇게 가르치고 있느냐는 겁니다.
저는 이런 소망을 강력히 가지고 있습니다.
우리 초등학교나 중·고등 학교 책에 플러스, 마이너스를 가르치는 chapter가 나오면 우리 선조들은 늦어도 682년 삼국시대에는 플러스를 바를 正자 정이라 했고 마이너스를 부채, 부담하는 부(負)라고 불렀다.
그러나 편의상 正負라고 하는 한자 대신 세계수학의 공통부호인 +-를 써서 표기하자, 또 π를 가르치는 chapter가 나오면 682년 그 당시 적어도 삼국시대에는 우리는 π를 밀률이라고 불렀다,
밀률은 영원히 비밀스런 비율이라는 뜻이다, 오늘 컴퓨터를 π를 계산해 보면 소수점 아래 1조자리까지 계산해도 무한소수입니다.
그러니까 무한소수라고 하는 영원히 비밀스런 비율이라는 이 말은 철저하게 맞는 말이다,
그러나 밀률이라는 한자 대신 π라고 하는 세계수학의 공통 부호를 써서 풀기로 하자 하면 수학시간에도 민족의 숨결을 느낄 수 있습니다.
출처: 허성도 서울대학교 중어중문학과 교수의 강연 중
◈ 맺는 말
○ 결론으로 들어가겠습니다.
제가 지금까지 말씀드린 모든 자료는 한문으로 되어 있습니다. 그런데 선조들이 남겨준 그러한 책이 ‘조선왕조실록’ 6,400만자짜리 1권으로 치고 2억 5,000만자짜리 ‘승정원일기’ 한 권으로 칠 때 선조들이 남겨준 문질이 우리나라에 문건이 몇 권 있냐면 33만권 있습니다. 그런데 여러분 주위에 한문 전공한 사람 보셨습니까? 정말 엔지니어가 중요하고 나로호가 올라가야 됩니다. 그러나 우리 국학을 연구하려면 평생 한문만 공부하는 일단의 학자들이 필요합니다.이들이 이러한 자료를 번역해 내면 국사학자들은 국사를 연구할 것이고, 복제사를 연구한 사람들은 한국복제사를 연구할 것이고, 경제를 연구한 사람들은 한국경제사를 연구할 것이고,수학교수들은 한국수학사를 연구할 것입니다. 그런데 이러한 시스템이 우리나라에는 전혀 되어 있지 않습니다. 한문을 공부하면 굶어죽기 딱 좋기 때문에 아무도 한문을 하지 않습니다.
그러면 결국 우리의 문건을 해결하기 위해서 언젠가는 동경대학으로 가고 북경대학으로 가는 상황이 나타날 것입니다. 그러나 어떤 사람이 한문을 해야 되냐 하면 공대 나온 사람이 한문을 해야 합니다. 그래야 한국물리학사, 건축학사가 나옵니다. 수학과 나온 사람이 한문을 해야 됩니다. 그래야 허벅다리, 갈고리를 아! 딱 보니까 이거는 삼각함수구나 이렇게 압니다. 밤낮 논어·맹자만 한 사람들이 한문을 해서는 ‘한국의 과학과 문명’이라는 책이 나올 수가 없습니다.여러분, 사회에 나가시면 ‘이 시대에도 평생 한문만 하는 학자를 우리나라가 양성할 필요가 있다.’ 이러한 여론을 만들어주십시오. 이 마지막 말씀을 드리기 위해서 이런 데서 강연 요청이 오면 저는 신나게 와서 떠들어 댑니다. 감사합니다. (허성도 서울대학교 중어중문학과 교수의 강연 녹취록)강 연: 사단법인 한국엔지니어클럽 일 시: 2010년 6월 17일 (목) 오전 7시 30분 장 소: 서울특별시 강남구 테헤란로 521 그랜드 인터컨티넨탈 호텔 2층 국화룸
라벨:
서론과 잡담사이
Do you wanna hear me?.....................................
모두가 아니라고 하는 길을 걸어 가 보겠다.
피드 구독하기:
글 (Atom)