김제동

19.4.17~5.2

상식적인 사회

그래서 우리가 행복지는 것에 대해서 이야기하자는 거다

헌법이 누구나 이야기할 수 있었으면 좋겠다

누가 누구를 비난하고 공격하고자하는 이야기가 아니다

국민이라면 누구나 당연히 받아야하는 권리를 보호하기 위한 것이다.

안 지켜지는 것도 있지만 최소한 방향 제시는 하고 있다

아는 만큼 더 보이지만 따뜻한 이야기다.

특정인에 대한 추모도 있고 어떤 단체나 사람에겐 비난 보단 가벼운 비판도 있다

 

http://www.yes24.com/Product/Goods/63691247?scode=032&OzSrank=1

by 무위자연 2019.05.03 08:16
더스틴 보즈웰, 트레비 파우커 지음 / 한빛미디어

18.12.21-19.3.13

PART FOUR 선택된 주제들
[15]'분/시간 카운터'를 설계하고 구현하기

[14] 테스트와 가독성
테스트를 위한 코드는 쉽고 간결하게 써져야 하고 변경도 쉬워야 한다.

테스트시에 나오는 메시지도 신경 써서 만들어야 한다. 읽기 편하게. 그리고 원인을 쉽게 알 수 있게

테스트의 범위가 명확해야 한다.

하지만 테스트를 위해서 원래 코드가 나빠지면 곤란하다.

PART THREE 코드 재작성하기
[13]코드 분량 줄이기
가장 읽기 쉬운 코드는 아무 것도 없는 코드다
개발자가 짜고 싶은 코드나 기능? 하지마.
코드 베이스는 작게작게 - 기능을 줄이던, 라이브러리를 쓰던,
결국 다 테스트해야 한다

사용하지 않는 코드를 제거해라.

사용하는 라이브러리에 친숙해져라.
이거 관련된 뭔가가 있었는데 정도면 충분하다.


[12] 생각을 코드로 만들기
1 코드가 할 일을 옆의 동료에세 말하듯이 평범한 영어로 묘사해라
2 이 설명에 들어가는 핵심적인 단어와 문구를 포착하라
3 설명과 부합하는 코드를 작성하라

[11] 한번에 하나씩
한 번에 여러 가지 일을 수행하는 코드는 이해하기 어렵다.

*한번에 하나의 작업만 수행하게 코드를 구성해야 한다.
함수형 프로그래밍의 기본이기도 하다.


[10] 상관 없는 하위 문제 추출하기
1 주어진 함수나 코드 블록을 보고 스스로 질문하라 "상위 수준에서 본 이 코드의 목적은 무엇인가?"
2 코드의 모든 줄에 질문을 던져라 '이 코드는 직접적으로 목적을 위해서 존재하는가? 혹은 목적을 위해서 필요하긴 하지만 목적 자체와 직접적으로 상관 없는 하위 문제를 해결하는가?"
3 만약 상당히 원래의 목적과 직접적으로 관련되지 않은 하위 문제를 해결하는 코드 분량이 많으면, 이를 추출해서 별도의 함수로 만든다.

해당 함수, 클래스는 본인의 목적에 충실해야 한다. 하위 문제를 해결하는 코드가 많으면 추출해라.
너무 작은 단위로 추출하면 그게 또 나쁘다.

PART2 
루프와 논리를 단순화하기

[9] 변수와 가독성
변수를 엉터리로 사용하면 다음과 같은 문제가 발생한다
1 변수의 수가 많을 수록 기억하고 다루기 더 어려워진다
2 변수의 범위가 넓어질수록 기억하고 다루는 시간이 더 길어진다
3 변수값이 자주 바뀔수록 현재값을 기억하고 다루기가 더 어려워진다.

*변수 제거하기
불필요한 임시변수 제거하기
중간 값을 저장하는 변수 제거하기
흐름제어 변수 제거하기

*변수의 범위를 좁혀라
"전역 변수를 피하라"
범위가 넓으면 수정 및 사용영역을 가늠하기 힘들다.
- 변수가 적용되는 범위를 최대한 좁게 만들어라

- 많은 메소드를 정적 static으로 만들어서 클래스 멤버 접근을 제한하라 > 가급적 정적 메소드는 사람들에게 저 변수들로부터 독립적이라는 메시지를 줘야 한다 >>> 이것이 fn?
- 커다란 클래스를 여러 작은 클래스로 나누는 것도 방법이다.
변수 선언은 미리 앞단에 선언하는 것이 아니라
 그 때 그때 쓸 때 선언하는 것이 생각의 흐름에 적합한 편이다.

