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 디벨로뻐 버전을 받은 후 꺼지는 현상이 없어졌다.........-_-
뻐킹 자바디벨로퍼를 위한 버전은 나랑 안맞나부다..ㅠㅠ
좁때 천재가 되고싶다..........................................................


2014년 2월 20일 목요일

오라클 트리거 에러 ORA-04088, ORA-06512,

ORA-04088, ORA-06512, 
에러는 주로 같이 나오는데!

트리거는 잘 생성 되었지만 컴파일 과정에서 발생하는 오류!

즉, A테이블에 걸려있는 트리거의 DML역시 A테이블을 참조할 때,
무한 루프에 빠지게 되어 오류가 생긴다.

아직 잡아내지 못했다.ㅡ,.ㅡ;;

잡아내고 글을 수정하겠다.ㅠㅠ

-- 테이블을 2개로 나눠서 잡아냈다.

하지만 두번째 데이터를 입력하니..


두둥!

ORA-01427 : 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다.

-_-;;;;;;;;;;;;;;;;;;


알고보니 서브쿼리에서 where절을 넣지 않고 흐리멍텅구리하게 잡아줬더니
똑바로 하라며 나를 질책한 것이다.

그래서 where 절을 삽입해 주고 실행하니!
끝 -

프로그램잉?

프로그래밍 언어를 만들고 컴퓨터의 제반 학문?들을 적립해온 집단은 영어를 사용하는 그들이다.

우스 개소리로 (ㅋㅋ)  어떤 언어를 가장 먼저 배워야 할지 묻는 사람들에 많은 답을 차지한건 영어였다... (프로그래밍 언어가 아니라는 말.)

그 이유는 철저히 서양의 사고 방식으로 만들어졌기 때문!

근데 나는 영어를 공부? 하고 접할 때 마다 이렇게 생각한다.
-외국 애들은 멍청(?) 하다는데 영어가 얼마나 어렵겠어?

나는 내가 얼마나 멍청한지 알기 때문에 저런 생각도 대단하다고 느껴진다.
프로그래밍을 배우는 지금에도 마찬가지이다.
- 프로그래밍 그까이꺼 얼마나 어렵겠어?

우습게도 나는 프로그래밍을 배우는 지금 어려운 것이 하나도 없다.
내가 어려울 것이라 생각하는 것은 프로그래밍을 배운 후 응용하는 것이다.

나 같은 사람도 프로그래밍을 배우는데, 그 어는 누가 프로그래밍을 어렵다 할까?

어쨋거나 서론은 뭘 하던 그까이꺼~ 하면서 배우면 다 따라잡는다는 생각을 했다는 것이고,
나처럼 머리가 좋지 않고 둔한 사람도 뭔가 유종의 미를 거둘 수 있을 거라고 생각하기 때문에 블로그에 기록을 찔끔씩 남겨둔다는 생각이다.

기승전병이지만,
서구 문화의 사고와 가치관 등이 녹아있는 프로그래밍이라는 새로운 문화를 배우면서 잊지 말아야 할  우리의 문화에 대해서도 좋은 글이 있어 몰래 퍼와본다.

예전에 읽었던 글이지만, 언제고 다시 보고싶을 때, 시간이 너무 많이 남아서 지루할 때 읽고 읽고, 읽어볼 생각이다.

그럼 이하 본문
----------------------------------
◈ 한국역사의 특수성

○ 미국이 우주과학을 발전시키기 위해서 중·고등학교의 수학 교과과정을 바꾸었다면 우리는 우리를 알기 위해서 무엇을 해야 하는가결론은 그것 입니다.

-
역사를 보는 방법도 대단히 다양한데요우리는 초등학교 때 이렇게 배웠습니다
.
‘조선은 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초에 일식이 시작될 것이고 그날 오후 655 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층 국화룸

2014년 2월 16일 일요일

20140214 Data Base 시작!



  : 오늘은 DB의 정의 보다는 오라클과 ERWin 등의 설치가 매우 까다로워(?)서 정신이 없었다.
