모험, 여행, 극기, 도전. 듣기만 해도 가슴이 벅차 오르는 단어들이다.

그래서 그러한 주제가 나타나는 영화, 음악, 책, 다큐는 가리지 않고 모두 좋아한다.

월터의 상상은 현실이 된다 가 근래에 기억에 남는 영화이다.

예고편과 줄거리를 보고 개봉일만을 기다렸던 영화 '와일드' 를 새벽 심야 영화로 보고 왔다.

인기 기대작이 아니어서 인가? 내가 사는 곳에는 상영관이 롯데시네마 한곳뿐 이었다.(그마저도

가장 작은 스크린관이며 상영 시간대도 얼마 없다.)

심야 여서 그랬는지 몰라도 100명이 채 들어갈 수 없어 보이는 상영관에 관객은 10여명 정도 였다. 덕분에

방해 받지 않고 영화에 몰입할 수 있었다.


주인공 셰릴(맞나?)은 어려서부터 알콜 중독자 아버지가 엄마에게 폭력과 폭설을 일삼는걸 보고 자랐으며

넉넉치 못한 형편으로 살아 왔다. 어두워 보이는 삶에서 버팀목이 되어주고 세상의 중심이 되었던 어머니가

돌아가시자 그녀는 좌절하고 방탕한 생활을 하며 지낸다. 그러다 무언가를 계기로 PCT 하이킹을

떠나게 되는데.. 90일간의 힘든 여정 속에서 지난 인생을 되돌아보고, 움켜 쥐던 미련과 아픈 기억들을 털어 

버리며 삶의 목표를 찾아 간다.

아름 다운 영상미와 주인공 셰릴이 여정을 통해 자기 성찰 하는 과정을 보고 있노니, 나도 하이킹을 떠나고 싶다

는 욕망이 영화 보는 내내 밀려왔다.


영화는 월터의 여행기처럼 가볍고 유쾌하지도 그렇다고 너무 무겁지도 않지만 굳이 표현 하자면 무거운 영화

로 분류 하고 싶다. 그만큼 주인공이 안고 있는 과거의 아픈 상처와 후회들을 여정 곳곳에서 교차 하며 표현해

주고 있다. 관객이 단순히 순간의 희망과 감동에 젖는 것이 아니라 주인공에 모습에 자신을 투영해보고 조금더

현실적이고 진지하게 나의 인생에 대해 생각해 볼 수 있도록 해주는 영화다.

무언가 자극적이고 강렬한 감동이나 희망적이고 신나는 모험기를 기대하는 분들은 실망 할 수도 있다. 셰릴은

조금씩 조금씩 90여일을 전진한다. 발톱이 빠지기도, 위기에 처하기도. 그러다가 뜻밖의 인연을 만나기도 한다.

영화도 마찬가지다.


셰릴은 생각한다. 내가 날 용서 했다면? 내가 후회 했다면? 하지만 그때로 돌아가도 똑같이 반복할 것이다.

내 과거의 행동들이 날 여기로 이끈 거라면?

내가 이 영화에 몰입하고 많은 생각을 할 수 있던 것은, 주인공과 비슷한 경험과 처지도 있지만, 주인공이

성찰 과정중 스스로에게 던지는 질문들이 내가 한번쯤 던져보며 생각해본 것들과 상당히 닮았기 때문이다.

지난 일에 대한 후회와 절망 그리고 생각처럼 풀리지 않던 일들이 결국 내가 스스로를 돌아보며 반성하고 

깨달음을 얻을 수 있는 기회와 지혜를 준것이 아닐까 생각해본다.


"못이 되느니 망치가 되겠다. 달팽이가 되느니 참새가 되겠다. 길이 되느니 숲이 되겠다." 셰릴은 선택의 기로에서 이 말을 항상 되뇌며 자신의 여행을 개척해 나갔다.   


마지막에 셰릴은 말한다.

"흘러 가게 둔 인생은 얼마나 야생적인가. 더욱 가까이서 보고 더욱 가까이서 나의 인생을 느껴라"





셰릴의 엄마가 했던 말이 기억에 남는다.

"니가 최고가 되는 순간을 찾아라. 그리고 그 순간을 유지하기 위해 최선을 다해라"

 


'영화 리뷰' 카테고리의 다른 글