*값을 한번만 할당하는 변수를 선호하라
최대한 적게 변하는게 좋고 변하지 않아야 하는건 const 같은 키워드를 활용한다.



[8]거대한 표현을 잘게 쪼개기
*거대란 표현을 더 소화하기 쉬운 여러 조각으로 나눈다.

*거대한 구문 나누기

*표현을 단순화 하는 다른 창의적인 방법들
표현이 명확하고 버그를 만들 가능성이 적으면 매크로를 써서 가독성을 높인다.
하지만 이 말이 매크로를 권장한다는 것은 아니다.

-설명변수
if line.split(':').[0].strip() == "roor": 보다는

username = line.split(':').[0].strip()
if username == "root" 가 낫다.

-요약변수

and or 조건을 1줄에 축약하는 것보다 의미가 명확해진다면
2줄도 좋다는 생각을 가지자.

'영리하게' 작성된 코드에 유의하라, 나중에 다른 사람이 읽으면 그런 코드가 종종 혼란을 초래한다.

-복잡한 논리와 씨름하기
복잡한 논리가 중첩 되면 버그가 양산되니.
반대로 생각하는 것이 더 쉬울수 있다!


[7] 읽기 쉽게 흐름제어 만들기
*흐름을 제어하는 조건과 루프 그리고 여타 요소를 최대한 '자연스럽게 만들려고 노력해라
코드를 읽다가 다시 되돌아 가서 코드를 읽지 않아도 되게끔 만들어야 한다.

*if/else 블록의 순서
1-부정이 아닌 긍정 조건을 먼저
예. if(!debug) 보다 if(debug)
2-간단한 것을 먼저 처리하고
3-흥미롭고 확실한 것을 먼저
난 2번 보다 3번을 주로 선택해서 continue/ return이 늦게 나왓던 듯...팀장/소장에 비해서

3항 연산자는 가독성을 보고 가독성이 높아지는 조건에서만 쓰면 되겠다.
A ? B : C 인 경우
조건이 복잡하면 가독성이 떨어지나 조건이 간단하면 3항 연산자가 더 좋다.

*do/while loop를 피하라
조건이 뒤에 있고 한번을 실행해야 하고 continue를 쓰면 혼란스러우니 피하자
while을 쓰자

*함수 중간에서 반환하기
한 함수의 반환이 중간에 여러 번 있어도 전혀 문제가 없으니까 막 반환하자.

대신 클린업 보드를 위한 관용적인 구조를 이용한다
C++ : 소멸자
자바,파이썬 : try finally
파이썬 : with
c# : using

*악명 높은 goto
c를 제외하고 안 써야 한다
c도 줄여야 한다. 피할 수 있을 때까지 피해야 한다.

*중첩을 최소화하기
if / else 조건은 간단해야 좋고
조건의 중첩을 줄여야 한다.
담당 개발자에게 각 step 별로 중첩이 당연해보여도
그런 중첩이 일어난 상태에서 그 코드를 처음 보는 사람은 당황스럽다.
수정해야 하는 상황이라면 여러분의 코드를 새로운 관점에서 바라보라

함수 중간에서 반환하여 중첩을 줄여라.

