안희정의 길 - 우리 함께 걸어요
안희정 지음 / 한길사 / 2017년 2월
평점 :
품절


 유력 대선주자인 안희정 충청남도 도지사의 지난 4년간의 글을 엮은 책이 '안희정의 길'로 출간되었다. 지지율에서 2위까지 오르던 그가 대연정과 관련한 발언으로 논란이 되고 있었던 상황에서 그의 책을 읽게 되었다. 책을 다 읽고 나서야 그가 말한 대연정에 대한 해명이 이해가 되었다.

 그는 일관되게 몇 년간 국민의 이익만을 생각하는 평화와 민주주의를 이야기했고, 그 방법으로 대화, 타협을 반복하여 강조하였다. 


 2016년 8월 15일 광복 71주년 경축사에서도 이미 서로 견해가 다르고 정파가 다르다고 해도 대한민국의 구성원으로 하나임을 잊어서는 안 되고, 민주적인 의사결정 과정을 통해 뜻을 모으고  단결해야 뼈아픈 역사를 되풀이하지 않을 수 있다고 이야기하였고,  2013년 4월 16일에 "심각한 갈등 사안에 대해서는 찬반 50 대 50으로 구성된 토론회를 열어야 한다.  대북정책, 안보정책 등 각종 갈등 사안은 반대자를 반드시 50퍼센트로 채운 토론으로 결론내려고 노력해야 한다."라고 말한 부분에서 대화와 타협을 최선의 도구로 생각하는 그의 생각이 오래된 생각임을 알 수 있었다. 


 충청남도가 수도권에 비해 농업이 많아서인지 가뭄과 관련된 내용이 몇 번 나오는데, 4대강 사업과 연관성이 있는 일로 오해받았고(실제로는 달랐지만), 도지사로서 가뭄 극복을 위해 필요하다면 어떤 도움이라도 청할 것이라고 말하는 부분에서 정부의 존재 이유는 국민의 생명과 재산을 지키는 일이라는 그의 말이 그저 말뿐이 아님을 알 수 있었다.


 또한 자신을 일관되게 정당인, 민주주의자로 살아왔다고 하는 그가 노동에 대해 이야기하는 부분을 보면, 책 전반에 적지 않게 언급되는 텃밭을 가꾸는 등의 일을 계속 해와서인지, 노동자의 생각을 갖고 있는 것이 의외였고, 저출산 문제의 핵심은 행복한 엄마, 아빠가 될 수 없다는 현실이라고 말하는 부분에서 젊은 층들의 현실을 제대로 인식하고 있는 것으로 느껴졌다.


 책은 5개의 장으로 나뉘어 있는데, 1장이 가장 최근의 글이고 뒤로 갈수록 이전 글들을 배치하여, 그의 생각과 말이 이전의 어떤 배경과 생각을 통해 나온 것임을 알 수 있었다. 책을 다 읽은 후에 5장, 4장, 3장, 2장, 1장 이렇게 역으로 읽는다면 그의 말과 생각이 핵심 가치는 변하지 않으면서 일관된 생각으로 커져가는 것을 볼 수 있을 것이다.


 끝으로 책 시작과 마무리에 2장, 3장의 빈 종이와 반 페이지의 여백들이 추가로 있어서 신기했는데,  '선과 악은 한 몸이다'에서 신영복 선생님의 여백의 완성을 글 쓰기라고 말씀하신 부분이 생각나면서 의도된 것이 아닐까 하는 생각이 들었다.


 안희정, 그가 어떤 생각을 하고 있는지, 그의 방향성이 궁금하다면 이 책이 그 궁금증을 해소 시켜줄 것이라 생각한다. 