2012 월플라워  (0) 2015.04.04
[15.03.21 토] 위플래쉬  (0) 2015.03.22
인터스텔라  (0) 2014.11.09
[2014 겨울왕국] Do you want to build a snowman?  (0) 2014.02.06
[2013]월터의 상상은 현실이 된다.  (0) 2014.01.19
Posted by Yann'
,

소프트웨어 개발 프로세스에서 

개발 단계 이상의 자원(인력, 시간 등)이 소모 되는 단계가 바로 유지보수 단계이다.

유지보수를 고려하여 설계되지 않은 프로그램을 수정하는대에는

많은 시간,돈,인력이 필요 하며 그러한 투자가 프로젝트에 이익을 남기지 않는다.

즉. 아무리 투자해도 이윤은 남지 않는 결과를 초래 한다.

그래서 유지보수 단계는 개발보다 중요하며, 유지보수를 고려하여 프로그램을 설계해야 하는 이유가 된다.


유지보수를 고려하지 않은 프로그램에 요구사항 수정이 들어오면 개발자들은 다음과 같은 반응을 보이곤 한다.

"별거 아닌 기능이지만, 그 기능을 추가 하기 위해서는 너무 많은 코드를 수정 해야하고, 그로 인해 어떠한 사이드 이펙트가 발생할지 모른다"


프로그램을 설계할때는 수정이 용이하게, 유지보수가 쉽도록 설계 해야 한다. 그렇기 위해 필요한 것이 바로

캡슐화와 추상화를 적용한 객체 지향 설계!

Posted by Yann'
,

정수 표현시에 반올림을 적용하면 0~4까지는 내림, 5~9까지는 올림수가 된다.

한 예로 1의자리 반올림을 하면

14 - > 10

15 - > 20

이와 같이 변한다. 하지만 소수점은 어떻게 적용이 될까??

소수점 이하 첫째자리까지만 표시하도록 해보았다.


float a = 0.54;

float b = 0.55;

float c = 0.56;


printf("%f\n", a);      - a1

printf("%0.1f\n", a);  - a2

printf("%f\n", b);      - b1

printf("%0.1f\n", b);  - b2

printf("%f\n", b);      - c1

printf("%0.1f\n", b);  - c2


이때 출력값은

a1 : 0.54    a2: 0.5 (예상 결과 0.5)

b1 : 0.55    b2 : 0.5 (예상 결과 0.6)

c1 : 0.56    c2 : 0.6 (예상 결과 0.6)


어째서 b의 결과는 예상 결과와 상이한 것일까?

0.55를 소수 첫째자리까지 반올림하면, 두번째 자리 5가 올림되어 0.6되는게 아닌가?


해석.

2진수 컴퓨터 체계에서 숫자는 정수부분과 실수부분으로 나뉜다.

이때 정수부분 표현은 어떤수라도 표현 가능 범위에만 있으면 100% 정확하게 표현이 가능하다.

하지만 실수 부분은 그렇지 않은데 

0.5 = 0.1 (2)

0.25 = 0.01 (2) 와 같이 2진수로 맞아 떨이지게 계산되는 수가 있는가 하면

0.55 = 0.1000110011001100....(2)와 같이 떨어지지 않는 수도 있다

즉 2진수 체계에서는 실수를 정확하게 표현할 수 없다.


위의 예를 돌아가 보자.

입력 값들은 실제 다음과 같은 값으로 저장되어 있다.

0.54 = 0.539559..... (출력시에는 0.54로 보임)

0.55 = 0.5487....     (출력시에는 0.55로 보임)

0.56 = 0.558......     (출력시에는 0.56으로 보임)

즉 가장 근사한 값일 뿐이지 실제 0.55를 입력했다고해서 메모리에 0.55가 정확히 저장되어 있지 않는다.

그렇기 때문에 소수점 첫째자리까지 출력한다고 하면.

입력한 0.54 -> 0.5가 되는 것이 아니라 0.539559 -> 0.5가 되고

입력한 0.55 -> 0.6이 되는 것이 아니라 0.5487 -> 0.5가 되고

입력한 0.56 -> 0.6이 되는 것이 아니라 0.558 -> 0.6이 되는 것이다.



결론.

컴퓨터에서 소수점 이하 출력시에는, 입력한(눈에 보이는) 값 자체로 반올림을 따지면 결과가 다르고,

실제 저장된 값을 확인해 봐야 한다.


Posted by Yann'
,