DB의 설치 방법은 다른분들이 자세하고 친절하게 정리했기 때문에 따로 다루지 않겠다.(사실 정성이 부족)

  :(오라클, 오라클디벨로퍼 머시기, ERWin 을 깔아야 DB파트 시작 ㅠㅠ)

  : ERD(Entity Relationship Diagram) 개체관계모델로 설계한 것을 눈으로 확인!

1. DB를 다룰 때 가장 먼저 해야하는 일
  당연히 설계이다. 이미 설계의 중요성은 많이 깨달았기 때문에 필요하지만 어려운 그 무엇 정도로 정의!

2. DB 모델링
  계획 - 분석 - 설계 - 구축 의 순서로 진행한다.(실무에서 내가 할 일은 없고, 잘 짜여진 모델링을 볼 수 있는 수준이라도 되면 된다!)
설계에서는 논리적 설계 - 물리적 설계 순으로 진행하고, 객체(테이블, Entity)들 간의 관계를 잘 설정해야 한다
관계는 항상 동사형이고, 보이지 않으니 충분히 고민 후 설계해야 한다!

-개체(Entity)
-속성(Attribute)
-인스턴스(Instance)
-기본키(Primary key)
-외부키(Foreign key)

3. ERWin
  내가 설계한 것들을 눈으로 볼 수 있게 해준다.

4. 꼭 기억해야 하는 명령어
  : 오라클에는 교육용?학습용? 계정이 기본으로 주어진다. (scott/tiger)
아래 예제는 scott으로 접속하면 바로 실행이 가능하다.
cmd 상에서 sqlplus scott/tiger 혹은 sql developer 를 이용한다.(오라클에서 다운 받는다!~)
한 줄에 쳐 넣을 수 있지만 나눠서 치는 것이 좋다고 한다!?!(하라면 하는거다 ㅠㅠ)

- 데이터 조회하기
select [distinct] {*,column[alias], ...}
from 테이블명;

ex)select * from dept; //dept 테이블의 모든 내용(속성) 보기(결과 값 보기)

- 특정 칼럼(속성,열,) 조회하기
select deptno, dname
from dept; //dept 테이블의 deptno, dname 열(속성, 내용) 보기(결과 값)

- 칼럼 이름에 별칭 지정하기
select deptno as departmentNo,
       dname as departmentName // dname -> departmentName으로 바꿔 보여준다. 실제 속성이름은 바뀌지 않는다.
from dept;
혹은
select deptno "departmentNo", //as대신 ""을 사용하는데 유일하게 사용한다. 더 이상 ""를 쓸 일은 없다.
       dname "departmentName" //고 한다...
from dept;

- 중복 데이터를 한번씩 만 출력
select distinct job // job열에서 겹치는 데이터는 보여주지 않는다!
from emp;

- 조건과 비교
select empno, ename, sal
from emp
where sal>=3000; // emp 테이블 에서 연봉이 3000이상인 사람들의 번호, 이름, 연봉 을 보여준다.

- 문자 데이터 조회
select empno, ename, sal
from emp
where ename = 'scott'; // ''<- 이것 안의 '문자열'에서는 대, 소문자를 구분 한다! 주의!

- 날짜 데이터 조회
select ename, hiredate
from emp
where hiredate >='1985/01/01' // 1985년 1월 1일 이후 입사한 사원

- 논리 연산자
select ename, deptno, job
from emp
where deptno=10 and job='manager'; // AND 연산자

select ename, deptno, job
from emp
where deptno=10 or job='manager'; // OR 연산자

select ename, deptno, job
from emp
where not job='manager'; // NOT 연산자

select ename, deptno, job
from emp
where sal BETWEEN 1000 AND 3000; // BETWEEN A AND B 연산자 (범위를 지정했다)

select ename, deptno, job
from emp
where empno in (7844, 7654, 7521); // OR를 모아놓은 IN연산자

