Do it! 공공데이터로 배우는 R 데이터 분석 with 샤이니 - 부동산 빅데이터 분석 전 과정 수록! Do it! 시리즈
김철민 지음 / 이지스퍼블리싱 / 2022년 5월
평점 :
장바구니담기


이 글은 출판사로부터 책을 제공받아 작성하였습니다.

이 책의 장점이자 단점은 매우 얇습니다. 그리고 이런저런 다른 얘기를 하기보다는 모델 구축을 위해서 최대한 압축되어있습니다. 그만큼 다른 거 필요 없이 지금 당장 데이터 분석 결과를 뽑아보고 포트폴리오로 활용하고 싶은 분이라면 이 책은 장점으로 다가올거 같습니다.


반면, 하나하나 천천히 그리고 깊이 있게 이해하고 싶은 분이라면 이 책은 적합하지 않을 거 같습니다.


그렇지만, 경험을 돌이켜 볼 때 깊이있게 이해하겠다고 두꺼운걸 의욕에 차서 시도해보다가 포기한게 한 두번이 아닙니다. 그리고 뭔가 처음 이뤄봤다는 성취감이 있어야 그걸 마중물로 해서 계속해서 공부의욕도 솟고, 계속해서 시도하게 되는거 같아서 초보자라고 하더라도 겁먹을 필요는 없을거 같습니다.


속칭 비전공자에서 분석가나 개발자로 오면서 어려운 것 중 하나는 포트폴리오/토이 프로젝트 해보라는 주변의 조언을 어떻게 해야할지 모른다는 점이 아닐까 싶은데 이 책이 그 점에 있어서 큰 도움이 될거 같습니다.


토이프로젝트를 해야한다는 필요성과 의욕은 앞서지만 막상 컴퓨터 앞에 앉으면 머리가 하얘지죠. 그리고 보통 이렇게 커리어 전환을 준비하시는 분들은 빨리 취업을 해야하는 상황이신 분들이 많아서(제가 그랬습니다) 빨리 결과물을 내야할거 같아서 조급해지기 쉽죠. 이 두가지가 합쳐지면 현타가 심하게 와서 포기하고 아무것도 하지 않았는데 침대에 누워 번아웃되기도 합니다.


그럴 때는 우선 무작정 그냥 아무 생각 하지 않고 책을 따라해서 (이해하든 안하든 그것보단 '했다'는 것에 중점을 두고) 결과물을 만들어서 github에 업로드하고 이력서에 프로젝트라고 한 줄이라도 써보면 느낌이 달라지더라구요. 그리고 과거 구직을 해봤을 때 실제로 서류전형을 통과할 확률이 그 전보다 훨씬 높아졌습니다. (SQL책 보고 프로젝트 따라했을 때 기준이지만, 이 책도 마찬가지일거라고 생각합니다)


코드에 한 줄 한줄 다 주석이 있고 필요한 경우 영상 강의까지 제공한다고 하니까 혹시 단기간에 포트폴리오/프로젝트 경험이 필요하신 분에게는 이 책이 안성맞춤일거 같습니다.


끝으로 다른 건 아쉽지 않았지만 한 가지 이 책이 아쉬웠던 점은 아래 사진에서 보실 수 있으신것처럼 책 뒷면에 github주소가 없고 책 내용에 github 주소가 있어서 가끔 소스코드 찾아보러 갈 때 약간 귀찮았습니다. 매우 사소한거이긴 하지만, 책 뒷면에 github 주소를 넣어주셨으면 어떨까 하는 생각이 듭니다.




댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
가장 쉬운 독학 알고리즘 첫걸음 : 파이썬편 - 코딩 테스트에 대비하는 25가지 기초 알고리즘과 최적화 가장 쉬운 독학 알고리즘 첫걸음
마스이 도시카츠 지음, 박광수 옮김 / 동양북스(동양문고) / 2022년 5월
평점 :
장바구니담기


엄청 기대되는 책이네요 _ 알고리즘 항상 공부하다가 포기했는데, 이번엔 포기하지 않고 계속 꾸준히 했으면 좋겠습니다.

댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
사용자를 사로잡는 UX/UI 실전 가이드 - 시장에서 살아남는 화면 설계와 스마트한 데이터 활용법, 현실적인 브랜딩과 디자인 윤리까지
김성연 지음 / 루비페이퍼 / 2021년 12월
평점 :
장바구니담기




이 서평은 출판사로부터 도서를 지원받아 작성하였습니다.



언젠가 데이터 분석에 입문했을 때(사실 지금도 입문 수준인거 같긴 하지만요) 코딩만큼이나 도메인 지식이 중요하다고 강조하는 내용을 정말 귀에 피가 나도록 반복해서 들었습니다. 그 당시 코딩의 ㅋ자도 모르던(지금은 ㅋ자는 아는?!) 저는 우선 코딩 가지고 분석하는게 더 중요하고 멋있는 줄 알았습니다.


하지만 언젠가부터 도메인 지식이 왜 그토록 강조되는지 몸으로 체감하고 있습니다. 최근에 회사에서 UX/UI팀과 협업해서 데이터를 분석해야 하는 경우가 종종 있습니다. 로깅설계도 해야 하구요. 이 두가지 모두 UX/UI와 솔루션, 즉 도메인 지식을 탄탄히 갖추고 있지 않으면 접근하기도 어렵고 이리저리 분석을 해본다 해도 비즈니스 가치를 만들어낼 수 있는 좋은 분석을 내놓기 어려운거 같았습니다. 아니 분석 이전에 협업을 위한 소통조차도 어려운거 같더라구요. 저는 분석가로서의 언어와 행동을 훈련받았고, UX/UI팀은 해당 도메인을 잘 할 수 있도록 훈련받았으니까요. 


그래서 이 책을 잡고 지켜보기 시작했습니다. 모르는 UX/UI관련 개념들이 많다는 걸 알게되었고, 앞으로 꾸준히 공부해야겠다는 걸 느끼면서, 도메인 지식이 부족하니 좋은 분석이 나오지 않았다는 걸 다시금 느꼈습니다. 그럼에도 불구하고 출판사분들께는 죄송한 이야기를 드리자면, 이 책을 본 뒤에 엄청난 분석 인사이트를 뽑아낼 자신감이 솟구치진 않았습니다.


당연합니다. 이 책은 UX/UI 데이터 분석에 관한 책이 아니고 UX/UI 가이드 서적이기 때문입니다. 


다만 그 전에 파편적으로 알고 있던 UX/UI지식을 조금 더 연결시켜서 이해할 수 있었고, 특히 책 중간중간에 보이는 저자의 실무사례들을 보면서 회사 업무에 응용해볼 수 있지 않을까 기대감이 생겼습니다. 


책을 읽으며 UX/UI분석에서는 숫자에만 집착하기보다 숫자로 표현되지 않더라도 고객의 행동 흐름을 찾아내기 위해(물론 데이터로 입증하면 더더욱 좋지만) 그 흐름 속에서 분석을 하고 더 좋은 UX로 만들어내는 게 중요하다는 걸 배웠습니다. 


이 책에서 다른 부분은 수월하게 읽었습니다만, 픽셀 파트는 아무리 읽어도 제게는 복잡하고 난해하더군요. 이 부분은 전문가의 영역이라고 생각하고 스킵했습니다. 


꼭 UX/UI 담당자가 아니더라도, 데이터 분석가, 프론트 엔지니어와 같이 협업해야하는 포지션에 있다면 이 책을 읽어보시면 어떨까 싶습니다.



밑줄긋기

p.22

UX란 사용자가 어떤 제품이나 서비스와 상호작용하는 과정에서 얻는 총체적 경험을 의미한다. 가령 우리는 어떤 서비스를 사용하거나 관찰하고 또 교감할 때 행복감이나 편안함 혹은 불편함 같이 다양한 감정을 경험한다. 이러한 감정은 다음과 같은 요소들에 의해 형성된다.


- 배경(Context) : 사용자가 제품이나 서비스를 경험한 장소나 시간, 상황 같은 구체적 배경

- 요인(Motivation) : 행동을 일으키게 만드는 직접적인 요인

- 행동 방식(Behavior) : 제품 혹은 서비스를 사용할 때 발생하는 특정한 행동 방식

- 내적 욕구(Needs) : 어떤 것을 필요로 하는 내적 욕구

- 정서적 반응(Attitude) : 대상에 대해서 갖는 인지적, 정서적 반응


p.56~57


p.59


p.61

해상도의 기준은 서비스를 이용할 사용자가 되어야 한다. 사용자를 고려하지 않고 '요즘 많이 쓰인다'는 이유로 해상도를 결정한다면 문제가 발생한다. 예를 들어 새로운 기기 보급률이 상대적으로 낮은, 중장년 또는 노년층을 대상으로 한 서비스의 해상도에 최신 기기만 고려한다면 문제가 생길 수 있다. 반대로 MZ 세대가 대상인 서비스에선 지나치게 낮은 해상도까지 고려할 필요가 없을 것이다.


p.63

만약 하나의 앱에서 각 페이지를 디자이너 A는 픽셀 100개로 디자인을 하고 디자이너 B는 픽셀 200개로 디자인을 하면 어떻게 될까? 들쑥날쑥한 선명도에 이용자는 혼란과 불편을 겪을 것이다. 따라서 면적당 몇 개의 픽셀을 써야 한다는 기준이 생겨났다. 픽셀이 들어가는 최소 면적을 1인치(2.54cm)로 정한 것이다. 이 최소 면적을 단위로 만들었는데 이 단위를 가리켜 픽셀 밀도 혹은 ppi(pixel per inch)라고 한다. 앞서 두 원의 1인치당 픽셀 수를 이 단위로 표현하면 왼쪽 원은 10ppi, 오른쪽 원은 20ppi다. 같은 면적이라도 ppi가 높을수록, 즉 픽셀이 더 많을수록 세밀한 표현을 할 수 있다.