댓글(0) 먼댓글(0) 좋아요(1)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
딥러닝 첫걸음 - 머신러닝에서 컨벌루션 신경망까지 머신러닝/딥러닝 첫걸음 시리즈
김성필 지음 / 한빛미디어 / 2016년 12월
평점 :
절판



 한빛미디어의 딥러닝 첫걸음을 읽으면서 내내 쉬우면서도 쉽지 않다는 생각이 들었다.

 책은 정말 쉽게 설명하려고 많이 노력한 흔적이 많이 보인다. 수식보다는 최대한 그림과 예제를 많이 사용하였고, 이해를 돕기 위해 사용되는 수식들도 일차방정식이 대부분이고, 시그마와 로그 정도는 그냥 이해를 위해 덧붙인 수준이라 크게 어렵지 않지만 그래도 오랜만에 보는 수식들이 눈에 익지 않았기에 어렵지 않다고는 못하겠다. 예제는 메타랩이라서 처음 보는 예제였지만, 고급언어의 특성을 가지고 있기에 수식보다는 예제가 더 가독성이 높았다.


 저자의 노력과 쉬운 설명에도 머신러닝, 딥러닝이 기존의 패러다임을 가지고는 이해하기 어려운 분야이기에 쉽지는 않았다. 얇은 두께이기에 여러 번을 읽고서야 어느 정도 감을 잡을 수 있었다. 혹시 책을 읽으면서 이해가 되지 않는 부분에 너무 깊게 얽매이지 말고, 그냥 다음 장으로 넘기면서 전체를 다 읽은 후에 다시 읽는 방법으로 접근한다면, 이 책이 쉽게 잘 설명한 것이라는 것을 느낄 수 있을 것이다. (내가 설명한다고 생각해보면, 이보다 쉽게 설명하긴 어려울 것 같다는 확신이 들었다.)

 책을 읽고 난후에 머신러닝, 딥러닝이 도깨비 방망이가 아닌 기술이라는 점을 명확히 깨닫게 해주었다. 


 딥러닝책이지만, 딥러닝 자체가 머신러닝을 기반으로 세워진 기술이기에 4장까지는 머신러닝과 관련 기술들을 소개하고 5장 딥러닝, 6장 컨벌루션 신경망으로 마무리 된다.


 책을 읽으면서 얻은 지식, 느낀 점을 나열하면 아래와 같다.


 - 머신러닝은 데이터에서 모델을 찾아 내는 기법인데, 사람이 직접 데이터를 분석해 모델을 만들어 내는 게 아니라, 머신러닝 기법이 데이터를 분석해 모델을 스스로 찾아내기에 학습(learning)이라는 단어가 붙게 되었다. 


 - 간단한 예제를 통해 직접 모델을 만드는 과정을 보여주고, 조금 더 발전된 문제는 해결하지 못하는 것을 보여주면서 단층 신경망의 한계를 직접 보여준다. 단층 신경망은 입력 데이터의 공간을 선형 분리하는 모델이기 단층 신경망은 선형 분리 가능한 문제만 풀 수 있다.


 - 이 책에서 가장 어려운 부분 중 하나로 꼽는 3장에서 소개하는 역전파 알고리즘을 몰라도 딥러닝을 공부하고 개발하는 데는 별 지장은 없다고 한다 대부분의 딥러닝 라이브러리에는 이미 역전파 알고리즘이 구현되어 있어 그냥 가져다 쓰면 된다고는 하지만, 이해하고 쓰는것과는 차이가 있지 않을까 해서 여러분 읽어보게 된 부분이다. 


 - 결국 입력과 출력은 종류가 어떻게 되었건 데이터로 숫자로 치환되어야 한다. 그림 데이터는 흰색 픽셀은 0으로, 검정색 픽셀은 1로 바꿔서 이미지를 2차원 행렬로 변환시켜 사용하였다. 다른 데이터의 경우에도 마찬가지 일 것이다.


- 딥러닝은 은닉층이 2개 이상인 다층 신경망(심층 심경망)을 이용한 머신러닝 기법이라고 할 수 있는데, 단층 신경망에 은닉층 하나 추가한 신경망은 다층 신경망의 학습 규칙을 찾아내지 못해 무려 30여 년이 지나서야 비로소 등장했다.

 1986년 역전파 알고리즘이 개발되면서 다층 신경망의 학습문제가 마침내 해결되었다고는 하지만, 여기서 다시 깊은 은닉층을 가진 심층 신경망이 충분한 성능을 내게 하는데 무려 20여 년이 더 걸렸다.

 그만큼 심층 신경망은 제대로 학습시키기가 어려웠으나, 현재 딥러닝 기술은 기존의 신경망뿐만 아니라 다른 머신러닝 기법들을 압도하는 놀라운 성능을 보여주며, 인공지능 연구를 주도하고 있다.