select ename, deptno, job
from emp
where not job='manager'; // NOT 연산자 메니저 말고 다 뽑기

select ename, deptno, job
from emp
where ename like 'K%'; // like 연산자  K로 시작하는거 뽑기. %k, %K% 모두 가능
where ename like '_K%'; // _K%는 K가 두번째인 이름을 뽑는것!

SELECT ENAME, COMM, JOB
FROM EMP
WHERE COMM IS NULL; // 커미션을 받지 않는 사원!

SELECT ENAME, EMPNO, JOB
FROM EMP
ORDER BY EMPNO ; // 커미션을 받지 않는 사원! 오름차순(기본, 자동)
ORDER BY EMPNO DESC; // DESC(내림차순)










2014년 2월 13일 목요일

20140213 DBMS와 JDBC


이건 뭐 설치도 어렵고.... 실행도 어렵고... 후...

  : DBMS(Database Management System)은 데이터 베이스를 관리하는 관리자 프로그램이다. 모든 데이터 베이스는
관리자 프로그램을 통해서 통제된다.
  : SQL(Standdard Query Language)
관계형 DB에서 사용하기 위해 설계된 언어이다.
  : JDBC(Java DataBase Connectivity)
자바와 DBMS를 연결해준다.


보통 연습?은 MySQL로 하는데 우리가 알아야 할 명령어는 몇개 되지 않는다.

데이터 정의 명령(Data Definition Language)

1. CREATE // 테이블 생성
2. ALTER // 테이블에서 컬럼(열)을 추가, 삭제 한다.
3. DROP // 테이블의 모든 레코드를 제거 - 삭제
4. USE // 사용할 데이터베이스를 지정

데이터 조작 명령어(Data Manipulation Language)

1. SELECT // 데이터 베이스로부터 데이터를 쿼리하고 출력
2. INSERT // 새로운 레코드를 테이블에 추가.
3. DELETE // 지정된 레코드를 테이블로부터 삭제
4. UPDATE // 테이블에서 레코드에 존재하는 값을 변경






JDBC연결 예제
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class ConnectDatabase {
public static Connection makeConnection(){
String url = "jdbc:mysql://192.168.0.76:3306/book_db";//jdbc:oracle:thin:@localhost:1521:orcl
String id ="root";
String password = "1234";
Connection con = null;
try{
Class.forName("com.mysql.jdbc.Driver");//oracle.jdbc.driver.OracleDriver
System.out.println("드라이버 적재 성공");
con = DriverManager.getConnection(url,id,password);
System.out.println("디비 연결 성공");
}catch (ClassNotFoundException e){
System.out.println("드라이버 못찾어");
}catch (SQLException e ){
System.out.println("연결 실펭!");
}
return con;
}

public static void main(String[] args) {
// TODO Auto-generated method stub
Connection con = makeConnection();

}

}//끝


"드라이버 적재 성공"와 "디비 연결 성공"가 나오면 성공한 것.


1. 자바를 통해 SQL상의 명령을 완료 시킬때

  위 연결이 된 상태로 가정
-> con = makeConnection();
Statement stmt = con.createStatement();
stmt.excuteQuery("SELECT * FROM 테이블명");

그럼 자바 상에서 SQL로 명령을 때려 넣는다
결과를 보고 싶다면

ResultSet rs = stmt.excuteQuery("SELECT * FROM 테이블명");
while(rs.next()){
타입 필드명 = rs.get타입("테이블 안의 필드명");
System.out.println(필드명);
}
을 하면 필드명에 해당하는 모든 내용을 보여준닷.

2. 자바를 통해 SQL상의 명령과 결과를 업데이트 한다.
  stmt.executeUpdate(sql) 명령을 실행하면 SQL상에 반영이 된다
결과는 0과 1로 나오는 것 같다
1은 성공 0은 실패
여기까지 예제로 파악했다.




점점........ㅡ.ㅜ

2014년 2월 11일 화요일

20140212 입력/출력