그렇다면 1인치당 픽셀 밀도가 높으면 무조건 좋은 걸까? 그렇지는 않다. 웹은 보통 72ppi를 기준으로 디자인한다. 이 수치의 기원은 애플에서 출발한다. 1983년 겨울, 애플의 최초 프린터인 ImageWriter는 144ppi로 설계됐다. 당시 디자이너들은 모니터에서 보이는 이미지의 크기와 출력물의 크기가 같으면 좋겠다고 생각했다. 모니터에서 볼 때와 달리 정작 출력하면 이미지 크기가 작거나 큰 경우가 빈번했기 때문이다. 이때 프린터 해상도의 절반인 72ppi 모니터에서 디자인하고 인쇄해 보니 모니터에서 본 이미지와 인쇄물에서의 이미지 크기가 거의 일치하는 것을 알 수 있었다. 이러한 정확도는 대중으로부터 큰 호응을 얻었다. 인쇄에서 시작된 기준이 오늘날 디지털 픽셀 밀도의 기준까지 연결된 것이다.


p.64

ppi가 가장 큰 영향을 미치는 요소는 이미지 크기다. 예를 들어 같은 모니터 두 대의 해상도를 각각 2560 x 1440과 1600 x 900으로 설정했을 때 2560 x 1440 해상도에서 아이콘이 더 작아지는 것을 알 수 있다. 이는 같은 면적이라도 픽셀 밀도가 높으면 픽셀이 압축돼 크기가 작아지는 속성 때문이다.


p.66

디스플레이 기술이 진화할수록 사용자들은 더 선명한 화면을 선호했다. 그렇게 2010년 대중의 요구와 기술이 만난 사건이 일어났다. 바로 애플이 발표한 '레티나 디스플레이'를 탑재한 아이폰 4의 출현이었다. 당시 아이폰 3G의 픽셀 밀도는 162.97ppi였다. 이는 모바일 적정 시청 거리에 필요한 픽셀 밀도보다 모자라 지금 보면 다소 흐릿하게 느껴진다. 레티나 디스플레이는 인치당 픽셀 밀도를 2배 늘려 탁월한 선명도를 보여 주었다.


초기 레티나 디스플레이의 픽셀 밀도는 2배에 불과했지만 기술이 발전함에 따라 3배로 점차 늘어나기 시작했다. 현재 iOS는 1x, 2x, 3x까지, 수많은 디바이스를 가진 안드로이드는 0.5x, 1x, 1.5x, 2x, 3x, 4x까지 픽셀 밀도를 지원한다. 실제 우리가 디바이스에서 보는 픽셀 밀도는 논리적 해상도, 물리적 해상도 그리고 다운 샘플링이라는 단계를 거쳐 기기에 적용되는데 이를 픽셀 밀도 변화과정이라고 한다.


p.71

안드로이드의 기준 단위에는 DP와 SP가 있다.


DP는 'Device independent pixel'의 약자로, 픽셀 밀도로부터 독립된 단위다. SP는 'Scale independent pixel'의 약자로, 글자 크기와 폰트만 독립적으로 변환이 가능하다는 뜻이다.


p.74

초기 스마트폰 시장은 네이티브 앱을 중심으로 형성되었고 지금도 가장 대중적인 모바일 개발 형식이다. 사용자 기기에 저장된 사진, 카메라, 캘린더, 주소록에 접근 권한을 가질 수 있다는 점도 네이티브 앱의 큰 장점이다. 덕분에 기기에 저장된 고유 정보를 활용해 사용자가 일일이 정보를 입력해야 하는 번거로움을 줄일 수 있다. 이러한 특징 때문에 네이티브 앱은 고성능 게임이나 카메라, GPS 등 센서를 활용한 앱 제작에 많이 활용된다.


p.75

하이브리드 앱은 네이티브 앱과 웹앱의 장점을 모두 가진 형태다. 겉으로 보기에는 네이티브 앱 같지만 실제로는 웹을 기반으로 하고 있다. 콘텐츠는 HTML 방식으로 제작하며 최종 앱 배포에 필요한 패키징 처리는 안드로이드, iOS에서 개발한다. 때문에 앱스토어나 구글 플레이 스토어 같은 플랫폼에서만 다운로드할 수 있다. 


하이브리드 앱은 앱 안에서 웹 페이지를 불러오는 방식이므로 한 번 설치하면 네이티브 앱이 가지고 있는 업데이트의 번거로움이 해결된다. 하지만 사용자의 네트워크 환경에 따라 속도가 일정하지 않다는 단점이 있다. 그럼에도 하나의 앱으로 다양한 웹 환경에 대응할 수 있다는 점은 하이브리드 앱의 매력이다. 대형 쇼핑몰이나 포털 사이트가 하이브리드 앱을 선호하는 이유이기도 하다.


패키징 : 최종 앱 배포를 위해 기능별로 실행 파일을 묶어 만든 설치 파일. 예를 들어 안드로이드 패키지 파일의 확장자는 .aab .apk다.


p.76

방식별 특징네이티브 앱모바일 웹앱하이브리드 앱
디바이스 고유기능 접근높음낮음중간
UI의 유려함높음중간중간
업데이트 유연성낮음(항상 앱스토어)높음높음
개발 난이도높음중간높음


p.79

와이어프레임이 설게 도면에 가까웠다면 프로토타입은 실제와 비슷하게 입체적으로 구현한 모형에 가깝다. 이때 구현 단계에 따라 피델리티 레벨(Fidelity level)을 나눌 수 있다. 피델리티란, '성실도' 또는 '충실도'라는 뜻으로, 말 그대로 구현한 프로토타입의 기능과 디자인을 얼마나 충실하게 구현했느냐를 뜻한다. 구현한 수준에 따라 low fidelity와 high fidelity로 구분한다.


p.86~87

효과적인 유저 스토리 작성법


와이어프레임 제작이 끝났다면 이를 개발자에게 효과적으로 전달할 필요가 있다. 이때 '유저 스토리'라는 설명 방식을 알아두면 용이하다. 유저 스토리란 개발에서 '요구사항'이라고 부르는 시스템의 기능 설명을 '사용자 관점에서 이야기하는 것'을 말한다. 서비스를 만들다보면 다양한 태스크가 생기는데 이를 각각 유저 스토리로 작성해 두면 개발자와 완성도 높은 커뮤니케이션을 할 수 있다. 유저스토리의 기본 틀은 다음과 같다.


{사용자}는 {태스크}를 수행할 수 있다.


지금부터 인스타그램 하이라이트에 사진을 추가하는 예시를 통해 유저 스토리 작성법을 자세히 알아보자.


<인스타그램 하이라이트 업로드 과정>

1. 인스타그램 앱을 연다

2. 하단 탭의 프로필 사진을 눌러 프로필로 이동한다.

3. 프로필 바이오 아래에서 <새로 만들기>를 선택한다.

4. 게시해 둔 스토리 중에서 하나를 선택한다.

5. 표지를 추가하고 하이라이트의 이름을 쓴다.

6. <만들기>를 클릭한다.


이 과정을 유저 스토리의 기본 틀로 만들면 다음과 같다


{우디}는 {인스타 하이라이트에 사진 업로드}를 수행할 수 있다.


As a (사용자) -> {우디}

I want to (무엇을 원하는지) -> {인스타그램에 하이라이트를 업로드하고 싶다}

So that(수행함으로써 얻는 이득) -> {일상을 기록하기 위해서}


여기서 다음과 같은 인수 조건을 유저스토리에 추가한다면 디자이너가 원하는 기능을 더 확실하게 전달할 수 있으니 참고 바란다.


Acceptance Criteria(인수 조건)

Where {인스타 프로필 페이지에 진입한 상태에서}

When {프로필 하단 "+"버튼을 확인 후 클릭하면}

Then {사진 선택 후 하이라이트를 추가할 수 있다}

or {사진을 복수 선택하고 싶을 때}

And {하이라이트에 있는 기존 사진에서 1개 이상 선택할 수 있다}


p.104

주요 경쟁사들을 토대로 파악한 기능 비교 표


경쟁사/기능영상 불러오기영상 효과(필터)영상 길이 조절수정 기능움직이는 스티커배경효과움직이는 템플릿사진 다중 선택
UnfoldOO
OOOOO
MadeOOOO
O
O
TezzaOO
O


O
InstoriesOOOOOOOO
SeanOO

O
O
Story chicOOOO
OO
AshOO
O


O


p.120~122



p.123

정육점에서 직접 고기를 구매할 땐 눈으로 고기 두께를 볼 수 있지만, 온라인에선 고기 두께에 관한 정보를 수치로만 볼 수 있다. 당시 정육각을 비롯한 대부분의 온라인 정육점이 이런 방식으로 두께를 표현하고 있었다.


하지만 사용자들의 리뷰나 문의 전화에서 "상품은 좋은데 두께가 머릿속에서 잘 그려지지 않는다"라는 의견이 다수였다. 디자인적인 개선이 필요한 상황이었다. 당시 해당 수치들(11mm/16mm/24mm)은 육류 전문가는 널리 사용하는 익숙한 두께 표기였지만 일반인들에게는 낯선 수치였던 것이다. 용도를 표기하긴 했지만 글자만 있어 한눈에 잘 들어오지 않았다.


따라서 두께를 쉽게 비교할 수 있도록 누끼 컷을 활용해 육류의 두께를 시각적으로 보여주는 새로운 UI를 만들어 신속히 업데이트를 진행했다.

업데이트 이후 얼마 지나지 않아 두께에 대한 사용자 문의나 부정적 의견이 대폭 줄었고 이후 축산 서비스에서 널리 통용되는 UI 패턴이 되었다.


p.127~128

어피니티 다이어그램 진행 과정


1단계 : 수집한 정성적 데이터를 노란색 포스트잇에 적어 쭉 나열한다. 이 포스트잇 하나하나를 어피니티 노트(Affinity Note)라고 부른다(포스트잇 개수는 보통 50~100개가 적당하다).


2단계 : 연관성이 높은 어피니티 노트끼리 그루핑한다(중복되거나 가치 없는 포스트잇은 제거한다)


3단계 : 그루핑한 그룹들의 연관성을 고려해 파란색 포스트잇으로 어피니티 헤더(Affinity Header)를 만든다


4단계 : 몇 개의 어피니티 헤더가 생겼다면 빨간색 포스트잇으로 전체를 총괄하는 주제인 어피니티 슈퍼헤더(Affinity Super Header)를 만든다.


5단계 : 포스트잇 하나하나에선 보이지 않았던 인사이트나 패턴을 도출하고 완성된 어피니티 다이어그램 월(Affinity Diagram Wall)을 보며 리뷰를 한다(필요시 사진으로 남긴다)