- 딥러닝은 그래디언트 소실(vanishing gradient), 과적합, 많은 계산량등의 문제가 있었다.

그래디언트 소실은 노드들의 활성함수를 입력이 음수이면 0을 출력하고, 양수이면 입력값 그대로 출력하는 ReLU 함수로 바꾸는 것으로 해결되었고, 과적합은 은닉층이 늘어나면서 연결 가중치도 많아져 더 복잡한 모델이 되기 때문에 과적합 문제에는 더 취약해지는 딜레마에 빠지게 된 것을 신경망 전체를 다 학습시키지 않고 일부 노드만 무작위로 골라 학습시키는 드롭아웃(Dropout)이라는 기법으로 해결되었다.

 많은 계산량은 GPU같은 고성능 하드웨어의 등장과 배치 정규화등 여러 알고리즘 덕분에 상당 부분 개선되었는데 결국 하나의 엄청난 기술이 딥러닝을 발전시킨 것이 아니라, 여러 부분의 개선들이 뭉쳐서 지금의 딥러닝을 만들었다.

 그결과 머신러닝의 3대 연구 분야로 꼽는 영상 인식, 음성 인식, 자연언어 처리에 각각 좋은 성능을 내는 기술들이 따로 있었지만, 이제는 딥러닝이 전 분야에서 기존 기법의 성능을 뛰어넘는 발군의 실력을 보여주고 있다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
새로운 이름의 이야기 나폴리 4부작 2
엘레나 페란테 지음, 김지우 옮김 / 한길사 / 2016년 12월
평점 :
품절


나폴리 4부작 중  1권 '나의 눈부신 친구'을 읽고 바로 읽게 된 2권 '새로운 이름의 이야기'는 1권 보다 200여 페이지 가량 두꺼운 책이다. 1권의 제일 첫 챕터를 제외하고는 어린 시절부터 시간의 흐름대로 흘러가기에, 1권 보다 더 어른이 된 두 주인공을 만날 수 있다.

 사실 표지만 봐도 1권의 표지보다 확실히 성숙하고 어른이 된 모습이 눈에 들어온다. 

1권은 괴테의 '파우스트'의 인용 구절이 제일 먼저 볼 수 있는 글이었는데, 2권에서는 별다른 내용 없이 바로 등장인물 소개로 시작한다. 1권의 등장인물 소개에 비해 설명이 좀 더 추가되고, 아이로타집안과 몇몇 등장인물이 추가된 거 외에는 큰 변화는 없다. (등장인물의 소개가 변화가 없다는 것이지, 이 사이에서 일어나는 관계의 변화는 더 심해진다.)


 1권이 어릴 시절 이야기라 에밀 아자르의 '자기앞의 생'의 모모나, J. M. 데 바스콘셀로스의 '나의 라임 오렌지나무'의 제제 같은 느낌이었다면, 2권은 헤르만 헤세의 '수레바퀴 아래서'의 한스가 생각난다. 사실 앞의 이야기한 이야기들과 가장 큰 차이점이라면 이 책은 어느 한 사람이 주인공이 아닌 두 여인 릴라, 레누가 주인공이라는 점이 아닐까? 물론 이 책은 레누가 나로 표현되어서 이끌어가는 소설이지만 레누는 자신보다 레누를 더 신경쓸데가 더 많지만, 단순한 소녀때 부터 시작된 우정이 아닌 서로 간의 도움과 질투, 연민등으로 더욱 더 복잡한 감정이 되어 가는 것을 볼 수 있었다.


 어릴 적에는 돌팔매를 위한 돌을 주워준다거나, 라틴어 공부를 도와주는 정도의 도움과 학교를 무단결석하고 바다를 보러 걸어가는 정도의 일탈이 소개되었고, 읽는 내내 어린 시절에는 죽음이 큰 사건이 되지 않았던 나폴리에서 무사히 살아있는 것만으로도 다행이다 싶었지만 이 둘의 청년기에는 죽음이 문제가 아닌 삶이 더 문제가 되는 것으로 보일 정도로 가정 폭력, 부적절한 성관계, 이혼까지 수많은 일들을 겪게 되고 1권에서 책은 부자가 되기 위한 릴라의 수단이었지만, 2권에서 릴라가 아닌 레누가  책을 쓰고 출판되는 과정으로 끝나게 되는데, 레누가 '릴라의 삶이 내 삶을 압도하는 바람에 내 삶이 다시 뚜렷하고 견고한 틀을 되찾기까지 여러 날이 걸렸다. 내 본연의 모습으로 돌아오게 해준 것은 책의 초안이었다'라고 이야기 한 부분에서 책의 의미가 남다름을 알 수 있었다.


 아직 할머니가 되기까지는 너무 많은 시간이 남았는데, 남은 2권이 어떻게 또 다른 이야기로 이끌어 줄지 너무 기대가 된다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