java.io와 java.nio 는 다르다!

  : 입력과 출력의 기준은 RAM이다!
비 전공자들이 가장 많이 하는 실수가 입력 = 키보드 / 출력 = 모니터, 프린터 라고 알고있는 것이라고 한다고 하더라.
하지만 RAM 기준으로 RAM에서 어떤 형태로든 자료가 나가면 출력, 그리고 RAM이 어떤 형태로든 자료를 받으면 입력이라고
생각하면 쉬울 것 같다.

// 입출력을 할 때는 항상 열었으면 닫자!

1. 스트림(Stream)
  물이 흐른다. 물 흐르듯 데이터가 움직이는 통로이다.
입,출력 스트림은 바이트 스트림과 문자 스트림으로 나뉘어 진다.
바이트 스트림은 바이트 단위(8bit)를 기본으로 사용한다.

2. 바이트 스트림
  8bit 단위로 입출력 수행
FileInputStream // 파일로 부터 바이트를 읽는 객체 생성
FileOutputStream // 파일에 바이트를 쓰는 객체 생성


3. 버퍼 스트림
  프로그램과 디스크가 직접 연결되면 느리기 때문에 중간에 버퍼(Buffer)를 이용해 속도를 향상시킨다.
보통 버퍼는 자동으로 비워지지만
flush()라는 메소드를 통해 직접 비울 수 있다.

4. 데이터 스트림
  기초 자료형 단위로 데이터를 읽고 쓸 수 있다.

5. 객체 스트림
  객체를 직렬화(serialization)를 통해 저장소에 저장한다.
  : 객체를 순차적인 데이터로 변환하는 것을 직렬화 라고 한다.
-> 객체의 결과 값을 직렬화 하여 저장시킨다.

반대로 구현시(읽어올 때) 역직렬화(deserialization)라고 한다.

6. 문자 스트림
  입 출력 단위가 문자이다!
위의 문장을 read() 메소드를 통해 읽어 println 하면







이런 식으로 출력 된다.

7. 임의 접근 파일
  이 파일은 비순차적인 접근을 가능하게 한다.
압축 파일의 경우 순서에 관계없이 열어볼 수 있다.



점점 정신ㅇ ㅣ 몽롱해진다............................................ㅠㅠ

느낌이........

스타트 업?
Start-up?
멀게 느껴졌는데, 별거 아닌 것 처럼 다가왔다.

다만, 주와 종이 바뀌면 멀게 느껴지는 것 쯤으로 생각된다.
직업이 있고, 스타트 업을 부업으로 하는 것이면 전혀 무리가 아닐 것인데...
스타트 업이 주라면 이로써 수익을 창출해야 하고 이는 내 삶과 우리의 삶이 결정되는 변수가 된다.

이제 막 30 대가 됐지만 벌써 20대 때 도전해보지 않은 것이 후회가 된다!
뭐 그래도 항상, '아직 늦지 않았음'을 나타내는 '내자가추'가 있지 않은가! ㅎ ㅔㅎ ㅔ

뭘 해도 그렇듯. '무엇을 할 것인가' 라는 주제가 가장 어려운 것 같다.
답을 낼 수가 없는데...
그래서 결국 직장 생활을 하게 되는 것 같다.


직장 생활을 하다 보면 직원들 때문에 빡치는 경우도 많고,
빡치면 나가서 담배도 피우고,
담배 피우면 건강이 나빠져서,
회사를 그만 두고싶지만,
여우같은 자식과 불여우 같은 마누라가 있어서,
쉽사리 결단을 내리지 못하고,
다시 담배를 살려고 편의점에 들어가서,
100원이라도 아껴야지 생각하며,
사무실로 돌아가,
빡치게 만든 사람의 '얼'을 한 번 감상한 후,
퇴근 시간을 기다리다,
기승전병의 글을 쓰게 되는 것은 다 같은 이유 인가보다.

결론은, 스타트 업 도전해볼 만한 가치가 있는 것 같다.
  - 더 늦기 전에...