어피니티 다이어그램의 가장 큰 장점은 여러 사람이 하나의 벽 앞에서 데이터를 식별하고 우선순위를 함께 만들어가는 것이다. 덕분에 보이지 않던 패턴과 인사이트를 발견해 문제를 보다 잘 해결할 수 있게 된다.


p.131~135


p.136~137

사용자 니즈를 중심에 두고 아이디어를 도출하는 대표적인 질문법으로 HMW(How Might We Questions?)가 있다. 이는 "어떻게/우리가/~할 수 있을까?"로 질문을 던져보는 것이다. 이 질문법은 미국의 다국적 기업인 프록터 앤드 갬블 사에서 시작되었다. 다음은 당시 프록터 앤드 갬블이 경쟁사 제품을 따라잡기 위해 사용한 HMW의 유명한 예시다.


- 어떻게 하면 더 나은 초록색 스트라이프 비누를 만들 수 있을까? (X)

- 어떻게 하면 소비자에게 조금 더 상쾌한 느낌을 주는 비누를 만들 수 있을까? (O)


이렇게 질문을 바꾸는 것만으로 몇 시간 동안 수백 개의 가능성 있는 아이디어가 도출됐고 결국 프록터 앤드 갬블은 성공적인 제품을 만들 수 있었다.


이처럼 질문을 바꾸는 기법, HMW는 활용성이 무궁무진하다. 가령 실무에서는 사용자 시나리오를 평서문 형태로 작성한 뒤 사용자 여정 스텝으로 변환해 HMW를 함께 활용하는 경우가 많다. 또, 어피니티 다이어그램의 슈퍼 헤더(사람들은 배송에 있어 기능적인 디자인을 추구한다)를 HMW(어떻게 하면 소비자에게 더 기능적으로 배송 디자인을 제공할 수 있을까?)로 바꿔볼 수도 있다. 다음은 소비자가 겪고 있는 문제를 짧은 시나리오로 만들어 HMW를 적용해본 예시다.


A는 혼자 자취하는 1인 가구로, 피자를 무척 좋아한다. 주말이면 피자를 한 판 시키지만 늘 끝까지 먹지 못해 반을 남기게 된다. 남은 피자는 소분 포장을 해서 냉동실에 얼려 두고 먹고 싶을 때마다 꺼내서 해동해서 먹지만, 처음 시켜 먹을 때의 피자 맛에는 많이 미치지 못해 늘 오래된 피자를 버리게 된다.


이를 사용자 여정 스텝으로 나눈 다음 HMW로 질문할 수 있는 부분을 작성하면 다음과 같다.


1. 배달 앱을 켜서 동네 피자 가게를 검색한다.

    - 어떻게 우리가 1인 가구 전용 피자 가게를 발굴하고 소비자와 연결할 수 있을까?

2. 먹고 싶은 피자를 주문한다.

    - 어떻게 우리가 주문한 피자는 남지 않을 것이라는 확신을 줄 수 있을까?

3. 피자가 도착한다.

4. 피자를 먹는다.

5. 남은 피자를 소분 포장해 냉동실에 얼린다.

    - 어떻게 우리가 남기지 않고 한 번에 다 먹을 수 있는 1인 피자를 제공할 수 있을까?

6. 다음날 먹는다.

    - 어떻게 우리가 다음날 먹는 피자도 맛있게 먹는 방법을 제공할 수 있을까?

7. 오래된 피자는 버린다.


이렇게 추출한 HMW 질문에서 다음과 같은 아이디어를 도출할 수 있다.


- 1인 가구라면 1인 피자를 구매할 수 있는 가게를 상단에 노출시키는 기능

- 1인용에 적당한 양, 형태의 피자 개발

- 남은 피자를 다음날에도 맛있게 먹는 방법 또는 다른 요리로 활용할 수 있는 레시피를 QR로 제공


만약 아이디어 도출에 고민이 된다면 다음 세 가지 방법을 고려하면 좋다.


- Crazy 8's : 구글 디자인 스프린트에서 등장한 아이디어 도출법으로, 팀이 모여 각자 8분 동안에 8등분한 종이에 빠르게 아이디어를 스케치한다. 이때 중요한건 질보다 양이다.

- 역 브레인스토밍 : 해결하고자 하는 과제를 한 문장으로 정의한 뒤, 해결에 완전히 반대되는 질문을 한다. 예를 들어 '어떻게 하면 최악의 랜딩 페이지를 만들 수 있을까요?' 같은 식이다. 이후 원래 해결하고자 했던 문제로 다시 돌아가 보면 더 나은 대안이 떠오를 수 있다.

- 스캠퍼 : 브레인스토밍 기법으로 7가지 원칙에 맞춰 질문하고 발상하는 기법이다. 첫 글자를 모아 SCAMPER라고 명명한다.


1) 대체하기(Substitute) : A를 B로 대체할 수 있을까?
2) 결합하기(Combine) : A와 B를 합칠 수 있을까?

3) 응용하기(Adapt) : A를 B로도 사용할 수 있을까? A와 비슷한 건 없을까?

4) 수정 확대 축소하기(Modify Magnify Minify) : A를 수정하거나 확대 혹은 축소하면 어떨까?

5) 전혀 다른 용도로 사용하기 (Put to other uses) : A를 Z로도 사용할 수 있을까?

6) 제거하기(Eliminate) : A의 일부를 제거하면 어떨까?

7) 반전 재정렬하기 (Reverse Rearrange) : A와 B의 역할을 바꿔보면 어떨까?



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
2050 에너지 제국의 미래 - 에너지 전쟁의 흐름과 전망으로 읽은 미래 경제 패권 시나리오, 2022 세종도서 교양부문
양수영.최지웅 지음 / 비즈니스북스 / 2022년 4월
평점 :
장바구니담기


이 글은 출판사의 도서 지원을 받아 작성하였습니다.




ESG, 메타버스, 탄소중립, 수소경제, 공유경제, 친환경, 탈원전과 같은 키워드가 하루에도 몇 번씩 등장합니다. 신문을 보면 계속해서 ESG라는 개념이 강조된다 그러면서 패션 산업도, 기존 굴뚝 산업도 마찬가지로 영향을 받는다는 기사를 내보냅니다. 하지만 신문은 매우 좁은 현상을 보여줄 뿐 어떤 흐름으로 여기까지 전개되어 왔는지 보여주질 못하는 경우가 대부분입니다.


위에서 말했던 키워드가 갑자기 하늘에서 뚝 떨어졌을리 없습니다. 이전 과거의 역사 속에서 흐름이 이어져오다가 지금 시대가 주목하자 떠오른 것일 뿐입니다. 따라서 과거의 역사 속 흐름을 살펴봐야 하는데, 이 책을 보다보면 어떤 흐름이 이어져왔는지 세밀하게 추적하고 관찰할 수 있습니다. 이 부분에서 매우 큰 강점을 가지고 있습니다. 


위에서 말한 키워드는 보통 매우 '선한'느낌의 키워드입니다. 기후변화의 위기로부터 인류가 멸종하지 않기 위해서 필요한 '선한' 것으로 보이기 때문입니다. 하지만 그 속을 들여다보면 각 국가, 각 기업별로 계속해서 주판알을 굴리고 있고 치열하게 경쟁하고 있다는 걸 알 수 있습니다. 각자 자신이 유리한 판으로 만들기 위해 분주히 움직이고 고민하고 있다는 걸 이 책은 보여줍니다. 


특히 최근처럼 국제질서가 신냉전이라는 이름으로 변화하는 시기에, 위에서 말했던 개념들이 어떻게 패권경쟁에도 사용되는지 확인할 수 있습니다.


결국 ESG든 무엇이든 가치중립적일 수 없다는 의미입니다. 이상은 매우 숭고하지만 현실속에선 각자의 이해관계에 맞게 해석하고 주장하기 때문입니다. 


책을 읽다보면 한국의 상황이 그리 녹록치 않다는 걸 알 수 있고, 만약 계속 이대로 간다면 기후변화 위기 이전에 산업 경쟁력 측면에서 위기가 발생할 수 있다는 걸 알 수 있습니다. 그렇다고 제조업 중심의 국가에서 급진적으로 친환경의 산업구조로 변화할 수도 없는 노릇입니다. 더구나 국토도 좁은 나라라서 재생에너지를 갑자기 늘리기도 어렵습니다.


비관적이지만 현실이 그렇다면 그 제약조건을 받아들이고 그 속에서 최적의 해를 찾아내는 게 최선일 겁니다. 

이 현실은 단순히 제조업에만 영향을 미치지 않을 겁니다. 책에서도 나오는 내용이지만 메타버스나 ESG같은 개념이 이런 현실 속에서 부상하는 트렌드이고 이런 트렌드는 기존 굴뚝 산업이 아닌 첨단 기술 산업의 영역에 해당하는 경우도 많습니다. 따라서 이런 흐름을 읽는건 제조업계 종사자만이 아닌 모든 산업에 있는 사람들이 읽어야 한다는 의미이기도 합니다.


탄탄한 자료와 촘촘한 논리가 인상적이었습니다.


밑줄긋기



p.7

다양한 미래 예측의 모습은 한 가지 공통점을 갖습니다. 모두 자원 소비를 줄이고 에너지 효율을 극대화하려 한다는 것입니다. 소유 경제가 공유 경제로 전환되어 자원 활용률을 극대화하고, 디지털 기술과 메타버스 산업은 실물 세계를 가상현실로 대체하면서 자원과 에너지 소비를 최소화합니다. 또 인공지능 기술은 전력망과 교통망을 제어해 에너지 사용을 줄일 것입니다. 이러한 변화들이 일어나는 근본적 이유는 자원이 무한하지 않기 때문입니다.


p.26

'리커창 지수' Li Keqiang Index라는 것이 있다. 시진핑 주석 다음가는 중국의 실력자인 리커창 국무원 총리가 중국 GDP 통계를 신뢰할 수 없어서 대안으로 참고한다는 세 개 지표를 이르는 말이다. 그는 전력 소비량, 철도 운송량, 은행 대출 증가율로 경제 현황이나 성장률을 파악한다고 밝혔다. 물론 그가 총리가 되기 전의 발언이다. 중국이라는 세계 최대의 생산 집단에서 다양한 데이터를 생성하고 취합하는 과정에서 오류는 있을 수 있다. 그래서 가장 단순한 에너지(전력) 소비량을 경제 성장의 중요한 척도로 삼은 것이다. 이것은 그만큼 부와 에너지의 관계가 밀접하다는 사실을 반영한다. 철도 운송량도 에너지 사용량과 비례 관계가 있고, 은행 대출 증가 역시 에너지 사용을 늘리면서 생산 활동을 증가시킨다.