나의 눈부신 친구 나폴리 4부작 1
엘레나 페란테 지음, 김지우 옮김 / 한길사 / 2016년 7월
평점 :
장바구니담기


 나폴리 4부작 중 1부인 '나의 눈부신 친구는' 1950년대 나폴리를 배경으로 화자인 레누의 시선으로 바라본 마을 친구들과 화자의 성장기를 이야기하고 있다. 레누와 레누가 의존하며 경쟁하는 친구인 릴라의 이야기가 중심을 이루고 있는데 두 여성은 힘든 어린시절부터 함께했던 둘도 없는 친구로 외모, 성격 등 모든 면이 대조적으로 표현되고 있다.

 

이야기를 이끌어 나가는 레누는 착하고 평범하고 부모에게 순종적인 학생이나, 릴라는 못된 아이로 자기 주장을 굽히지 않는 아이지만 영특한 지성을 가진 아이이다. 

레누는 릴라의 뛰어난 지성과 자기와는 다른 매력에 끌리고 레누를 여러면에서 자기보다 나은 여성으로 인정하지만 때때로 질투하며 경쟁자로서의 모습을 보이기도 한다.

 

두 중심인물의 대조적인 면을 극대화 하며 그 사이에서 상호의존하며 영향을 주고 받는 유년 및 사춘기를 통해 성장해나가는 소녀들의 모습을 볼 수 있다.

 여성의 교육은 중요하지 않다고 생각하기때문에 릴라는 아버지의 반대로 인하여 학업을 중단하고 집안일 (구두제작) 을 도와주게되고 레누만이 부모의 눈치를 보며 마을에서 여자아이로서는 거의 유일하게 학업을 지속하게된다.

 

이야기의 처음부터 끝까지 레누는 릴라가 뛰어난 지성과 눈부신 외모를 가진 친구라고 생각한다.

하지만 마지막 사건인 릴라의 결혼전 릴라는 레누가 '자신의 눈부신 친구' 라 말한다.

릴라가 지속할 수 없었던 꿈을 이룬 레누는 릴라의 눈부신 친구였던 것이다. 

 

고민이 있을때 의논하며 의존할 수 있는 존재로 서로에게 자극이 되고,  둘 모두를 더 성장하게 만들어주는 친구에 대한 이야기...


2권에서 펼쳐질 청년기의 이야기가 궁금해진다.


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

 이 책은 모바일 시대 가장 큰 점유율을 갖고 있는 안드로이드 OS의 앱을 만들기 위한 기초를 안내하는 책이다. 다른 책은 대부분 안드로이드나 모바일의 역사 그리고 개발 환경 설정이 1장이 된다.

책의 독특함은 바로 1장부터 시작된다.

가장 첫 내용이 프로그래밍의 즐거움이라니...

1장 앱 개발을 시작하기 전에
아래의 구절로 이 책의 어떤 책이고, 어떻게 진행될지를 가늠해 볼 수 있었다.
   
 

이 책에서는 완성된 앱을 한 번에 만들지 않고 조금씩 개량하면서 앱을 성장시킵니다. 그래서 조금씩 변경하는 내용을 확인해 봄으로써 어떤 일이 일어나는지 1대1로 알 수 있게 구성했습니다. (p15 중에서)

 
   


뒤에 자세히 이야기하겠지만 정말 다른 일반 책들과 다르다.

보통 안드로이드 책이면, 위젯과 뷰, 레이아웃, 액티비티, 프레그먼트, 뷰 등의 Life Cycle을 먼저 언급할 테지만 정말 지금 만드는데 필요한 것만 언급하고 진행해가면서 설명한다.