20140211 스레드(Thread)



 : 스레드는 멀티 테스킹 을 할 수 있게 도와준다.(사실 멀티 테스킹 처럼 보이도록 ㅋ)
멀티 스레딩을 이용할 경우 여러가지 작업을 동시에 할 수 있는 것처럼 보여주나
실제로 CPU는 한번에 한 가지 작업밖에 처리하지 못한다.

1. 프로세스 와 스레드
  프로세스는 자신만의 데이터를 가지는 데 반해 스레드는 데이터를 공유하는 것이 가장 큰 차이다.

2. 사용방법

- 스레드 클래스를 상속하는 방법 : 반드시 run()메소드를 재정의(Overriding) 해야한다.
- Runnable 인터페이스를 구현하는 방법 : run() 메소드를 가지는 클래스를 작성 후, 이 클래스의 객체를 thread 클래스의 생성자를 호출할 때 전달한다.


  스레드의 개념은 예제를 통해 익히는 것이 더욱 좋을것 같다.ㅠㅠ
스레드의 예제를 풀다 궁금한 점이 생겼는데. 확인 결과 답은
 - 이론적으로 가능하고 실제로는 제어하기가 매우 까다롭다.
이다. -_-;

3. 스레드 활용(필수확인)
  : 스레드는 우선순위를 줄 수 있다.
  예제를 하다보면 스레드가 동시에 실행되는 것 처럼 보이는 데 이는 CPU가 스레드를 나누어 쓰기 땜이다.
  어떤 원칙으로 어떤 순서로 스레드를 수행시킬 것인가를 결정하는 스케쥴링(scheduling)이 필요하다.
우선순위 (10~1)가 높을수록 먼저 처리된다. -> 예제로 확인해보고 싶은데 마땅한게 없어.ㅠㅠ 찾아봐야지..
그 외에
Thread() // 매개 변수가 없는 기본 생산자
Thread(String name) // 이름을 가진 쓰레드 객체 생성
void start() // 스레드 시작
void run() // 스레드가 시작되면 자동으로 실행된다.
void setPriority(int priority) // 스레드 우선순위 지정

4. 스레드 스케줄링 관련 메소드
- sleep(long millis) // 밀리초 단위로 스레드를 쉬게한다.
- join() // 해당 스레드가 소멸될 때 까지 기다린다.
- yield() // CPU를 다른 스레드에 양보한다. 동일 우선순위를 가지는 스레드를 실행시킬때 사용
-> 기본적으로 스레드의 우선순위는 "5"로 부여되고 "10"이 최대, "1"이 최소 이다.
- interrupt // 스레드가 실행중인 작업을 멈추고 다른 것을 하도록 하는 메커니즘, 스레드가 인터럽트에 어떻게 반응할지는 전적으로 후로그래머 책임!

5. 동기화(synchronization)
  : 동기화는 애플, 아이폰 등의 그것이 아니고
"한 번에 하나의 스레드 만이 공유 데이터를 접근"할 수 있도록 제어하는 방법
즉, "너"와 "내"가 있는데
"내"가 화장실 사용할 때 문을 잠그고 "너"는 내가 물 내리고 나올 때까지 기다려야 하는 것이다.

- 이는 메소드 앞에 synchronized라고 붙여주기만 하면 해결된다.(해우소 문을 잠그고 혼자 사용!)
-> 스레드 우선순위와는 상관 없나? 궁금하네....(필수확인)






점점...... 어려워 진다.....................
나락으로 빠진다..................................................

2014년 2월 10일 월요일

20140211 자료구조?



  : 리스트(List)구조 -> 순서를 가지며 중복이 허용되는 자료 저장방식이다.

  : 어레이 리스트(Array list) / 링크드 리스트(Linked List)

1. 어레이 리스트(Array list)
  리스트라는 자료 저장방식(자료구조)를 어레이(배열)형식으로 저장할 수 있는 방법(클래스)이다.
배열과 마찬가지로 순서를 가지며 중복이 허용되는 자료 저장방식이다.