p.28

미국의 학자 노엄 촘스키는 미국이 일본과 동맹을 맺고 일본의 충성을 보장받을 수 있는 이유는 미국이 중동 산유국을 장악하고 호르무즈 해협 통과를 보장하고 있기 때문이라고 주장한다. 같은 맥락에서 미-중의 남중국해 분쟁 또한 이해할 수 있다. 남중국해가 중요한 이유 중 하나는 그곳이 에너지가 드나드는 길목이기 때문이다. 그 길목에 한국과 일본 등 주요 석유 수입국이 의존하고 있다. 만약 중국이 남중국해를 장악하면 아시아의 수입국은 미국이 아닌 중국의 눈치를 봐야 할지 모른다. 우리가 생각하는 것 이상으로 석유라는 자원은 부의 원천으로서 복잡한 국제 관계의 중요한 퍼즐 조각처럼 작용하고 있다.


p.37

최근 국제뉴스에서 가장 많이 언급되는 소식이 미국과 이란과의 핵 협상이다. 2018년 5월 트럼프 행정부가 이란 핵 합의로 통칭되는 포괄적 공동행동계획(JCPOA)에서 탈퇴한 이후, 미국 정부는 이란에 대해 강도 높은 경제 제재를 실시하고 있다. 그중 핵심이 이란의 원유 수출금지다. 2021년 출범한 바이든 정부는 트럼프 정부와 달리 전향적으로 이란과 핵 합의 복원 협상을 재개하리라 예상됐다. 또 원유 수출 중단으로 경제적 어려움을 겪는 이란이 핵 협상에 적극적으로 임해주리라 기대했다. 이러한 기대감 속에서 2021년 4월에 이란 핵 합의 복원 협상이 오스트리아 빈에서 시작됐다. 그러나 이후 2022년 1월까지 일곱 차례 협상이 있었지만 합의에 이르지 못했다. 


원유 수출 금지와 해외 자산 동결 등 강도 높은 제재에도 불구하고 이란이 4년 가까이 버틸 수 있었던 배경에는 석유와 중국이 있었다. 블룸버그에 따르면 중국은 2021년 연중 지속적으로 하루 40만~60만 배럴의 원유를 이란에서 수입했다. 2021년 이란의 원유 생산량은 하루 약 250만 배럴인데, 그중 약 5분의 1을 중국이 사준 것이다. 이란의 내수로 소비되는 물량을 고려할 때 수출 물량의 대부분을 중국이 구매한 것이다. 


p.39

석유 제재는 무력을 동반하지 않는 가장 강력한 수단이면서 동시에 무력을 동반할 수밖에 없게 만드는 요인이었다. 1941년 일본의 진주만 기습의 발단이 된 사건은 미국의 대일 석유 금수조치였다. 당시 일본은 석유의 대부분을 미국에 의존하고 있었다. 그런데 1941년 7월, 일본이 프랑스령 인도차이나를 점령하자 미국은 대일 석유 금수조치를 단행한다. 그로부터 4개월 후 일본은 진주만을 기습했다. 당시 일본은 원유를 구할 수 없다면 아무것도 할 수 없는 상황이었다. 따라서 주요 원유 생산지였던 인도네시아 등에서 원유를 수송해야 했다. 이를 위해서 원유 수송을 방해할 수 있는 미국 태평양 함대를 무력화시킬 필요가 있었다. 


2차 세계대전의 가장 처절한 전투 중 하나였던 1942년 독일과 소련 간 스탈린그라드 전투도 석유가 중요한 원인이었다. 모스크바가 아닌 스탈린그라드에서 양국이 수백만 명의 사상자를 내면서 6개월 가까이 처절하게 싸울 수밖에 없었던 이유는 그곳이 소련 남부의 캅카스 유전지대와 소련 북부의 공업지대를 잇는 석유의 공급로였기 때문이다. 


p.60~61

미국이 이란을 견제하는 배경에는 이란에 대한 근원적인 불안감이 있다. 만약 미국이 중동 문제에 개입하지 않고 전면 철수할 경우, 지역 패권을 장악할 가능성이 가장 큰 국가는 이란이다. 중동의 다른 나라들이 석유에만 의존하는 취약한 산업 구조를 가진 반면, 이란은 '중동의 독일'이라고 불릴 정도로 제조업이 발전되어 있고 과학 기술도 상당한 수준이다. 게다가 중동에서 거의 유일하게 식량을 자급할 정도로 농업도 발전되어 있다. 석유 매장량은 세계 4위, 다른 광물자원도 다른 중동 국가와 비교하면 압도적으로 많다. 군사력에서도 이란은 2년의 군 복무를 의무화하는 징병제를 통해 양적으로 사우디와 이라크 등 주변국을 압도하고 있다. 무엇보다 인구가 약 8,600만 명으로 사우디(3,600만), 이라크(4,200만)의 두 배가 넘는다. 인구 구성에서도 약 절반 이상이 30대 이하이기 때문에 지금이라도 경제 제재가 풀리면 가장 역동적으로 성장할 잠재력을 가졌다.


더욱이 다른 아랍 국가들은 수니파 대 시아파, 세속주의 대 원리주의, 쿠르드족 대 아랍 등 다양한 이유로 나뉘어 싸우지만, 이란은 대부분 페르시아 민족이자 시아파라는 점에서 내부 분쟁의 위험도 적다. 역사상 최초로 여러 대륙에 걸친 대제국을 건설한 페르시아의 후예라는 자부심과 그 역사에 기초한 민족주의 전통을 가진다는 점에서 더욱 그러하다. 한마디로 이란은 중동에서 인규 구모와 구성, 경제력, 산업 수준, 군사력까지 모든 면에서 다른 국가들을 압도한다. 따라서 만약 중동에서 미국이 철수한다면 중동 분쟁의 큰 축인 시아파-수니파 간 헤게모니 대결이 이란이 주도하는 시아파가 승리할 수 있다. 당연히 이는 미국이 중동에서 추구하는 이익에 치명적인 요인으로 작용할 수 있다.


p.64~65

이란 핵 합의 복원의 또 다른 동기는 2022년의 석유시장이 트럼프 행정부가 핵 합의를 탈퇴했던 2018년과는 완전히 다르다는 데 있다. 이란 제재 해제는 거대 산유국 이란의 석유시장 복귀를 의미한다. 세계 최대 산유국 미국으로서는 이란의 복귀가 낳을 경제적 영향을 무시할 수 없다. 미국의 핵 합의 탈퇴와 이란 제재가 시행됐던 시점은 2018년 5월로, 셰일혁명으로 미국의 원유 생산이 급증하던 시기였다. 당시 세계 석유시장에 공급이 넘쳤다. 그러나 미국은 이란 제재를 통해 새로운 판매처를 쉽게 확보할 수 있었다. 그중 하나가 한국이었다. 한국은 연간 1억 배럴을 이란에서 수입해왔으나 이란 제재 이후에는 단 한 방울도 이란에서 들여오지 못하고 있다. 그 대신 연 1억 배럴 이상을 미국에서 도입하고 있다. 대형 산유국 미국 입장에서는 자국 원유 수출에 미칠 영향을 고려해 이란의 복귀 시점을 조율할 필요도 있었다.


p.68~69

노르트스트림 가스관이 생기기 전, 러시아가 유럽으로 가스를 공급하기 위해서는 우크라이나를 경유하는 가스관들을 사용해야 했다. 반면 노르트스트림은 러시아 서부 연안에서 발트해를 거쳐 독일로 연결된다. 따라서 우크라이나를 거치지 않는다. 우크라이나를 경유하지 않고 러시아와 유럽을 잇는 대형 가스관의 개통은 지정학적으로 매우 큰 의미가 있다. 먼저 우크라이나 입장에서는 전쟁 억지 수단을 잃는 결과를 갖는다. 우크라이나를 경유하는 가스관들이 주요 운송 수단일 때 우크라이나는 그 가스관을 레버리지로 러시아에 대항할 수 있었다. 앞서 언급했듯 오늘날 국제관계에서 군사적 수단을 제외하고, 상대를 가장 강력하게 타격할 수 있는 것은 석유와 가스 거래를 막는 것이다. 공급자는 가장 큰 경제적 이윤을 잃게 되고, 수입자는 상버과 일상의 근간이 되는 에너지 자원을 잃기 때문이다. 과거 우크라이나도 러시아가 위협할 경우 자국 경유 가스관을 잠그거나 파괴하겠다는 카드를 쓸 수 있었다. 그러나 노르트스트림 1, 2 가스관은 우크라이나를 경유하지 않는다. 2021년 9월 노르트스트림 2 가스관이 완공되고, 그 직후인 10월부터 러시아가 우크라이나 국경에 15만 병력을 배치하며 군사적 위협을 고조시킨 것은 우연이 아니다. 이때부터 러시아는 국가 주력 산업의 손실 없이 우크라이나를 침공할 수 있게 된 것이다. 


p.75

독일로서도 노르트스트림 가스관 건설에 정치적 부담을 느꼈지만 강행할 수밖에 없는 이유가 있었다. 2000년 이후 유럽의 텃밭인 북해에서 원유와 가스 생산량이 조금씩 감소하고 있었다. 특히 천연가스 생산량은 2010년 이후 10년간 약 30% 감소했다. 따라서 유럽 최대 에너지 소비국인 독일에게 대체 공급처 확보는 중요한 이슈였다.


그리고 메르켈 총리는 2011년 후쿠시마 원전 사고 이후 적극적인 탈원전 정책을 추진했다. 그 결과 2010년 발전량의 약 23%를 차지하던 독일의 원자력 비중은 2020년 약 11%로 감소했다. 탈원전 정책의 옳고 그름을 떠나 원자력의 빈자리는 다른 에너지원이 채워야 한다. 그런데 그 공백을 태양광과 풍력만으로 채울 수는 없었다. 독일은 세게에서 재생에너지를 가장 열심히 확대한 국가지만, 그럼에도 불구하고 여전히 발전량의 약 24%는 석탄에 의존하고 있다. 영국과 프랑스가 2% 미만의 석탄 발전 비중을 보이는 것과 비교되는 부분이다.