2장 개발 환경 설정

 오래된 책들은 Eclipse에 ADT 설치하는 부분도 언급되겠지만, 제목답게 JDK 설치, 안드로이드 스튜디오 설치, 개발용으로 앱을 실행할 스마트폰의 개발자 모드 활성화, 안드로이드 폰이 없는 경우를 위한 에뮬레이터 사용법만으로 간단히 끝난다.


3장 처음 만드는 안드로이드 프로그램

 첫 시작은 안드로이드 스튜디오 설치하고 선택만으로 바로 만들어주는 Hello World!로 표시해주는 프로그램을 Hello New World!!로 바꾸는 쉬운 첫 변형으로 시작하고, 이를 바탕으로 출력되는 부분에 대한 변형으로 덧셈 계산하는 것을 추가한다.

 일부러 오류를 내면서, 어떻게 오류를 수정하는지 알려주기 시작한다.


4장 디버깅을 해보자

 보통 디버깅은 마지막에 다루는데, 다소 빠른 타이밍에, 기본 프로그램을 소개 한 후 바로 디버깅에 대한 내용을 상당 부분 할애하였다. 

 간단한 코드 오류부터 시작해서 안드로이드 스튜디오에서의 디버거 사용법, Watches 사용법 등을 실습하고, 전통적으로 많이 사용되는 로그을 출력하는 법, logcat을 사용하는 법과 예외 처리에 대해서도 언급한다.

 메모리와 CPU 사용률 확인하는 방법까지 소개하고, 초보자들이 자주 발생시키고, 만나게 되는 R 오류에 대한 대처법이 잘 정리되어 있다.

 앞에서 언급했듯이 이 책은 조금씩 개량하면서 앱을 성장시키고자 하고, 오류 등에 대한 해결 능력 또한 중요하게 생각하기 때문에 앞에 힘을 주어 설명하는 느낌이었다.


5장 채팅앱을 만들자

 네트워크 통신을 하는 진짜 채팅 앱은 아니지만 사용자가 입력하는 내용을 보고 앱이 응답하는 것처럼 보이는 (심심이 같은) 앱을 만든다.

 앞서 단순히 생성된 TextView가 어떻게 보이는지만 확인했지만, 이제 직접 design을 통해 레이아웃을 디자인하게 되고, 각각의 properties에 대한 설명과 설정하는 법을 배운다.

그리고 이러한 과정으로 생성된 레이아웃의 xml을 통한 추가적인 설명이 이어진다.


 안드로이드 개발 서적으로는 가장 늦게 View에 설명하는 듯하지만, 이제야 View에 대한 설명이 이루어지면서, Click을 처리하기 위한 OnClickListener도 언급한다.

 

 앞에 이야기한 응답을 구현하기 위한 특정 키워드 시간에 대한 응답, 특정 키워드 행운에 대한 랜덤 값에 대한 응답 등 안드로이드만의 특성과는 관계없는 Java 코드들이 진행된다.

(예를 들어 안녕, 피곤, 운세, 시간 등 특정 문자열이 포함되어있다면 지정된 응답을 출력하도록 만든다.)

 컴퓨터의 응답이 보여질때 TranslateAnimation 추가하여 좀더 부드럽게 만들면서 채팅앱은 마무리된다.


6장 앱을 개량하자.

 노골적으로 기존 앱을 개량하자고 하는 부분이다.

Asset Studio를 이용해서 기본으로 만들어지는 안드로이드 아이콘 말고 다른 아이콘으로 변경하는 법과 아이콘을 새롭게 추가함에 따라 필수로 알아야 할 dpi 개념을 설명한다.


 이미지 리소스를 추가하여 개선하는 것이 아니라 안드로이드가 지원하는 다양한 drawable 중 shape 을 이용하여 디자인을 개선하고, 여백과 글자색 등을 바꾼다.