2. 링크드 리스트(Linked List)
  어레이 리스트와 비슷하지만 자료의 순서가 저장된 주소로 이어져있다(글로 표현하기 힘듬ㅠㅡ)

3. 어레이 리스트와 링크드 리스트의 비교
  삽입, 삭제 등의 데이터의 변경이 빈번할 경우 링크드 리스트를 사용하는 것이 유리
삽입, 삭제 등의 데이터 변경이 빈번하지 않고 데이터를 누적시키기만 할 때는 어레이 리스트가 유리
  -> 요즘의 컴퓨터는 속도가 빨라서 거의 구분없이 어레이 리스트를 많이 사용한다고 함.

4. 배열을 리스트로 변경
  List<String> list = Arrays.asList(new String[size]);
를 사용해 배열을 리스트로 변경 가능


  : 집합(Set)
집합은 순서에 상관없이 동일한 자료를 중복할 수 없는 자료 저장 방식
HashSet, TreeSet, LinkedHashSet 3가지가 있다.

1. 해쉬 테이블(Hash table) / 해쉬 코드(hash code)
Ex) "Park"문자열의 해쉬코드가 2480138 이고,
  테이블의 크기가 128이고 "Park"문자열이 원하는 데이터라면
  해쉬코드를 128로 나눈 나머지 10이 버킷의 번호가 된다.

2. HashSet
  성능면에서 가장 우수하나 순서가 일정치 않다.
결과는 입력 순서와 상관없이 멋대로 출력된다

3. TreeSet
  순차 저장되고 HashSet보다 느리다(순서를 꼐속 검색해야 하니까)
결과는 오름차순으로 나타난다.

4. LinkedHashSet
  데이터 순서는 입력 순서와 같고 HashSet의 단점인 순서의 불명확성을 제거함.
결과는 입력 순서대로 출력된다.


  이러한 자료구조(자료 저장방식)를 이용하면 대량의(혹은 저장된 자료구조들 간의)
비교나 연산이 필요할 때가 있다.
s1.containsAll(s2) // s2가 s1의 부분집합이면 참
s1.addAll(s2) // s1을 두 집합의 합집합으로
s1.retainAll(s2) // s1을 두 집합의 차집합으로
s1.removeAll(s2) // s1에서 s2의 데이터(겹치는 것)을 모두 제거시킨다

  :큐(Queue)
데이터를 처리하기 전 임시 저장하는 자료 구조.
처음과 마지막 원소를 추가, 삭제 할 수 있으나 중간의 원소는 추가나 삭제가 불가능하다.


  :맵(Map)
  사전과 같은 구조, Key(색인)을 가지고 Value(데이터 값)을 가진다
HashMap, TreeMap, LinkedHashMap 3가지 클래스가 있다.

  : Collections 클래스
Sorting //정렬
Shuffling //섞기
Searching //탐색
의 클래스를 제공한다.





  점점 이상하게 어려워진다.......................ㅍㅍ?

20140210 패키지(package), 예외처리(exception)



  : 패키지(package)

1. 패키지는 관련있는 파일들을 한 폴더에 모아두는 정리 역할을 한다.
  기본 패키지 폴더인 scr폴더에 모두 모여있으면 구분이 불간으 하다.(수백 수천개의 java파일들)

2. 패키지는 클래스와 다르다
  패키지 생성시 클래스와는 다르게 소문자만 사용한다
Class : ExampleNumber1
package : package.test     -> src 폴더 속에 package 폴더 속에 test폴더를 만든다.

3. 패키지 내의 자바 파일을 사용하는 방법
  import package.* // 패키지 폴더 안의 자바 파일들을 사용
  import package.test.* // 패키지 폴더 안의 test 폴더 안의 자바 파일들을 사용
Ex) 기본적으로 클래스를 생성할 때 java.lang을 상속받는다
-> (java.lang.)System.out.println(); //즉, 패키지를 import 시켜 놓으면 이런식의 활용이 가능하다.