p.105

아직도 10억 이상의 인구가 전기가 들어오지 않는 지역에 살고 있다. 이것이 에너지 수요 증가의 중요한 근거다.


- '2020 엑손모빌의 연례보고서'중에서


p.123~124

일반적으로 재생에너지가 확대되면 석유 수요가 감소할 것이라고 생각한다. 그러나 앞에서도 이야기한 것처럼 이는 사실이 아니다. 아주 먼 미래라면 모를 일이지만, 중기적으로 재생에너지와 석유는 전혀 다른 용도의 쓰임을 이어갈 것이다. 그래서 서로의 수요를 잠식하기 어렵다. 이는 독일과 영국의 사례에서 잘 나타난다. 


현재 재생에너지(수력 제외) 개발과 사용에서 가장 앞선 곳은 유럽이고 그중에서도 독일과 영국이 선두를 달리고 있다. 독일은 수력을 제외한 재생에너지 비중이 세계에서 가장 높다. 독일은 이미 2019년 상반기에 발전에서 재생에너지가 차지하는 비중이 거의 50%에 달했다. 10여 년 전인 2009년에는 그 비중이 약 18%이었으니 10년 동안 독일은 재생에너지 확대에 매진하며 전기 생산 중 거의 절반을 재생에너지로 충당하는 국가로 도약한 것이다.


그럼 그동안 독일의 원유 소비량은 감소했을까? 그렇지 않다. BP가 매년 발표하는 통계에 따르면 2009년 독일의 원유 소비량은 일 234만 배럴이었고, 2019년에는 일 227만 배럴을 기록했다. 10년 전 소비 물량에서 약 7만 배럴 감소했다. 재생에너지 발전량은 두 배 이상으로 증가했지만 석유 소비량은 불과 2.9% 감소했다.


이것은 영국의 경우도 마찬가지다. 영국도 북해에서 불어오는 해상의 강한 바람을 이용해 풍력발전을 빠르게 확대하며, 독일 못지않게 재생에너지의 비중을 늘렸다. 영국은 2009년 이후 재생에너지의 발전 비중을 약 다섯 배로 증가시키면서 2019년 기준 약 37%의 전기를 재생에너지에서 얻었다. 그러나 원유 소비량은 독일처럼 같은 기간 불과 5.5% 감소에 그쳤다.


p.126~127

그렇다면 왜 재생에너지의 증가에도 불구하고 석유 소비량은 줄지 않는 것일까? 가장 중요한 이유는 재생에너지와 석유는 그 쓰임이 달라서 서로의 대체재가 아니기 때문이다. 조금 과장하면 둘은 마치 장화와 하이힐처럼 용도가 판이하게 다르다. 많은 사람이 우리가 쓰는 전기는 석유에서 온다고 생각한다. 그러나 석유를 이용한 발전 비중은 3~5% 수준이며 화력발전은 대부분 석탄과 천연가스를 사용한다. 석유의 가장 큰 용도는 휘발유, 항공유 등으로 가공되어 차량, 선박, 항공기 등의 연료로 쓰이는 것이다. 수송용 연료로 전체 석유의 약 50~60%가 소비되며, 그다음으로 플라스틱, 합성섬유, 합성고무 등 석유화학 제품의 원료로 약 15~20%가 소비된다. 그리고 남은 일부가 산업용, 난방용 연료나 기타 용도로 활용된다. 


반면 재생에너지는 전기 생산을 위한 발전용으로 대부분 사용된다. 재생에너지 중 비중이 가장 큰 수력으로 전기 생산은 가능하지만, 그것이 항공기와 선박의 연료는 될 수 없다. 풍력과 태양광 역시 전기생산의 연료가 될 수는 있지만 그 역시 일상에서 접하는 수많은 석유 화학 제품을 대체할 수는 없다. 한마디로 재생에너지는 발전용 에너지로 비중을 늘려갈 것이고 마땅히 그래야 할 테지만 그것이 석유를 대체할 수는 없다. 물론 전기차가 확산되면 전기가 석유를 대신해 자동차의 동력원이 될 수도 있다. 그러나 전기차 시대가 열린다고 해도 석유 소비가 감소하기 쉽지 않다. 우선 전기차는 소형차에 한정해 보급되고 있다. 전기차가 연료 소비가 많은 대형화물차 등 상용차 분야에서 쓰이기 위해서는 배터리 용량과 동력이 한 단계 더 발전해야 한다. 게다가 소형차 부문에서도 아직 의미 있는 비중이 아니다. 전기차 비중이 높은 독일과 영국의 상황을 살펴봐도 석유 소비에 미친 영향은 크지 않았다. 


p.129

앞으로 에너지 분야에서 중요한 사회적 합의는 재생에너지의 확대에 따라 독일처럼 원전을 줄일지 아니면 영국처럼 화력을 줄일지와 관련될 수 있다. 직설적으로 표현하면 원전은 탄소 배출이 없지만 위험하고, 화력발전은 저렴하지만 탄소와 미세먼지를 배출한다. 독일과 영국은 이 문제를 두고 각기 다른 선택을 했다. 독일은 핵물리학자를 나치의 부역자로 인식한 역사가 있고, 영국은 1950년대 런던 스모그 사건으로 1만 명 이상의 사망자가 발생했던 트라우마가 있는데 이러한 역사적 배경이 그들의 에너지원 선택에 영향을 주었다는 주장도 있다. 그들의 역사적 배경과 무관하게 그리고 그 선택이 무엇이건 간에, 그들에게 석유는 여전히 주요 에너지원 역할을 유지하고 있다는 점을 염두에 둘 필요가 있다.


p.135~136

지하 석유의 부존량을 얘기할 때 일반적으로 매장량이라고 부른다. 엄밀하게 구분하면 매장량은 시추를 통해 유전이 발견된 후 상업성이 충분하여 개발하기로 확정되었을 때 부르는 명칭이다. 즉 고정된 숫자가 아니라 상업성과 개발 가능성에 따라 변하는 유동적 숫자다. 개발이 확정되기 전에는 매장량이라 부르지 않고 '자원량'이라고 한다. 개발이 확정된 매장량은 어느 정도 확실한 숫자인 반면 자원량은 산출하는 데 불확실성이 많다. 따라서 지구상에 남아 있는 자원량을 정확히 예측하기는 불가능하다. IEA가 2018년 말에 추정한 전 세계 남아 있는 매장량과 자원량의 합은 6조 1,650억 배럴이다. 그런데 자원량의 경우 불확실성을 고려하여 이를 완전히 인정하지 않고 일부만 실제 매장량으로 전환된다고 본다. 미국 석유평가공학회(SPEE)의 조사를 근거로 개발 가능한 자원량(매장량 포함)을 추정해보면 2조 9,545억 배럴에서 3조 8,475억 배럴 범위 내에 있는데, 이를 현재의 소비량으로 나누어보면 가채년수는 85년 내지 111년으로 계산된다. 다시 말해 우리가 쓸 수 있는 원유의 양은 매장량으로 확인된 것이 48년이고, 잠재적인 자원량을 포함하더라도 약 100년에 불과하다.


p.146~147

혹자는 원자력을 활용하면 재생에너지 개발을 하지 않아도 된다고 생각하는데 이는 맞지 않다. 원자력발전은 에너지 전환 과정에서 재생에너지의 역할 부담을 조금 덜어주는 역할을 할 수 있을 뿐이다. 현재 한국의 발전량에서 원자력 발전 비중은 약 27%다. 탈원전을 하지 않고, 원전을 현 수준의 두 배(27% -> 54%)로 확대한다 해도 전력 생산의 약 절반 정도만 감당할 수 있다. 물론 원자력도 충분히 활용해야 한다. 그러나 지역의 수용성과 환경 영향을 고려할 때 앞서 언급한 것처럼 원전을 두 배로 늘린다는 것도 비현실적이다. 한국은 국토가 좁다는 점에서 재생에너지만으로 탄소중립을 달성하기 어려울 수 있다. 따라서 원자력이 재생에너지와 함께 저탄소 에너지의 한 축을 차지할 필요도 분명히 있다. 그러나 그것이 비재생에서 재생에너지원으로 가는 흐름 자체를 막을 수 없다. 국내 전력 생산에서 석탄, 가스 등 화석연료가 차지하는 비중은 거의 70%에 이른다. 이것을 어느 하나의 에너지원만으로 대체할 수 없다. 한국은 재생에너지, 수소, 암모니아, 원자력 등 다양한 에너지원을 그 효용의 최대치까지 모두 활용해야 한다. 어느 하나의 에너지원이 독주할 수 있는 환경이 아니다.


주요국의 재생에너지 발전비중(2020년 기준)

구분미국중국독일영국프랑스캐나다일본한국세계평균
전체 발전량 중 재생에너지 비중20.6%29.0%46.7%44.9%25.0%68.8%21.7%7.2%28.6%

출처 : IEA, 'Monthly OECD Eletricity Statistics Revised Historical Data', 2021.


p.150

한국은 재생에너지의 한 축인 수력발전 여건이 다른 나라에 비해 불리하다. 재생에너지라고 하면 대부분 풍력과 태양광을 생각하기 쉽지만 가장 비중이 큰 재생에너지는 사실 수력이다. 세계 재생에너지의 60% 이상은 수력발전에서 나온다. 나머지 40%가 풍력과 태양광 등으로 구성된다. 재생에너지 비중이 최상위권인 나라들은 대부분 수력발전의 비중이 매우 높다. 물론 독일과 영국처럼 일부 유럽 국가는 풍력, 태양광 중심으로 높은 재생에너지 비중을 이루기도 했으나 재생에너지 비중 상위 10개국은 대부분 압도적으로 높은 수력 발전량을 보인다.


재생에너지 발전 비중이 세계 1위와 2위인 노르웨이와 브라질은 풍력과 태양광 때문이 아니라 지형의 선물인 수력 때문에 재생에너지 모범국이 되었다.


p.156~157