스마트폰에 비해 화면이 큰 태블릿, 패블릿에서도 좋은 디자인으로 보이는 방법(여백제거)도 소개된다.


 소스나 레이아웃 내에 고정적으로 있었던 텍스트들을 리소스에 strings.xml에 등록하여, 안드로이드가 다국어 지원을 이용하는 법을 소개한다.

 추가적으로 음성으로 입력받기 위해 Intent를 이용하여 음성인식할 수 있는 외부 앱을 호출하여 결과를 받아서 사용하는 법을 알려주고 있다.

 음성지원을 위해서 외부 앱에서 결과를 받아 와서 처리하는 로직이 추가되어야 하는데, 추가적으로 기존 로직과 중복되므로 이를 리팩토링해서 같이 쓸 수 있도록 수정하는 법을 안내한다.


7장 벽돌깨기 게임을 만들자

 흔히 알카노이드로 알고 있는 벽돌깨기 게임을 만들기 시작한다.

앞에서 언급한 내용만으로는 쉽지 않아 보였지만 화면에 표시하기 위해, canvas에 도형을 그리는 것, 사용자의 터치에 따른 처리,  UI Thread와 별도로 Thread에 대한 설명이 순서대로 이어진다.

 

 차근차근 우리가 벽돌깨기 게임을 만든다고 생각했을 때 중요하다고 한 순서대로 벽돌깨기에 관련된 벽돌 그리기, 움직이기 위한 패드 그리기, 공 그리기 등이 진행된다.

 핵심적인 공의 움직임 처리, 벽돌의 없어짐, 점수 처리 및 게임을 클리어했을 때 표시될 새로운 액티비티를 생성하고(책이 거의 끝나는 지점에서야 액티비티가 하나 더 생긴다!), 해당 액티비티로 이동하는 부분을 설명하면서 Context를 설명한다.

그리고 Thread끼리의 메시지를 주고받기 위한 방법으로 Handler를 소개한다.


또한 폰의 가로 화면 모드 전환에 따라서 이를 지원하는 부분까지 설명하고, 좀 더 게임처럼 만들기 위해 효과음까지 추가합니다.

 이어 진동까지 지원하면서 처음으로 퍼미션에 대한 설명을 한다.

퍼미션에 대한 설명이 책의 거의 끝에 나올 만큼 이 책은 개발이 진행되는 부분에 필요한 부분만 설명을 함을 알 수 있다.

 설정을 추가하고, 스코어의 저장을 위해 SharedPreference를 사용하며 설명한다.

외부 앱에 공유를 위해 암묵적 INTENT를 이용하는 부분으로 벽돌깨기 게임은 마무리된다.


8장 앱을 공개하자

 앞서 개발한 앱을 마켓에 올려서 다른 사람들도 이용할 수 있도록 하는 부분을 설명하고 있다.

이 부분은 항상 화면과 내용, 정책 등이 바뀌고 있으니 구글 플레이 스토어의 안내를 따르면 될 것이다.


이 책은 놀라운 부분은 마지막 A장 남은 과제이다.

부록 A. 예제 앱의 기능을 추가한다.

부록 B. 학습하다가 막혔을 때

 저자도 해당 책으로는 완전히 안드로이드 앱 개발을 다 알기는 어렵다는 것을 알기에 짧지만 추가한 부분인 것 같은데, 앞서 만든 채팅앱과 블록깨기 게임을 어느 부분을 개선하면서 공부를 해야 할지에 대한 과제가 있어서 혼자 공부하는 분들에게 좋은 목표가 될 것이다.


결론

 해당 책은 상당히 좋은 안드로이드 개발 입문서라고 생각한다. 다만, 완전히 개발 지식이 없는 초보자가 보기는 어렵다. 기본적으로 자바는 알고 보는 것이 어울리는 책인데, 중간에 책의 정갈함을 해치는 Java의 기초 부분까지 설명하는 부분이 있어서 어차피 해당 설명은 Java도 모르는 분들에게는 부족하고, 알고 있는 사람들에게는 사족이 되는 부분이라 아쉬웠다.

 Java나 다른 프로그래밍언어를 다루어본 경험이 있는 분들이 안드로이드 앱 개발을 시작하고자 하는 첫 책으로 본 책을 추천한다. 이 책을 보고 난후에는 이제 자신이 뭘 모르고, 뭘 더 배워야 하는지는 알 수 있을 것이다.


0개의 상품이 있습니다.



0개의 상품이 있습니다.

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