루프내에 있는 중첩을 제거하기
<기존>
for(
   if(condition) {
      if() //
          if() //
   }//이게 내가 하덧 짓
<제안>

for(
 if(!condition)
    continue
    if()
       continue
         if()

*실행 흐름을 따라올 수 있는가?
쓰레딩 / 시그널,인터럽트 구조 / 예외 / 함수포인터&익명 함수 / 가상 메소드는
코드를 이해하기 어렵기 때문에 핵심 코드에서 지양하고 최소화한다

PART1 표면적인 수준에서의 개선

[6] 명확하고 간결한 주석 달기
*주석을 간결하게 하라
*모호한 대명사는 피해라
*

[5] 주석에 담아야 하는 대상
* 주석의 목적은 코드를 읽는 사람이 코드를 작성한 사람만큼 코드를 잘 이해하는데 돕는데 있다.

*설명하지 말아야 하는 것

코드에서 유추할 수 있는 것은 넣지 마라
예. //클래스 A를 위한 정의 //생성자 //이 값을 bool으로 반환 

나쁜 이름에 주석을 달지 말아라. 대신 이름을 고쳐라
좋은 이름의 함수가 좋은 주석보다 낫다

* 코딩을 수행하면서 머릿속에 있는 정보 기록하기

director's cut 같은 내용을 적어놔라

//이 주먹구구식 논리는 몇가지 단어를 생략할수 있다. 100% 해결은 어렵다
//이 클래스는 점점 엉망이 되고 있다. 어쩌면 하위 클래스를 만들어야 할지도 모름

그래야 최소 이 클래스의 상태를 보고 헛짓을 안 할 수 있다!

코드에 있는 결함을 설명하라
//todo : 더 빠른 알고리즘 필요
//todo(더스틴) : JPG말고 다른 포맷도 처리할 수 있어야 한다.
개선이 필요한 부분을 언급하는 것을 부끄러워 하지 마라 코드는 계속 진화해야 하니까.
흔히 쓰는 주석 키워드
todo : 할 것
fixme : 오작동이 알려진 코드
hack : 아름답지 않은 해결책
xxx: 위험해 여기

상수에 대한 설명은 가급적 하는 편이 낫다

* 코드를 읽는 사람의 입장에서 필요한 정보가 무엇인지 유추하기
나올 것 같은 질문에 대해선 주석 달기
코드를 작성할 때 "내가 작성한 이 코드를 다른 사람이 읽으면 깜짝 놀랄만한 부분이 있나?"를 생각해보자

큰 그림에 대한 주석~

복잡한 기능에 대한 요약 주석도 중요하다
라인별 함수별 주석이 있어도 무엇을 하는지에 대한 주석이 있어야 한다.

다음 단계로 주석을 단다
1 마음에 떠오르는 생각을 무조건 적어본다
2 주석을 읽고 무엇이 개선되어야 하는지 확인한다
3 개선한다.


[4] 미학
*일관성 있는 스타일은 '올바른'스타일이 더 중요하다.

*선언을 블록으로 나눠서 구분 짓게 하라

*의미 있는 순서를 선택하고 일관성 있게 사용하라
환자로 예로 들면
이름/성별/나이/주소 순으로 늘 비슷하게

*중복된 코드는 함수로 만들어 간결하게 만들어본다

*일관성과 간결성을 위해서 줄 바꿈을 재정렬하기
적절한 줄 바꿈과 들여쓰기는 가독성을 높인다.
일정한 글자수가 아니라.




좋은 소스는 '눈을 편하게'해야 한다.
- 코드를 읽은 사람이 이미 친숙한, 일관성 있는 레이아웃을 사용해라
- 비슷한 코드는 서로 비슷해보이게 하라
- 서로 연관된 코드는 하나의 블록으로 묶어라

요약
언제나 의미가 오해 되지 않는 이름이 최선의 이름이다.
의미에 대한 영어 단어의 한계가 있으니 max_, min_ 같은 접두어를 사용한다.

*이름을 짓기 위해서 복수의 후보를 평가한다.

* 사용자의 기대에 부응하기
getMean, list:size 등 반환이 바로 될거 같은 이름이지만,
아닌 경우도 있으므로 잘 파악해야 한다.
size란 이름은 O(1) 경우에만 붙여야 한다. 

* boolean 변수 이름 붙이기

예.bool read_password = true
의미가 모호하다.
우리는 패스워드를 읽을 필요가 있다 / 패스워드가 이미 읽혔다...
read같이 모호한 단어보다는
need_password | user_is_authenticated 같이 명시적인 단어를 사용하고

is, has, can, should 등의 단어를 이용한다.

부정적인 단어는 피한다.
bool disable_ssl = false;보단
bool use_ssl = true 가 더 읽기 좋다.


* 경계를 포함하는 범위에는 first / last를 써라.
시작은 포함하고 배열의 범위 밖까지 진행하는 것은 begin/end를 써라...이건 좀...지엽적인 듯한데.

* 경계를 포함하는 간게값을 다룰 때는 min / max를 이용해라.
한계를 설정하는 이름을 가장 명확하게 만드는 방법은 이름 앞에 max_, min_을 붙이는 것.
이상/초과, 이하/미만이 헷갈린다.
if shopping_cart.item_count > CART_TOO_BIG_LIMIT 보다는
if shopping_cart.item_count > MAX_ITEMS_IN_CART가 낫다~

[3] 오해할수 없는 이름들
본인이 지은 이름을 '다른 사람들이 다른 의미로 해석할수 있지 않을까? 라는 질문을 던져~

예. Filter
results = Database.all_objects.filter("year <= 2011")

문제점
대상을 고른다는 건지, 대상을 뺀다는 건지 알수가 없다
고른다면 select
빼는거라면 exclude가 더 낫다

예 Clip(text, length)
문장 끝에서 길이만큼 잘라낸다는 건지
문장을 처음부터 길이만큼 잘라내서 가진다는 건지 모호함

[2] 이름에 정보 담기

- 이름의 길이는?
좁은 범위에서는 짧은 이름이 괜찮다~
긴게 문제가 아니라 기억하기 어려운게 문제

흔한 약어는 괜찮다
evaluation > eval
document > doc
string > str

불필요한 단어는 제거하기

대문자/밑줄 등을 사용해라


-추상적인 이름보다 구체적인 이름을 선호하라.
변수명에 단위를 포함시키면 좋다.
밀리세컨드라면 _ms
초단위는 _secs
메가 바이트면 size_mb
다운로드 속도 단위는 max_kbps 등으로

-특정한 단어 오르기
size, get 으로 의미를 다 담기 어렵다
유의어 찾기, 동료에게 물어보기를 두려워하지 말라
- 재치 있는 이름보다 명확하고 간결한 이름이 더 좋다

tmp 같은 변수명은 전형적인 알고리즘 구현 내에서는 아주 좋지만
일반적인 기능에선 내용을 설명하지 못하니 안 좋다.
상황을 봐라

루프 반복자는 i,j, iter,it 보다 좋은 것을이 많다.
if(club[i].members[k] == users[j]) 보단
if(club[ci].members[mi] == user[ui]
ci 혹은 club_i, mi 혹은 members_i 같은 식이 버그 잡기 좋다
if(club[ci].members[ui] == user[mi] //index가 잘못된 상황임을 쉽게 알 수 있다.


1장 코드는 이해하기 쉬워야 한다.
코드는 이해하기 쉬워야 한다.
코드는 다른 사람이 그것을 이해햐는데 들이는 시간을 최소화하는 방식으로 작성되어야 한다.

내가 만든 코드도 6개월 지나면 어려워진다.
그러니 객관적으로 코드를 만들어야 한다.


by 무위자연 2019.03.13 16:55

http://blog.naver.com/bmwe3/50138200013


아버지 선물 120302 


짧은 호흡과 여백이


글 사이사이에 가득하다.


내 마음을 다스리는건. 내 마음을 이해하고 껴 안는것이고.


남이 미운건 내가 미운 맘을 가져서 그런 것이고.


느리게 걷기와 비슷하다.


다만. 종교인이자 교수인 혜민 스님의 조금 더 구체적이고.진솔한 화법과 내용이 


마음을 편하게 해준다.


진리는 통하는 것이고 마음의 길은 하나 인 것이다.

by 무위자연 2016.08.31 14:39


http://blog.naver.com/bmwe3/50137550880

요즘에 가장 hot한 인물 중에 한명인 김정운 교수가 묻는다.


당신의 물건은 무엇이냐고.


에로티시즘을 넌지시 섞으면서 물어보는 이 말엔.


당신을 일으키는 힘을 주는 물건을 의미한다. 참으로 기찬 표현이지. 물건.


2개 영역으로 구성된다.


한 인간이자, 남자이자, 존재로서 어떤 생각과 가치를 고려해야 살아가야 하는지.


그리고 김정운 교수가 만난 남자들의 "물건"은 어떤게 있고, 그 사람들은 왜 그 물건을 그렇게 생각하게 되었는지를 풀어낸다.


1부 남자에게를 읽을땐 맞어. 남자라고? 혹은 나라고? 라는 생각해서 벗어나. 맞다 맞어. 공감하게 되는 이야기들이 가득하고.

그리고 매우 솔직하다. 스스로를 던져서 하는 슬랩스틱 코미디를 보는 듯하다.


2부 남자의 물건에선 내가 잘 모르는 사람들의 경험과 생각을 알게 해준다.

차범근 감독이나 안성기는 더욱 잘 알게 되는 듯하고. 신영복, 문재인, 김문수등은 정치인으로서가 아니라 사람으로서 이런 사람이구나 생각도 들고.

그러면서 김정운 교수의 생각도 반이 들어있고.


그런 점에선 난 잘 살고 있는거 같은데 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ


내용이 잊혀질때쯤 다시 읽어야지.

by 무위자연 2016.08.31 14:38

http://blog.naver.com/bmwe3/50137473818 


1권 110804

2권 111125

3권 111225

4권

5권 120325


아직 학계의 정설이 되지 못하고,


몇몇 사람들의 의구심을 제기하는 것중에 하나인. 백제의 요동 진출.


그것을 형상화한 소설이고, 출간된지는 80년 중반이지만, 드라마화를 계기로 재출간한 책이다.


한 거상의 아들로 살다가 한 사람이 찾아와 사실은 왕의 자손임을 알게된 여광.


처음에는 백제의 왕위를 찬탈 혹은 복권 하려나 실패하고, 요동으로 건너가 힘을 키운다.


연의 - 특히 모영농을 구한 것을 계기로 - 그 일대 세력을 규합하며, 앞날을 도모한다,


20년을 근근히 힘을 키우고, 백제와의 관계를 도모하나 실제적으론 연의 한 객장에 불과한 시간들.


인내하고 인내하고. 고구려를 염려하고. 백제 본국을 염려하고.


중원의 바람이 어디로 부는지 확인하고 또 확인하고.


실제 부여인대 / 백제인은 중국 사람눈엔 그냥 도적떼?로 보엿을지도 모른다.


역사란 승자의 것, 기록한 자의 것이니까.


한번쯤은 생각해보고. 누군가를 더 연구해서 "아니다"라고 결론을 내릴수 있어도 의의가 있을듯하다.

by 무위자연 2016.08.31 14:37

세령호에 일어난 일이다.


댐건설로 생긴 세령호와 그 일대 마을.


새로 생긴 마을과 수몰된 지역. 나머지 저지대 마을


있는자와 그렇지 않은 자.


모든 것을 누리는 사람과 그렇지 않은 사람.


그 정점에 모든것을 누리는  사람의 그렇지 않은 딸 세령.


세령의 죽음으로 촉발된.


모든 것의 정점 오영제의 극악스런 복수,


우연한 사건으로 인해서 인생을 겉잡을수 없게 되버린 최현수


극단적인 오영제의 "교정"


세령의 죽음.


극성스런 현수 아내 "은주"


세간의 괴롭힘과 왕따에서 가느다랗게 삶을 이어간 최서원"


이 사건을 이야기로 구성해낸 같은 보안업체 직원  이승환.


사건후 7년간의 고행 끝에 이야기는 마무리 된다.


극단적인 설정은 취향도 아니고 눈쌀을 찌프리게 하고, 


뭘해도 안되는 삶이란 존재할까 하는 의구심도 들지만.


그 이야기의 끝이 무엇인지를 궁금케하는 필력은 마음에 든다! 

by 무위자연 2016.01.12 13:51

도진기씨의 지난 번 작품과는 조금 다른 형태로 진행된다


이번에는 고진이 주도적으로 이야기를 움직이지 않고,


이유현이라는 강력반 형사가 이야기를 구성하고 잡아가며,


고진은 멘토 식으로 이야기에 참여하게 된다.


잘나가는 룸사롱의 Top 정유미(204호 거주)와 이를 스토킹하는 백수 이필호(104호)

정유미집에서 집안일을 봐주는 황금순, 정유미만을 바라기 하는 남자친구 김형빈.


204호 정유미와 이필호가 204호에서 살해된 채로 발견되면서 살인 사건은 시작되고


유현은 탐문에 탐문을 거치지만 범인은 검거되지 않고


우여곡절 끝에 다른 자를 찾을수 없다는 이유로 경비 아저씨가 잠시 감방에 들어가지만. 고진의 도움으로 구출? 되고


진짜 범인은 쫓게 된다. 범인임이 명백한데 범인임을 증명할 증거를 찾지 못하다가.


의외의 황금순이 범인이라니. 김형빈의 알리바이가 깨지면서 끝날줄 알았는데.


황혼의 질투에 의한 치정극이라니. 노인성애자라는 것도 처음 알게 되고.


산뜻한 작품이었고 이 시리즈는 예의 주시해야 겠다.

by 무위자연 2016.01.12 13:51

110919 1권

111013 2권.


그리스 신화에 트로이 악마를 예측한 미래를 보고 위험을 외쳤으나 오히려 스파이로 몰려 죽은 예전자 카산드라와 동일한 이름을 가지고

동일한 능력을 지닌. 카산드라라는 여자가 자신이 보는 미래와 실제로 시간이 지나면서 그 미래에 어떻게 접근가헤 되는지를 보여준 이야기이다.

처음에는 자기 학대, 우을로 괴로워하지만 파리 시내에 있는 현재문명의 산물이자 가장 현대문명과 동 떨어진

쓰레기 하치장 속에 있는 대속에 들어가게 되고. 거기서 흑인 용병출신의  남자, 싸구려 이탈리아 성인영화 연기였던 뚱땡이 여자,

그리고 아프리카 주술사였으나 금전전인 문제로 돌아가지 못하는 의사 지망생 흑인 할아버지, 고아였으나 장비, 기계 컴퓨터쪽에 소실이 많은 한국인 김예빈을 만난다.

그러면서 자신이 보는 미래에 전과는 다르게 점점 적극적으로 뛰어 들게 되고,  타인과의 관계 맺는것 자체를 하지 못했지만  카산드라는 김과 인간적인 교감을 한다.

극의 긴장감은 전적으로 카산드라의 오빠 다이엘 카첸버그가 동생한테 준, 생존확률이 표시되는 시계.

사실 이 시계가 너무 만능이기도 하고 서술해주는 부분이 많아서. 시계가 극을 좌지우지 한다.

이야기의 시작은. 가장 더렵고 외면받고 의외인 대속에서 미래의 싹-가능성의 나무-가 자라는 것은 베르나르식 발상이지만.

이야기 구성은. 역시나 베르나르의 장점이자 단점인데. 신에서 했던, 돌고래에서 발생한, 반복되는 역사, 그래서 미래에 대한 상념.

신이전작에 비하면 다이나믹하지만. 신에서 이룬 3단계 변신 연장선에 있다.

2권 중반에 카산드라가 미래에 적극적으로 개입하는것에 대한 반동으로 그것을 막으려는 조직과의 대치, 추격, 이건 좀 지루하다.


결국 미래는 예측하고 예언하는 것이 아니라 행동하는 것이다.

by 무위자연 2016.01.12 13:50
14.4.20 5권
14.3.30 4권

사상 초유의 같은 책(4권)을 두번 사는 일이 있을 만큼
정말 오랫동안 시간을 들이게 되서 마무리 하게 되는 책이다.
3권을 11년 뮌헨에서 훌쩍이며 마무리한거 생각하면.

고사유. 무인과 전쟁의 나라에서 가장 고구려 같지 않은 왕.
요즘 표현으로 자동 무릎을 가진 왕.
모용황에게 주아영, 정효, 무, 을불의 시신까지도 내주고.
평생을 외롭게 살아간 왕.

죽은 농부를 떠나지 않는 소이야기를 듣고
오히려 농부가 밉다고 이야기하는 왕.

한명의 백성을 구하지 못하는데 수천 수만을 어찌 구하냐며
처음이자 마지막으로 전쟁을 도발하고 죽은 그는.

결코 마지막은 외롭고 초라하지 않았다.
자신의 뜻을 이어갈 구부라는 대단한 첫 아들과
자신의 모든 것을 버리고 외로움 속에서 백성을 살리는 것 그것 하나로 버티어간 결과물로
고사유만을 따르는 백성이 있었으니까.


by 무위자연 2015.12.30 19:23

110826 1권

110913 2권

110917 3권


전형적인 영웅의 일대기 구성을 가지고 있다.

원한, 원수의 손에 간신히 살아나 재야에서 착실히 자라나서

많은 조력자의 도움을 받아서 원래 자리로 돌아와 원수를 갚고 행복하게 잘 살거나, 치세를 잘하거나.

주인공은 고구려의 미천왕 을불이고.

가장 큰 이야기 줄거리를 만드는 사람은 창조리다.

창조리는 하늘을 읽고 대세를 읽어서 안국군을 자결케하고 본인은 상부라는 폭군 아래서

수십년을 동안 다음 고구려를 준비한다.

을불은 차례로 사람을 얻어내면서 결국에 진의 3대 보물이라 일컫얼어지는 인재 최비가 이끄는 거의 舊 진의 모든 것인 낙랑을

몰아내고 요동을 차지하게 되면서 이야기는 마무리 된다.

모용외에 대한 이야기가 아쉽고

낙랑을 몰아낸 다음의 이야기가 궁금하지만.


전체적인 영웅이야기 구성에 충실하며, 김진명씨의 예전 살수보다 소설적인 재미는 더 있으며

약간은 이문열식 서사가 눈에 뛴다.


개인적으로는 마지막에 낙랑을 몰아내고, 저가를 잃는 장면을

옥토버페스트 1일차에 혼자 맥주마시며서 보다가 혼자 울컥했다.

너무나 사랑하고 아끼는 사람을 구하러갈수 없는 대의란. 무엇인가. 그 한스러움에 대해서 생각하느라

by 무위자연 2015.12.30 19:20