2019년 한국의 산업에서 제조업 비중은 28.4%로 EU의 16.4%보다 높다. 단순히 제조업 비중이 높을 뿐만 아니라 제조업 중에서도 전력 소비가 큰 철강, 자동차, 조선, 석유화학 등 중공업의 비중이 높다. 따라서 급격한 에너지 전환은 산업계의 부담으로 작용하고 경쟁력을 악화시킬 우려가 있다. 반면 유럽은 에너지 가격의 영향이 적은 금융, 법률, 관광 등 서비스업이 산업에서 큰 비중을 차지한다. 낮은 가격으로 경쟁하는 생필품보다는 고급 브랜드의 '명품' 사업도 발달하여 전기요금이 경쟁력의 주된 요소가 아닌 면도 있다. 따라서 탄소중립과 재생에너지 확대에 따른 부담이 다른 지역에 비해 상대적으로 덜하다. 탄소국경조정 등 탄소 배출량을 기준으로 국제 규제와 제도를 도입할 때도 가장 유리한 입장에 있다.


유럽과 한국의 발전량 및 GDP 순위(2020년)

구분독일영국프랑스이탈리아한국
연간 발전량(GWh)543,383300,184510,662273,150554,377
GDP 순위4위5위7위8위10위

출처 : IEA, 'Monthly OECD Electricity Statistics' 2021.


p.180

재생에너지의 '간헐성'을 보완할 수 있는 수단이 꼭 필요하다. 이때 유용한 수단이 바로 수소다(수소는 대표적 '신에너지'이며, '재생에너지'로 분류되지 않는다. 수소와 같은 신에너지와 태양광, 풍력 등의 재생에너지를 통칭하여 '신재생에너지'라 한다). 수소 중에서 가장 깨끗한 '그린수소'는 생산 과정에서 많은 양의 전기가 필요하다. 따라서 재생에너지가 잉여 전력을 생산할 때 그 전기를 수소 생산에 사용하면 잉여 전력을 버리지 않고 수소라는 새로운 에너지원으로 전환할 수 있다. 수소는 재생에너지의 불규칙한 전력을 이용할 수 있다는 점에서 가장 큰 의미를 갖는다. 다시 말해 수소의 가장 큰 효용은 재생에너지를 수소 형태로 저장하고 이동시킬 수 있는 에너지 캐리어의 기능이다. 또 수소는 재생에너지를 통해서만 친환경적인 생산이 가능하기도 하다. 이런 점에서 수소와 재생에너지는 서로 보완하며 함께 성장해 가야 하는 에너지원이다.


p.209~210

한국은 2021년 11월 발표한 1차 수소경제 이행 기본계획을 통해 2050년까지 연간 2,790만 톤의 수소를 100% 청정수소(블루수소 + 그린수소)로만 공급하겠다고 발표했다. 이 중 20%는 국내에서 생산하고, 40%는 자본과 기술 협력을 통해 호주 등 해외에서 생산하고 나머지 40%는 수입하겠다는 것이다. 이 계획의 현실화를 호주와 중동 국가들은 간절히 바랄 것이다. 그런데 이 계획의 실현 여부는 그들의 생산 비용이 얼마나 낮아질 수 있느냐에 달려 있다. 또 하나의 관건은 운송 기술의 발전이다. 현재 일본만 세계 최초이자 유일한 액화수소 운반선의 건조를 완료했다. 수소가 대량으로 활용되려면 액화수소 운송 선박이 대량으로 건조되어야 한다. 그러나 2022년 현재 단 한 척 건조된 액화수소 운반선이 단기량에 대량으로 건조되기는 힘들다. 한국 정부의 수소경제 기본 이행계획에서도 액화수소 운반선의 제품화 시기를 2031년으로 명시하고 있다. 즉 당분간 수소를 대량 운송하기 어렵다. 바로 이 지점에서 암모니아가 필요하다. 당분간은 수소(H)를 질소(N)와 결합해 암모니아(NH_3) 형태로 운송 후, 암모니아에서 다시 수소를 추출하거나 암모니아를 그대로 사용할 가능성이 높다. 상압 -253도에서 액화되는 수소와 달리 암모니아는 -34도에서 액화되고 밀도도 액화수소 대비 훨씬 높아 운송과 저장에서 압도적으로 유리하다.


암모니아는 에너지 캐리어인 수소를 이송하는 수소 캐리어로서 그 역할을 주목받고 있다. 단기적으로 가장 가능성이 높은 사업모델은 생산국-수요국 간 협력을 통해 국제 암모니아 공급망을 구축하는 것이다. 현재 일본은 사우디와 'Zero-Co2 암모니아 프로젝트'를 추진 중이며, 이를 통해 2020년 9월 세계 최초로 사우디아람코로부터 블루 암모니아 40톤을 도입했다.


p.220~221

IEA는 2021년 5월 <2050 넷제로> 보고서를 통해 세계가 2050년 탄소중립을 달성하기 위해 무엇을 해야 하는지에 대한 로드맵을 제시했다. 이 보고서는 예상대로 재생에너지의 급격한 확대가 필요하다고 말한다. 그리고 한 가지를 더 강조한다. 현재 전 세계가 사용하는 에너지 총량이 435엑사줄인데, 이것을 매년 약 1%씩 줄여서 2050년에 340엑사줄로 줄여야 한다는 것이다. 이를 위해 에너지 효율 개선과 사람들의 '행동양식 변화'가 있어야 한다고 주장한다.


많은 전문가와 미디어가 기후변화의 심각성을 말한다. 이에 따라 대중의 관심과 경각심은 고조되고 ESG를 강조하는 분위기도 강화되고 있다. 이러한 분위기를 어떤 동력으로 활용해야 할까? 재생에너지 확대도 물론 중요하다. 특히 탄소 배출이 가장 많은 석탄 화력발전을 다른 에너지원으로 대체하는 것은 시급하다. 그러나 재생에너지는 생각보다 시간이 오래 걸릴 수 있다. 특히 한국과 같이 국토가 좁은 나라일수록 재생에너지 확대는 지난한 길이 될 수밖에 없고 그것이 삼림 면적을 줄인다는 논란을 낳기도 한다. 현재 발전량의 약 27% 비중인 원전을 늘릴 수도 있겠지만 새로운 곳에 추가로 건설하려면 엄청난 반발을 감수해야 한다. 무엇보다 재생에너지도 원자력도 석탄을 완전히 대체할 수 없다. 천연가스 사용을 늘리는 것이 현실적이지만 천연가스도 화석연료다. 결국 탄소중립을 실현하는 한 축은 '에너지 사용 절감'이 될 수밖에 없다. 그리고 이를 위한 '행동양식의 변화'는 그것이 적극적 대안으로 제시될 때 가능하다. 다시 말해 기후변화를 말할 때 그 심각성만을 강조하는 것에 그쳐서는 안 된다. 


무엇인가를 줄이는 직접적 방법은 그것의 원인을 줄이는 것이다. 그러나 '탄소중립'이라는 프레임 속에서 원인을 줄이지 않고, 대신 다른 무엇인가를 늘리는 간접적 방법이 우선시되고 있다. 콩을 줄이기 위해서는 콩을 덜 심는 것이 우선이다. 팥을 더 심는다고 콩이 줄지는 않는다.


p.224

미국은 2010년 이후에도 성장세를 지속하며 경제 규모가 계속 커졌고, 2018년에는 최대 산유국의 지위에 올랐다. 그럼에도 탄소 배출량은 오히려 감소하고 있다. 이는 2014년 이후 미국의 셰일가스 생산량이 급증하면서 천연가스가 석탄을 대체하고 있기 때문이다. 셰익혁명으로 미국의 석탄산업이 몰락했는데, 이것이 최대 산유국 미국의 탄소감축에 가장 큰 기여를 하고 있다. 


p.228~229

한국도 40%에 가까운 석탄발전 비중을 단시간에 다른 자원으로 대체할 수 없다. 2022년 현재도 한국에서는 4기의 신규 화력발전소가 건설 중이다. 한국에서도 석탄 감축 시 가장 문제가 되는 부분은 그것이 전기요금의 인상으로 이어질 수 있다는 점이다. 석탄 사용을 줄이기 위해서는 석탄보다 비싼 에너지를 사용해야 할지도 모를 현실을 받아들여야 한다.


결국 탄소감축의 핵심은 석탄발전의 축소이고, 석탄발전 축소의 성공 여부는 발전 비용의 상승을 어떻게 관리하고 대중들이 어느 정도 수용할 것인가에 달려 있다. 그리고 우리가 사용하는 전기의 40% 가까운 양이 석탄에서 오고, 이 사용량을 단기간에 줄일 수 없다면 에너지 효율을 높이고 전기 사용 자체를 줄이려는 노력도 병행해야 한다.


p.231

중국은 세계 6위의 산유국(2020년 기준)이지만 생산량은 자국 소비량의 약 30% 정도밖에 되지 않는다. 따라서 필요한 원유의 약 70%를 수입에 의존한다. 수입량 중 가장 많은 물량이 사우디, 이라크 등 중동에서 들어온다. 문제는 중동산 원유가 호르무즈 해협과 말라카 해협, 남중국해를 지나서 오는데, 이 길목에 미국이 관여하고 있다는 점이다. 만약 미국이 장기간 호르무즈 해협과 남중국해를 봉쇄하면 중국은 원유를 자급할 수 없다. 원유 수급이 막힐 경우 차량, 선박, 항공기의 가동이 불가할 뿐 아니라 군사 무기도 운용이 어려워질 수 있다. 


p.234