4. static import 문장의 사용
  import static java.lang.System.*;
메인 함수 안에 { out.println(); } 으로 사용 가능

5. 자바가 지원하는 패키지
java.beans // 자바빈즈 구조에 기초한 컴포넌트 개발 시 이용
    .io // 입출력 스트림을 위한 클래스
    .math // 수학관련 클래스
    .net // 네트워킹 클래스
    .nio // 새로운 네트워킹 클래스
    .sql // DB에 저장된 데이터 접근하기 위한 클래ㅡㅅ
    .util // 날짜, 난수 생성기 등의 유틸리티 클래스
javax.net // 네트워킹 애플리케이션을 위한 클래스

6. java.lang 패키지
.object // 기초 메소드를 제공하는 모든 클래스의 슈퍼 클래스
.Math // 수학 함수 포함 메소드
.String // 문자열을 다루는 클래스
.System // 시스템 정보 제공 및 입출력 제공 클래스

7.Math 클래스
static double max(double a, double b) // 큰수
static double min(double a, double b) // 작은수
static double pow(double a, double b) // a의 b제곱
static double random() // 0.0과 1.0 사이의 난수를 반환
static double sqrt(double) // a의 제곱근

8. System 클래스의 메소드
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) // 지정된 소스 배열을 목적지 배열로 복사
static long currentTimeMillis() // 밀리 초 단위로 현재 시각을 반환
static void exit(int status) // 현재 실행중인 자바 가상 기계를 중단
==>Ex) System.exit(1);

9. Wrapper 클래스
  보통 인트 등의 변수를 생성할 때, 우리는 약식을 사용하는데...
Integer obj = new Integer(10); // 원래 형식
int obj = 10; // 약식
랩퍼 클래스는 byte -> Byte 처럼 첫 글자를 대문자로 해주면 된다.
int -> Integer
char -> Character
두개를 제외하고 (byte, short, long, float, double, boolean, void)모두 첫 글자를 대문자로 바꾸면 된다.

보통 사용 했던 이유는 스트링을 숫자로 읽을 때
Integer num = Integer.parseInt(String st) 로 사용했던 것 같다.

String s1 = Integer.toString(10); // 10(숫자)을 "10"(문자화)로 만들어 준다
int i = Integer.parseInt("10"); // "10"(문자)을 10(숫자)로 만들어 준다

  우리가 보통 변수를 사용할 때
int abc = 100;
String s = "99";
System.out.print(abc+s); // 의 결과는 '10099'가 나온다
오토박싱 때문인데 문자화 시켜주는 ""을 자동으로 채워주고 풀어주고 한다

10. java.util 패키지
  모든 클래스를 다룰 수 없기 때문에... 중요하다고 하는 몇 개만!
Random() // 난수 발생 객체 생성
Random(longseed)// 주어진 시드를 이용한 난수 발생기 객체 생성

double nextDouble() // 더블형의 0.0~1.0 의 난수를 발생
float nextFloat() // 플롯형의 0.0~1.0 의 난수를 발생
int nextInt(int n) // 0~n사이의 난수 발생

11. Array 클래스
static List asList(Object[] a) // 주어진 배열을 고정 길이의 리스트로 변환
static int binarySearch(int[] a, int key) // 주어진 값을 int형의 배열에서 이진 탐색(반씩 잘라서 탐색)->주의 할 점은 반드시 정렬이 되어 있어야 한다는 것이다.
static boolean equals(int[] a, int[] a2) // 두 배열이 같으면 true 반환

12. date 클래스(매우 중요)
Date d = new Date();
d.getYear() // 1900년 이후 년도
d.getMonth // 0~11월
d.getDate() // 윤달 계산까지 내장되어 있음

13. Calendar 클래스(매우 중요/빈도가 가장 높음)
Calendar rightNow = Calendar.getInstance(); // 현재 시간을 갖는다
boolean after(Object when) // 현재 객체가 주어진 시간보다 이후 이면 true반환
boolean before(Object when) // 현재 객체가 주어진 시간보다 이전 이면 true반환
static Calendar getInstance() // 현재 시각을 나타내는 Calendar 객체를 반환
Date getTime() // Calendar 객체를 Date 객체로 반환
void set(int year, int month, int date, int hourOfDay, int minute, int second) // 각 필드 값 설정
void setTime(Date date) // Date 객체의 값으로 Calendar 객체를 설정한다.

14. StringTokenizer
  자료구조? 알고리즘? 에 종종 나오는 문제들을 해결해주는 메소드 같다.
int countTokens() // 문자열에 존재하는 토큰의 개수 반환
boolean hasMoreTokens() // 다음 토큰을 가지는지 반환
String nextToken() // 다음 토큰을 반환.
String nextToken(String delim) // 다음 토큰을 반환하고 분리자를 delim으로 변경



  : 예외처리(Exception)
  앞으로 예외처리는 기본적으로 탑재 시키는 코드를 작성해야 한다.(배웠으니까)
예외 처리에는 수 많은 종류의 예외들을 만났을 때 어떻게 프로그램을 종료 시키지 않고 계속 진행하며
심각한(?) 예외들을 처리해 나갈 수 있는지 방법을 알 수 있다.


1. try and catch와 finally(생략 가능)

try{
예외 잡을 코드
}catch(Exception e){ //여러개의 캐치도 가능하다
예외 발생 시 처리 코드
}finally{ // 생략 가능
try 블록 종료 후 반드시 실행되어야 하는 코드
}

 예외 처리를 할 때 if문을 이용해 처리도 가능하지만 try/catch를 사용하도록 하자.

2. try-with-resources
  자바 se 7부터 추가된 기능으로
BufferedReader 객체를 이용해 파일로부터 데이터를 읽을 경우
BufferedReader는 종료 시 반드시 닫혀야 한다

try(BufferedReader br = new BufferedReader(new FileReader(path))){
return br.readLine();
}
의 식으로 사용한다. try 의 괄호 안에 들어가 있으므로 try-with-resources이다
이는 try 문장이 정상/비정상 적으로 종료되어도 예외가 발생해도 BufferedReader는 무조건 닫힌다.

3. 예외 처리의 종류
  예외에는 Error, RuntimeException, 기타 3가지가 있다.
에러는 개발자가 잡을 수 없는 예외이고
RuntimeException은 개발자가 '반드시' 잡아야 하는 에러이다.
그 대상에는....
ArithmeticExetipn // 어떤 수를 0으로 나눌 때
NullPointExetipn // 널 객체를 참조할 때
ClassCastExetipn // 적절치 못하게 클래스 형변환 시
NegativeArraySizeExetipn // 배열의 크기가 음수값
OutOfMemoryExetipn // 사용 가능한 메모리가 없음
NoClassDefFoundExetipn // 원하는 클래스를 찾지 못함
ArrayIndexOutOfBoundsExetipn // 배열을 참조하는 인덱스의 오류


4. 예외의 다형성

1. Exception
1.1 IOException 1.2 NumberException
1.2.1 TooBigException 1.2.2 TooSmallException
의 형식으로 트리 구조를 이루고 있다.
즉 최 상위는 Exception 이고 각각의 예외를 직접적으로 처리하려면 하위 구조의 예외를 직접 써주면 된다.

5. throw, throws
throws는 {...} 안의 여러줄의 코드를 모두 검사하고 예외 발생시 처리해주는 명령
throw는 하나의 인수만을 요구하는 Throwable객체

6. 사용자 정의 예외
  public class MyException extends Exception {}의 식으로 사용한다.



  예외처리를 공부하면서 느낀점은 "경험, 노하우, 컴퓨터 시스템의 기본 지식 등이 없으면 잘 배워놓고 제대로 써먹지
못하는 상황이 발생할 것 같은 느낌의 느낌이다.

이제 밥을 먹으러 가야겠따.