문제는 화석연료 기반의 경제구조에서 성장과 탄소감축을 동시에 추진하기란 불가능에 가깝다는 것이다. 물론 중국도 지난 2021년에 탄소중립을 선언했다. 그런데 한국, 일본, 유럽이 2050년 탄소중립을 선언한 것과 달리 달성 시점을 2060년으로 명시했다. 솔직한 목표였다. 이 목표에서 눈여겨봐야 할 것은 탄소중립 시점을 2060년으로 했다는 것보다, 탄소 배출의 피크가 되는 시점을 2030년으로 명시했다는 것이다. 즉 지금부터 8년 후인 2030년부터 탄소감축을 시작하겠다는 의미다. 이와 대조적으로 EU는 2021년 7월 '핏 포 55'를 발표하며 2030년까지 탄소 배출을 55% 줄이겠다고 발표했다. 한국도 2021년 10월 2030년 NDC(국가 온실가스 감축 목표)를 40%로 상향 조정하며 논란을 겪었다. 일본 정부도 2030년까지 탄소 배출을 46% 감축하겠다고 발표했다. 이렇게 주요국은 2030년을 탄소제로 달성의 중간기점으로 설정하며 도전적 목표를 세웠다. 그러나 중국은 2030년 전후까지 탄소 배출 증가가 불가피하고, 그 이후 탄소감축을 시작해서 2050년보다 10년 늦은 2060년에 탄소제로를 실현한다는 것이다. 로이터 보도에 따르면, 중국이 2060년 탄소중립과 2030년 탄소피크를 선언하자 EU는 탄소피크 시점을 2025년 이전으로 조정해달라고 요청했다. 그러나 중국에게 5년은 미국을 따라잡기에 너무 짧은 시간이다.


p.246~247

중국의 철강 생산량은 2020년 기준 약 10억 6,000만 톤으로 세계 철강 생산량의 57%를 차지한다. 압도적 세계 생산량 1위다. 그다음이 EU로 세계 생산량의 7% 수준이다. 중국의 철강산업은 제조업 중심인 중국 경제의 근간이면서, 세계 탄소 배출의 가장 큰 요인이 되고 있다. 탄소 문제에 국한하지 않더라도 EU는 역내 철강산업을 보호할 필요가 있고, 미국은 중국의 부상을 견제할 필요가 있다. 따라서 철강은 CBAM을 우선 적용하기에 전략적 가치가 충분한 분야고, 미국과 EU의 이해가 맞아떨어지기도 한다.


한국에서도 철강산업은 국가 안보와 국가 경제에서 비중이 큰 산업이다. 1970년대 포항제철의 성공이 한국 경제사의 의미 있는 성취였던 이유는 그것이 한국 경제 도약의 근간이 되어 왔기 때문이다. 그만큼 철강은 중요한 산업이고 그래서 국제사회에서 그 거래 관계는 상대국에 대한 레버리지로 활용되기 쉬운 분야이기도 하다.


EU에서 CBAM 시행을 공언한 이상, 철강산업에서만큼은 그 적용이 확실시된다. 2021년 10월에 이루어진 미국과 EU 간 철강 관세 합의는 그 전초로 볼 수 있다. 철강에 CBAM이 적용이 된다면 이는 다른 산업으로 CBAM 적용과 탄소세 등의 부과 확산을 야기하는 시발점이 될 수 있다. 이러한 현상은 제조업 전반의 비용 상승을 일으킬 가능성이 크다. 이와 같은 탄소감축과 에너지 전환에 의한 비용 변화는 미래 산업의 동향을 예측하는 데 중요한 포인트가 된다.


p.258

하버드대 경제학 교수 에드워드 글레이저는 저서 <도시의 승리>에서 "탄소배출을 줄이고 싶다면 더 많은 미국인이 더 복잡하고 도시적인 환경에서 살아야 한다"고 주장한다. 또한 그는 "고밀도의 도시 생활을 지구 온난화의 해결책의 일부로 간주해야 한다"고 말한다. 아파트는 넓은 의미에서 자원 활용의 효율을 극대화하는 공유경제의 특성을 갖는다. 사람들은 아파트에서 많은 것을 공유한다. 이웃과 벽, 바닥, 천장을 공유하고 계단과 승강기를 공유한다. 수도, 전력, 통신 시설은 물론, 놀이터와 주차장도 공유한다. 한 세대가 난방을 하면 그 온기는 벽을 공유하는 이웃에게도 전해지면서 열에너지 사용 효율도 제고한다.


MIT의 앤드루 맥아피도 시골 생활은 도시 생활보다 덜 환경친화적이라고 주장한다. 외딴 시골에 주택을 지어 사는 사람이 많아지면 더 많은 곳에 수도, 전력, 통신 등의 기반 시설이 들어서야 한다. 소수를 위해서 자연이 훼손되어야 한다. 기본적으로 한 세대만 거주하는 교외 주택은 자원 사용의 효율성 면에서 좋은 형태가 아니다. 좁은 공간에 많은 사람이 모여살 때 사람들의 이동거리가 짧아지고 기반 시설을 공유하는 정도는 커진다. 따라서 아파트를 선호하는 모습은 탄소감축 시기에 더 강화될 수 있다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
파이썬 매일 코딩 - 매일 10분, 50가지 연습 문제로 키우는 파이썬 코딩 실력!
루벤 M. 러너 지음, 윤인성 옮김 / 길벗 / 2021년 11월
평점 :
장바구니담기


이 서평은 출판사의 지원을 받아 작성하였습니다.


처음 코딩이란 걸 시작했을 때 신기했다. 그전까지는 컴퓨터 프로그래밍은 고사하고 파워포인트, 엑셀과도 댐을 쌓고 지내던(사실 지금도 많이 하지 않아서 만약 해야한다면 연습을 많이 해야한다) 지독한 문돌이 습관을 가지고 있어서 코딩이라는 걸 배울 때 참 어려웠다. (사실 지금도 어렵다)


무엇보다 문법은 배웠는데, 어떻게 해야 더 실력을 키울 수 있을지 잘 몰랐다. 다들 사이드 프로젝트 하라고 하는데, 막막했다. 하면 좋다는 걸 누가 모르겠나? 구체적으로 어떻게 해야할지 막막하니까 그러지. 알고리즘 연습을 하면 좀 더 잘할까 싶어 해봤는데 재미가 별로 없었다. 말그대로 입사 테스트 용으로 많이 사용하기 때문에 난이도가 높거나 초보자용은 너무나도 낮은 경우도 많고, 주로 문제풀이에 집중되기 때문이다. 고등학교 시절 별로 좋아하지 않았던 수학 문제집이었던 쎈 1000제 같은 느낌이라고 할까? 풀어도 풀어도 끝이 없는 쎈 1000제는 사놓고 50문제 정도 풀다가 결국 깨끗하게 버려졌다.


사실 제일 좋은건 자본주의적 학습(?!)이다. 회사 업무 던져지면 돈이 걸려있고 일정이 걸려있으니 어떻게든 구글링하고 페이스북 커뮤니티든 어디 커뮤니티든 묻고 또 묻고 사정사정해서라도 해답을 알아내게 되고, 그러면서 실력이 커진다. 하지만 그렇게 하기 어려우니까 그 중간 어딘가의 학습 도구가 필요하다고 나를 포함해서 사람들이 말하는게 아닐까.


이 책은 그 지점에서 적절한 것 같다. 알고리즘 문제처럼 너무 어려운 문제 위주로 무조건 맞혀야 한다는 강박감을 주지 않으면서도, 꼼꼼하게 공식문서 링크와 관련 자료링크를 제공해서 마치 뭔가 많이 알게 된 것처럼 착각을 일으킨다. 이런 착각은 좋은게 아닐까? 이런 착각을 통해 뭔가 많이 안다는 자신감을 갖게 되고 그러면서 많이 하다보면 실제로 잘하게 되는 그런 선순환을 일으킬 수 있을거 같았다.


마치 코딩 잘 못하는 신입사원에게 사수가 대책으로 하나하나 문제 풀어보라고 내주고 꼼꼼히 피드백주는듯한 느낌을 이 책에서 받았다. 텍스트로 더 이상 설명하는 건 어려울거 같다. 읽어보면 무슨 말 하는지 알 거라고 생각한다. 



밑줄 긋기 

p.33 ~34

walrus 연산자(바다사자 연산자)


다른 프로그래밍 언어를 사용하다가 파이썬을 공부하는 사람은 사용자로부터 입력받고, while 반복문을 벗어나는 코드를 다음과 같이 작성하려 합니다. 이는 대부분의 프로그래밍 언어에서 널리 활용하는 형태의 코드입니다.


while s = input('Enter thoughts:'):
	print(f'Your thoughts are: {s}')

이 코드는 사용자로부터 입력받고, 이를 s에 넣는 것을 while 반복문의 조건식에 활용하고 있습니다. 따라서 s가 Boolean으로 변환되어서 비교됩니다. 빈 문자열이 입력될 경우, s가 False로 변환되어서 반복문을 벗어납니다.


하지만 이 코드에는 중요한 문제가 있습니다. 파이썬에서는 이러한 코드가 동작하지 않는다는 것입니다. 이는 파이썬의 할당 구문이 표현식이 아니기 때문에 발생하는 일입니다. 파이썬의 할당 구문은 어떠한 값도 만들어내지 않습니다. 따라서 반복문의 조건식 부분에 사용할 수 없습니다.


하지만 이러한 코드는 굉장히 편리하므로, 파이썬 3.8버전부터는 이러한 코드를 사용할 수 있게 :=라는 새로운 할당 연산자가 추가되었습니다. 정식 명칭은 '할당 표현식 연산자(assignment expression operator)'이지만, 일반적으로 :=라는 모습이 바다사자와 비슷하게 생겼다고 해서 'warlus 연산자'라고 부릅니다. 이 연산자는 처음 도입될 때 굉장히 많은 논란을 불러일으켰습니다. 언어에 불필요한 복잡성을 만들고, 잠재적인 버그의 가능성을 만들었다는 이유 때문입니다.


어쨌거나 파이썬 3.8버전에서는 다음과 같은 코드를 활용할 수 있습니다.

while s = input('Enter thoughts:'):
	print(f'Your thoughts are: {s}')


참고로 walrus 연산자와 관련한 논란, 그리고 walrus 연산자가 도입된 이유인 walrus 연산자의 장점 등을 자세하게 알고 싶다면 파이콘 2019에서 Dustin Ingram이 발표한 내용 (http://mng.bz/nPxv)을 살펴보기 바랍니다.


https://www.youtube.com/watch?v=6uAvHOKofws 

이 연산자와 관련한 자세한 내용은 PEP 572 문서 (https://www.python.org/dev/peps/pep-0572)을 참고해주세요.

https://peps.python.org/pep-0572/


p.35

Python Tutor를 활용해서 코드 실행 분석하기


https://pythontutor.com/

p.37

{ } 내부에 :을 넣어서, 자료를 원하는 형태로 포매팅해서 출력할 수도 있습니다.


예를 들어 문자열이 10칸의 공간을 갖고, 왼쪽 또는 오른쪽에 정렬하게 출력하고 싶다면 #을 다음과 같이 활용합니다.


name = 'world'
first = 'Reuven'
last = 'Lerner'
	print(f'Hello, {first:#<10} {last:#>10}')

필자는 최근 파이썬에 추가된 기능 중에 f-string이 가장 마음에 듭니다. 독자분들도 적극적으로 사용해보면 좋을 것 같습니다.


- 파이썬에서 문자열 형식을 지정할 때 사용할 수 있는 여러 가지를 비교한 글입니다.

https://pyformat.info/

- f-string에 대한 설명과 활용 예를 자세하게 설명한 글입니다 : 

https://realpython.com/python-f-strings/

- f-string을 설명하는 PEP 문서입니다. 

https://peps.python.org/pep-0498/

p.40

이터러블을 매개변수로 전개하기


[1, 2, 3]과 같은 리스트 형태로 자료를 갖고 있다면 mysum 함수의 매개변수로 어떻게 전달해야, 이러한 리스트 내부의 숫자를 더할 수 있을까요? 단순하게 mysum([1, 2, 3])으로 호출하면 *numbers로 ([1, 2, 3], ) 형태의 튜플이 전달될 뿐입니다.


따라서 O에 각각의 요소를 더하는 형태로 코드를 구성했다면 O에 [1, 2, 3]을 더하게 되어서 TypeError 예외가 발생할 것입니다. 파이썬에서는 리스트와 숫자를 더할 수 없기 때문입니다. 결론부터 말하자면 리스트를 매개변수로 넣을 때 앞에 *연산자를 붙여주면 됩니다. 예를 들어 mysum(*[1, 2, 3]) 형태로 호출하면 리스트 내부의 요소들이 마치 mysum(1, 2, 3) 형태로 각각 매개변수로 들어갑니다.


이터러블 객체의 요소 하나하나를 함수의 매개변수로 전달해야 하는 경우에 굉장히 많이 사용하는 코드이므로, 꼭 기억하기 바랍니다.


p.43

빈 문자열과 숫자 0은 if 조건문의 조건식에 넣었을 때 False로 변환됩니다. 따라서 다음과 같이 문자열 또는 숫자 입력을 if 조건문의 조건식에 직접 사용하는 경우가 많습니다. 이후의 코드에서도 이러한 형태를 사용하겠습니다.


if not one_run:
	break

참고로 문자열 입력을 다음과 같이 구분하고자 하는 독자도 있을 것입니다.


if len(one_run) == 0:
	break

물론 이런 코드는 작동하지만, 일반적으로 파이썬 개발자가 볼 때 파이썬스럽지 않은 코드라고 할 수 있습니다. 파이썬 개발자는 이전 코드처럼 not을 변수 앞에 사용해서 문자열이 빈 문자열인지 확인하는 코드를 더 많이 사용합니다. 따라서 앞의 코드가 더 파이썬스럽고, 파이썬 개발자가 읽기 더 쉽습니다. 


참고로 일반적으로 사용자에게 입력받고, float 함수를 호출하는 경우에는 사용자가 유효하지 않은 값을 입력할 경우를 대비해서 try 구문을 함께 사용합니다.

try:
	n = float(input('Enter a number: '))
    print(f'n = {n}')
except ValueError as e:
	print('Hey! That's not a valid number!')


p.44

부동소수점 계산이 정확하지 않다는 것이 무슨 의미인지 잘 모르겠다면 파이썬 인터랙티브 셀에 0.1 + 0.2를 입력해보세요. 신기한 결과를 볼 수 있을 것입니다. 참고로 프로그래밍 언어에 따라서 이 결과에 약간씩 차이가 있습니다. 여러 프로그래밍 언어에서 0.1 + 0.2의 결과가 어떻게 나오는지 정리해서 확인하고 싶다면 

https://0.30000000000000004.com/

를 참고해보기 바랍니다.


p.46

부동소수점 계산을 정확하게 할 수 있는 Decimal 클래스(https://docs.python.org/3.7/library/decimal.html )

를 확인


p.47

필자도 현재 일반 업무에서는 16진수를 거의 사용하지 않습니다. 또한, 필요한 경우에도 단순하게 hex 함수


https://docs.python.org/3/library/functions.html?#hex 

와 0x접두사를 활용합니다. hex 함수는 문자열을 입력받고, 16진수 문자열을 리턴합니다. 그리고 0x접두사는 16진수를 표현할 수 있는 방법입니다. 예를 들어 hex(80)은 문자열 '0x50'을 리턴하며, 0x50이라고 입력하면 정수 80이 들어갑니다.


p.54

문자열에 대해서는 두 가지 내용을 잘 이해하고 있어야 합니다.


1. 문자열은 이뮤터블(immutable)이다.

2. UTF-8 인코딩을 사용한다.


파이썬의 문자열은 굉장히 재미있으면서도 유용합니다. 파이썬에서 문자열은 단순한 텍스트가 아니라 시퀀스이기도 합니다. 따라서 반복문에 활용할 수 있으며(문자 하나하나 반복 처리됩니다), 인덱스를 활용해서 특정 위치의 문자열을 출력할 수도 있습니다.


p.57

무엇보다도 파이썬 프로그램은 짧아야 합니다. 만약 코드를 작성하다가 자신의 코드에서 반복되는 부분이 보이고, 긴 표현식 또는 문장을 작성하고 있다는 것을 발견했다면 파이썬스러운 코드를 작성할 수 있게 대책을 세워야 합니다.


p.61

파이썬의 문자열은 왜 이뮤터블일까요? 여기에는 여러 이유가 있습니다. 예를 들어 구현을 효율적으로 할 수 있다는 점이 있습니다. 일반적으로 문자열은 딕셔너리의 키로 많이 사용합니다. 딕셔너리는 이뮤터블 자료만 키로 사용할 수 있으므로, 문자열이 뮤터블이라면 딕셔너리의 키로 사용될 수 없습니다. 이는 굉장히 많은 문제를 일으킬 것입니다.


이뮤터블 자료는 변하지 않습니다. 이로 인해서 여러 상황이 발생합니다. 이뮤터블 자료형을 함수의 매개변수로 전달하면 함수 내부에서 이를 수정할 수 없습니다. 이뮤터블 자료형을 여러 스레드에서 활용할 경우, 변하지 않으므로 락킹을 따로 신경 쓰지 않아도 괜찮습니다. 또한 이뮤터블 자료형의 메서드를 호출하면 원본 자료를 수정한 새로운 자료를 리턴받습니다(원래 자료를 변경할 수 없으므로 새로운 것을 만드는 것입니다).


문자열을 이뮤터블로 만들면서 발생하는 여러 트레이드오프(trade-off)가 있습니다. 하지만 파이썬 개발자는 문자열을 이뮤터블로 활용하는 것이 더 좋다고 생각하므로, 이런 선택을 한 것입니다. 만약에 문자열을 뮤터블 자료형으로 사용하고 싶다면 StringIO(https://docs.python.org/3/library/io.html#io.StringIO) 

를 사용해야 합니다. 이는 파일과 같은 형태로 사용할 수 있는 인메모리 자료형입니다.


다른 프로그래밍 언어를 사용하다가 파이썬을 공부하기 시작한 사람은 이뮤터블이 상수(constant)와 같은 것이라고 오해하기도 하는데요. 전혀 다른 개념입니다. 상수는 이름(변수)과 값을 영구적으로 연결한다는 개념입니다. 파이썬에서는 이러한 상수가 존재하지 않습니다. 파이선은 어떤 이름(변수)에 언제나 원하는 값을 연결할 수 있습니다. 문자열과 튜플을 넣은 이름(변수)을 변경할 수는 있지만, 문자열과 튜플 값 자체를 변경할 수는 없습니다.


p.68

str.translate()


https://docs.python.org/3/library/stdtypes.html?#str.translate 

https://justdoit709.tistory.com/37


p.69

URL 인코딩할 때는 URL로 처리할 수 없는 특수한 문자를 % 기호와 함께 아스키 문자(ASCII 32)에 해당하는 값을 16진수로 입력해서 변환합니다. 예를 들어 URL에 띄어쓰기가 들어갔다면 아스키 문자로 0x20이므로, %20으로 변환합니다. 


p.70

파이썬이 기본적으로 제공하는 sorted 함수 https://docs.python.org/3/library/functions.html#sorted

는 매개변수로 이터러블을 받습니다. 즉, 시퀀스뿐만 아니라 반복할 수 있는 것이라면 모두 사용할 수 있습니다. 따라서 sorted 함수의 매개변수에 문자열을 전달할 수도 있습니다. 


p.71

유니코드는 각각의 글자를 숫자에 일대일 대응시킵니다. 그런데 대충 생각해도 굉장히 많은 숫자가 포함될 것입니다. 이와 같은 유니코드 문자를 나타내는 숫자(코드 포인트라고 부릅니다)를 활용해서 여러 개의 바이트를 읽어 들이고, 이를 적절한 글자로 변환합니다. 파이썬을 포함한 대부분의 프로그래밍 언어는 UTF-8을 지원합니다. UTF-8은 고정된 바이트 길이를 사용하지 않고, 가변적인 바이트 길이를 사용해서 글자를 표현합니다. 예를 들어 기존의 ASCII 코드에 존재하던 글자는 그대로 1바이트를 활용해서 표현합니다. 프랑스, 스페인, 히브리, 아랍, 그리스, 러시아 글자는 2바이트를 활용해서 표현합니다. 그리고 한글, 한자, 이모티콘은 3바이트 또는 3바이트 이상을 활용해서 표현합니다.


유니코드는 우리가 개발할 때 어떤 영향을 줄까요? 일단 개발할 때 따로 언어 종류를 구분해서 사용할 필요가 없습니다. 하지만 바이트와 글자 사이의 관계를 생각해줘야 합니다. 파일을 읽어들일 때, 바이트를 글자로 변환하는 방법과 글자를 바이트로 변환하는 방법을 모두 기억해야 합니다.


파이썬이 글자와 문자열을 어떤 형태로 다루는지 더 자세하게 살펴보고 싶다면 파이콘 2012에서 발표한 Ned Batchelder의 

https://nedbatchelder.com/text/unipain.html

를 참고해보기 바랍니다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo