방관자 효과 때문.


삼성전자 재직 시절 검증 파견으로 경북 구미 원룸촌에 살았던 기억이 있다.


기숙사에 살고 싶어 하는 과장님이 계셨는데 집이 3번이나 털리셔서 너무 무서웠기 때문이다. 직급도 높고 연봉도 높고 다른 기준이 만족되지 않아서 기숙사에 못 들어갔었다.


그 당시 TV에 문이나 초인종 바로 아래 벽에

"여긴 여자 혼자 사는 집"이라는 표식을 하는 이야기가 있었는데,


http://news.khan.co.kr/kh_news/khan_art_view.html?art_id=200912220500255

난 직접 봤었다. 그리고 한 번은 지인 연락을 받고 연장 챙겨서 보호하러 간 적도 있었다.

뭐, 그랬다. 지금 십 년도 넘었으니 안 그렇겠지.

내가 하고 싶은 말은 그 당시 원룸촌에서 도둑이 들어 당했던 많은 분들이 있었고.

따로 알릴 방법이 다른 분들을 위해 전봇대나 건물에 전단지를 만들어 붙여 놓는 것을 보았다.

그리고 그것을 떼는 사람도 보았고, 집값 떨어질 것을 걱정한 집주인 들이라는 것을 알게 되었다.

일반화하고 싶지 않다. 내가 아는 많은 집주인들은 경제적 여유에서 오는 인간다움을 가진(가질 수밖에 없는) 사람들이 많으니까.

털린 집이 또 털렸던 이유는 당연히 도둑놈이 나쁜 ㅅㄲ니까가 명확한 이유겠다. 그러나 이 이유와 더불어 경찰의 무능이나 주변 사람들의 무관심, 안전 불감증, 등을 이유로 들고 싶지는 않다.

딱, 바로 그 집주인이 문제다. 혹은 몇몇 집주인. 

결국 구미 집값은 내가 처음 구미 갔을 때와 8개월 뒤 구미를 떠날 동안 반토막이 났다. 도둑이 많다는 이유가 아니라 삼성전자가 위쪽으로 올라간다는 이유로.


몇몇 집주인을 방관하는 이가 많아지면 방관자 효과가 나타난다. 


물론, 난 싸웠다. 그때 그 성격 아직도 그대로다. 최근 쓸데없이 아이들 놀이터 앞에 계속 지상 주차하는 가오 잡이 동네 아저씨에게 캠 들고 찾아가서 인터넷에 얼굴을 올려버리거나, 밤에 담배 피우러 오는 고등학생들에게 야구 방망이 들고나가기도 했다. 다른 사람들은 나 덕분에 편안하다고 생각한다. 그러나 꼭 내가 아니더라도 문제가 심각해지면 나서는 사람이 1%는 있다고 생각한다.


http://news.khan.co.kr/kh_news/khan_art_view.html?artid=201106171948295&code=100100#csidx92529de1e0c70f99ba1ded99831dcdb

우리나라에서 방관자 효과는 없애버리자.

1

OLPP도 그렇고 개인적으로 제대로 인식되지 않은 무언가 때문에 새로운 원리를 만드는 것을 좋아한다. 세상이 잘못되어 있는 것을 그냥 있는 그대로 말하는 것을 좋아한다. 어머니께서 그렇게 사시다가 20년이 넘도록 고통을 받고 계시지만 사실 어머니께 받은 가장 큰 선물이 바로 그런 점이다. 그러나 내부 고발자들이 잘 못 사는 것도 그렇고, 솔직한 것은 세상 사는데 표면적으로는 별 도움이 되진 않는다.


2

남자는 웃통을 벗어도 되고, 여자는 니들이 보이니 안된다는 말도 안 되는 논리 때문에 페북 페이지를 2년간 운영하다가 최근 잘렸다. 해외 스타 중에는 해당 운동을 열심히 하는 스타도 있다. 나도 스타의 인스타 팔로워를 하며 그 영향은 받은 것이었고, #MeToo도 좋지만, #FreeTheNipple도 찾아보시라. 괜히 또 스타 이름 적으면 킬베 운영할 때처럼 직접 사람들이 바로 알 수 있는 것과 찾아서 아는 것은 다르다는 이상한 논리로 계정  잘릴라.


3

보이루~

나도 잘 알고 아마 이 글을 읽는 사람도 잘 알 것이다. 모르면 찾아보면 되고. 유튜브 구독자가 250만 명이다. 웬만한 셀럽이 10만을 넘기 힘든 것을 봤을 때 정말 대단한 사람이다. 방송에서 욕해도 구글에서 밀어준다. 그러나 자막에는 욕을 넣지 않는다. 방송 신고 메뉴에도 글자만 있지 음성은 없다. 왜냐면 음성인식이 개판이기 때문이다. 



찍어 논 영상이 이것밖에 없지만, 난 SK 누구 처음 나왔을 때 지르고 실망해서 카카오 제품도 똑같이 샀는데 수준이 개판이었다. 물론, 너무 인식이 안돼서 크게 소리 지른 거고(재미있으라고) 지금은 수준이 많이 좋아졌다. 국내 명문대 음성인식 분야 지인이 이야기하는데 AI는 무조건 빅 데이터가 있어야 하고, 빅 데이터를 모으려면 어쩔 수 없는 기업들의 선택이라고 한다. 구글도 구글 홈 광고하는 거 보면 일단 출혈 세일과 더불어 지속되는 광고, 제품의 핵심 기능과는 관계없는 아기자기한 objects(것 들)로 현혹시켜 사게 만들어야 한다. 이 논리를 알고 구글, SK, 카카오 고민하다가 카카오 제품으로 선택하고 누구는 지인주고 카카오 제품은 몇 개 더 사서 주변에 선물했다.

 기업이 핵심적인 뭔가를 밝히기 꺼려하는 점도 그렇다. 구글의 자본력과 시장 지배력을 이기려면 빠르게 움직여서 국내 사용자를 확보해야 빅 데이터를 처리할 수 있기에 그렇게 한 것이다. 나도 이왕이면 국내 기업이 잘 되면 좋겠지만 스타트업에 있을 때 카카오는 친일 후손이 만들어서 탄탄하게 시작했고, 바로 서울에 사무실 얻어서 힘들게 하지 않았다는 말을 스타트업에서 힘들게 일하는 사장에게서 들었었다. 게다가 돈 벌면 전부 외제 제품으로 도배하는 "그렇게 욕한 사람조차" 것을 보며 사실 요즘은 국내 기업도 순수하게 경쟁력이 있으면 좋겠다는 생각이다. 그러나 구글이랑 네이버 청문회 하는 것 보니 아직도 국내, 국내 하며 매달리는 것 같아 많이 아쉬웠다. 그렇게 성장한 삼성, 현대가 자국민에게 하는 꼴을 보고도 그런 것을 보면 이렇게 나처럼 말할 수 있는 사람이 참 없긴 없나 보다 하는 생각이 든다. 오마이뉴스나 뉴스타파에는 많은데 말이다.(시사인은 이제 뺐다)

 뭔가 의미가 있는 것 같은 3번 글은 내가 오버워치를 하다가 마이크로 욕하는 놈에게 글로 욕하다 결국 나는 증거가 남아 계정이 잘려서 쓰는 글이긴 하다. 음성 인식은 좀 더 기다려봐야 한다는 것. 그리고 카카오 미니는 1년 넘게 싸게 팔았으면 이제 그만 할인을 풀었으면 좋겠다. 어떤 마케터가 들어왔는지 카카오 뱅크나 카카오톡 마케팅을 보면 수많은 사람들에게 몇 개 상품(혹은 돈)이나 돈을 놔두고 추첨해서 드려요. 혹은 이모티콘 한정 걸어두고 사람들 유혹한다. 데탑에서 광고하는 것도 유일하다. 자국민에서 어떻게든 더 좋은 서비스로 보답할 생각은 안 하고 카카오톡에 전부 밀어 넣기 바쁘다. 뭐, 개인적 의견이니 카카오 지인들은 굳이 연락 끊을 필요는 없다. ^^ 그 정도 배포는 된다고 생각하고 브런치에 적어 본다.


4

염세주의 대표 작가의 좋지 않은 결말과 더불어 염세주의는 내가 추구할 방향이 아니라고 생각했다. 통념상으로도 좋은 생각을 하는 것이 맞다고. 그런데 현실은 리얼리즘이 아니면 이해할 수 없는 게 많고. 어릴 적과 다르게 지금은 모든 것을 이해하려고 하고 있다. 어릴 적엔 가정 불화 때문에 수학 빼고는 다 틀린 학문이라 수학만 안 했다. 이렇게 말하면 다른 사람은 어려워한다. 가정 불화 자체가 말도 안 된다. 다른 학문은 늘 바뀐다. 가장 잘 바뀌는 게 법학이고 그 외에도 모든 게 바뀐다. 수학은 사람의 약속에서 출발한 학문이라 안 바뀐다. 1은 1이고 2는 2이듯이. 새로운 법칙이 나오기는 하지만 본질적인 것 자체가 바뀌지는 않는다. 그래서 수능 때도 난 수학을 제외하고는 점수가 모두 서울대 의대 수준이었다.  수학이 쉽게 나와 반에서 반 이상이 80점 받을 때 난 25점 받았다. 집에서 하도 서울대 거려서 중학교 때 까지는 서울대 가서 자살하는 게 꿈이었는데 그 꿈을 이루지 못해서 다행이다. 그런데 지방 국립이지만 장학금 받고 공대를 가게 되고 대학교 이후부터는 수학만 하게 되었으니 세상 참 아이러니하기도 하고. 또, 프로그래밍하면서 학비도 벌고 지금까지 돈을 벌고 있으니 그것도 아이러니하다.

 이런 밑밥을 까는 난 정말 이번 연도 초까지 학벌 사회에 대해서 이해하지 못했다. 가르쳤던 학생이 서울대, 카이스트, 같이 일하는 사람들이 스탠퍼드, MIT 자주 술 마시는 지인들이 서울대 사람들이라 그런지 모르겠는데. 오히려 명문을 나온 사람들이 (그리고 대기업이) 학벌에 대해서 잘 인지하지 못한다. 내가 그 속에 섞여서 내가 그렇게 된 게 아니라. 난 그 사람들이 질풍 노도기 때 나처럼 이상한 생각 안 하고 공부에 집중해서 잘했다고 생각했다. 그러나 최근 학벌 사회가 되는 것에 대해서 확실히 알았다. 김규삼 만화에서 우리가 학벌 사회를 이루는 벽돌이 아닐까라고 표현했는데, 그 이유에 대해서는 늘 궁금했다.

 확실히 알았다. 그리고 그 위에 있는 공자라는 위대한 인물도.


‘子曰(자왈) “學而時習之(학이시습지) 면 不亦說乎(불역열호)아

有朋自遠方來(유붕자원방래) 면 不亦樂乎(불역락호)아

人不知而不溫(인부지이불온)이면 不亦君子乎(불역군자호)아”


논어의 이 구절은 내일모레 40이 될 위치에 있고 나니 한 줄 한 줄이 뭐라 표현할 수 없을 정도로 위대하다는 것을 알게 되었다.


우선, 학벌 지심이 있는 사람은 정말 자신이 노력할 수 있는 최선을 다했었던 사람이다. 그런데도 뒤쳐지다 보니 서울대/카이스트 출신을 인정할 수밖에 없고. 마치 사람 계급을 나누는 것처럼 할 수밖에 없었던 것이다. 아니, 학교 등급이나 시험문제도 사람이 내는 것이고 사람의 능력이라는 것을 측정하는 단위가 틀렸기 때문에 운동만 했던 사람도 수능 전국 1등보다 더 잘 사는 게 인정되는 세상에 무슨... 명석하고 학창 시절 성실하게 보냈고 부모님 말씀 잘 들었고 등등 시험 성적으로 인정할 수 있는 부분들이 많다.

 학벌 세탁이 유행이다.

최근 위와 같이 생각하던, 그런 사람이 미국 명문대에서 학벌 세탁하려고 했는데 현금만 20억 이상을 벌고 나니 공부에 대한 꿈을 접었다. 솔직하게 말해줘서 고맙긴 했지만 그 전의 대화들이 날 깔아뭉게려고 말한 부분들이 있어(결국 다 밝힐 거지만) 고마워도 한 20%? 뭐 싫은 것은 아니니.


공부하다 보면 정말 재미있는 순간이 온다. 그 순간은 2가지다. 남들보다 뛰어나다는 것에 대한 기쁨. 그리고 정말 순수하게 신의 법칙을 알아가는 것에 대한 기쁨이다. 공자가 말한 글을 긁어온 위엣 글의 첫 번째 구절은 딱 그것(순수한 앎의 기쁨)을 말하는 것이다. 스타트업 ㅈ 같다고 일전에 글을 썼던 이유가... 공자가 말한 저 부분은 정말 1도 없었다. 하긴 하루 대화가 돈과 관련된데 70% 이상이었으니. 돈이 중요한 것은 사실이지만 대기업 7년 다니면서 돈 이야기를 하루에 1%라도 한 것은 손꼽을 정도다. 그러나 스타트업, 중소기업을 전전하는 지금 그렇게 될 수밖에 없는 이유도 명확히 알고 있다. 이 매거진에서 말할 것이고. 그것은 정말 리얼리즘.


5

요새 글 쓸 시간이 없다. 올해 출판하려고 한 기술 서적 중급 써놨는데 최근 산 외서 보다 보니 대부분이 비슷하고(정말 안 보고 쓴 건데) 나보다 훨씬 설명을 잘해서 멘붕이 왔고. 일도 많아서 아이랑 놀아주는 것만 해도 벅차다. 오버워치 계정 잘리고 항의를 해야 하는데(돈은 돌려줘야 하잖아. 내가 산 물건을 내 동의 없이 다시 가져갔으면) 로스트 아크라는 대작이 나와서 그럴 시간도 없고.


이 글들도 쓴 지 오래되어 이제야 발행한다.


뒤에서 응원해 주시는 분들이 많다. 내가 다칠까 봐 걱정해 주는 사람도 많고. 그런데 그렇게 걱정만 하다 무지개 다리나 요단강 건너시는 상갓집에 많이 가다 보니 오히려 더 말할 건 말하고.


어차피 대단한 사람도 아닌 개인의 의견이니 볼 사람만 보게... 하자는 것이다. 글쓰기 귀찮아서 유튜브에 영상 찍어서 10개 정도 올리다가 그만뒀는데 그나마 글을 읽는 사람들은 나이가 좀 있기 때문이다. 유튜브의 경우 아이들이 보기 때문. 리얼리즘 중시하게 된 나 역시 김구라가 자기 아이에게 너무 리얼리즘을 가르쳐서 방송에서 보던 동현이가 조금은 어눌해 보인 것이 아쉬워 내 아이에게는 세상 이야기를 하지 않고 디즈니 랜드 레고가 만들어준 세상에 놀게 하기 때문에 유튜브는 좀 아닌 듯하여 2000 구독자께 죄송하지만 400 구독자를 선택했다.


6

너무 리얼은 사실 재미없고 불쾌하기도 하다. 늘 생각이 많다고 이야기를 듣던 나인데 그런 생각이 20년 넘게 보였으니 얼마나 많을까? 사실 쓰면서 지워나가고 내려놓고자 하는 마음도 있다. 책을 쓰면서 알았다. 쓰면서 알게 되는 게 아니라 쓰면서 지우고 내려놓게 되는 것이라는 것을.


경험해 보고 경험을 적는다. 어머니의 영향으로 그런 경험이 여성을 위하는 쪽으로, 나쁜 사람들의 행위로 영향을 받아 리얼리즘으로 바뀌었다.


이런 조각 생각들로 이 매거진의 존재 이유를 설명해 본다.


브런치 맞춤법 검사를 돌리고 막 클릭하는데 공자 부분도 조정을 해 주네. 나도 긁어온거니 한번 확인해 보시길.

이 글을 쓴 이유는... PC방을 좋은 이미지로 착각해서 아르바이트하는 착한 아르바이트생이 없었으면 하는 바람에서다. 딱히 뭔가에 대한 결론이랄 것은 없고 개인의 생각을 남겨 당신의 생각에 도움이 되고자 경험을 끄적여 본다.


-아래- 기사 외에도 많은 기사가 있는데 왜 다들 일반화를 하려고 하는지 모르겠다. 냇물 가장 위에서 독극물을 내려보내면 아래쪽 사람들은 다 죽는데, 독극물 내려보낸 사람을 욕하는 게 아니라. 위에 사는 사람들의 정신이 문제다. 물은 위에서 아래로 내리면 안 된다. 등등... 그냥 저~ 산이네 하니까 우~~~~ 하고 사람들이 달려가는 꼴. 뻔한 이야기를 굳이 누가 나서서 하지 않으니 젊은 요즘 기자들이 이상한 생각을 하나보다.라는 생각.


PC 방 살인 사건에 대해서 내 경험과 빗대어 이야기해 보면 이렇다.


1. 게임은 폭력성과 연관이 있다. 게임을 해서 폭력적이 되는 것은 아니다. 폭력성이 높은 게임을 하면 폭력적이 된다. 쿠키런 고수인 와이프가 살인 기술을 배우는 것을 아니라는 것. 우리는 굳이 배울 필요 없는 살인 기술을 폭력성 높은 게임을 통해 배운다. 물론, 재미도 있고. 화를 푸는 방법을 노래로 배웠다면 노래로 풀 텐데 게임에서 배우는 것은 폭력의 방법이다. FPS 게임에서 50 킬 넘게 하면, 혹은 사람 머리를 터뜨리는 헤드샷을 5번 이상하면, 확실히 스트레스가 풀린다. 물론, 좋은 말로 바꿀 수도 있겠다. 가상 세계에서 사람을 죽인다는 의미보다, 게임이 마련해 놓은 캐릭터를 게임의 룰에 맞게끔 잘 조작해서 상대를 쓰러뜨리는 승리 목표를 달성하면 스트레스가 풀린다. 는 식으로. 국감에서 게임이 안 좋다 논하는 그분들도 난이도 조절해서 헤드샷 하게 만들어 드리면 아마 스트레스 푸는 데는 확실히 동의하실 것이다. 나도 수십 년간 게임했고 지금도 한다. 군대보다 게임에서 무기의 종류와 살인 기술을 더 많이 배웠다. 그러니 군에서도 게임 시뮬레이션을 이용해서 군인 육성하려고 하지 않겠나? 


2. 자동차 사고 나면 브랜드를 보고 싶은데 브랜드는 나오지 않는다. 보일러 사고 나면 나는 관련이 없더라도 해당 보일러 브랜드가 궁금한데 알 수가 없다. PC 살인 사건에서 게임이 문제면 살인자가 즐겨하던 게임이 뭔지 알고 싶은데 뭔지 모른다. 게임이 문제가 아니라 폭력성이 높은 게임이 문제인데 뭔지 알 길이 없다. 살인자 면회 가서 물어보면 될 것 같긴 하다. 게임으로 일반화하지 말고, 어떤 게임이 문제인지 확인해야 한다. 수원 PC방에서 도끼로 손을 찍었던 사람과 PC 방 살인자가 즐겨하던 게임이 동일 게임이라면 그 게임은 뭔가 조치를 취해야 하지 않을까? 폐쇄라기보다는 할 수 있는 연령대를 더 올리던지.


3. PC방 문화 자체도 연관 있다. 옛날 오락실에는 조폭들이 많이 왔었다. 지금의 PC 방 문화도 크게 다르지 않다. 담배가 살인자를 의미하는 것은 아니지만, 반항의 상징이다. 지금처럼 규제가 심하고 의식이 많이 바뀌었는데도 담배를 피운다는 것은 문신과 비슷하게 반항을 의미하며, 반항의 특정 대상이 없다고 했을 때 우월주의의 상징이다. PC방 가면 그 자리에서 담배 피우는 사람도 많이 있고, 사실 옛날 오락실 분위기 그대로 옮겨놓은 듯하다. 물론, 현대적 PC방, 규모가 있는 PC방은 다르지만 오락실이 PC방으로 변모되는 과정 중에 있는 것으로 보인다. 아직은 큰 곳을 가던 작은 곳을 가던 어린 학생들이 쌍욕을 자유롭게 하는 장소는 PC방이다.


4. 웃길지도 모르지만, PC 방 말고 한 가지 더 말하면 살인자의 문신도 연관 있다. 문신 많이 한 연예인이 종편급 채널에 나올 때는 문신을 다 가린다. 왜 그럴까? 우리 정서가 문신을 허용하지 않는 이유가 있다. 지금은 거의 조폭이 사라졌지만 나 어릴 때는 유명 거리를 지배하는 것은 어둠의 주먹들이었다. 난 부산사람이니 해운대나 서면, 부산대 등... 그래서 관련해서 영화도 많이 나왔는데 사실 그런 류의 조폭이 사라진지는 20년이 넘었다. 지인이 건설 쪽에 있어서 직접 연관 있는 경우도 많고. 우리나라 경찰이 이룬 쾌거로 확실히 알고 있다. 그런 조폭들이 즐겨하는 게 문신이었다. 그래서 좋지 않은 이미지는 있지만 이제 많은 타투 신봉자들이 문화를 많이 바꾸긴 했지만, 여전히 좋지 않은 시선은 이 친구 덕분에 이어질 것 같다. 물론, 난 1년에 한두 번 정도 문신하려고 와이프에게 물어본다. 하는 답변은 "네 딸이 문신한다고 할 때 어떻게 반박하려고?" 사실 난 괜찮긴 하지만 문신하는 친구들 보면 낫는 과정에 많이 아파해서 그 점이 아쉽긴 하다. 내가 문신하려는 이유는 늘그막에 해야 할 일이 있는데 그 일이 생각보다 험한 일이기 때문에 굳은 다짐을 위해서이다. 뭐, 사실 그런 게 없어도 이미 하나 있긴 하지만. 떠나는 사람은 작별 인사를 하지 않듯이 사실, 필요도 없고.


1, 2, 3, 4를 말한 이유는 학생들이여~ PC방 아르바이트하지 말고. 하게 된다고 해도 흡연실이 없어서 앉아서 담배 피우는 PC방은 피하고, 흡연실이 있는 PC 방도 피하라는 뜻이다. 그게 아니면 건전할 수가 없다. 굳이 건전할 필요는 없겠지만 질 나쁜 사람들 계속 보다 보면 미간 위를 억누르는 듯한 개운치 못한 기분을 매일 느껴야 한다.


그냥 내 경험이다. 결혼해도 새벽까지 PC방에서 새벽까지 게임해서 오버워치 1년 안되어서 금장 달고. 최근 처가댁 갔다가 PC 방 밤새면서 휴대폰 배터리 다되어 할아버지 걱정시키고, 학생들에게 GTX 그래픽 카드를 스승의 날 선물로 받을 정도로 확실한 경험에서 말한다. 그리고 PC방 알바도 했었구나. 해운대 신시가지에서. ^^;; PC 방은 건전하지 않고, 폭력성이 있는 게임은 사람을 폭력적으로 만든다. 물론, 내가 어릴 적 아르바이트할 때 야간에 항상 오던 조폭은 나에게는 너무 좋은 사람이었다. 그렇다고 사실과 내 생각을 적지 않을 이유는 없다.


아마 PC 방 자체를 좋게 만들려고 애쓰는 사장님 많을 것이다. 그러면 그냥 10시 되면 문을 닫는 게 맞을 텐데 그렇게 할 수 없는 경제 구조다. 결국 게임 폐인이 있지 않으면 PC방 유지가 되지 않고, 지속적인 폭력성 게임은 사람을 폭력적이게 만들 수밖에 없다.


게임 회사가 그렇다고 한 계정에 접속 시간을 제한하지는 않는다. 법에서 강제하니 그나마 청소년들이 10시에 못 오도록 막는 수준에서 그친다. 


게임과 담배와 마약은 크게 다르지 않다. 또 한, 내가 만났던 서울/카이스트 출신 및 잘 나가는 사람들은 담배도 피우지 않았지만, 게임도 하지 않았다. 더 재미있는 것은 게임 만드는 사람들이 무슨 게임 광인 것처럼 생각하는데 게임 만드는 사람보다 게임 폐인들이 게임을 더 많이 할 수밖에 없다. 물론, 게임 광이었지만 네임 벨류가 올라가고 더불어 일이 많아져서 바빴지만 게임할 시간 거의 없다. 우리나라 의사 되기 힘들다고 하지만 의사 신입생은 매년 2000~3000명이다. 프로게이머? 지금까지 프로게이머 다 합해봐야 1000명 안된다. 지인이 프로게이머 한다고 하면, 물론 그 가능성은 시간을 두고 지켜봐야겠지만. 숫자로 말하면, 차라리 의대를 추천하는 게 낫다.


난 PC방 자주 가고 사람들과도 곧잘 어울린다. 끊었던 담배도 가끔 피울 때도 있다. 내가 살인자는 아니지만 살인에 대한 기술은 모두 게임에서 배워서 안다고 생각한다. 주짓수나 태권도를 배운 사람이 폭력적인 것은 아지만 특정 상황에서 충분히 위험할 수 있다고 생각한다. 그나마 그런 격투기는 사람을 겸손하게 만들지만 게임 속에서는 사실 대부분이 이건희다. 나 역시 게임과 군대가 아니었다면 칼을 쥘 줄도 몰랐겠지. 이것에 대해 이야기한다면 끝도 없고, 결국 사람이 하는 일이니, 우리나라 총기 소유도 합법화되어야 한다는 결말까지 가니까 그만해야겠다.


살인/폭력 사건이 계속 나고 그 장소가 PC 방이라면, 전국의 PC방 수에 관계없이 문제는 있는 것인데.

해당 문제에 대해서 논리로만 말하려고 하니.


내가 게이머라는 사실과 폭력성 게임은 살인 사건과 직접적 연관이 있다는 사실을 남긴다. 해외 연구나 논문 말고 실험으로 증명하면 좋을 텐데. 선량한 10 사람을 폭력성 게임 속에서 PC 방 게임 폐인의 평균 플레이 시간만큼 몇 달간 돌렸을 때 살인 충동에 대해 연구하면 좋을 텐데 말이다. 어떤 결과가 나더라도 게임 산업이 커진 만큼 충분히 연구되어야 한다. 우리 먹거리에 들어간 나쁜 균이 뭔지 항상 연구하고 찾아야 하듯이 말이다. 굳이 말 안 해도 우린 다 알고 있다. 사행, 폭력 같이 자극적 요소가 변형되어 게임에 녹아났고. 게임 업계가 충분히 할 돈이 되지만 자정 작용을 위한 돈은 아까워한다는 것을.


좀 더 사견으로 가겠다. 개인적 게임 취향을 적자면 오래전 디센트라는 미로 찾기 게임이 있었다. FPS랑 조작 방법이 비슷하지만 뒤집히기도 해서 3D FPS가 어지러운 사람이 하면 손을 못 댈 정도로 어려운 퍼즐이었는데 난 재미있었고 엔딩 크레디트도 보았다. 그런데 지금 나오는 게임들은 그만큼의 쾌감과 몰입감을 주는 게임은 사실상 없다. 그때의 성취감과 쾌감은 사실 군에서 전역했을 때나, 취뽀했을 때나 내가 결혼할 때도 아이를 낳았을 때도 느껴보지 못한 새로운 형태의 감정이었다. 그래서 게임을 사랑하고 비판적으로 말하고 싶지는 않지만 확실히 문제는 있다. 문제를 인식하지 못하면 지금 같은 문제는 계속 발생한다.


스필버그가 레디 플레이어 원이란 영화에서 해결책을 이미 제시했다. 일주일 중 하루는 접속 못하게 하면 된다. 혹은 계정 당 하루 접속할 수 있는 시간을 제한하면 된다. 교육용 게임을 제외하고는 꼭 그렇게 되었으면 하는 바람이다.


- 아 래 -


https://www.huffingtonpost.kr/entry/story_kr_5bee2162e4b0860184a6d1dd

http://www.inven.co.kr/webzine/news/?news=209557

https://www.gamemeca.com/view.php?gid=1502503

https://news.joins.com/article/23082155


- 내가 경험하고 들은 바에 의하면, 70%가 비리 때문.(10개 중 7개)

1. 어릴 적부터 강사 활동을 하다 보니, 제자가 많아졌다.

2. 또, 술을 좋아하다 보니 민감한 정보를 많이 듣게 된다.

3. 제자들의 이야기를 들어보면, 사장의 친인척이 월급 700 이상 받는 경우가 많다. 

    각기 다른 기업, 다른 고용 형태로. 그런 경우는 다른 이유 불문하고 연봉 비공개의 이유로 흑백논리 적용!

4. 대기업 비리야 뉴스에 많이 나온다. 중소기업, 스타트업, 비리는 더 많다. 문제는 자각하지도 못한다.

5. 직급이 낮으면 비리를 판단할 수 없다. 권한이 없다. 누가 물어볼 때는 우리 회사는 미국 문화, 중요한 것 물어볼 때는 군대 문화.

6. 내가 있었던 스타트업도 몇 달 동안 얼굴도 못 보던 사장형을 감사로 앉히고 월급 1000. 원래 중소기업 돌던 애들은 딱 그 수준에 맞춰주는 것. 그런 더러운 관례를 벗어나지는 못하더라. 따져보면 대기업도 수익의 매우 적은 % 밖에 직원들에게 주지 않는다. "발톱의 떼"라고 표현하는 것은 몸에서 차지하는 비율을 따져 이야기하는 것.


돈에 대해서 깨끗하고 공정한 기업은 이런 이야기를 오히려 더 편하고 환영한다. 연봉 관련 수많은 거짓 기사와, 멋진 기사를 찾다 보면 아마 전 직원 연봉 공개했던 기업의 이야기와 충분히 고개를 끄덕일 만한 논리를 발견할 수 있을 것이다.


대기업 임직원이 참 많지만, 중소기업중앙회 자료나 연봉 관련 기사를 보면 제대로 모르는 경우가 많은데, 내 경험상 중소기업 연봉 정보를 알기가 더 힘들다. 대기업은 연봉 이야기했다고 자를 권한이 한 사람에게 있지는 않기 때문이다.


결론적으로 직원은 설국열차의 뒷칸에 있어야 한다는 것. 내가 부탁하고 싶은 것은 직원들 연봉 공개하지 말라고 하지 말고 비리 저지를 때 정말 남들 모르게 좀 해달라.


그 외 다양한 이유도 있을 것이다.

1. 평가와 보상이 제대로 이루어지지 않거나, 해당 내용에 대해서 논리적으로 설명할 수 없기 때문.

2. 해당 사원의 역량을 평가할 수 있는 잣대가 없어 다른 사람들을 이해시킬 논리를 만들 수 없기 때문.

3. 직원이 회사가 가지지 못한 핵심 역량을 가지고 있고 돈으로 데려올 수밖에 없었으며, 그 역량이 사활을 좌우하고 그 액수가 다른 사람 연봉의 몇 배가 되기 때문.

4. 그 외 다른 이유.


+


1. 판단을 컴퓨터에게만 맡기지 않으면 정확한 결과물을 내는 것이 컴퓨터이다. 

2. 즉, 투자를 제외한 돈 계산만 컴퓨터가 하면 매우 정확할 것이다.

3. 아이리니 하게도 회계 분야에서 판단이 불필요한 부분이라도 컴퓨터가 대체할 수 없다.

4. 물론, 해당 분야(회계)에는 AI 역시 들어갈 수 없다.

5. 연봉 정보는 비공개되어야 비리를 저지를 수 있기 때문이다.

6. 브런치라는 공간을 마련해 준 카카오에게도 미안하지만 카카오도 못한다.

7. 이에 반해, 미국의 한 스타트업은 연봉 정보를 직원 전체에 공개하고 명확한 논리로 설명도 했다.


- 물타기 


1. - 또 다른 이야기 - 의 7의 이유로 작은 스타트업이 대단한 것이다.


- 아니라는 논리


1. 그 스타트업이 대단한 것이다.

2. 서울대 교수 모두가 대단하다. 강석진 같은 교수가 나쁜 것이다.

그런 기업 이름은 공개되어야 한다.


꿀위키/블라인드메신저/잡플레닛의 해당 기능을 기획하고 만들었던 사람은 연봉 비공개 문제를 정확히 본 것.

결혼을 안 하는 갖가지 이유에 대해 띄엄띄엄 글을 쓰다 보니 쓸데없는 말 줄임 "결같이"을 쓰게 되는 것 같아서 한 번씩 시간이 날 때 비슷한 말을 하고 싶다.


제목이 같던, 같지 않던 결혼에 대해서 이야기하는 것은 상당히 좋은 일이다. 왜냐면 난 결혼을 했기 때문이다. 그리고 독신주의자를 선호하는 사람이기도 하고. 개인주의도 선호해서 이혼에 대해서도 긍정적이다. 주변에 좋은 분 중에 이혼한 사람이 많은데 그들을 이해하려면 어쩔 수 없는 생각 회로의 정렬이 필요했던 것도 하나의 이유겠다. 그리고 한편으로는 이혼도 싫어한다. 귀찮은 건 딱 질색이기 때문이다. 비슷한 사람 주변에도 많다. 그래서 친한 지인 중엔 혼인 신고 안 하고 결혼해서 이혼하는 케이스도 몇 된다.


그만큼, 내 생각에는 큰 문제라고 생각한다.


내 생각과 대중, 혹은 기자들의 생각은 다를 것 같다. 혁신 제품이니 뭐니 시대를 바뀔 기술이니 뭐니 떠들어도 내 생각에 컴퓨터 기술은 지난 30년간 딱히 발전된 게 없다. 아직도 불편하다. 내비게이션 없을 때에도 길 물어서 잘 다녔다. 이메일 없어도 소식 잘 전했고, 더 감성적일 수 있었다. 전화번호는 외워야 해서 치매 걱정 안 해도 되었었다. 아직도 어머니의 말을 못 알아듣는 인공지능. 물론, 더 발전할 것도 같은데 내가 살아생전에는 아닌 것 같다. 태블릿 나와서 노트북 사라질 줄 알았는데 노트북이 대세다. 휴대폰에 시간이 나오니 시계가 사라질 진다더니, 기존 시계는 더 소중해지고 따라한 스마트 워치가 나온다. 이메일이 나와서 우체국에 우편 기능이 사라진다더니 우편 기능은 더 중요해졌다. 연말이라고 서로 간에 이메일을 보내진 않듯이 차라리 서로의 감정과 생각을 교환하는 좋은 문화만 사라졌다. 미디어를 보면 스티브 잡스가 하고 싶었던 것이 이해되는데, 과연 스티브 잡스가 하고 싶었던 것은 과연 무엇이었을까? 주저리 적었지만 스티브 잡스 욕할 정도로 뭔가를 보는 내 관점은 다르니 솔로인 사람은 내가 강력하게 주장해도 너무 비판하지는 말아주길 바란다.


사실, 모은 돈이 아까워서 결혼 못하는 사람은 그냥 결혼을 안 해야 한다. 나름 나이를 조금 먹으니 결혼과 사창가나 유흥업소의 섹스 화대와 비교하는 말도 많이 들었다. 스타트업 다니면서 오피스걸이란 것도 알게 되었다. 스타트업에는 졸부들이 많은데 어느 정도 돈을 많이 벌면, 의료보험비가 많이 나온다. 그래서 뉴질랜드나 호주로 많이 간다. 의료보험비를 안내기 때문이다. 20~30억 이상 넘어가면 의료 보험비가 600만 원을 넘는데 그 돈으로 한 달 외국 사는 돈이랑 같다고 한다. 그리고 수술 아니라도 외국에서 아프면 돈이 많이 나가기 때문에 (감기 걸리면 100만 원, 제왕절개 2000~3000만 원 등...) 한국으로 들어와서 그 달 의료보험비만 내면 된다고 한다. 그래서 외국이 마치 대단하고 외국 다녀온 자기네들이 대단한 양 이야기를 하며 기자들에게 술 사주면 기자들은 그걸 받아 적으니까 한국에서 외국인 상대로 영어 못하는 게 부끄러워하는 공중파 광고를 볼 수 있었던 것이다. 공무원들의 학벌 세탁에 대해서는 내 책에 써서 출판했었다. 요지만 말하면 외국 대학교에는 학위를 따서 자국으로 돌아갈 사람들에게는 학비를 2배 받는 대신 쉽게 학위를 준다. 그 이유는 굳이 말 안 해도 알 것이다.(궁금하면 댓글) 서울대가 우리가 생각하는 것과는 달리 전 세계 대학 순위에 이름을 내밀기도 부끄러운 게 문제가 아니라 근본적으로 왜 해외 학위를 대단하게 생각하게 되었는지에 대한 문제의 이유는 나는 스타트업 경험으로 다 풀게 되었다. 궁금하면 글을 좀 더 쓸 수 있겠다.


믓튼, 내 주장은 나의 주장이 아니라 그냥 보고 들은 것을 적는다. 그래서 국소적으로 적어본다. 스타트업에서만 그랬다고. 대기업에서는 결혼을 그 딴식으로 생각하지는 않더라. 다만 스타트업과 다르지 않은 발언을 들었는데. 그중 하나가 이 글의 제목이었다. 결혼해도 바람피우는 게 스타트업 문화라고 하면 대기업은 더 신중하긴 하지만, 사실 다를 바 없고 결혼하지 말아야 한다.


1년에 돈 아무리 많이 모아도 3000만 원 넘기기 힘들다. 내가 다니던 기업으로 치면(대기업이던 스타트업이던) 보너스 한방이긴 하고, 금융권, 전문직 등이 있긴 하지만 평균적으로. 그러나 집값은 그것보다 더 오른다. 그래서 돈 때문에 고민을 하게 되고. 소심해진다. 여자에 대해 모른다. 뭔가를 장만해야 할 것 같다는 생각과 책임이 든다. 지레 겁이 난다. 등...... 이야기를 하면 끝이 없겠다. 


지금은 달라졌다고 할지 모르겠지만 내 주변에는 원룸에서 살아도 좋다는 여자는 주변에 엄청 많다. 물론, 전제를 자기를 사랑해준다는 것 하에. 이것은 인간의 순수함이나 감정에 호소하는 것이 아니라 실제로도 그렇다.


1. 분양받아 들어간 집에서 물이 세고 시공 시행사는 날라서 엄청나게 매물이 많이 나온 아파트가 있었다.

2. 사람 한번 아픈데 보험 없으면 최소 1000만 원~1.5억 까지 나간다. 경미한 수준의 암에서 간암까지. 또 한 그 사이 돈 못 벌고 나가는 돈도 포함.

3. 음주운전은 보험 안된다. 음주 운전해서 사람 쳤는데 안 죽으면 평생 돈 물어주고 살아야 한다. 5~10억. 그래서 덤프트럭 운전 세계에서는 사람 치면 그냥 엑셀 계속 밟고 있으라는 이야기가 오갔었다. 그냥 죽였다고 생각하고 1.5억이라고 치자. 내가 입을 잘못 열면 지금도 형사 처벌받을 사람이 있을는지도 모른다. 


길게 적기는 내가 알고 있는 지식의 종류가 부끄러워 그냥 1~3 이유만 들어도 사람을 본다는 말이 맞을 것이다.


나 역시 국산차도 있지만 부끄럽게도 외제차도 있다.(흉기 차 때문이지만) 50평 아파트에 살지고 딸아이가 있는데 정말 돈 한 푼 없어도 사람만 괜찮으면 보내고 싶다. 사람 괜찮다는 것은 건강하고 정신적으로도 건강하다는 것을 의미하고 그렇다면 최소 10억 가치부터 시작하기 때문이다. 내 자산 다 합해도 10억 안되는데 나보다 더 부자인 사람이 왔는데 굳이 차나 집나 모은 돈이 있어야 할까? 합리적인 생각인 것이다.


이런 경제적이고 합리적인 생각. 그리고 숫자놀음에... 숫자 놀이하는 사위는 받고 싶지 않다. 결혼할 때 돈이 많이 든다고 생각하겠지만 결혼식장 비용은 사실 축의금으로 충당되고 남는다. 그게 아니면 소소하게 결혼식 하면 되고, 나중에 지인이 많아졌을 때 결혼식을 올려도 된다. 신혼여행? 사랑하는 사람과 가는 곳이 바로 최고의 여행지다. 집이 없는 것은 이렇게 발전된 세상에서 본인의 탓이 아니다. 투기꾼 사기꾼 부동산업자 정부의 탓이다. 작게 시작하면 된다. 나는 결혼을 빨리하려고 해서 원룸에서 살려고 했는데 그게 잘 안돼서 5년을 더 끌다 보니 결국 투룸에서 시작했었다. 결혼하면 돈이 더 모인다. 이런 신기한 현상에서는 나중에 더 설명하려고 한다.


딱히... 주제도 없고, 생각을 적었다.


사람마다 사연이 있는데 잘 안다고 말하고 싶지는 않은데...


다들 결혼했으면 한다.


아이가 너무 예뻐서 그럴 수도 있고.

나만 당할 수는 없으니 너희도 당해봐라 일수도 있고.

결혼하니 오히려 효도하게 되더라 라는 것일 수도 있고.

글에도 여러 이유가 있을 것이다.

.

.

.


주변에서 결혼 안 할 것 같은 지인 4명(못생겨서, 철저한 독신주의자라, 돈이 없어서 등...)이 최근 모두 결혼했다. 스포츠 댄스 클럽, 살사 댄스 클럽 정말 대단하다고 생각하지 않을 수 없다. 더 신기한 것은 그중 3명은 여자 쪽이 더 대단하다는 것이다(대학원 학벌, 모은 재산, 장인어른 능력 등...) 굳이 이런 글 안 써도 아직 한국에는 사람의 내면만 보는 사람의 비율이 더 높은 것 같다. SNS 좀 해 ㅡㅡ; 


진짜 못생긴 놈 한 명 있는데 제수씨는 예뻐서 이제 잘생긴 것으로 기준을 바꾸어 봐야겠네. 이 글을 빌어 진심을 적어놔 본다. 이제 그런 생각도 못하게 되었으니, 먼 훗날 내 생각도 바뀔 것 같아 기록해 둔다.


----------------------------------------------------------



사랑해요 라는 말속에는 
땅속으로 스며든 빗물처럼 
자연스럽게 스며든 그대의 깊이를 
기쁘게 인정한다는 뜻이며 
있는 그대로의 모습과 볼 수 없는 모습까지도 
경계 없이 좋아한다는 뜻이며 
그대 한숨과 절망마저도 
껴안을 준비가 되어 있다는 뜻이며 
슬플 때나 기쁠 때 
구분 없이 한결같은 마음으로  
그대 숨 쉬는 길목마다 
눈부신 그리움이 되고 기다림이 되어주겠다는 뜻이며 
내 사랑으로 
그대 삶에 힘찬 성장의 날개를 달아주겠다는 무언의 약속이며  
그대가 내게 있어 
세상에서 가장 아름다운 가슴에 피는 꽃으로 남아있듯 
나도 그대에게 있어 
지워지지 않는 의미로 남고 싶다는 뜻이다 

2004년 12월 - 喜也 李姬淑



아무리 단순한 개인 의견이라도 매우 어려운 주제의 첫 번째 글이라, "이런 글을 쓰겠다."라는 정도의 outline만 써 놓으려고 한다.


http://www.korean.go.kr/front/mcfaq/mcfaqView.do?mn_id=62&mcfaq_seq=5148


상담 사례 모음 - '각가지'와 '갖가지'의 차이 | 국립국어원


www.korean.go.kr 


이런 의미와는 별개로

각가지 이유라고 하면 normal하고,

갖가지 이유라고 하면 약간은 비아냥대는 듯한 느낌이다.



그러나 기본적으로 20대 30대는 결혼한 사람들에게 대한 비아냥이 존재하고,

40대는 결혼 안 한 것에 대한 비아냥이 존재하는 시기다.


내가 주변인에서 들은 결혼 안 하는 것에 대한 이유는 다음과 같다.




1. 남자의 경우 예쁜 여자를 못 만나서, 여자의 경우 제대로 된 남자를 못 만나서. 

2. 자신의 스타일에 맞지 않아.

3. 모은 돈이 아까워서.

4. 집안이 안 맞아서.

5. 종교 문제

6. 유부남이 너무 들이대서

7. 기타(엊그제 일요일 친동생 결혼식이었다. 참석 못했다.)



어찌 보면 7번이 가장 큰 이유일 것이고 가장 어려운 문제다. 인간관계랑 연관되어 있는. 그래서 개인사도 적게 되었다.



다음 글에서는 6번부터 풀어 보려고 한다.



유부남이 너무 들이대서



남자들 모이면 대부분 여자 이야기한다.



최근 지인을 만나 경기도 모 대학가에서 술을 마시게 되었는데, 술집이 떠나갈 듯 시끄러워 나중에 계산하고 나갈 때 이런 말을 건네더라. "너무 시끄러워서 가시는 건 아니죠?"




물론, 아니다. 대학 가는 시끄러운 게 정답이니까. 게 중에는 너무 또렷한 발음의 (타고난 성우) 학생도 있어서 본의 아니게 여러 이야기를 듣게 되었는데 00학번인 내 시절이나 크게 변화된 것은 없었다. 같이 갔던 지인이 어느 붙여진 테이블을 보더니, 예쁜 여학생 하나에 많은 남학생이 모여있고 여학생 목소리가 가장 크고 그 목소리밖에 안 들린다고 했다. 그도 그럴 것이 그 친구만 거의 말을 하고 있었으니. 남자 테이블은 별거 없었다.




남자들 모이면 대부분 여자 이야기한다.




예쁜 여자 이야기한다.






20년 넘게 알아 온 지인이 있다. E라고 부르겠다. 나보다 나이다 좀 많은 ^^ 예쁜 여자 이야기할 때 나오던 항상 그런 사람이다.



많이 예쁘다. 아니 예뻤던 지인이다. 세월이란 게 무상하게도 나이를 안겨주었고 예뻤던 지인도 많이 늙었다.



난 내 아이의 외모도 객관적으로 평가할 정도로 어찌 보면 냉정, 어찌 보면 그런데 별 관심이 없다. 어릴 적부터 사실 정말 관심이 없었기 때문에 한 20년 정도 사람들이 외모 평가하는 것을 들으며 그냥 물든 것뿐이고. 지금은 그런류(!)의 사람도 많다는 것을 인정하는 것뿐이다.



그런 면에서도 E는 예쁘다. 그리고 교직(고등학교)에 오래 계셨다. 조금 더 말하면 피해가 갈 정도로 큰 일도 하시고 계시기 때문에 더 이상은 말 안 하겠지만. 젊을 때 매우 예쁘셔서 차을 세워두면 처음 보는 사람이 차 번호를 보고 연락하거나 길 가다가도 헌팅은 일쑤인 그런 삶을 사셨다.



지금도 독신이시다. 



이유는 하나다. 또 매우 간단하다.



유부남에게 너무 실망해서. 교직에 있는데 선생님들이 유부남인데도 대시를 많이 해서다. 교직도 이 정도인데 실상 남자들은 어떨까?라고 생각하셨는데 실제 남고를 거치고 학생들의 고민을 들으면서 남자에 대한 환상이 이미 깨진 지 오래.



얼굴도 예쁘고 마음도 예쁘고 다른 사람에 비해서 누구보다도 날 챙겨주시던 분. 그리고 그런 분이 아직도 독신이시기에 난 독신주의자를 고집하던 시절도 있었다. 그리고 인간관계가 매우 넓은 편이라고 자부하는데 내가 선배라고 부르고 인정하는 유일한 사람도 독신이시다. 



그래서 난 독신주의자를 지지하고 응원한다. 뭐, 날 아는 사람은 내가 가진 지위와 관계없이 독신주의자가 싫으면 성격대로 그냥 쌍욕 할 수도 있다고 생각하겠지만. 모르는 사람을 위해 남겨둔다.



진심으로 지지하고 내가 아는 지인처럼 단순한 하나의 이유라도 그 하나의 이유가 본인에게 중요하다면 결혼을 하지 않을 이유로 적당하다. 결혼은 집안이 하는 것이기도 하지만 결혼 당사자들의 의지가 가장 중요하다는 것은 두말할 나위 없다.


나이가 들면 말이 줄어야 한다. 진실이라도 교직에 계신 분들께 실례가 될 수도 있고 내 주변 사람도 떠날 수 있기 때문이다. 그러나 내가 저번에 밝히 7의 이유 중 가장 큰 이유는 사실, 난 진실을 숨기는 것을 정말 싫어하는 사람이기 때문이다. 



내 개인 의견이 사회를 일반화하지도 못할뿐더러. 내 기억에도 좋은 선생님 비율이 90% 이상이기에... 하나만 집어서 일반화를 시키는 바보짓은 하지 않는다.


다만 그런 이유가 있다는 것을 말하고자 한다.


그리고 추가로 몇 자 더 적자면, 지인 중에 반대인 예쁜 남자도 있다. 키 187에 순정 만화에 나오는... 남자인데 몸매도 좋다. 같이 다니면 뒤에서 여자들이 지인에게 수군대는 소리도 들을 정도로...(우린 어쩌라는 거야 남자가 몸매 저러면... 같은 류다.) 한 번도 먼저 대시한 적이 없는데 여자 친구는 계속 있었고, 나이 때도 정말 다양했다. 그리고 한 번씩 보여줄 때 보면 정말 예뻤다. 그런 지인이 하던 이야기가 있다. 처음에는 예뻤는데 나중에는 질리더라고. "얜 눈이 왜 이렇게 커?", "얘는 다리가 왜 이리 길어" 등의 이유라며. 사실 지금도 전혀 공감이 안된다. 그런 경우를 겪을 수가 없으니까. 나의 경우엔 땅 달 막하고 배불뚝이 소리만 들은 지 10년이 넘어서 지금까지도, 남은 평생도 그런 기분을 느끼지 못할 것 같기는 하다.



그래서 안다. 모두가 같은 상황을 겪을 수는 없다.

남자들이 모이면 예쁜 여자 이야기를 하지만, 예쁘다는 것이 꼭 결혼의 이유는 아니라도 생각한다.

그러나 많은 여자들이 유부남이 대시하는 경우에 있지는 않겠지만, 그런 상황을 겪었을 때


결혼에 대해 생각이 없어지는 것은 확실하다.

물론, 남녀가 바뀐 그 반대의 경우도.

지인도 젊은 시절 그런 일을 겪어서 결혼을 안한다고 생각했고 그렇게 20년이 흘러버렸다.

세월이 간다고 나이가 들었다고 어릴적 생각이 틀린게 아니라서, 바뀌지도 않는다.


가치관도 그렇지만, 하나은행 골프장 영상을 봐라. 나이가 뭔 상관인가. 늙어도 개짓하는 놈은 개짓한다.




집안이 맞지 않아서



집안에는 여러 비교가 있겠고, 이야기를 시작하면 책 한 권도 부족하겠지.



단순하게 보자. 인터넷 방송인에게 내 딸을 시집보낸다고 가정해 보자.



내가 좋아하는 방송인은 이런 류겠지만.

https://www.youtube.com/watch?v=bRwiWmrrG_Q



비슷한 구독자 수 (300만 가까이...)로 본다면 

https://www.youtube.com/watch?v=mw6y8OY10uc



https://www.youtube.com/watch?v=M_h2RnbpJNI



세명 다 자수성가한 사람의 공통점이 있는데 굳이 말 안 해도 집안을 알 수가 있다. 



꽃게는 자기가 옆으로 걷더라도 자식은 바로 걷길 바란다는 말이 있었다. 내가 좋은 집안을 만들지 못하더라도 자식은 좋은 집안으로 보내고 싶고. 돈이 많다기보다는 화목하고 아들뿐이라 딸을 그리워했던 집안으로 가야 사랑받을 것을 안다. 



나 같은 경우는 사실 처가댁을 자주 가고, 내가 늙으면 딸네 가까이 살거라(아랫집 정도?) 구세대의 상식과 맞지 않는다. 설거지도 만류에도 불구하고 자처해서 하고 어머니의 영향으로 페미니즘을 선호한다.



딸의 선택을 존중할 거고 아무 말도 하지 않겠지만 의사에게 갔으면 하는 바람이다. 물론, 의사들이 더 잘 노는 것은 안다. 와이프가 간호사여서 그런지 내가 스타트업 생태를 알아서 그런지 성공한 사람들의 성적으로 문란하고 안하무인인 삶의 단편을 많이 알고 있다.


그럼에도 왜 그럴까? 결혼은 사실 집안이 하는 것이고 단 둘이 보는 사람이 대부분이지만 그 사이 연관된 가족들도 계속 보게 되어 있다. 이왕이면 괜찮은 사람들 사이로 보내고 싶은 마음이다. 뭐, 잘못되었다면 다 끊을 수 있는 자수성가, 바뀌는 자수성가도 좋겠고 그런 사람이 많은 줄도 안다.


많은 사람들이 "사"자를 선호한 이유는 그 사람이 당장 잘 살아서가 아니라, 어릴 때도 치열하고 성실하게 살았으면 커서도 그럴 것이라는 통계적 믿음. 그리고 그렇게 산 사람들이 가진 사랑이 뭇 사랑보다 조금 더 가치 있다고 믿었기 때문이다. 그런 가치 있는 것을 줄 만큼 괜찮은 사람이 자신의 자식을 더 아껴줄 것은 당연한 것이다.


글은 끝났다. 더 적어 본다.



사람일은 모른다. 앞에서 좋은 사람이 뒤에서 나쁘게 하는 경우도 많고, 내가 28년간 봤던 사람도 주변 사람에게 매우 좋은 평판이었지만 집에서는 가족에게 폭력을 행사하는 사람이었다. 그래서 그런지 보면 더 잘 알 수 있다. 내가 굳이 보겸과 영국 방송인을 올린 이유는 참 좋은 예이기 때문이다. 어느 것이 좋다고 밝히지도 않았으니 소송 당할일도 없고, 매우 교활하다고 할 수 있겠다. 그러나 굳이 더 확실히 비교를 할 거라면 철구를 올렸겠지.

나는 보겸 방송을 보고 구독하고 비판도 한다. 유재석 같은 이미지다. 사람 좋아 보인다. 욕만 좀 줄였으면 좋겠다. 사람만 좋다면 오케이다.



그러나 결혼 관련해서 나랑 술 많이 먹었던 사람들 중 집안을 보는 사람은 100% 인 서울 사람들 었다. 의사 자식도 있었고, 장교의 자식도 있었다.(욕 아니고 자녀) 나 역시 그들이 그런 생각을 하는데 공감한다. 그들이 말하는 결혼의 삶은 어느 정도 삶의 수준이 이미 정해져 있었고 또 사실이다. 나쁜 생각도 있고 아닌 생각도 있다.

나쁜 생각은 "내가 이 정도 여자를 만나는데 집안이 좀 그렇지만 성형이나 기타 돈으로 환산하면..." 혹은, "매일 이 여자와 자면 텐프로 화대를 날수로 따지면..." 등의 류고, 좋은 생각은 둘이 잘 지내고 싶은데 육아와 문화생활 사이의 질을 고민하는 류다.



다양한 사람이 많다. 말로 모든 게 판단되는 것도 아니다. 그래서 만나보면 안다. 느낌이 좋으면 대부분 좋은 사람이고, 나쁜 사람도 좋게 바뀔 사람이라는 것.


결혼을 안 하는 갖가지 이유에 3은 정말 쓸데없지만, 아무것도 제대로 안 해도 잘 먹고 잘 사는 아헤들을 보면 충분히 결혼의 이유로 생각할 만하다. 또한 이 생각에도 자신이 모은 돈이 아깝다는 사람도 나온다. 그 돈을 또 성형비용이나 유흥 화대로 계산하는 사람도 있다. 물론, 여자 입장에서도 다를 건 없다고 본다. 어느 정도 나이가 넘으면 뭐하는 사람인지부터 물어본다. 그것으로 살아온 인생 판단 종료. 내 친구 중에 서울 아파트 팔아서 전재산을 어려운 사람 도와준 친구가 있는데 솔로이다. 내가 그 친구 아버지 나이였다면 그 사실 하나로도 아마 내 딸을 주었겠지. 사랑은 봉사가 아니긴 하지만 이미 동물이 아니라는 증명을 한 것이다. 상을 줄 만한 위치에 있는 사람이야 "봉사"를 알리지 않아야겠지만 상을 받아도 되는 위치의 사람이라면 증명을 해줘야 한다. 그런 커리어 관리를 국가가 해주던지...


쓸데없는 글도 여기서 그만해야겠다.




git init

git add .

killall gpg-agent //제껀 좀 꼬여서...

git remote add original git@github.com:hajunho/iOS_project_pad.git

git fetch

git remote -v //original 이름 확인

git remote set-branches original

git pull original master --allow-unrelated-histories

git push --set-upstream original master



------------------


echo "# Myproject" >> README.md

git init

git add README.md

git commit -m "first commit"

git remote add origin git@github.com:hajunho/myProject.git

git push -u origin master

'블로그 항해 일지 > Tips' 카테고리의 다른 글

powergrep exclude  (0) 2019.01.22
포스트맨 정말 좋다.  (0) 2019.01.11
파이썬 관련 주요 인물  (0) 2019.01.06
Android 개발자 iOS전환 - 2  (0) 2019.01.03
Android 개발자 iOS전환 - 1  (0) 2019.01.03

전 포스팅(브런치 쓰고 블로그로 옮김) 이후,

갓 졸업한 대학생(지인)이 스냅 킷에서 value.snp.makeConstraints { (s) in 

하거나

value.snp.makeConstraints { (make) in

를 하거나


-> Void를 넣거나 뺄 때  왜 그게 모두 동작하는지 모르겠다고 해서


설명해 주다가 잘 알아듣기에 내용이 괜찮은 같아서 글로 옮겨본다.


import UIKit


let myFunc : (String, String) -> Void = { (x, y) in

    print("first String is ", x)

    print("second String is ", y)

}


myFunc("hello", "world")


사실 파라미터를 x, y로 받던 a, b로 받던 중요치 않다. 


그런데 이해시키려면 사실상 클로저를 처음부터 끝까지 설명해야 했다. 나의 경우 제대로 이해하지 않고 그냥 잘 아는 프로그래밍 언어에 빗대어 이해를 해버렸기에 이해하고 설명한다기보다 그냥 실무에서 쓰니까 쓰는 대로 설명을 했고, 중생의 이해를 도왔던 내용을 글로 옮기며 상황극을 해 본다.


함수의 필요성을 설명하려고 online 에서 텍스트를 텍스트 그림으로 변경해주는 것을 돌려서 붙였는데 여기에서 다 깨지네 ㅡㅡ; 본 의도만 이해해 주길 ㅠㅠ


시키면 바로 만드는 개발자 - 시바견이 씀.


> 헬로 월드를 찍으라고 했다.

# 누가 만들어 놓은 API를 호출하기만 했다.


import UIKit

print("Hello world")



> 헬로 월드를 두 번 찍으라고 했다.

# 두 번 호출했다.


print("Hello world")

print("Hello world")



> 예쁘게 만들라고 했다.

# 누가 만들어 놓은 API를 호출하기만 했다.


print(".__           .__  .__                               .__       .___")

print("|  |__   ____ |  | |  |   ____   __  _  _____________|  |    __| _/")

print("|  |  \\_/ __ \\|  | |  |  /  _ \\  \\ \\/ \\/ /  _ \\_  __ \\  |   / __ | ")

print("|   Y  \\  ___/|  |_|  |_(  <_> )  \\     (  <_> )  | \\/  |__/ /_/ | ")

print("|___|  /\\___  >____/____/\\____/    \\/\\_/ \\____/|__|  |____/\\____ | ")

print("     \\/     \\/                                                  \\/ ")



> 두 번 출력하라고 했다.

# LOC가 길어져서 함수로 만들었다.


func hw() {

    print(".__           .__  .__                               .__       .___")

    print("|  |__   ____ |  | |  |   ____   __  _  _____________|  |    __| _/")

    print("|  |  \\_/ __ \\|  | |  |  /  _ \\  \\ \\/ \\/ /  _ \\_  __ \\  |   / __ | ")

    print("|   Y  \\  ___/|  |_|  |_(  <_> )  \\     (  <_> )  | \\/  |__/ /_/ | ")

    print("|___|  /\\___  >____/____/\\____/    \\/\\_/ \\____/|__|  |____/\\____ | ")

    print("     \\/     \\/                                                  \\/ ")

}


# 메서드를 호출했다.


hw()

hw()


> 다섯 번 해달라고 했다.

# 제어문을 썼다.


for _ in 0..<5 {

    hw()

}


> 클래스가 뭔지 물었다.

# 클래스는 중요치 않아, 네가  하는지가 중요해. 다만 이제부터는 메모리를 알아야 해


class yourRequirement {


   func hw() {

        print(".__           .__  .__                               .__       .___")

        print("|  |__   ____ |  | |  |   ____   __  _  _____________|  |    __| _/")

        print("|  |  \\_/ __ \\|  | |  |  /  _ \\  \\ \\/ \\/ /  _ \\_  __ \\  |   / __ | ")

        print("|   Y  \\  ___/|  |_|  |_(  <_> )  \\     (  <_> )  | \\/  |__/ /_/ | ")

        print("|___|  /\\___  >____/____/\\____/    \\/\\_/ \\____/|__|  |____/\\____ | ")

        print("     \\/     \\/                                                  \\/ ")

    }   

}


# 이렇게 만들면,

# yourRequirement.hw() 이렇게 호출할 수 있는데 코드는 있어도 메모리에는 없어.


> 메모리가 뭐지?

# 이 세상. 메모리에 없으면 이 세상에 없는 거야. 코드는 있어도 만들어지지 않은 것.


class yourRequirement {


    static func hw() {

        print(".__           .__  .__                               .__       .___")

        print("|  |__   ____ |  | |  |   ____   __  _  _____________|  |    __| _/")

        print("|  |  \\_/ __ \\|  | |  |  /  _ \\  \\ \\/ \\/ /  _ \\_  __ \\  |   / __ | ")

        print("|   Y  \\  ___/|  |_|  |_(  <_> )  \\     (  <_> )  | \\/  |__/ /_/ | ")

        print("|___|  /\\___  >____/____/\\____/    \\/\\_/ \\____/|__|  |____/\\____ | ")

        print("     \\/     \\/                                                  \\/ ")

    }   

}


> 이 세상(메모리)에 있게 하려면?

# 스태틱으로 펑션(메서드, 함수)를 지정하면 메모리에 바로 만들어져(생성) 그래서 호출 가능해.


yourRequirement.hw()


> static 만 되는 거야?

# static 은 안 쓰겠다면


yourRequirement().hw()


# () 로 클래스 자체를 메모리에 생성해서 hw를 실행할 수 있어, 괄호()는 매우 중요한 개념이야.

# 메모리에 생성한다 는 개념과 호출(실행)을 뜻해.


>  사람 여러 명 만들려면?

# 그때는 static을 쓰면 안 돼. static은 싱글톤이라 한 번만 생성되어서 공유가 되는 것이지. 텔레파시야 괜찮을 것 같긴 한데...



let h1 = human()

let h2 = human()


# 처럼 static으로 만들지 말고 각각 만들어서 지칭하는 객체 변수(인스턴스 변수, 포인터 변수)를 지정하면 되거든.


> 클래스로 사람도 만들어?

# 설명은 위해... 많은 print 묶기 위해 함수(API)를 쓴다는 것을 알았으니, 다시 한 줄로 다시 표현해 보자.

# 그리고 클래스 이름을 바꾸어 보자.


class human {

    func hw() {

        print("Hello, world")

    }

}


# 함수 이름도 refactoring 해보자.(더 좋게 바뀌어 보자)


class human {

    func speak() {

        print("Hello, world")

    }

}


# 사람 객체가 만들어졌어.

> 얼굴도 있어?


# property 만들면 되지


import UIKit


class human {


    let face : String = "face"


    func speak() {

        print("Hello, world")

    }


}


> 눈은?

# 멤버 변수 만들면 되지


class human {


    let face : String = "face"

    let eyes : String = "eyes"


    func speak() {

        print("Hello, world")

    }

}


> 에이 그냥 글자네

# 그리면 되지


        let face = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))

        let eye = UIView(frame: CGRect(x: 10, y: 10, width: 30.0, height: 30.0))

        eye.layer.cornerRadius = 17.0

        eye.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)


        let eye2 = UIView(frame: CGRect(x: 60, y: 10, width: 30.0, height: 30.0))

        eye2.layer.cornerRadius = 17.0

        eye2.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)

        face.addSubview(eye)

        face.addSubview(eye2)

        return face


> 함수에 넣어?

# 그래도 되고


import UIKit

import PlaygroundSupport


class human {


    var face : UIView = faceMaker()


    func speak() {

        print("Hello, world")

    }


    static func faceMaker() -> UIView {

        let face = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))

        let eye = UIView(frame: CGRect(x: 10, y: 10, width: 30.0, height: 30.0))

        eye.layer.cornerRadius = 17.0

        eye.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)


        let eye2 = UIView(frame: CGRect(x: 60, y: 10, width: 30.0, height: 30.0))

        eye2.layer.cornerRadius = 17.0

        eye2.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)

        face.addSubview(eye)

        face.addSubview(eye2)

        return face

    }

}



> 다시 static을 썼네?

# 어쩔 수 없어 클래스가 생성된 이후에 function을 쓸 수 있는데 클래스가 객체가 될 때(객체가 생성될 때)

  모든 프로퍼티가 세팅이 되어야 하거든. 프로퍼티 세팅을 만들어지지 않은 함수로 할 수는 없으니 static으로 할 수밖에 없어.


> 그럼 해당 func는 한 번만 생성되는 거야?

# 응, 중복 작업의 경우엔 메모리도 작게 먹고 좋겠지만 객체 지향 프로그램 개념과는 조금... 아니지.


> 다른 방법은 없어?

# 함수를 구현하고 바로 생성해서 대입하면 되지.


import UIKit

import PlaygroundSupport


class human {

    let face : UIView = {

        let face = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))

        let eye = UIView(frame: CGRect(x: 10, y: 10, width: 30.0, height: 30.0))

        eye.layer.cornerRadius = 17.0

        eye.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)


        let eye2 = UIView(frame: CGRect(x: 60, y: 10, width: 30.0, height: 30.0))

        eye2.layer.cornerRadius = 17.0

        eye2.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)

        face.addSubview(eye)

        face.addSubview(eye2)

        return face

    }()


    func speak() {

        print("Hello, world")

    }

}


let h1 = human()


> 호출할 때 파라미터는 어떻게 넣어?

# 그냥 넣으면 되지


> 어떻게 받아?

# $0, $1, $2로



    let face : UIView = {

        let face = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))

        let eye = UIView(frame: CGRect(x: 10, y: 10, width: 30.0, height: 30.0))

        eye.layer.cornerRadius = 17.0

        eye.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)


        let eye2 = UIView(frame: CGRect(x: 60, y: 10, width: 30.0, height: 30.0))

        eye2.layer.cornerRadius = 17.0

        eye2.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)

        face.addSubview(eye)

        face.addSubview(eye2)

        print($0, $1, $2)

        return face

    }(10, 12, 13)



> 쉽네

# 원래 이게 쉬워진 거지


import UIKit

import PlaygroundSupport


class human {

    let face : UIView = { (s0, s1, s2) -> UIView in

        let face = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))

        let eye = UIView(frame: CGRect(x: 10, y: 10, width: 30.0, height: 30.0))

        eye.layer.cornerRadius = 17.0

        eye.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)


        let eye2 = UIView(frame: CGRect(x: 60, y: 10, width: 30.0, height: 30.0))

        eye2.layer.cornerRadius = 17.0

        eye2.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)

        face.addSubview(eye)

        face.addSubview(eye2)

        return face

    }(1, 2, 3)


    func speak() {

        print("Hello, world")

    }

}


let h1 = human()


https://github.com/hajunho/iOS_startUpCodes


깃헙 latest에는 그래프가 없지만, 히스토리를 보면 만들다가 회사로 넘겨진 그래프 프로토타입이 하나 있다.


프로토 타입인데 framwork 화까지는 되어 Xcode 에서 framwork 타입으로 불러 올 수 있다. 


내가 혼자 만드는 거라 이 후 품질을 향상하려면 오픈 소스화 해야 한다고 했는데 회사에서 오픈소스화 한다는 메세지를 줬었기에


블로그에 내 고민을 남겨 두면 아마 나중에 새로운 그래프를 만들거나 더 나은 그래프를 만들려고 할 때 도움이 될 것 같아서


이 카테고리를 만들었다. 그리고 첫 글을 쓰는 시점 즈음에는 이제 오픈소스 그래프를 좀 봐야지 했다.


본디 처음부터 그것을 보면 절대 그 안에서 벗어날 수 없는 법이라...


깃헙에 올려졌었던 그래프와 오픈 소스 그래프와 다른 점은 한 패널에 여러개의 그래프를 붙일 수 있다는 점이다.


처음부터 다른 철학으로 쌓아올려지는 것이라 참고를 하지 않았었다. 코어 그래픽이라 딱히 복잡하진 않은데


싱글톤, 빌더, 옵저버 패턴 정도는 들어갔다.


나도 개발하느라 바빠서 잘 정리하지는 짧막한 글이라도 분명 후진에는 도움이 될거라 생각한다.



이번 편은 일기에 가깝다.




http://www.yes24.com/24/Goods/67478818
6개월에 천만 원 모으기

돈 모으고 싶은 2040 모여라!EBS 화제의 다큐 [호모이코노미쿠스]를 책으로 만나볼 기회천만 원 모으기에 도전한 사람들,어디서도 보지 못한 우리들의 리얼한 돈 이야기!학생 때는 치솟는 등록금에 허덕이고, 간신히 취업에 성공해도 월세와 밥값으로 떼이면 나면 돈 한 푼 남지 않는다. 결혼해도...

www.yes24.com구매하기





이런 책이 있다. 브런치는 작가 공간이니 아마 가까운 곳에 작가가 계실 듯. 나도 비판 판을 수 있겠지만, 이 책은 정말 내 취향이 아니다. 책 자체가 취향이 아니라. 뭔가 명확한 게 없다. 삼성전자 다니면 보너스 달에 천만 원 이상이 들어오니까 그냥 1달 만에 천만 원 모으기로 책을 낼 수도 있을 것이다. 이 작은 문장에서 말하듯, 누구에게 말하는지가 가장 중요한데 서민을 쥐어짜는 듯한 책은 아쉽기만 하다. 왜냐면 진짜 편하게 돈 버는 사람이 많기 때문에 너무 힘들게 목메지 않았으면 한다.




책은 잘 나간다. 그러나




http://www.yes24.com/24/goods/64340664?scode=032&OzSrank=1
초격차 (YES24 단독 리커버 특별판)

최근 10여 년간 탁월한 리더십으로 삼성전자를 이끈 실질적 수장 권오현 회장의 조직 경영 비결! 저자 권오현은 1985년 미국 삼성반도체연구소 연구원으로 처음 삼성에 입사해 삼성전자 회장 자리까지 오른 신화적 인물이다. 이 책은 삼성전자의 초격차 전략, 권오현 회장이 조직의 시스템을 만들고 진두지휘하면서 발휘한 리더십의 진면목을 명쾌하게 보여준다.『...

www.yes24.com구매하기





이런 책은 미친 듯이 잘 나간다. 이제 30만 부를 돌파했다. 초격차 나오자마자 사서 읽어봐야 한다고 했는데, 내 기우였는지는 몰라도 정말 많이 팔렸다.




이제 정말 시대가 변했다는 것을 느낀다.




https://www.youtube.com/watch?v=jZMdXqa_Vko&t=6s
일억 조회 수 가즈아~




건희 형 동영상 1200만 조회를 넘길 수는 없을 테고 그를 옹호하는 책이니 권오현은 스티브 잡스처럼 최고는 아니더라도 적당한 산 중턱을 찾아서 잘 안주한 것 같다.




정말 각 층마다 생각이 판이하게 다르다. 정말 빨간 안경을 끼면 세상이 빨갛게 보이고, 파란 안경을 끼면 파랗게 보이는 것 같다. 중도를 지킬 수 있는 사람은 이 시대에 혜민 스님이나 유시민 정도밖에 보이질 않는다. 공자를 왜 인을 최고의 덕목으로 삼았는지도 알 수 있다.




이 사실을 나만 알까? 아니다. 다른 사람도 알기 때문에 저런 판매율이 나오는 것이다.

내가 쓴 책에 비해면 수천 배 수만 배의 판매고다.




두 책의 판매고가 말하는 것은 권오현 진영의 옹호가 아니다. 못 사는 사람들의 효율적 목 졸라매기보다 결과론적인 사상을 지향하는 것도 아니다. 사람들의 생각을 일반화하고 싶지도 않다. 다만, 구글은 한국 IT 회사에 비해 중립적이며, 뉴스타파는 거대한 힘에 대응할 수 있는 거의 유일한 세력이라는 것. 그리고 사람들의 의식 수준이 높아서 꼭 존경해야 할 만한 이유를 만들지 않아도 된다는 것.




중소기업이 어느 정도 규모가 되면, 회장이나 사장이 꼭 자서전을 낸다. 아랫사람들이 자신을 존경할 이유를 만들어 주는 것이다. 





난 출판 제의 들어왔던 출판사의 대표님 몇 분을 만날 때마다 항상 서두에 말한 것이 있다. 출판은 돈이 안 되는 것을 알고 있습니다.라는 것이었다. 내가 있는 필드 자체가 국내 시장이 작아서 아무리 책을 많이 팔아도 돈이 안 되는 필드였다. 특이한 것은 출판사 사장님들은 출판 부수도 중요하지만 그것보다 좋은 책을 낸다는 생각이 더 강했다.




나는 선택해야 했다. 아는 것을 쉽게 쓰려면 배울 때보다 10배는 많은 고민을 해야 한다. 또 그것을 그림으로 풀거나 더욱더 재미있게 만들려면 또 10배의 고민을 해야 한다. 내가 일할 시간이 없다. 또 한 개발자가 어느 순간 바틀 렉에 걸리면 수년을 정체하는데 내가 수십 년간의 고민을 간단히 풀어 버리면 나 역시 경쟁력을 잃는다. 그래서 나는 기업 강의 제의를 받았을 때도 나가지 않았다. 물론, 지금도 받지만 나가지 않는다. 학생 상대만 했다. 같이 일하는 사람들이 자신이 아는 것은 말하지 않고 상대를 까내리기 바쁘고 하나 쉽게 가르쳐 주면 인터넷에서 열심히 공부해서 와서 원래 본인이 아는 것인 양 말하다가 내가 몇 개 함정을 파 놓으면 결국 거기 빠져서 평가는 못 받는 일을 경험한다. 그것도 매년. 올해도 그랬다.




책은 2권 출판했는데, 내가 비공개 책을 출판했던 이유는 진실을 이슈화 시키기 위해서였다. 그리고 그렇게 되었다.




다른 공개 책을 출판하려 했었던 이유는 5가지인데 모두 이루었다.




1. 책 복사 / 공유하는 문화 자체를 없애기보다 거기에 전혀 죄책감이 없는 벌레를 거르기 위함

2. 각기 다른 분야가 실제로 다르지 않은데 빨기 급급한 흡입충들이 만들어 놓은 이상한 문화를 없애려는 것. 가령 구글 빨기라던가? 같이 일한 지 7~8년은 되었던 것 같은데 내가 하고 싶은 말을 해 준 유투버가 있다. 유용한 정보도 많으니 꼭 보길.

https://youtu.be/zA-eLMDqxNg


그런데 아직도 구글~ 구글 하는 사람이 CTO를 하는 사람도 보고 있으니... 2년 동안 구글 드라이브 싱크 에러를 경험했던 나로서는 국소적 특정 부분이 아니라 브랜드 전체를 일반화하는 빨충을 보면 치가 떨린다. 일전에 적었던 글에서 학교의 무슨 과를 말하는 게 아니라. 아직도 그냥 학교만 말하는 그런 류라고 보면 되겠다. 믓튼, 이런 류의 개발자를 보면 큰 곳에서 할 수 있는 일과 작은 곳에서 할 수 있는 시스템 규모를 비교하는 것이 아니라 작은 모듈이나 라이브러리도 절대 만들 수 없다는 생각에 사로잡혀 있다. 나는 답답해왔고 답답하다 정말. 나는 구글이라는 회사를 좋아하는데 일반화는 정말 아닌 듯. 케바케, 사바사,... 정말 좋은 말들이 근래에 속담이나 구전처럼 계속해서 쓰이게 될까? 아인슈타인이 왜 특수 상대성 이론을 내고 일반 상대성 이론을 냈을까?

지금은 다르지만, 내가 공부하던 시절은 C, C++, C#, Obj-C 어셈블리, Android... 모두 다르다고 하던 시절이었는데... 그때 출판을 이후로 지금은 돌아 돌아 주변 상황이 많이 달라졌던 것을 느낀다.




3. 책 내고 대단한 개발자처럼 말하는 문화를 없애고 싶었다. 이것은 굳이 이름을 말하지 않아도 되겠지만 자신이 비난하던 회사로 다시 돌아간 케이스를 꼭 만들고 싶었는데. 이 부분은 정말 내 생각대로 IT 출판은 작가가 돈 벌기 힘들고 그렇게 플랫폼을 만들더라도 모래알 같은 개발자가 뭉칠 리 없다는 오랜 개발 경험을 토대로 적은 공격이 먹혀서 상당히 재미있었던 부분이었다. 지금은 확실히 개발을 잘하는 사람과 글을 잘 쓰는 사람은 구분이 있다는 인식이 널리 퍼진 것 같다.




4. 1년을 열심히 개발하면 후배에게 1시간 정도 말할게 생긴다. 나의 경우 8살 때부터 프로그래밍을 했으니 31시간 정도면 사실 밑천이 드러난다. 나머지는 나도 개발하면서 쓰는 일기 같은 것이다. 대학생 시절 학원 강사로 활동했는데 그때 다녔었던 학원에서 대단한 스킬을 배웠었다. 1시간 강의를 1주일로 늘여서 하는 방법이다. 이런 부분이 정말 문제 되는 것이 뭐냐면 1주일로 늘여서 더 좋을 것 같지만 오히려 1시간 동안 배울 정수를 전혀 배우지 못한다는 것이다. 그래서 명인의 1시간 강의가 수백~수천이 되는 경우도 있지만 그것을 맹목적으로 따라 하기 해서 강의료만 비싼 IT 강의가 참 많다. 이와 관련해서 비판한 적이 있었는데 해당 사업체가 반응을 보였었다. 그런데 비싸도 지금은 꽤 운영을 잘하긴 하더라. 인정할 건 인정해야지. 다양한 분야를 적는다고 했을 때 좋아하던 출판사는 없었으며, 사실 다양한 분야에 적을만한 게 별로 없었다. 다 거기서 거기라. 최근 임베디드 분야와 앱을 같이 컨설팅할 기회가 있었는데 해당 회사에서 서버도 가능한지 물었을 때 난 못한다고 했다. 최근에는 서버 사이드 프로그래밍에 바뀐 부분이 많아서 해당 지식을 습득하기엔 시간이 부족했다고. 관심은 두겠지만 못하는 게 맞다. 내과 의사가 외과 수술 못할까? 할 줄 안다. 그런데 하지 않는다. 비공개 책에서 밝혔지만 전문가란 전문가가 될 해당 분야를 위해 좋아하는 것을 포기하는 사람을 말한다. 그것을 말하고 싶었고, 또 이룬 것 같다. 천재 1%를 빼고는 모두 잘할 수 없다.




5. 비공개.




5번은 주변 사람을 좀 도와주기 위한 목적이었기 때문에 공개하기가 어렵겠다. 뭐, 언젠간 하겠지. 




내가 내 책의 독자들보다 높게 있을 권리는 전혀 없었다. 학생들 머리가 좋아서 1~2년 가르치면 나보다 더 잘했다. 물론, 내가 트러블 슈팅을 더 잘하겠지만, 원서로 꼭 공부를 하라는 말과 좋아하더라도 해당 분야가 아니면 리딩만 하지 writing 연습을 할 필요는 없고 몇가지 필요한 예제들만 해보라는 것. 그 외 공부해야할 쪽집게 공부을 받아들여 정말 미친듯이 공부했던 학생들이 많다. 3년~5년 넘어가며 데이터 구조, 알고리즘 등 병행해서 같이 잘했던 친구는 이미 청출어람이 되었다.




그렇게 모두 대기업으로 갔고, 중소기업에서 대기업으로 옮겼고, 사업을 하고 있다.




내 글을 독자도 다들 대단한 사람들이다. 이제 정말 내가 하고 싶은 말은 즐기라는 것인데 그것은 정말 글이나 책으로 표현하기가 힘든 것이다. 그래서 중급편을 써놓고도 계속 수정만 하고 있는 상황이다. 내가 수십년동안 답답해 왔던 생각들이 모두 바뀌고 있기 때문이다. 그에 맞춰서 모든 매거진과 글을 삭제하고 swift만 남겼다. 모 출판사의 사장님들의 말씀처럼 되게 되었다.




이제 그 분들의 말처럼 정말 독자층을 고려하고. 국소적인 부분만 해서 글을 써야 할 때가 온 것 같다고 생각했다. 그래서 2분야로 나누었다. 철학에서는 이미 선대 학문에서 모두 푼 수수께끼의 해답을 전하는 에디터가 되어 개발자의 삶의 질 향상을 돕고.




기술적 부분은 Swift로 풀자고. 물론, 다른 여러 언어와 곁들어서 말이다.(국밥 좋아한다고 평생 국밥만 먹을 수는 없지않나...)




이 글에서 말하고 싶은 것은 상대가 책을 썼다고 유명한 사람이라고 전혀 기죽지 않는 개발자가 되라는 뜻에서 적었다. 내가 취업반 강의 때 항상 하던 말이 있다. 면접 가서 떠는 사람들은 자기 부모님이 자랑스럽지 않은 사람이라고. 내 아버지가 최고고 내 어머니가 최고이고 내가 그 자식인데 왜 다른 사람 앞에서 떠냐고. 물론, 우황청심원은 항상 추천했다. 생각이 바뀐다고 몸이 바로 반응하는 것은 아니니.




이 글은 두서나 흐름이 개판인 글이지만, 말하기 힘들었던 속사정을 말했다는 것에서 의의가 큰 나의 글이다.




참고로 건희형 실제 동영상은 온통 붉은 색이지만. 건희형이 전적으로 잘못했다는 것은 아니다. 10개월 동안 모든 언론이 해당 영상 방영을 꺼려해서 뉴스타파가 잘 편집해서 조금만 내 보낸 것은 건희형 잘못이 아니라 잘못된 방향으로 잘 보이려는 작은 벽돌같은 존재의 생각들이 잘못한거지 건희형이 더 잘못했다는 것은 아니다.




어릴적부터 잘못된 친구를 사귀면 거기 물든다고 했는데, 건희형도 자기 주변의 이상한 놈들에게 물들었을 것 같다. 저커버그 같은 친구가 있었다면 좀 달랐을텐데... 나이차가 너무 나기도 하고. 직언을 하는 사람들은 죽임을 당하기 일쑤였던 지난 역사를 돌아보면 지금은 그 형태만 다를테니 새로운 캐릭터가 만들어질 것이다.




사람이 던질 돌을 개구리가 맞으면 죽는데 사람은 몰랐다고 하면 그만이긴 하다.

잘잘못을 따지면 한도 끝고 없고 아니라면, 또 쿨하게 넌 잘못없어 할 문제.




깨진 유리창 효과처럼 문재인이 없던 지난 시간을 보면 그런 작은 티끌이, 눈에 보이지도 않는 작은 균열이... 사회라는 큰 유리를 깨뜨릴 수도 있기도 하더라. 수많은 사람을 죽였던 박정희가 아직도 좋은 보스나 리더라 칭송되는 것을 보면 말이다. 어르신들께는 추억이겠지. 나 역시 죽음이 별로 두렵지 않은 한 사람으로 이해는 하지만 이제 시대는 바뀌었으니 사람 위에 사람 있고, 사람 밑에 사람 있다는 생각은 버리자.




그 누구도 그럴 권리는 없다. 그래서 클래스가 나뉘는 것이다.




어쩔 수 없다며 혼자 잘살고, 돈에 이어 거짓 명예 바라고 사람을 해고 해서 궁지에 몰고, 또 그 놈이 돌을 맞을 수 있도록 간언하는 졸부가 바로 지옥 클래스. 선량하게 서로 돕고 사는 사람들이 상위 클래스 되시겠다. 난 상위 클래스가 하위 클래스를 잡아먹는 것에는 적극 동의하는 논리를 가졌다. 그리고 다른 대부분의 선량한 사람들도 그랬으면 한다. 문재인 시대니까.

화장실에 맥북을 들고 와봤다. 치질이 걱정되지만 나름 괜찮은 듯.


4명의 청소부가 있고, 청소 반장을 뽑아야 하는 상황이 있다고 가정하자. 일반적인 생각으로는 가장 청소를 잘하는 사람, 즉 짧은 시간 안에 깨끗하게 하는 사람. 효율적으로 외부의 requirement를 잘 수행할 수 있는 사람. 수십 년 간 같이 일해왔으니 서로 잘 알기도 하지만, 한국 사회는 그중에 서울대 출신이 있으면 서울대 출신이 청소반장이 되게 되었있다.


이것이 바로 페이스북에 서울대/카이스트 학벌을 공개하는 이유 중 가장 큰 이유다. 다른 학교에서 학사를 받았다면 석사를 이쪽으로 받아서 모교는 공개하지 않고 석사만 공개하는 이유고, 페북뿐 아니라 출판사 업계도 마찬가지다. 


스타트업에서도 국내 유명, 아니 최고로 유명한 대표가 서울대/카이스트를 수행원으로 쓰는 이유에 대해 말했었는데 위의 이유와 다르지 않았다. 망해도 서울대/카이스트 출신의 박사로 구성된 팀이라면 이유가 된다는 말이다.


난 사실 이해한다. 망한 국가에서 가장 먼저 세워야 하는 것은 학교인데. 병원이 아니라. 나 같은 많은 실무자들도 딱히 명예도 신경 쓰지 않고 학교로 많은 것을 돌려보내려고 하고 있기 때문이다. 그게 돈이던 지식이던 말이다. 그래서 우리 자녀들이 멋진 이론가가 되고 그런 하나의 이론이 수백만 개의 실무를 없애고 더 나은 무엇인가를 만들어서 인류를 진보시키길 바라고 있기 때문이다.


그래서 학교가 대단해진다. 아직 IT 분야는 그러지 못했으나 그렇게 될 것이고, 그렇게 만들 것이다. 그래서 학벌이 더욱 중요해진다. 어제 마약왕을 혼자 관람하러 갔었는데, 정의로운 검사가 여의치 않자 먼저 나서서 진입을 시도하더라. 번지르르한 무늬를 가졌다면 오히려 더 나서서 뭔가를 해야 하는데 무늬 자랑만 하는 것은 참 답답할 노릇이고, 그런 화려면 무늬에 빠져 헤어 나오지 못하는 사회도 답답하다.




세상에는 다양한 문화가 존재하며 그 나라 국민의 생각의 방향까지도 좌우하는 것 같다. 미국 사람에게 물은 적이 있다. 한국에 짝퉁 명품 가방을 사 가고 싶은데 혹시 파는 데 있냐고. 그걸 왜 찾는지 되묻던 지인이 있었는데. 내가 쓰고 싶어서 그렇다고 했다. 그때 그의 말이 나의 머리를 땅 때렸었다. 


자기가 만족하려고 명품을 사는 거고 자기가 쓸 건데 왜 짝퉁을 사? 


내가 만족하는 것과 남에게 보이려는 것. 선진국은 선진국이라는 생각이 들었다. 그리고 대부분이 이런 생각이었는데 나라의 국민이 이런 의식을 가지려면 정말 수십 년이 필요하다는 생각을 하게 된다.


또 한, 하버드 중퇴가 의미하는 바를 미국 사람과 한국 사람은 다르게 이해하고 있는 것 같았다. 우리나라는 뭔가를 하려면 일단 서울대 학사, 석사, 박사를 하거나 해외 유학을 다녀와서 모두 버리고 새로 시작해야 한다. 정치를 잘하거나 노래를 잘하는 것이 정치가를 평가하거나 노래를 평가하는 방식이 아니다. 바로 학벌이다. 난 이런 시대 상황을 잘 알기에 서울대 출신 음악가들은 항상 그것을 밝히려고 노력한다는 것도 잘 알고 있다.


그런데 신기한 것은 그들이 그런 문화를 만드는 것이 아니라는 것이다. 오히려 죽어라 노력해도 서울대 문턱에 다가갈 수 없었던 짝퉁이 명품을 더 떠벌리고 다닌다는 것도 알게 되었다.


그리고 이것을 알게 된 지 꽤 오래되었다.


그래서 지인을 떠나 사람이 아니면 보지 않는다. 후진국에서 선진국으로 가는데 오랜 시간이 걸리 듯 사람이 바뀌는데 30~40년 정도 걸린다. 이것은 내가 알코올 중독자 지인을 오래도록 알아서 적은 숫자인데, 나이가 들어 더 이상 마실 수 없게 되어 변하는 경우도 있기 때문에 사실 숫자라는 것은 의미가 없을지도 모른다. 즉, 기간은 관계없이 정말로 쇼킹한 사건(영화 "쏘우")이 아니면 바뀌지 않는다는 것이다.


내 주변에서 세상을 바꾸자고 말하는 사람이 꽤 많았는데 능력과 소신, 철학이 참 중요한 이유는 그들의 능력이 정말 형편없었기 때문이다. 이런 생각에서 사람의 클래스가 나뉜다. 이 생각은 사실 나 혼자 하는 것이 아니다. 대부분의 사람이 그렇다. 우리나라 대통령의 학벌을 보면 쉽게 알 수 있다. 꼭 서울대/카이스트/하버드가 대통령이 되는 것은 아니다.



최근 이빨이 다 썩었는데 계속 방치하라는 처방을 내려서 고생을 많이 하고 서울대 혹은 유학파 치과로 옮겨서 제대로 치료한 지인의 아이를 보며 내가 한 생각은. 역시 서울대!라는 생각이 아니라. 치과 기술은 서울대가 확실히 좋구나 라는 생각이었다. 아이가 수학을 너무너무 잘해서 세계로 뻗어나갈 것 같으면, 하버드보다 프린스턴으로 보내는 게 지식인의 판단이 아닐까? 해본다.


당신이 내 위에 있을 권리, 그리고 내가 당신 위에 있을 권리에 대해서 몇 가지 짚어 보았는데 사실 공개하지 않은 많은 에피소드를 정리될 때마다 올리려고 하고 있다.


지금은 기부를 많이 한 사람. 액수보다 자신이 가진 %에 비례해서. 이 존경스럽고 내 위에 있을 권리가 있다고 생각한다. 최근 서울대에 우수하게 입학 해 그 안에서도 두각을 나타내서 대치동으로 빠졌던 지인이. 나이가 너무 들어 나오려고 했는데 커리어가 꼬여, 일반 IT 회사에서 4천 초반에 배우면서 일하려다 그만둔 사건이 있었다. 그런데 가르치는 것이 좋고 아이들이 좋아 미래가 불투명 하지만 그냥 그 일을 이어나가는 것. 그것은 서울대 맞는 것 같다. 서울대 철학과를 나오긴 했지만 택시 운전사 하면서 자신만의 철학의 깊이가 이미 공자 수준이 된 지인도 정말 내가 존경할 만한 사람이다.


그래서 제발... 쓸데없이 졸부 짓으로 내 앞에서 가오 잡지 말았으면 한다. 서울 아파트 몇 채 값을 기부한 기인이 있는데 그가 가진 재산이 대부분이었다. 가령 삼성전자가 1조를 기부해도 매출의 1%밖에 안되니까 별로 고마워할 것은 아니다. 물론, 100억 버는 회사가 30억 기부하면 어마어마한 것이지. 그 지인은 한국방송대학교에 수십 년간 학생회를 하고 있다. 그, 지인이 말했다. 포르셰는 강남에서 졸부 차로 통한다고. 꼭 애매하게 돈 벌면 포르셰를 산다고 한다. 언젠가 정의로운 사회가 되면, 대부의 마지막 장면에 등장하게 될 포르셰.



사실, 이런 류의 글은 내가 일전에 썼었던 글과 대부분 비슷한 것이다. 다만, 2018년도 이후 글은 웬만하면 지우지 않고 유지하려고 한다. 문재인이 대통령이 되고 난 뒤부터는 다양성이 확실히 존중되는 사회가 된 것 같다.


노무현, 문재인 일기당천이다. 정말.


반대로 말하면 내가 당신 위에 있을 권리.

군림할 권리.

사람과 사람 사이의 클래스를 나누고 평등하지 않다는 것을 천명할 논리.


분명한 경험으로 말하자면 이것은 나누어진 머릿속에 존재하는 망상이다. 우리 주변에는 수많은 사람이 있다. 가끔 주변의 성범죄자를 알리는 편지가 집에 가끔 날아오면 

https://sexoffender.go.kr/indexN.nsc

에서 여러 사람을 조회해 본다. 강석진 서울대 교수는 몇 년 전 내가 열심히 조회할 때만 해도 조회가 되지 않아서 관련해서 글을 올렸었던 것 같다. 이렇게 다양한 사람이 있는데 카페에 있으면, 맞은편에 않은 사람이


성범죄자인지 아닌지 알 길은 없다.


최근 신성일의 책을 주문하고 강석진의 책을 대부분 샀었다. 지인들을 의아해했다. 앞으로 가족도 "지인"이라고 통칭하려 한다. 마누라 두고 바란 핀 걸 대단하다고 썼다는 자서전을 왜 구입했으며, 성범죄자 책을 왜 샀냐는 뜻이었다. 이병헌이 비슷한 일로 시끄러웠는데 내부자들 영화에서 보여준 연기를 보고 잠잠해진 것을 경험해 볼 때 나는 지인 포함한 대중들이 사람을 볼 때 제대로 뭔가를 볼 줄 모르는 것을 확실히 알게 되었다. 그래서 그나마 좀 더 젊을 때 적어두고 10년 20년이 흘러 더 경험을 많이 하게 되었을 때 내 생각이 변했는지 알아보기 위해 여기 남겨둔다. 물론, 국내 서비스는 언제 갑자기(6개월 공지후 맘대로 폐쇄) 닫을지 모르니 내 블로그에도 언젠가 옮기겠지.


1. 밥을 짓는 것과 비교해서 생각해보자.


사람을 아껴주다가 갑자기 나쁘게 하는 경우를 어떻게 판단해야 할 때 50%는 밥 짓는 경우를 생각해 보면 된다. 밥을 다 짓고 그 위에 음식 쓰레기 국물을 버릴 생각이었다고 하자. 밥을 다 짓는 동안 주변 사람들은 생각한다. 저 사람이 손수 나서서 우리에게 밥을 주기 위해 혼자서 고생하고 있다고. 그리고 다 짓고 나면 그 위에 음식 쓰레기를 부어 밥을 못 먹게 만든다. 


2. 9번 잘해주다가 1번 못해주는 경우, 9번 못하다 1번 잘하는 경우를 생각하자.


사람을 아껴주다가 갑자기 나쁘게 하는 경우를 어떻게 판단해야 할 때 나머지 50%는 통계적으로 생각하면 된다. 항상 밥을 잘해주는 사람이 있었다. 배가 몹시 고픈데 갑자기 그 사람이 밥을 실패하여 제시간에 밥을 못 먹게 되었다. 그때 그 사람을 나쁘게 생각하는 것이 일반적이라는 사실을 최근 알게 되었다. 그리고 평소 밥이란 것을 지어주지도 않다가 한번 정도 지어주면 앞에 사람에 비해 좋은 사람이라고 생각하는 것도 알게 되었다.


1번과 2번을 밥이라는 유순한 대상에 빗대어 설명했으나, 살인자, 납치범, 딸을 강간하는 아버지 등 여러 경우에 빗대어 설명할 수 있고 이런 류의 나쁜 사람을 많이 보는 지인의 경우(그래서 난 경찰을 싫어한다. 이런 류의 사람을 계속 상대해야 하는데 마음이 아파서)를 보면 어찌 보면 우리 주변에서 쉽게 일어날 수도 있고 나쁜 놈은 하루 한번 정도 거리에서 마주쳤을 거라는 생각을 하게 된다.


강석진의 수학 능력과 성범행의 죄는 벌개다. 신성일이 이룬 업적과 그가 바람피운 것도 별개다. 오히려 난 강석진처럼 잡히는 사람, 신성일처럼 솔직하게 말하는 사람이 그렇지 않은 사람보다 낫다는 판단이다. 정말 교묘해서 평생 잡히지 않는 성범죄자도 있고, 나쁜 짓 해놓고 역사에는 당당하게 이름을 올렸던 사람이 얼마나 많을까? 그리고 최근에는 성범죄로 잡혔던 공인이 자살하는 것을 보며 정말 이 사회의 풍토가 문제였다는 생각도 들었다.


왜냐면 나름 정의를 위해 나의 많은 것을 희생했는데, 

https://www.youtube.com/watch?v=ZPeAIvpRqMg&t=525s

 


나쁜 것은 오히려 그들이 아니지 않냐는 생각이 들기 시작했다. 나이가 들면 좌에서 슬슬 우로 간다고 하지만. 난 여전히 극좌의 성격과 행동력을 가지고 오히려 중립이 되어 가는 것을 볼 때. 극좌랑 극우랑 붙어 있지도 않고, 중립이 나쁜 것도 아니라는 생각이 든다. 문재인 덕분에 세상이 중간이 죄어 좌가 오히려 중립의 세상이 아니라서 그럴지도 모르겠다.


남은 시간은 가족과 보내야 해서 수편으로 나누고 1편이라 제목을 고친 후 일단 올려야겠다.

학문 중에 유일하게 변하지 않는 학문은 수학이며, 그 이유는 사람의 약속에서 출발했기 때문이다.

OLPP는 수학적 base에서의 철학을 말하고 나의 첫번째 책에서 주장했던 내용이다.


이는 경험주의, 실존주의에서 출발했으며 내 생각은 본질 자체의 정의가 섣부른 판단이라 굳이 사르뜨르가

사상을 나누었다고 생각한다. 그러나 그 사상이 신을 반대하는 것이기 때문에 담배를 폈고 폐부종으로 사망하였다.

그러나 그 당시 기준으로 매우 오래 산 것으로 보아 신을 믿는 사람들보다는 스트레스를 덜 받았을 것이다라고 추측해 본다.


나는 불어를 모른다. 제대로 공부하려면 불어를 알아야 할 것 같은데 우선은 인터넷에 퍼져있는 것으로 공부하게 되었으며.


내 생각은 많았고, 지금도 많지만 이 카테고리의 글은 그의 말 몇가지에 대한 나의 생각을 끄적이는 것에서부터 출발하는 것이 좋을 것 같다.


"인생은 B(irth)와 D(eath) 사이의 C(hoice)이다."


죽음도 자신이 선택하는 것이라 생각했던 그의 주체적 생각이 잘 드러나 있다. OLPP는 사실 각 펑션, 컴포넌트, 아키텍쳐 단위의 코드 뭉치이기 때문에 당장은 주체성이 없고, 다른 모듈과의 관계에 의해 본질이 결정되는 원리이다. AI라고 부르는 것들은 아직 수백년은 더 발전되어야 한다고 생각하기에 OLPP에 주체성은 없다고 봐야겠다.  물론, 총 쥐어주면 사람 죽이는 AI야 금방 만드는데 고요한 호수에서 날아가는 새를 보며 감성을 느끼고 스스로 작품을 만들고 그 수익을 불우한 이웃에게

도와주고 그 안에서도 고민하는 AI는 수백년~수천년이 걸릴 것이라 생각한다. OLPP는 본질보다 실존보다 다른 모듈간의 관계가 중요하고 주체성은 없다.


"존재가 선행하며 본질을 지배한다."

그게 존재의 본질이라면? 말 장난 같기도 하지만 사르트르 시대에서는 생각의 다변화를 위해 필요한 사상이었다.


"파시즘은 그 피해자의 숫자가 아니라 그 살인의 방법에 의해 정의된다."

결론도 사실 중요하다. 해고의 방법이 아무리 아름다워도 해고는 파시즘의 국수주의와 같이 지 혼자 잘 살려고 하는 것이기 때문이다. OLPP 역시 결과가 중요하다.

y = f(x) 이기 때문에 function 설계도 중요하지만 y나 f 중 틀릴 경우 고쳐야 할 것은 f() 다.

"과거란 가진 자의 사치이다."

워낙에 많은 역사가 왜곡되니까... 돈 벌고 사람 다 해고시킨 부자들이 자서전을 쓰는 것과 같은 의미인 것 같다. 스티브잡스가 워즈니악에게 구라치고 돈 떼어먹은 사건만 아니면 정말 성인으로 기억되었을텐데 말이다. 

"부자들이 전쟁을 일으키면 결국 죽는 이들은 가난한 자들이다."

사실, 돈에만 국한되는 것은 아니다. 사람이 사람을 희생시켜 자존심을 지키거나 뭔가를 얻으려는 포괄적인 것을 의미한다. OLPP가 수학적 base를 벗어나지 않지만 가끔 현 사회에 대한 설명에 이용될 때가 있는데 그것은 매우 실용적이고 쉽게 이해되기 때문이다.


"절망과 함께 진정한 낙관주의가 시작된다. 아무것도 기대하지 않고, 그가 아무런 권리가 없다는 것을 알며, 그에게 주어질 것은 결국 아무 것도 없다는 것을 알면서도 오직 자기 자신을 믿으며 홀로 모든 것의 안녕을 위해 행동하는 것. 그것이 낙관주의이다."

극명한 것들은 사실 모두 이어져 있다. 선과 악이 한몸이듯. 낙관주의와 비관주의도 한몸이라는 것. 다만 무엇이 무엇을 먼저 격발 시키느냐. 그 시간이 중요한 것이다.



'!!OLPP' 카테고리의 다른 글

관계를 변화 시키다.  (0) 2019.04.15
몰입의 즐거움  (0) 2019.03.21
건전(sound)하지 못한 스타트업  (0) 2019.02.02
모든 것을 좌우하는 관점, OLPP  (0) 2019.01.21
추리와 추론의 차이  (0) 2019.01.14


별 거 안해도 돈을 많이 주던 시절이 있었다. 네이버 지식 in 도 초창기에는 돈을 주었기에 나는 매달 10만원 정도 받았던 것 같다. 구글 수익과 합하면 30~40만원 정도였다.

그러나 네이버도 구글도 어느 정도 사람이 모이면 돈을 적게 주고, 대신 모임을 개최한다.


난 유투브를 동영상 저장용으로 쓰는데 유투브가 처음 나오고 나서 바로 해서 그런지 구독자가 2천명은 되었었기에 유투버 모임에 초대되어 갈 수 있었다.


그 모임에 내 나이는 평균 이상이었고, 어린 친구들이 정말 돈을 많이 벌 것 같다는 생각이 사활을 걸고 참여하는 경우가 많았다.


정말 안타깝다.


구글, 네이버, 심지어 카카오까지(티스토리는 제외) 통계를 조작하고, 돈은 줄 만한 사람에게 준다. 내가 2008년 부터 삼성전자 다녀서 그런지 삼성전자에서 주말 이틀 출근만 해도 컨텐츠 관리하며 개고생해서 버는 돈보다 훨씬 많은 돈을 받았기 때문에 신경을 안 썼다. 물론, 티스토리는 애드센스 때문에 많이 하지만, 나의 최종 결정은 티스토리의 기능이 이미 구글의 블로거를 넘어섰고, 모바일에서는 유료앱이 달랑 1개 있는데 그것도 기능이 좋긴 하지만 티스토리가 제공하는 앱이 훨씬 좋기 때문이다. 1년간은 이전하고 광고를 나도 광고를 달 생각이다. 왜냐면 티스토리에 다는 광고는 사실 좀 파격적이기 때문이다. 구글 블로거야 걔네들이 서버를 운영하니까 돈 주는 것을 마음대로 조작한다고 쳐도. 티스토리의 경우 티스토리가 서버를 운영하니까 수익이 당연히 좋게 줄 수 밖에 없다. 네이버도 마찬가지. 그런데 다른 회사의 광고 모듈을 달게 한다는 것 자체가 대단한 파격이다. 물론, 거기에 따른 이유를 내가 모르는 것도 아니지만 네이버처럼 추잡하게 하지는 않는다. 추잡한 것은 어떤 것이냐? 해외에서는 차나 휴대폰 싸게 팔고 자국민에게 비싸게 팔면 이완용 짓거리랑 뭐가 다를게 있냐고 이미 알고 있을 것이다. 우리나라가 산유국은 아니지만 정유국인데 무지하게 기름값이 비싸다. 미국은 산유 되는 곳도 있긴 하지만 정유가 가능하기에 한국 반값이라는 것을 이해한지 십수년도 넘었다. 그런데 우리나라는 아니다. 네이버도 마찬가지. 동영상 광고 수익 때문에 유투브에서 막아 놨다. 여기까지는 사실 기업이니 이해가 가능한데, 한국만 막아놨다. 왜냐면 네이버가 외국에서 실패했기 때문이다. 8년전 내가 미국에 있을 때 무슨 미국 지역 전문가 모집한다고 네이버에서 떠들었는데 내가 이미 지식인 하면서 수작을 아는 터라 주변 IT 인들에게 이거 사기라고 많이 말을 해줬다. 믓튼, 미국 진출 실패해서 결국 자국민에게만 불편하게 하고 스킵도 오래도록 되지 않는 동영상을 보여주는 것이다. 한마디로 이.완.용, 매.국.노. 그러니 문화 사업을 할 수 밖에 없다. 그러니 경찰에 개인 정보를 동의 없이 넘겨줄 수 밖에 없다. 카카오는 그나마 이슈라도 되었는데 네이버는 이슈도 안된다. 댓글 조작이나 이슈되지. 왜냐? 네이버가 카카오 찔렀기 때문이다. 경쟁 없애려고. 모두 잘 알겠지만 제보 없이는 아무것도 안된다. 이 블로그에서 모두 풀 생각이다.


뭐... 잡썰이 더 길어 졌는데.


백만을 찍는 유투브 영상을 보면 이벤트를 하는데 사실 그 안에 들어가는 돈을 보면 백만원이 안된다. 나 같으면 산타하고 그러면 찾아 가서 수천만원치 쿨하게 지원해주겠는데 그런게 될 수 없는 구조라는 것이다.


길게 쓰려면 한없이 길어질 것 같아서. 결론만 말한다.


개인이 수입억 버는 것은 알려지지 않았을 때 그렇게 벌 수 있다. 사업체 형태여야 한다. 자, 일반화까지는 아니지만 나중에 할 이야기에 대해서 이슈를 던져 보겠다.


개인 프리랜서도 그렇다. 개인이 프리랜서 하면 3.3% 떼고 주고 무시하고 그런데 사업체 끼면 사업자 대 사업자기 때문에 부가가치세 10% 더 받고 대우도 다르다.


어디나 그렇다. 당신이 개인이라는 것이 알려지는 순간 회사는 멈추지 않을 만큼만 돈을 주게 된다.


그래서 많은 유투버들이 합치게 된다. 출구 전략을 세우게 된다.


그만큼의 고민을 하려면 지금 하는 학업이나 일을 그만두고 해야할 정도다.


개인 의견이지만 난 솔직하게 쓴다.

나는 엔지니어다.

더 잘 만든 곳으로 이전하는 수 밖에 없다.

이전 기간은 1년으로 본다. 몇 개의 블로그 중


https://asmansi.blogspot.com/

만 보아도 2009년 포스팅 글이 있으니 블로그 한지 공식 10년이 되었다.


대학생 시절 호스팅 사업도 했고, 테터툴즈 깔아서 했었고 그 이전에는 01410, 하이텔, 나우누리 시절 개인 BBS를 돌렸으니

아마 더 오래된 것 같다.


프로그래밍도 오래 했는데 다음과 같은 사안으로 굳이 블로그를 옮기면서 통합하게 되었다.


1. 이전 글에도 몇 번 밝혔지만 민주주의의 경쟁에서 오는 품질 향상이라는 큰 전제도 많은 비용이 투입되는 경우 적당히 해야 한다. 즉, 자동화 회사는 대륙간 하나씩 있고 경쟁하는게 맞다. IT 분야는 온라인이라 더 경쟁이 쉬운데 국내에는 카카오만 있는게 맞다. 네이버는 댓글 조작하고 카카오는 국민 정보를 정부에 주지만, 사실 텔레그램의 CEO 같은 스타가 나올만한 환경도 아니고 어느 정도는 타협하고 가는 수준이어야 하기 때문.


2. 국내 서비스는 정치에 쉽게 영향을 받고, 세계적인 서비스라고 하면 사실 삼성/LG 밖에 없다. 네이버 미국 진출 실패했고, 라인 결국 일본에 머물고 국내는 카톡이 잡았다. 그럼, 어디를 국가 대표로 만들 것인가? 카카오가 맞다. 역사 개뿔 없어서 볼거리라고는 캐네디 암살 장소에 X 쳐진 것 밖에 없는 미국이지만 역사가 짧고 최신의 마인드이기 때문이다. 카카오톡도 젊다. 그리고 온고지신 정신이 살아있다. 다음을 인수하고 김기사를 인수하는 것을 보았을 때 무엇이 좋은지 아는 스티브 잡스 같았다. 나의 글들은 상당히 어그레시브하기 때문에 이상한 티스토리 팀장이 와서 데이터 센터 번개 맞았으니 실수로 지웠다고 하고 미안하다며 카카오 선물 세트 몇 개 보낼런지도 모른다. 얕은 수에 당한다면, 그것도 내 블로그의 운명이겠지.


3. 사실 쓰는 것은 내 자유다. 어릴적 제대로 솔직하게 공개되는 것 하나 없어서 수많은 시행착오를 겪어야 했던 지난날을 보면. 가난하지만 꿈이 있고 재미있어 하고 눈이 초롱초롱한 후임이 어딘가는 있을거라 생각한다. 그런 친구에게 닿기를 간절히 바라는 마음으로 쓴다.


4. 사실, 난 나에게 극대한 피해가 오더라도 솔직함을 선택했고 그 길을 걸었다. 그것은 어머니의 영향이다.

그럼에도 나름 선방하면서 살고 있는 것을 보면 나름 괜찮은 인생이다.

물론, 더럽게 사는 사람들이 더 잘사는 것은 확실하다.

그러나 그것이 잘사는 것이 아니라는 것을 가르쳐 주고 싶은 마음도 있다.


물론, 이 마음은 단순히 블로그 정리한다고 먹은 것은 아니고 수십년된 생각이다.



'{BE} JAVA 21 corretto' 카테고리의 다른 글

국내 도둑 네이버가 더 잘되었으면 한다.  (0) 2019.01.11
가지고 싶다  (0) 2019.01.10
Large Language Model - 003  (0) 2019.01.06
Large Language Model - 002  (0) 2019.01.03
Large Language Model - 001  (0) 2019.01.02

플러스친구 친구추가에 동의

플러스친구를 친구로 추가하시면 광고와 마케팅 메시지를 카카오톡으로 받아볼 수 있습니다. 

또한, 챗봇으로 이용가이드를 확인할 수 있고 정기적으로 활용 팁을 받아볼 수 있습니다.


개인정보 취급위탁 동의

서비스 이용자(이하 "회원"이라 한다)와 ㈜카카오(이하 “카카오”라 한다)는 “회원”의 개인정보 처리업무를 "카카오"에게 위탁함에 있어 다음과 같은 내용으로 본 업무위탁계약을 체결한다.

제1조 (목적)

본 계약은 회원이 개인정보처리업무를 "카카오"에게 위탁하고, "카카오"는 이를 승낙하여 "카카오"의 책임아래 성실하게 업무를 완성하도록 하는데 필요한 사항을 정함을 목적으로 한다.

제2조 (용어의 정의)

본 계약에서 별도로 정의되지 아니한 용어는 정보통신망법, 동법 시행령 및 시행규칙에서 정의된 바에 따른다.

제3조 (위탁업무의 목적 및 범위)

"카카오"는 계약이 정하는 바에 따라 플러스친구 서비스를 제공하는 목적으로 개인정보 처리 업무를 수행한다.

제4조 (재위탁 제한)

① "카카오"는 “회원”의 사전 승낙을 얻은 경우를 제외하고 “회원”과의 계약상의 권리와 의무의 전부 또는 일부를 제3자에게 양도하거나 재위탁 할 수 없다.

② "카카오"가 재위탁 받은 수탁회사를 선임한 경우 "카카오"는 당해 재위탁계약서와 함께 그 사실을 지체없이 “회원”에게 통보하여야 한다.

제5조 (개인정보의 안전성 확보조치)

"카카오"는 정보통신망법 제28조, 동법 시행령 제15조 등에 따라 개인정보의 안전성 확보에 필요한 관리적․기술적 조치를 취하여야 한다.

제6조 (개인정보의 처리제한)

① "카카오"는 계약기간은 물론 계약 종료 후에도 위탁업무 수행 목적 범위를 넘어 개인정보를 이용하거나 이를 제3자에게 제공 또는 누설하여서는 안 된다.

② "카카오"는 계약이 해지되거나 또는 계약기간이 만료된 경우 위탁업무와 관련하여 보유하고 있는 개인정보를 「정보통신망법」 제29조에 따라 지체없이 파기하거나 “회원”에게 반납하여야 한다.

③ 제2항에 따라 "카카오"가 개인정보를 파기한 경우 지체없이 “회원”에게 그 결과를 통보하여야 한다.

제7조 (수탁자의 의무 등)

① “회원”은 "카카오"에 대하여 정보통신망법 등 관련 법률에 따른 실태점검, 시정요구, 교육 및 감독 등을 요구할 수 있고 “카카오”는 이에 응하여야 한다.

② “카카오”는 이 계약에 의하여 위탁받은 업무를 수행함에 있어 이 계약에 따른 의무를 위반하여 “회원” 또는 개인정보주체에게 손해가 발생한 경우 “카카오”는 그 손해를 배상한다.


개인정보 수집 및 이용동의

(주)카카오가 제공하는 카카오서비스는 아래의 목적으로 개인정보를 수집 및 이용하며,

회원의 개인정보를 안전하게 취급하는데 최선을 다합니다.

[필수] 서비스 기본 기능의 제공

  • 목적 : 회원 식별 및 관리, 중요 공지 알림 및 전화번호 인증
  • 항목 : 이름, 휴대전화번호¹
  • 기간 : 회원 탈퇴 시 지체없이 파기
    • 서비스 제공을 위해 필요한 최소한의 개인정보로 동의를 해 주셔야 서비스 이용이 가능합니다.
    • ¹카카오톡 가입 휴대전화번호

더 자세한 내용에 대해서는 개인정보처리방침을 참고하시기 바랍니다.


  1. 귀도 반 로섬 (Guido van Rossum): 파이썬의 창시자로, 그의 기여와 이 언어에 대한 지속적인 관심으로 커뮤니티에서 가장 높은 존경을 받습니다.
  2. 레이몬드 헤팅거 (Raymond Hettinger): 파이썬 코어 개발자이자, 파이썬의 내장 기능과 라이브러리 개발에 중요한 기여를 한 인물입니다. 그는 또한 탁월한 강연자로도 유명합니다.
  3. 데이비드 비즐리 (David Beazley): 파이썬 교육자이자 저자로, 'Python Essential Reference'와 같은 중요한 파이썬 책들을 저술했습니다. 그는 또한 파이썬의 고급 기능과 내부 작동 원리에 대한 심층적인 이해를 공유합니다.
  4. 트레비스 올리판트 (Travis Oliphant): 과학 계산을 위한 파이썬의 주요 라이브러리인 NumPy의 주요 개발자 중 한 명이며, SciPy와 Anaconda의 공동 창시자입니다.
  5. 캐롤 윌링 (Carol Willing): 파이썬 소프트웨어 재단 이사회 멤버이자, 교육과 다양성 증진을 위한 활동으로 존경받습니다.

 

 


중요고지사항

본 Blizzard 최종 사용자 라이선스 계약은 2018년 1월 23 일에 효력이 발생합니다.
이 Blizzard 온라인 게임 플랫폼 (이후 정의됨)을 설치하거나 이용하기 전 다음 계약(“본 라이선스 계약”)을 주의 깊게 읽으시기 바랍니다. 본 라이선스 계약의 모든 내용에 동의하지않는다면, 본 게임을 설치할 수 없습니다.
Blizzard Entertainment, Inc.의 온라인 게임 플랫폼(기존에 “Battle.net®”이라고 지칭됨) 및 Blizzard의 인터렉티브 게임, 플랫폼상 또는 플랫폼을 통하여 구매 및 이용을 할수 있도록 제공한 Blizzard가 아닌 개발사 (이하 “라이센서”)의 인터랙티브 게임 (이하 집합적으로 “게임”이라 지칭됨)에 대하여 관심을 가져주셔서 감사합니다. 본 라이선스 계약상 플랫폼은 다음과 같은의미이며 집합적으로 또는 개별적으로 다음을 지칭합니다: (1) PC 또는 모바일 기기에 설치된 Blizzard Battle.net 앱 클라이언트 소프트웨어 (과거 “Battle.net” 클라이언트라 지칭됨);(2) Blizzard Battle.net 앱과 게임과 관련하여 Blizzard 가 제공하고 운영하는 게임 서비스; (3) 각각의 게임 (게임 및 Blizzard Battle.net 앱과 관련하여 인정된모바일 애플리케이션); (4) Blizzard의 게임과 관련된 웹사이트와 게시판 서비스; (5) PC나 모바일 기기에 설치된 상기 요소들의 모든 기능 및 요소. Blizzard Entertainment,Inc. 는 한국에서 게임 및 서비스를 제공할 수 있는 권리를 Activision Blizzard International B.V.의 사업부인 Blizzard EntertainmentInternational에게 허용하며, Blizzard Entertainment International은 블리자드 엔터테인먼트 유한회사를 통하여 게임 및 플랫폼을 운영합니다. 귀하와 라이선스 계약을 체결하는당사자는 Activision Blizzard International B.V.의 사업부인 Blizzard Entertainment International (“블리자드” 또는 당사”) 입니다.귀하가 본라이선스 계약의 내용에 동의하지 않는 경우, 게임 또는 플랫폼을 설치, 복사 또는 사용할 수 없습니다.

1. 플랫폼

  1. Blizzard 계정. 플랫폼을 이용하기 위하여 귀하는 플랫폼 상으로 계정(“계정”)을 만들거나 과거에 계정을 등록하였어야 합니다. 계정의 생성 및 사용은 아래와 같은 조건에따릅니다:
    1. 귀하는 (i) “자연인”이고, 귀하가 거주하고 있는 국가의 성인이며 (회사, 유한회사, 조합 및 기타 유형의 법인 또는 기업체는 계정을 생성할 수 없습니다), (ii)Blizzard로부터 특별히 플랫폼이용이 금지된 자가 아닌 경우에만 계정을 생성할 수 있습니다. 귀하가 미성년자이고 귀하의 부모님 또는 법정대리인으로부터 플랫폼 사용에대한 허가를 받은 경우, 귀하는 귀하의 부모님 또는 법정대리인의 계정과 독립된 계정을 생성하여야 합니다.
    2. 플랫폼상 한 개인이 개설할 수 있는 최대한의 계정 수는 한(1) 개로 제한됩니다.
    3. 귀하가 계정을 생성하거나 업데이트함에 있어 귀하는 다음과 같은 의무가 있습니다.
      1. Blizzard에게 귀하의 성명, 주소, 전화번호, 이메일 주소, 환불 요청시에는 계좌번호와 같은 정확하며 최신의 일정한 개인정보를 제공하여야 합니다. 이에더하여 Blizzard는 귀하에게 특정 게임 또는 플랫폼의 특정 기능을 사용하기 위하여 결제정보를 제공할 것을 요구할 수도 있습니다. Blizzard가 귀하의개인정보를 보관함에 있어서는 Blizzard의 개인정보취급방침이 적용되는 바, 그 내용은http://kr.blizzard.com/ko-kr/company/about/privacy.html에서확인하실 수 있습니다. 또한, Blizzard는 귀하가 플랫폼에 접속함에 따라 발생하는 개인정보가 아닌 정보를 수집할 권리가 있습니다.
      2. 고유한 사용자명 및 계정암호 (이하 총칭하여 “로그인 정보”) 를 선택하여야 합니다. 계정의 암호로 실명을 이용하지 말아야 하며 본 라이선스 계약의 규정에서달리 정하지 않는 한 계정이나 로그인 정보를 타인과 공유하여서는 안됩니다.플랫폼을 통하여 구동되는 게임 중에는 게임에 오류가 발생하는 경우 귀하의 컴퓨터 시스템에서 시스템 및 드라이버 정보를 포함한 관련 정보를 Blizzard로 전달하도록 하는툴을 포함하고 있는 것도 귀하는 요청 시 Blizzard에 정확한 정보를 제공하고, 정보가 변경되면 즉시 이러한 정보를 업데이트할 것에 동의합니다.
    4. 플랫폼에서 게임을 이용하기 위해서는 계정에 게임의 라이선스를 등록하여야 하며, 라이선스의 등록을 위해서 Blizzard가 생성한 인증 코드가 필요합니다. 소매점에서 구매한게임 라이선스의 경우, 인증 코드는 해당 게임의 포장 내에 포함될 수 있습니다. 디지털 방식으로 Blizzard에서 게임을 구매하거나 경우 PC방 서비스를 이용하여, 인증코드는 게임을 구매한 계정에 할당됩니다.
    5. 귀하는 계정과 로그인 정보를 비밀로 유지할 책임이 있으며, 귀하로부터 허락을 받았는지 여부를 불문하고 구매 등을 포함한 귀하의 로그인 정보의 모든 사용내역에 대한 책임을부담합니다. 귀하는 자신의 로그인 정보를 비밀로 유지할 책임이 있으며, Blizzard의 고의, 중과실로 인한 것이 아닌 한, 로그인 정보 사용에 대한 책임을 집니다.귀하가 로그인 정보의 허락 없는 공개, 도난 또는 분실 등 보안에 문제가 생겼다는 사실을 인지하거나 그에 대한 합리적인 의심이 드는 경우 귀하는Blizzard Support를 통하여 그러한 사실을Blizzard에게 알려야 합니다.
    6. 귀하가 거주하는 국가의 법률의 적용을 받음을 조건으로, 미성년자들은 그들의 부모님 또는 법정대리인에 의하여 생성된 계정을 사용할 수 있습니다. 귀하가 귀하의 자녀 또는귀하의 후견을 받는 아동(통칭하여 “아동”)에게 플랫폼의 계정을 사용할 수 있도록 허용하는 경우, 귀하는 귀하 및 귀하의 아동을 대표하여 본 라이선스 계약을 체결한다는사실에 동의하며, 귀하가 허용하였는지 여부를 불문하고 귀하가 귀하의 아동에 의한 모든 계정사용내역에 대한 책임을 부담한다는 사실을 인지하고 이에 동의합니다.
    7. 귀하가 게임 및 플랫폼을 사용하여 Blizzard 또는 다른 이용자들과 서로 게임을 하는 경우, 이는 Blizzard에 의하여만 유지되고 강제되는 운영정책 (“운영정책”)의적용을 받게 됩니다. 위 운영정책은 예시적이며 예시되지 않은 내용이 포함될 수 있습니다. 운영정책은 본 항에 의하여 본 라이선스 계약의 일부를 구성하게 되며,http://kr.blizzard.com/ko-kr/company/legal/웹페이지 및 그 하위 페이지에서 그 내용을 확인하실 수 있습니다. 개인정보 취급방침은http://kr.blizzard.com/ko-kr/company/about/privacy.html에서 그 내용을 확인하실 수 있습니다.
    8. 귀하는 귀하나 제3자가 귀하의 계정을 이용함으로써 발생하는 모든 비용 및 관련 세금을 지불하는 것에 동의합니다. 특정 게임에 대하여 자동 결제 방식을 선택할 경우, 귀하가자동 결제나 계정을 취소하기 전까지는 해당 결제에 대한 지불은 자동적으로 처리되는 것을 인정하고 (귀하의 배틀코인 잔액이나 신용카드로 결제될 수 있습니다.)Blizzard는 언제든지 플랫폼을 통하여 제공되는 상품 및 서비스의 가격을 변경할 수 있습니다.
    9. Blizzard는 귀하가 플랫폼을 이용할 경우 귀하의 채팅 등의 교신내용을 모니터하고 기록할 수 있으며, 귀하는 귀하가 플랫폼을 이용할 경우 귀하의 교신내용의 사적인 것일것이라고 기대할 수 없다는 것을 인정하고 이에 동의합니다. Blizzard는 다음과 같은 이유를 포함하여 어떠한 이유로도 귀하의 교신내용을 공개할 권리가 있습니다: (a)관련 법령, 법적 절차, 정부 요청의 준수목적 (b) 본 라이선스 계약이나 기타 Blizzard의 정책 실행 목적, (c) Blizzard의 법적 권리 및 구제 방법을보호하기 위한 목적, (d) 블리자드의 판단으로 타인의 신체 및 안전에 위협이 있다고 생각할 경우 그를 보호하기 위한 목적, (e) 범죄행위 및 기타 위협행위를 보고하기위한 목적
  2. 라이선스 부여. 귀하가 본 라이선스 계약에 동의하고 이를 준수하는 경우, Blizzard는 귀하에게 다음과 같은 내용의 제한적이고, 취소가능하며, 재라이선스가 불가능하고비독점적인 게임 및 플랫폼을 이용할 수 있는 라이선스를 부여하며, 이 라이선스는 아래 1.C항에서 규정하고 있는 “라이선스에 대한 제한”규정의 적용을 받습니다:
    1. 귀하는 서비스를 이용하고 이에 접속하기 위하여 Blizzard Battle.net 앱을 귀하의 적법한 통제하에 있는 한 대 이상의 컴퓨터 또는 모바일 기기에 설치할 수있습니다.
    2. 귀하는 본 라이선스 계약에서 달리 규정하고 있지 않는 한, 본 라이선스 계약의 계약기간 동안에만 플랫폼을 개인적이고 비영리적인 오락 목적으로만 사용할 수 있습니다.
    3. 귀하는 플랫폼 이용과 관련한 귀하의 권리나 의무를 타인에게 이전할 수 없습니다.
    4. 귀하가 소매점으로부터 원본 미디어(예를 들면 CD-ROM이나 DVD 등에 담겨 있는 경우 등)의 형태로 구매한 게임의 경우, 동봉된 인증 키를 계정에 연결하지 않았을 경우,귀하는 본 라이선스 계약에 동의하는 자에게 원본 미디어, 원본 패키지 및 게임과 함께 유통된 매뉴얼 등 문서를 물리적으로 이전하는 방법으로 본 라이선스 계약에 따른 게임사용과 관련한 귀하의 모든 권리와 의무를 영구적으로 이전할 수 있으나, 이는 귀하가 귀하의 통제 또는 소유 하에 있는 모든 게임의 사본 및 설치를 영구히 삭제한다는 전제하에서만 가능합니다. 위 이전행위와 관련하여 부과되는 모든 세금, 수수료, 요금, 의무, 원천징수금, 부과금 등과 이자, 불이익 및 가산금에 대하여는 귀하가 온전한 책임을부담합니다. 위와 같은 경우 외에는 Blizzard는 그 어떠한 게임에 대한 권리 및 의무의 이전도 인정하지 않습니다.
    5. 플랫폼에서 이용가능한 일부 게임들은 다음을 포함하는 특정 라이선스 조건이 적용될 수 있습니다:
      1. 게임의 시험판 또는 ‘스타터’ 버전은 귀하가 Blizzard로부터 게임 라이선스를 구매하기 전에 게임의 제한된 버전을 구동할 수 있도록 합니다. 게임의 완전한버전에 대한 라이선스는 플랫폼을 통하여 구매할 수 있습니다.
      2. 일정한 경우 게임의 “완전한 버전”은 게임 라이선스를 구매하고 귀하의 계정에 추가하여야 구동될 수 있습니다.
      3. 귀하는 귀하에게 등록된 계정을 통하여 귀하가 라이선스를 부여받은 게임을 공중에게 제공되는 인증된 사이버카페나 컴퓨터게임센터에서 플랫폼상에 이용할 수 있습니다.해당 시설의 운영자는 시설을 이용하는 것에 대한 대가를 징수할 수 있습니다.
      4. 특정 게임의 경우 플랫폼에서 획득할 수는 있으나, 플랫폼에서 이용할 수 없을 수도 있습니다. 그러한 경우 해당 게임은 구매 후 설치하거나 이용할 경우 별도의최종 사용자 라이선스 계약의 적용을 받을 수도 있습니다.
      5. 블리자드의 라이센서에 의하여 제작되고 플랫폼을 통하여 배포 및 이용되는 게임의 경우, 귀하는 해당 게임을 플랫폼에서 이용하기에 앞서 라이센서의 최종 사용자라이선스 계약에 동의하여야 할 수 있습니다. 라이센서의 최종 사용자 라이선스 계약의 조건은 본 조항에서 인용됨으로써 본 라이선스 계약의 일부가 됩니다.라이센서의 게임 이용과 관련하여 본 라이선스 계약의 조건과 라이센서의 최종 사용자 라이선스 계약의 조건에 차이가 있을 경우, 라이센서의 최종 사용자 라이선스계약이 우선하며 해당 게임의 이용에 적용됩니다. 그 외의 플랫폼과 관련하여 본 라이선스 계약의 조건과 라이센서의 최종 사용자 라이선스 계약의 조건에 차이가있을 경우, 본 라이선스 계약이 우선하며 귀하의 플랫폼 이용에 적용됩니다.
  3. 라이선스에 대한 제한. 귀하는 귀하가 아래와 같은 라이선스에 대한 제한을 침해하거나 침해하는 것을 돕는 경우에 위와 같은 플랫폼, 그 일부 또는 구성요소 및 특정 기능을사용할 수 있는 라이선스가 철회될 수 있고, 어떠한 상황에서도 다음과 같은 행위 또는 다음 행위 중 일부라도 하지 않을 것에 동의합니다:
    1. 2차적 저작물을 만드는 행위: 플랫폼, 서비스 또는 게임의 복제 또는 재생 (본 라이선스 계약1.B조항에 의하여 허용되는 경우는 제외)하는 경우 또는 이를변환, 역설계, 제작, 소스코드 추출, 수정, 분해, 역컴파일하거나 이를 기반으로 2차적 저작물을 만드는 행위;
    2. 치팅행위: 다음과 같은 것을 제작, 이용, 제공, 홍보, 광고, 사용가능하게 하거나 배포하는 행위 또는 그러한 행위를 돕는 행위
      1. 치트프로그램, Blizzard에 의하여 명시적으로 허가되지 않은 것으로서 게임 내용에 영향을 미치거나 조작하는 방법으로 귀하나 다른 이용자가 그러한 방법을이용하지 않는 이용자보다 유리한 지위를 가지게 되는 게임내의 버그를 이용하는 것을 포함.
      2. 자동화소프트웨어 (Bots): Blizzard에 의하여 명시적으로 허가되지 않은 것으로서 게임이나 플랫폼과 그에 부수한 요소나 기능에서 자동화된 동작을 가능케하는 프로그램 명령어나 소프트웨어 (예를 들어 게임내에서 캐릭터를 자동으로 동작하게 하는 프로그램 등)
      3. 해킹: Blizzard에 의하여 명시적으로 허가되지 않은 게임소프트웨어나 플랫폼에 접속하거나 수정하는 모든 행위
      4. Blizzard에 의하여 명시적으로 허가되지 않은 Blizzard Battle.net 앱 클라이언트나 플랫폼, 게임 및 그에 부수한 요소나 기능과 관련하여이용되는 프로그램 명령어나 소프트웨어로서 게임 내용에 영향을 미치거나 조작하는 것
    3. 금지된 영리목적의 사용행위: 본 라이선스 계약에서 명시적으로 허용되지 아니한 목적으로 Blizzard Battle.net 앱 클라이언트, 플랫폼 또는 게임 또는그 일부는 사용하는 행위. 여기에는 다음과 같은 행위가 포함되나 이에 제한되지 않습니다. (i) 영리목적의 시설에서 게임을 구동하는 행위(제1.B.vi.4의 적용을 받음);(ii) 플랫폼이나 게임 밖에서 판매하기 위하여 게임 내 화폐, 아이템, 자원, 물약을 수집하는 행위; (iii) 플랫폼이나 게임 밖에서의 대가를 위하여 게임 내에서파워레벨링 등을 하는 행위; (iv) 플랫폼 또는 게임을 통하거나 그 안에서 문자, 영상통화 등의 방법으로 영리목적의 광고, 권유 또는 청약을 하거나 이를 가능하게 하는행위; 또는 (v) 관련된 지역에서 법률상 도박에 해당하는 지 여부와 관계없이 허가 없이 Blizzard 게임의 결과를 포함한 어떠한 부분이라도 이용하는 이벤트를조직하거나, 홍보, 협조, 또는 참여하는 행위
    4. “이스포츠”: 1.D.ii.2에서 명시되지 않은 형태로 Blizzard의 사전 서면동의 또는 추가 라이선스를 획득함 없이 영리법인 또는 비영리법인에 의하여스폰서, 홍보되거나 그에 의하여 가능하게 된 ‘이스포츠’ 또는 그룹경기를 위하여 플랫폼이나 게임을 사용하는 행위;
    5. 클라우드 컴퓨팅: 게임 이용을 포함하여 플랫폼 사용 시 게임의 내용을 제3자의 서버에서 불특정의 기기로 허가없이 스트리밍하거나 송출할 수 있도록 고안된 승인받지 않은 제 3자가 제공하는 “클라우드 컴퓨팅” 서비스, “클라우드 게임” 서비스를 포함한 어떠한 소프트웨어나 서비스를 이용하는 행위
    6. 정보 “추출행위”: Blizzard Batte.net 앱 클라이언트, 플랫폼 또는 게임에 의하여 저장되거나 생성된 정보를 승인되지 않은 방법으로 가로채거나수집하거나 읽어내거나 “추출”하는 행위; 다만, Blizzard는 고유한 단독 재량으로 특정 제3자 사용자 인터페이스의 사용을 허용할 수 있습니다;
    7. “아이템 복제”행위: 플랫폼 및 게임의 디자인 하자, 보고되지 않은 문제점 또는 프로그램 버그를 이용하여 생성된 게임 내 아이템을 생성, 이용 또는 거래하는행위;
    8. 대전주선: 어떠한 목적으로도 게임에 관련된 대전주선서비스를 호스팅, 제공 또는 개발하거나 방식을 불문하고 Blizzard가 사용하는 통신 프로토콜을 가로채거나에뮬레이션하거나 리디렉트하는 행위. 이에는 허가되지 않은 인터넷 게임, 네트워크 게임(Blizzard가 명시적으로 허가한 경우에는 예외), 또는 콘텐츠 집합통신망의 일부로행하여지는 경우가 포함되나 이에 국한되지는 않습니다;
    9. 허가되지 않은 접속: 게임 또는 플랫폼에 허가되지 않은 접속을 생성, 조성 또는 유지하는 행위로서 이에는 (i) 플랫폼을 에뮬레이션하거나 에뮬레이션하려고시도하는 허가받지 않은 서버로 접속하는 행위 및 (ii) Blizzard에 의하여 명시적으로 허가된 바 없는 제3자 프로그램 또는 도구를 사용하는 접속이 포함되나 이에국한되지는 않습니다;
    10. 이전행위: 본 라이선스 계약서에 명시적으로 허가되지 않은 방식으로 다른 당사자에게 게임의 복사본 또는 게임에 대한 귀하의 권리를 판매, 재라이선스, 대여,임대, 담보제공 또는 양도하는 행위;
    11. 방해/괴롭힘: 다른 이용자의 게임 이용 경험을 방해하거나 저해하기 위한 어떤 행동에 관여하거나, 다음과 같은 행위를 포함하여 Blizzard의 플랫폼의 운영을방해하는 행위:
    12. 플랫폼이나 게임의 환경을 지원하기 위하여 이용되는 어떠한 컴퓨터를 방해하거나 방해하는 것을 돕는 행위. 플랫폼을 방해하거나 게임의 적법한 운영을 훼손하기위한 귀하의 모든 시도는 민법 또는 형법에 위반되는 행위일 수 있습니다.
    13. 다른 이용자의 게임 이용 경험을 방해하거나 저해하기 위한 정도를 벗어난 괴롭힘, 고의적 게임방해행위, 괴롭히는 행위, 채팅 및 고의적인 게임내 미활동 또는고의적인 접속종료 행위
    14. 플랫폼 오용: 귀하는 본 라이선스 계약에 의해 명시적으로 허용된 이외의 방식으로 플랫폼에 접속하거나 플랫폼을 이용할 수 없습니다. 상기 항목에 제한되지 않고귀하는 (a) 플랫폼 거부 공격을 포함(이에 제한되지 않음)하여 플랫폼에 대해 어떤 형태로든 일체의 공격을 수행하거나 그러한 공격에 지원 또는 참여하지 않으며 그 밖에플랫폼 또는 타인의 플랫폼 이용을 방해하지 않으며, (b) 플랫폼, 다른 이용자에게 등록된 계정 또는 플랫폼에 접속된 컴퓨터 시스템 또는 네트워크에 대해 허가되지 않은접속을 하지 않을 것에 동의합니다.
    15. 법률 위반: 이용자는 게임 클라이언트 또는 플랫폼 이용과 관련하여 어떠한 준거법이나 규정도 위반하지 않을 것에 동의합니다. 상기 항목에 대한 제한 없이 귀하는플랫폼을 통해 (사생활 에 대한 권리 또는 평판을 포함하여) 타인의 저작권, 등록상표, 특허, 영업 비밀 또는 기타 권리를 침해하는 자료 또는 정보를 제공하지 않을 것에동의합니다.
  4. 게임 및 플랫폼 기능
    1. 플랫폼 기능.
      1. 글로벌 플레이. 플랫폼을 통하여 구동할 수 있는 게임 중 “글로벌 플레이”기능이 제공되는 게임의 경우, 귀하는 계정이 생성된 지역 이외의 지역의다른 플레이어들과 함께 게임을 즐길 수 있습니다. 글로벌 플레이 기능을 사용하기 위하여서는 귀하가 게임을 하고자 하는 지역에서 Blizzard가 운영하고 있는서버로, 계정과 관련한 귀하의 개인정보의 전부 또는 일부의 이전이 요구됩니다. 귀하는 글로벌 플레이에 참여함으로써, Blizzard가 귀하의 정보를 귀하가글로벌 플레이 기능을 이용하여 참여할 것을 선택한 개별 지역에 위치한 Blizzard의 서버에 이전할 수 있음에 동의합니다. 보다 자세한 내용을 위하여는Blizzard의 개인정보 취급방침을 참조하시기 바랍니다.
      2. 배틀코인.
        1. Blizzard에서 상품이나 플랫폼의 기능을 구매하기 위한 용도로만 사용되는 금액 (이하 “배틀코인”)을 계정에 보유할 수 있습니다. 단,계정은 신용 한도, 당좌 보호 또는 예금 계좌는 아닙니다. 배틀코인이 미사용인 경우, 충전 후 7일 이내에는 귀하는 전자상거래 등에서의소비자보호에 관한 법률에 의거하여 그 충전을 취소요청할 수 있으며, 이 경우 수수료 차감없이 전액 환불 됩니다. 충전된 배틀코인이 일부라도사용되거나, 충전 후 7일이 경과한 경우 충전된 배틀코인의 환불은 법률에서 달리 규정하지 않는 한, 구매시 동의한 조건에 따라 환불 수수료가공제되어 환불됩니다.. 귀하가 계정에 충전한 배틀코인과 기타 제삼자로부터 선물 받은 배틀코인은 충전한 날 또는 선물 받은 날로부터 5년 이내에사용하여야 하고, 그 기간 내에 사용하지 않은 금액은 소멸합니다.. 계정에 충전된 배틀코인은 이자를 발생시키지 않습니다.
        2. 계정에 배틀코인을 충전하기 위해서는https://kr.battle.net/account/management/ebalance-purchase.html에서제공되는 설명을 참조해주십시오. 계정에 배틀코인을 충전하는 거래는 아래에 첨부된 판매 조건에서 확인하실 수 있는 거래조건에 의하여 규율 됩니다.계정에 충전할 수 있는 최소 단위 금액은 1,000원이며, 최대로 충전할 수 있는 금액은 관계 법령상 성년자의 경우 50만원, 관계법령상미성년인 경우 7만원입니다. 당사는 최소 충전 단위 금액과 최대 충전 금액을 본 라이선스 계약의 9 조에 의거하여 귀하에게 고지한 후 수시로변경할 권리를 유보합니다. 계정에 충전된 잔액을 확인하기 하거나 계정에서 최근에 발생한 거래를 조회하기 위해서는https://kr.battle.net/account/management/transaction-history.html를방문하시어 해당 페이지의 설명을 따라주시기 바랍니다.
        3. 충전된 배틀코인은 Blizzard에서 현금과 동일하게 구매에 사용될 수 있으며, 귀하는 인증되지 않은 거래를 포함하여 해당법률의 조건에 따라귀하의 계정에서 발생한 모든 거래에 대하여 책임이 있습니다. 만약 귀하의 계정에 문제가 발생했다는 의심이 들면, 귀하는http://kr.battle.net/support/ko/를확인하셔야 합니다. 계정의 잔액은, 당사가 귀하로부터 ‘계정에 문제가 발생했을지도 모른다’는 귀하의 통지를 수령하였다고 통지를 발송한 때부터보호될 것입니다. 그 시점 이후로부터 당사는 계정의 잔액을 동결하는 조치를 취할 것이며, 당사가 귀하에게 계정의 통제권을 회복시킨 이후에 동결조치를 해제할 것입니다.
        4. 귀하가 직접 구매한 (선물받은 배틀코인 제외) 배틀코인의 환불을 요청한 경우 현재 남아 있는 잔액의 10% 또는 잔액이 10,000원 이내인경우 1,000원을 공제하고 남은 금액을 환불하여 드립니다. 다만 잔액이 1,000원 이하인 경우 환불이 불가능합니다.
        5. 당사가 귀하의 계정의 문제가 귀하에게 어떠한 이유로든 책임이 있다고 판단할 경우, 당사는 문제가 발생한 타 이용자의 계정을 통하여 획득한배틀코인을 계정에서 제거하고, 귀하가 플랫폼을 사용할 권리를 부여받은 게임에 접속을 중지시키며, 계정의 삭제와 동시에 또는 선택적으로 귀하에게가능한 모든 법적, 형평법적 조치를 취할 권리를 보유합니다.
        6. 귀하가 당사로부터 상품 및 플랫폼을 구매하기로 동의할 경우, 그러한 구매 대금을 지불할 의무의 불이행이 발생할 경우, 당사가 귀하의 현재 계정에충전된 배틀코인을 동결할 권리를 보유하는 것에 귀하는 동의하며, 불이행된 대금 채무를 완전히 이행하기 전까지 충전된 배틀코인을 불이행 채무의이행에 사용하는 것에 동의합니다. 대금 채무가 계정에 충전된 배틀코인에 의하거나 기타 다른 결제수단에 의하여 완전히 변제될 경우, 당사는 계정에충전된 배틀코인의 동결을 해제할 수 있습니다.
      3. 플랫폼을 통한 구매. 플랫폼을 통하여 구매한 제품의 판매조건은 아래의 첨부 1에서 확인하실 수 있으며, 해당 판매조건은 본 라이선스 계약에 의하여인용됨으로써 본 라이선스 계약의 일부가 됩니다.
      4. 이용자 콘텐츠. “이용자 콘텐츠”는 게임이나 플랫폼과 관련하여 귀하 또는 다른 이용자가 게임 클라이언트 또는 플랫폼을 통해 업로드 또는 전송하는대화 텍스트를 포함한 커뮤니케이션, 이미지, 사운드 및 모든 자료 및 정보를 의미합니다. 귀하는 게임내에서 보여지거나 게임과 일체화된 이용자 콘텐츠에 대하여Blizzard가 다음과 같은 방법과 조건으로 이용하는 것을 허락합니다.
        1. 해당 이용자 콘텐츠를 게임이나 플랫폼의 제공 및 홍보의 목적으로 이용, 편집, 형식의 변경 및 기타 변형 (공표, 복제, 공연, 전송, 배포,방송, 2차적 저작물 작성 등 어떠한 형태로든 이용 가능하며, 이용기간과 지역에는 제한이 없음)
        2. 이용자 콘텐츠를 제작한 이용자의 사전 동의 없이 거래를 목적으로 이용자 콘텐츠를 판매, 대여, 양도 행위를 하지 않음
        3. 컴퓨터 메모리에의 접속
        4. 해당 이용자 콘텐츠의 작성자로서의 귀하의 성명은 표시하지 않을 수 있음
        게임내에서 보여지지 않고 게임과 일체화되지 않은 귀하의 이용자 콘텐츠 (예컨대, 일반게시판등에의 게시물)에 대하여는 Blizzard가 귀하의 명시적인 동의가없이 상업적으로 이용하지 않으며, 귀하는 언제든지 이러한 이용자 콘텐츠를 삭제할 수 있습니다.
        다만, 이러한 이용이 법률에 의하여 제한을 받을 경우, Blizzard는 해당 법률 규정에 따릅니다.
      5. 실제 ID 기능 및 신원 공개. 플랫폼은 귀하로 하여금 “실제 ID 친구” 기능을 통하여 플랫폼을 이용하는 다른 사용자들에게 귀하의 신원을 공개할수 있도록 합니다. 귀하가 실제 ID 기능을 사용하고 다른 사용자에게 “실제 ID 친구” 신청을 함에 동의하는 경우, 당해 사용자는 귀하의 실명을 볼 수 있게됩니다. Blizzard 클라이언트 음성채팅과 같은 기능은 실제 ID 기능을 사용함에 동의한 사용자간에서만 사용이 가능합니다. 귀하가 실제 ID기능을사용함에 동의하는 경우 귀하가 “실제 ID 친구”로 지정한 사람들은 귀하의 다른 “실제 ID 친구”들의 이름 또한 볼 수 있게 되며, 귀하의 이름은귀하의 “실제 ID 친구”가 동 기능을 이용하여 지정한 다른 사람들에게 보여질 수 있습니다. 귀하는 귀하의 계정에서 모든 실제 ID 친구들을삭제하는 방법으로 언제든지 실제 ID 기능의 사용을 거부할 수 있습니다.
      6. 비용. 이용자는 등록한 계정을 자신 또는 타인이 이용함으로써 발생한 모든 비용과 세금을 지불하는 데 동의합니다. 본 플랫폼을 통해 제공되는 상품및 플랫폼(모든 게임에 대한 가입계획을 포함)에 대한 요금은 법률에 따른 사전 고지 후 변경될 수 있습니다 귀하는 관련 법령에서 규정된 경우를 제외하고는환불을 받을 수 없으며, 선불 처리된 게임 시간에 대한 잠재적 환불에 대한 정보는 해당 게임의 특정 이용 약관을 참조해야 합니다.
      7. 미예고 플랫폼 중단. Blizzard의 사전통지 없이 플랫폼이가 1일 4시간(누적시간) 이상 중단되거나 장애를 받은 경우 Blizzard는 기간별요금제 게임 플랫폼 이용자에게 그와 같은 미예고 중단 / 장애시간의 3배만큼의 게임시간을 제공합니다. 그러나 플랫폼 중단이나 장애가 다음과 같은 사유로 발생한경우에는 예외로 합니다.
        1. 아래 16.D 조에 정의한 바와 같은 "불가항력 사유"
        2. 이용자 또는 Blizzard에게 책임이 없는 제3자의 고의 또는 과실로 인한 플랫폼 중단 또는 장애
        3. Blizzard의 잘못 없이 Blizzard의 통신플랫폼 제공회사가 서비스를 제공하는데 필요한 통신플랫폼을 제공하지 못함으로 인한 플랫폼의 중단또는 장애
        4. 일정에 따른 플랫폼 장비의 유지/보수, 교체, 정기 점검, 설치로 인한 플랫폼 중단으로서 Blizzard가 이를 사전에 공지하는 경우
        5. 또한 정량제 이용자는 게임시간 연장을 적용 받을 수 없습니다.
        또한, Blizzard가 요금 미지급 또는 이용약관 위반을 이유로 정지시키지 않은, 유효한 계정을 갖고 있는 이용자는 Blizzard로부터 사전통지 없이30일 동안에 발생한 플랫폼 중단/장애 누적시간이 72시간을 초과하는 경우 계약을 해지할 수 있으며, 이는 이용자의 권리이지 의무가 아닙니다. 다만, 기간별요금제를 제공하지 않는 게임을 구매하였을 경우, 이용자는 관련 법규정에 의한 내용과 같거나 소비자에게 유리한 해당 게임의 판매 규정 및 조건에 따라 계약을해지하거나 보상받을 수 있습니다.
      8. 위치기반 정보의 이용. 특정 게임이나 플랫폼을 이용하기 위하여, 이용자는 블리자드가 이용자의 위치정보에 접근, 이용 및 저장할 수 있는 특정기능을이용할 것을 선택할 수 있습니다. 그러한 경우 Blizzard의 위치기반서비스 이용약관이 적용됩니다.
    2. 게임기능.
      1. 게임 편집기. 특정한 게임에는 게임과 관련하여 사용하기 위하여 사용자 지정 게임, 레벨, 지도, 시나리오 등 (“커스텀 게임”)을 제작할 수 있는프로그램(“게임 편집기”)이 포함되어 있습니다. 본 라이선스 계약과 본 라이선스 계약에서 인용된 다른 계약에서 커스텀 게임은 게임 편집기를 이용하여 제작된모든 콘텐츠 즉, 다음을 포함하나 이에 제한되지 않는 해당 커스텀 게임에서 이용된 모든 디지털 파일들과 (1) 그러한 파일들에 포함된 모든 콘텐츠 즉,플레이어 캐릭터나 비플레이어 캐릭터, 오디오 및 비디오 구성요소, 환경구성물, 객체, 아이템, 스킨이나 표면의 모양 (이에 제한되지 않음), (2) 모든제호, 상표, 상호, 캐릭터 명칭, 커스텀 게임에 포함되거나 이용된 기타 명칭이나 문구 (이에 제한되지 않음), (3) 커스텀 게임에 포함된 모든 콘텐츠,게임 컨셉, 방법이나 아이디어 등을 포함한 지적 재산권 을 의미합니다. 커스텀 게임은 특정 게임 편집기에서 이용되는 게임의 엔진으로만 구동될 수 있습니다.커스텀 게임의 이용방법에 대하여는 커스텀 게임 이용 정책이 규정하고 있으며, 본 조항에 의하여 해당 내용은 본 라이선스 계약의 일부를 구성합니다.Blizzard는 커스텀 게임을 플랫폼에서 언제나 독자적으로 수정, 제거 비활성화, 또는 삭제할 수 있습니다.
      2. 특정 게임의 “온라인” 구성요소. 어떠한 게임 (예를 들어, 디아블로 3)들은 온라인에서만 이용할 수 있으며, 최종 사용자는 허가 받은 플랫폼접근 권한을 획득해야 합니다. 최종 사용자는 Blizzard의 재량에 의하여 플랫폼이 제공되며 본 라이선스 계약에 따라 Blizzard가 플랫폼을 종료 또는중지할 수 있음을 이해하고 이에 동의합니다.
      3. 커뮤니티 토너먼트. 이스포츠 토너먼트 활동을 지원하기 위하여 블리자드는 커뮤니티 경기 라이선스에 따라 커뮤니티 토너먼트의 개최자에게 토너먼트를개최할 수 있는 라이선스를 개최합니다. 커뮤니티 경기 라이선스의 조건과 다른 토너먼트를 개최하려고 하는 경우 필요한 라이선스를 위하여tournament@blizzard.co.kr로 블리자드에게 연락하시기바랍니다.
      4. 게임의 베타 테스팅 선공개 버전. 게임의 일정한 선공개 버전(“베타”)은 테스팅(“베타 테스트”)을 위하여 귀하에게 제공될 수 있습니다. 이용자의플랫폼을 통한 베타 테스팅은 다음 사항에 따라 규율됩니다:
        1. 참가자격. 베타테스트에 참가하기 위하여 귀하는 다음의 필수조건을 모두 충족하여야 합니다:
          1. Blizzard가 귀하를 베타 테스트 참여자로 지정하여야 합니다;
          2. 베타테스트에 참가시 귀하가 사용할 계정은 정상적인 상태여야 합니다;
          3. 베타테스트 대상이 되는 베타가 다른 게임의 확장판인 경우, 계정에는 당해 게임의 이전의 모든 확장판으로 업그레이드 되어야 있어야 합니다;
          4. 귀하는 베타테스트를 위하여 등록하기 전 Blizzard로 하여금 귀하가 베타에 참여함에 있어 사용할 컴퓨터 시스템(“베타 테스트 시스템”)으로부터 하드웨어 또는 소프트웨어 정보를 취득할 수 있도록 하여 귀하가 베타테스트에 참여할 자격이 있는지 여부를 판단할 수 있도록 합니다; 또한
          5. 베타 테스트 시스템은 Blizzard가 베타테스트를 위하여 필요하다고 판단한 사양에 부합하는 것이어야 합니다.
        2. 비밀유지. Blizzard는 일정한 베타테스트를 비밀에 부칠 것을 결정할 수 있습니다. 베타테스트가 비밀로 결정되는 경우, 귀하는 베타테스트참여권유를 받음에 있어 당해 베타테스트가 비밀에 해당함을 고지 받을 것입니다. 비밀 베타테스트 중에는 베타의 존재 및 그의 모든 구성요소는비밀로 간주됩니다. 따라서 귀하는 Blizzard가 베타테스트가 더 이상 비밀이 아니라는 점을 귀하에게 알려주는 시점까지 비밀 베타테스트에 대한비밀유지의무를 부담합니다. 예를 들자면(아래로 그 의무가 제한되는 것은 아님) 귀하는 비밀 베타테스트 동안 다음과 같은 정보를 공개하지 않을것임에 동의합니다:
          1. 귀하가 베타 테스트 참여자라는 사실, 베타테스트의 기간, 베타테스트 참여자의 수, 베타테스트 참여자가 되게 된 경위 등베타테스트와 관련한 정보.
          2. 귀하가 베타테스트하고 있는 게임에 관한 정보, 게임의 룩앤필, 플레이할 수 있는 레이스, 등급, 전투, 마법, 커뮤니케이션,그룹핑, 퀘스팅, 통화시스템, 플레이어가 아닌 캐릭터와의 상호작용, 퀘스트, 아이템, 갑옷, 무기, 게임의 안정성 등.
          3. 베타 테스트 와 배틀코인 기능. 일정한 게임은 게임인터페이스를 통하여 디지털 아이템 또는 플랫폼을 사용할 수 있는 라이선스를 구매할 수 있도록하는 기능을 구비하고 있을 수 있습니다. 베타테스트기간 중 게임인터페이스를 통하여 디지털아이템 또는 플랫폼을 사용할 수 있는 라이선스를 구매하는경우, 모든 구매는 구매약관의 적용을 받게 됩니다. 베타테스트 기간 동안 디지털 아이템 또는 플랫폼을 사용할 수 있는 라이선스를 구매하기 위하여소비된 모든 배틀코인은 그 라이선스가 귀하의 계정에 잔존하는 경우를 제외하고 귀하의 계정으로 반환됩니다. 귀하가 베타테스트 기간 동안 배틀코인을이용하여 디지털 상품 또는 플랫폼을 구매하는 동안, Blizzard는 게임에 대한 베타테스트가 끝난 이후 위 구매로 귀하가 수령할 수 있는이익을 설명하는 정보를 제공할 것입니다. 본 라이선스 계약에 의하여 달리 명시되지 않는 한 배틀코인에 대하여는 본 라이선스 계약이 이적용됩니다.
          4. 피드백. 베타테스트 동안 및 그 이후에, 귀하는 Blizzard에게 베타에 대한 견해, 제안 및 인상을 피드백과 버그신고를 위한 툴, 내부웹사이트 또는 토론장 및 기타 다른 수단을 통하여 제공할 수 있습니다. 베타는 시스템으로 하여금 오류가 발생하였을 때 Blizzard에게 시스템및 드라이버의 정보를 전송하도록 하는 툴을 포함하고 있을 수 있습니다. 위 툴은 오류가 발생하는 동안 귀하의 컴퓨터 시스템에서 시스템의 정보를수집하고 귀하로 하여금 전자메일로 Blizzard에게 보고를 전달할 수 있도록 합니다.
          5. 인정사실. 귀하는 다음과 같은 사실을 인정합니다:
            1. 베타는 개발 중에 있는 작품이며 시스템에 피해를 입히거나 정보의 유실을 초래할 수 있는 버그를 포함하고 있을 수 있다는사실;
            2. 귀하는 베타를 설치하기 전 귀하의 하드드라이브를 백업하였거나 할 것이라는 사실;
            3. 귀하는 유실될 수 있는 정보의 전부 또는 일부를 복구하고 운영체제를 다시 설치할 수 있는 필요한 자원을 갖고 있다는사실;
            4. Blizzard는 시스템에 대한 피해 및 정보의 유실, 플랫폼의 방해, 소프트웨어 또는 하드웨어의 고장, 정보의 유실 또는플랫폼의 중단에 대하여 어떠한 책임도 지지 않는다는 사실.
            5. Blizzard가 게시판에 올린 글, 이메일, 채팅, 패킷 등 베타와 관계된 모든 커뮤니케이션(그것이 전자적인 것이든 아니든불문함)을 모니터링하고 기록할 수 있다는 사실;
            6. Blizzard는 베타테스트 중 언제든지 어떠한 이유로든 베타 안에 저장된 정보를 수정하거나 삭제할 수 있다는 사실;
            7. Blizzard가 베타 테스트 시스템으로부터 CPU, RAM, 운영체제, 비디오카드, 사운드카드에 대한 정보를 수집하여 이를Blizzard에게 보낼 수 있는 소프트웨어 프로그램을 베타 테스트 시스템에 전송할 수 있다는 사실; 및
            8. 귀하는 Blizzard의 명시적 허가없이 배포하는 등의 행위를 포함하여 베타 접속권을 매매, 이전 또는 상업적으로 이용하지않을 것이라는 사실
          6. 종료. Blizzard는 언제든지 어떠한 이유로도, 또는 아무런 이유 없이 베타테스트를 종료할 수 있습니다. 베타테스트가 종료되는 경우, 귀하는베타테스트에 이용된 게임의 출시전 버전 (“베타버전”) 및 베타테스트와 관련하여 Blizzard로부터 수령한 문서 등 관련 자료를 모두삭제하여야 하며, 베타버전을 설치하였던 하드드라이브에 남아 있는 베타버전와 관련된 모든 요소를 제거하여야 합니다. 귀하는 Blizzard가 베타테스트를 종료한 것이 디지털 아이템이나 월드오브워크래프트 게임 이용시간의 환불을 포함 어떠한 종류의 환불의 근거가 될 수 없음을 인정하고 이에동의합니다.
          7. 베타테스트에 적용되는 본 라이선스 계약의 조항들. 베타테스트에 참여하는 경우 본 라이선스 계약의 제1 D.ii.4조가 그와 충돌하는 본 라이선스계약의 기타 다른 조항들보다 우선적으로 적용됩니다. 또한, 본 라이선스 계약의 제1.B.iv조 및 제1.B.v.4조는 베타의 사용과 관련하여서는그 적용이 배제됩니다.
        3. 월드오브워크래프트의 기능
          1. 서버 조정 및 캐릭터 이동. 블리자드는 운영상 경영상의 이유로 독자적 판단에 의하여 게임 서버를 병합하거나 하나의 게임서버를 수개로 분할하거나이용자들에게 캐릭터를 블리자드 엔터테인먼트가 "캐릭터 이동" 서버라고 지정하는 매우 혼잡한 서버로부터 블리자드가 "타겟 서버"라고 지명하는서버로 이동시킬 수 있는 기회를 부여할 수 있습니다. 캐릭터를 이동시킬 수 있는 기회가 부여될 경우 다음의 사항을 유의하시기 바랍니다.
            1. "길드 마스터" 캐릭터는 타겟 서버로 이동시킬 수 없습니다.
            2. 이용자가 캐릭터를 타겟 서버로 이동시키기 위해서는 타겟 서버 상에 10개 미만의 캐릭터를 갖고 있어야 합니다.
            3. 캐릭터 이동은 이용자가 월드 오브 워크래프트에 접속하고 있지 않은 때에만 할 수 있습니다.
            4. 특정 캐릭터의 이름이 이미 타겟 서버에서 사용중인 경우에는 해당 캐릭터를 타겟 서버로 이동시킬 수 없습니다. 동일한 이름의캐릭터가 이미 타겟 서버에 존재하고 있는 때에는 캐릭터 이동절차의 일부로서 이용자에게 캐릭터의 이름을 새로이 정할 수 있는 기회가주어집니다. 이 때 새로이 정하는 이름 역시 본 이용약관에서 정하는 이용자 이름 관련 수칙에 부합하여야 합니다.
            5. 게임 중에는 "우편"을 타겟 서버로 이동시킬 수 없습니다.
            6. 플레이어들의 모든 경매는 취소되고 해당 아이템, 보증금 및 최고가 입찰은 반환됩니다. 이러한 사항은 타겟 서버에의 접속 시우편으로 나타납니다. 구매자 또는 판매자의 캐릭터가 경매장 거래로 이동됨으로 인한 게임 펀드나 아이템 상실에 대해 블리자드가책임을 지지 않는다는 점을 유의하시기 바랍니다.
            7. 타겟 캐릭터의 '친구 목록"은 타겟 서버로 이동시킬 수 없습니다.
            8. 타겟 캐릭터의 '길드 가맹(guild affiliation)"은 타겟 서버로 이동시킬 수 없습니다.
            9. 타겟 캐릭터의 '차단 목록(ignore list)"은 타겟 서버로 이동시킬 수 없습니다.
          2. 경험치 보상. 블리자드는 재량에 따라 극단적이고 비정상적인 상황으로 인해 플레이어들이 상실한 경험치를 보상해 주기로 결정할 수 있습니다. 예를들어, 블리자드는 최악의 서버 작동 중단으로 인해 상실한 경험치를 보상해 주기로 결정할 수 있습니다. 그러나 이 경우 블리자드는 경험치 상실의정황, 책임소재, 과실 여부 등을 고려하여 경험치 보상 여부를 결정하며, 블리자드는 사법당국의 결정이 없는 한, 그 운용규정에 따라 금전보상이나 금전상의 권리를 제공할 의무가 없습니다.
          3. 환불. 이용자는 아래의 규정에 따라 월드 오브 워크래프트 이용계약을 해지하고 환불을 요청할 수 있습니다. 다만, 결제자가 이용자가 아닐 경우에는결제자의 의사만으로 환불이 가능합니다. 자세한 내용은 별도의 환불 정책에 따릅니다.
            1. 이용자가 이용료 지급하고 7일 이내에 이용을 개시하지 않고 플랫폼을 해지한 경우 블리자드는 이용자에게 최근 지급액 전부를환불합니다.
            2. 이용자가 이용료 지급하고 월드 오브 워크래프트 이용을 개시하거나, 지급 후 7일이 경과한 후에 어떠한 사유로든 월드 오브워크래프트 이용계약을 해지하는 경우 블리자드는 이용자에게 최근 지급액 중 미이용 일수 비율에 해당하는 금액에서 잔액의 10%상당의 환불처리비용을 공제하고 남는 금액을 환불합니다. 이용자가 일정 시간의 월드 오브 워크래프트 접속을 위해 게임 카드를구입하거나 핸드폰 결제를 이용한 경우에는 해당 구입액 중 미이용 시간 비율에 해당하는 금액에서 잔액의 10% 상당의 환불 처리비용을 공제하고 남는 금액을 환불 합니다.
            3. 만약 이용자가 블리자드가 요금 미지급 또는 이용약관 위반을 이유로 정지시키지 않은, 유효한 계정을 가지고 있는 경우.Blizzard로부터 사전통지 없이 30일 동안에 발생한 플랫폼 중단/장애 누적시간이 72시간을 초과하는 경우 계약을 해지할 수있습니다. 다만 그러한 해지권은 이용자의 권리이지 의무가 아닙니다. 환불 되는 금액은 아래와 같이 계산됩니다.
              1. 이용자가 위와 같은 사유로 계약을 해지하고 또한 이용자가 월드 오브 워크래프트 접속을 위해 월 이용료를 지급하고있는 경우에는 최근 지급액 중 미이용 일수 비율에 해당하는 금액을 환불합니다.
              2. 이용자가 위와 같은 사유로 계약을 해지하고 또한 이용자가 일정 시간의 월드 오브 워크래프트 플랫폼 접속을 위해 게임카드를 구입하거나 핸드폰 플랫폼을 이용한 경우에는 해당 구입액 중 미 이용 시간 비율에 해당하는 금액을 환불합니다.
              3. 이용자가 할인된 요율(이하 "할인요금")로 일정 시간 플랫폼을 이용할 수 있는 권리를 부여하는 프로그램에 따라 월드오브 워크래프트 게임시간을 구입한 후 위와 같은 사유로 계약을 해지하는 경우, 블리자드는 할인요금으로부터 이용자가해지를 요청한 일자에 유효한 월 이용료를 30으로 나눈 값에 할인요금에 의한 구입이 이루어진 요금청구기간 중에이용자가 플랫폼을 이용한 날짜 수를 곱한 금액을 공제하고 나머지 금액을 환불합니다.
            4. 사전고지에 의한 서비스 장애/중단. 블리자드는 사전에 공지한 서버의 중지시간이 10시간을 초과할 경우 10시간을 초과한 시간을보상할 수 있습니다. (예를 들어 12시간의 정기점검이 있을 경우 2시간에 대하여 보상할 수 있습니다.)
            5. 미이용에 따른 캐릭터 이름의 삭제: 만약 이용자가 일정기간 월드 오브 워크래프트에 접속하지 않았을 경우, 이용자의 계정의 캐릭터이름들은 재설정되어 이용자를 포함한 모든 이용자들에게 사용가능한 상태로 변경될 수 있습니다. 미이용에 따른 캐릭터 이름 삭제에대한 자세한 내용은 월드 오브 워크래프트운영정책(https://kr.battle.net/support/ko/article/wow-operational-policy)에서확인하실 수 있습니다.
        4. 하스스톤: 워크래프트의 영웅들의 기능
          1. 카드팩의 환불. 이용자는 하나의 카드팩이라도 개봉하지 않은 경우 구매 후 7일 이내에는 그 구매에 대한 청약을 철회할 수 있습니다. 그러나,게임 내의 ‘골드’로 카드팩을 구매한 경우에는 환불할 수 없습니다.
          2. 투기장 입장권의 환불. 투기장 이용권은 구매즉시 사용되므로 청약 철회가 불가능합니다.

2. Blizzard의 소유권.

  1. Blizzard는 플랫폼, Blizzard에 의하여 개발되고 생산된 게임 (“Blizzard게임”), Blizzard의 개임으로부터 파생된 커스텀 게임, 계정 및 이들의 모든 구성요소 및기능에 대한 권한, 권리 및 이익에 대한 소유권 및 라이선스를 보유하고 있습니다. 플랫폼 또는 Blizzard게임은 제3자가 Blizzard에게 라이선스를 부여한 사항들을 포함하고 있을수 있으며, 귀하가 본 라이선스 계약을 위반하는 경우 위 제3자는 자신의 소유권을 귀하에 대하여 주장할 수 있습니다. Blizzard가 소유권을 갖고 있거나 라이선스를 갖고 있는 플랫폼및 Blizzard 게임의 구성요소는 다음과 같습니다:
    1. 플랫폼이나 Blizzard 게임 등에 등장하는 다음과 같은 모든 가상 콘텐츠:
      1. 가상 구성요소: 장소, 삽화, 건물 및 풍경 디자인, 애니메이션 및 시청각 효과;
      2. 서사: 주제, 컨셉트, 이야기 및 줄거리;
      3. 캐릭터: 게임 캐릭터의 이름, 화상, 목록 및 선전문구;
      4. 아이템: 디지털 카드와 같은 가상재화, 통화, 물약, 의복아이템, 스킨, 스프레이, 애완동물, 마운트 등.
    2. Blizzard게임에 등장하는 모든 콘텐츠(제1.D.i.5 조의 이용자 콘텐츠 제외)에 대한 소유권, 라이선스 권한 및 기타 권리는 Blizzard에 있습니다. 이용자는Blizzard게임에 등장하거나 게임에서 발생한 가상의 재화나 화폐, 또는 이와 유사한 콘텐츠를 본 약관에 따라 이용할 수 있는 권리를 보유합니다. 다만, 그에 대한소유권이나 저작권 및 기타 권리를 보유하지는 않습니다. Blizzard는 Blizzard가 서면 승인한 경우를 제외하고, Blizzard게임 외부에서 이루어지는 가상 재산의양도 또는 게임에서 나타나거나 만들어진 아이템의 “현실 세계”에서의 판매, 증여 또는 거래 시도를 인정하지 않습니다. 따라서 이용자는 Blizzard의 승인 없이 게임 내아이템 또는 화폐를 “실제” 돈을 받고 판매하거나 Blizzard게임 밖에서 아이템이나 화폐를 대가물로 교환할 수 없으며 해당 행위는 본 라이선스 계약과 운영정책에 의거제재를 받을 수 있습니다.
    3. 플랫폼 또는 Blizzard게임을 통하여 이루어지거나 생성되는 모든 데이터 및 커뮤니케이션.
    4. 플랫폼이나 Blizzard게임에서 비롯된 음향, 음악 작품, 녹음 및 음향효과;
    5. Blizzard게임 내에서의 시합, 전투, 결투 등에 대한 녹화, 게임 다시 보기 또는 재연; 블리자드는 본 라이선스 계약 제1.D.5의 이용자 콘텐츠를 제외하고 게임사에서표시되는 모든 내용에 대한 소유권, 이용권 내지 기타 권리를 보유합니다.
    6. 컴퓨터 코드. 이에는 “애플릿” 및 기타 소스코드가 포함되나 이에 한정되지는 않음;
    7. 제목, 작동법, 소프트웨어, 관련 문서, 기타 플랫폼 또는 Blizzard게임에 포함되어 있는 모든 저작자의 원저작물;
    8. 모든 계정. 귀하는 Blizzard가 계정의 명칭과 계정과 연동된 배틀태그를 포함한 모든 계정을 소유하고 있다는 점 및 계정은 Blizzard에게 도움이 되는 방법으로만사용된다는 점에 동의합니다. Blizzard는 계정의 이전을 인정하지 않습니다. 귀하는 계정을 구매, 판매, 선물 또는 거래하거나 그러한 내용의 청약을 할 수 없는 바,위와 같은 모든 시도는 효력이 부정되며 계정의 박탈이라는 결과로 이어질 수 있습니다;
    9. 2차적 저작물을 생성할 권리. 본 계약과 관련하여 이용자는 본 라이선스 계약상 또는 경연의 규정상, Blizzard의 팬아트 규정 또는 본 라이선스 계약의 부속문서 등에의하여 명시적으로 허용된 경우가 아닌 경우, Blizzard 의 플랫폼과 Blizzard 게임을 기반으로 한 저작물을 생성할 수 없습니다.

3. 소프트웨어 및 플랫폼

해당 제품과 플랫폼 개선을 위해 Blizzard는 귀하의 컴퓨터에 설치되어 있는 플랫폼 및 각 게임에 대한 업데이트를 다운로드하여 설치할 것을요구할 수 있습니다. 귀하는 Blizzard가 별도의 통지 없이 이용자 컴퓨터에 설치된 게임 클라이언트를 포함하여 플랫폼 및 게임을 업데이트할 수 있음을 인지하고 이에 동의합니다. 업데이트와 별도로다음과 같이 컴퓨터 프로그램이 설치될 수 있습니다.
  1. 설치목적. Blizzard는 제공하는 플랫폼 및 결제 서비스를 이용하기 위하여 필요한 사항으로 플랫폼의 변경에 따라 프로그램을 패치, 업데이트, 변경할 수 있습니다.
  2. 프로그램의 종류 및 기능, 용량. 게임클라이언트. 당사가 제공하는 게임을 이용하기 위한 프로그램으로 설치 사양을 포함한 자세한 내용은http://kr.blizzard.com/ko-kr/company/legal/ko-kr/gradesystem.html에서 확인할 수 있습니다. 각 게임의 등급에 관한 정보는http://kr.blizzard.com/ko-kr/company/legal/ko-kr/gradesystem.html에서 확인하실 수 있습니다.
  3. 프로그램의 제거방법. 게임클라이언트 및 플랫폼은 제어판의 프로그램 설치/삭제 메뉴 또는 해당 프로그램이 제공하는 Uninstall 프로그램으로 제거할 수 있습니다.

4. 사전에 설치된 소프트웨어

플랫폼에는 추가적인 조항에 동의하여야 사용할 수 있는 추가 소프트웨어(“추가 소프트웨어”)가 포함될 수 있습니다.
  1. 설치. 귀하는 Blizzard가 Blizzard Battle.net 앱 클라이언트를 설치하는 과정의 일부로 이러한 추가 소프트웨어를 귀하의 하드 드라이브에 설치할 수 있으며본 라이선스 계약의 계약기간 중 때때로 설치할 수 있다는 데 동의합니다.
  2. 이용. 귀하는 Blizzard가 귀하에게 추가 소프트웨어를 사용하고 실행하는데 필요한 유효한 허가나 영숫자 조합키를 제공하지 않는 한, 추가 소프트웨어에 접근, 사용, 배포,복사, 전시, 역설계, 소스코드추출, 수정, 분해, 역컴파일 또는 추가 소프트웨어를 기반으로 한 2차적 저작물을 만들지 않을 것에 동의합니다. Blizzard가 추가 소프트웨어를 이용하고실행하기 위하여 필요한 유효한 허가 및 영숫자 조합키를 제공하는 경우, 추가 소프트웨어의 사용에 대하여는 본 라이선스 계약이 적용됩니다.
  3. 복사본. 귀하는 보관 목적으로만 한(1)개의 추가 소프트웨어의 복사본을 만들 수 있습니다.

5. 모니터링에 대한 동의

게임이나 플랫폼이 실행되고 있는 경우, 게임은 게임과 함께 또는 게임과 별도로 제3자의 허가받지 않은 프로그램이 실행되고 있는지 여부를확인하기 위하여 이용자 컴퓨터의 메모리를 모니터링할 수 있습니다. 여기서 “허가받지 않은 제3자 프로그램”이라 함은 본 라이선스 계약 제 1.C조에 따라 금지되는 제3자 프로그램을 지칭합니다. 게임이허가받지 않은 제3자 프로그램을 감지하는 경우, (a) 게임은 그러한 정보를 Blizzard에게 알릴 수 있으며(여기에는 귀하의 계정명, 감지된 허가받지 않은 제3자 프로그램에 대한 상세정보 및 일시에대한 정보가 포함되며 전송되는 정보는 이에 국한되지 않습니다) (b) Blizzard는 사용자에게 사전고지를 하고 또는 하지 않고 본 라이선스 계약에 따른 권리의 전부 또는 일부를 행사할 수 있습니다.추가적으로, 특정 게임의 경우 게임에 오류가 생기는 경우에 이용자의 컴퓨터 시스템이 Blizzard에게 시스템 및 드라이버 정보 등을 전달하도록 하는 도구를 포함할 수 있습니다. 이용자는Blizzard가 해당 정보를 수집 및 이용하는 것에 동의합니다.

6. 콘텐츠 검열 및 공개

당사는 모든 콘텐츠를 사전 검열하거나 감시하지 않으며 이러한 행위는 불가능합니다. 단, 귀하가 플랫폼을 사용하거나 게임을 이용하는 경우 당사의대리인이 (대화 텍스트를 포함하나 이에 제한되지 않음) 통신 내용을 감시 또는 기록할 수 있으며, 이에 따라 귀하는 이러한 감시 및 기록 행위에 대해 취소할 수 없는 동의를 하는 것입니다. 귀하는 게임내 대화 텍스트 등이 공개되는데 동의합니다. 당사는 이용자가 생성한 콘텐츠에 대해 당사의 고의, 중과실이 없는 한, 책임을 지지 않습니다. 당사는 단독 재량에 따라 콘텐츠를 편집, 개시 거부 또는삭제할 수 있는 의무가 아닌 권리를 갖습니다. 당사는 (a) 적용 법규정, 법적 절차 또는 정부의 요구가 있는 경우나 이에 따라 당사의 법적 권리와 구제책 보호를 위해 필요한 경우, (b) 범죄또는 기타 위반 행위에 대하여 보고하여야 하는 경우 및 기타 이에 준하는 정당한 사유가 있는 경우에는 콘텐츠 및 기타 정보(대화 텍스트, IP 주소, 개인 정보를 포함하나 이에 제한되지 않음)를제공할 수 있습니다.

7. 보증 제한

플랫폼과 게임은 어떠한 명시적이거나 묵시적인 보증도 없이 “있는 그대로” 제공됩니다. 여기에는 상태, 중단 및 오류 없는 사용, 상품성, 특정목적에의 적합성 또는 비침해성에 대한 묵시적인 보증이 포함됩니다. Blizzard의 고의 또는 중과실에 의한 것이 아닌 한, 사용자는 게임 사용 및 작동으로 발생하는 모든 위험에 대한 부담을집니다. 이상의 내용은 본 조항에 규정된 명시적인 보증에 대해 귀하가 획득할 수 있는 원칙적인 유일한 구제 수단입니다. 그러나, 귀하가 거주하는 국가의 관련 법이 묵시적 보증의 배제 또는제한을 허용하지 않는 경우 위의 제한은 귀하에게 적용되지 않을 수 있습니다.

8. 책임의 한계

Blizzard가 관할권 있는 법원으로부터 고의 또는 중과실이 있다고 판단되지 않는 한, Blizzard, 그의 모회사, 자회사 또는 계열사는플랫폼, Blizzard Battle.net 앱 클라이언트, 계정 또는 게임의 사용 또는 사용/접근 불가능으로 인해 발생한 제반 손실 또는 피해에 대해서 어떠한 방식으로든 책임을 지지 않습니다.Blizzard의 책임은 어떠한 경우에도 귀하가 본 라이선스 계약의 계약기간 동안 Blizzard에게 지불한 총 사용료를 넘지 않습니다.

9. 면책

Blizzard가 관할권 있는 법원으로부터 고의 또는 중과실이 있다고 판단되지 않는 한, 귀하는 귀하의 플랫폼, Blizzard Battle.net 앱클라이언트, 계정 또는 게임, 사용자 콘텐츠, 커스텀 게임 및 그와 관련된 서비스 또는 기능 (유저 콘텐츠, 커스텀 게임, 게임 에디터, 배틀코인 및 본 라이선스 계약)의 사용으로 인하여Blizzard에게 초래된 모든 제3자의 소제기, 책임, 손실, 부상, 피해, 비용 또는 지출로부터 Blizzard를 방어하고 면책함에 동의합니다. 일부 국가들은 우발적 피해 또는 결과적 피해의 배제또는 제한을 허용하지 않는 바, Blizzard의 책임은 법에 따라 허용하는 최대한으로 면책됩니다.

10. 형평법상의 구제수단

귀하는 본 라이선스 계약 조항이 명확하게 지켜지고 집행되지 않는 경우 Blizzard에 치명적인 손해가 초래될 수 있다는 사실에 동의합니다.그러므로 귀하는 본 라이선스 계약 위반시 관련법령이 허용하는 한도에서 Blizzard가 보증금, 기타 담보 또는 구체적인 피해에 대한 입증 없이도 적절한 형평법상의 구제를 청구할 수 있는 자격이 있다는점에 동의하며, 위와 같이 Blizzard가 형평법상의 구제수단을 보유한다는 이유로 관련 법령상 Blizzard에게 인정되는 다른 구제수단을 구할 권한이 제한되지 않음에도 동의합니다.

11. 변경

  1. 계약의 변경.
    1. Blizzard의 권리. Blizzard는 플랫폼, 게임 및 법이 변화함에 따라 본 라이선스 계약의 새 버전(“새로운 계약”)을 만들 수 있습니다.
    2. 새로운 계약. Blizzard는 시간 경과에 따라 게임 및 법률이 변화하면 본 라이선스 계약을 새로운 계약으로 대체할 수 있습니다. 새로운 계약은 적용일자 및 개정사유와함께 http://kr.blizzard.com/ko-kr/ 에 그 적용일의 7일 전부터공시하거나 귀하가 입력한 가장 최근의 등록 전자메일로 전송하는 방법으로 귀하에게 제공될 것입니다. 새로운 계약에 귀하에게 불리한 조항이 포함되어 있는 경우, 새로운 계약은적용일로부터 30일 전까지 웹사이트에 공시되거나 귀하가 입력한 가장 최근의 등록 전자메일로 전송될 것입니다. 새로운 계약은 고지된 적용일로부터 효력이 발생합니다.
      1. 승낙. 귀하가 새로운 계약을 승낙하고 귀하 앞으로 등록되어 있는 계정이 여전히 정상적인 상태인 경우, 귀하는 새로운 계약의 적용을 받는 플랫폼,Blizzard Battle.net 앱 클라이언트, 계정 또는 게임을 계속하여 이용할 수 있습니다.
      2. 거절. 귀하가 새로운 계약을 승낙하지 않거나 새로운 계약의 조항을 준수할 수 없는 경우, 귀하는 플랫폼, Blizzard Battle.net 앱 클라이언트,계정 또는 게임을 더 이상 이용할 수 없습니다.
    3. 운영정책 및 개인정보 처리방침. Blizzard는 수시로 운영정책 및 개인정보 처리방침을 개정할 수 있으며, 새로 개정된 내용은 웹사이트에서 확인할 수 있습니다. 본라이선스 계약서, 운영정책 또는 개인정보 처리방침의 현재 버전에 대해 동의하지 않는 부분이 있으면 플랫폼 이용을 즉시 중단해야 합니다.
  2. 플랫폼과 게임의 변경. Blizzard는 언제든지 플랫폼, Blizzard 클라이언트, 계정 또는 게임의 모든 부분을 변경, 수정, 일시정지 또는 중지할 수 있으며, 이는게임의 균형을 유지하기 위하여 아이템을 삭제하거나 아이템의 효력을 수정하는 것도 포함합니다. Blizzard는 고지를 하지 않고 어떠한 책임도 지지 않은 채 귀하의 플랫폼,Blizzard Battle.net 앱 클라이언트, 계정 또는 게임 및 그 중 일부에 대한 접근을 금지하거나 일정 기능을 제한할 수 있습니다.

12. 계약기간 및 계약의 종료.

  1. 계약기간. 본 라이선스 계약은 귀하가 계정을 생성하는 순간부터 효력을 가지며 합리적인 기간 동안 그 효력을 유지합니다. Blizzard가 플랫폼의 제공을 중단하기로 하거나플랫폼을 제공할 수 있는 제3자의 라이선스의 효력을 중단하기로 결정하는 경우, Blizzard는 상업적으로 불가능하지 않을 경우, 귀하에게 삼(3) 개월 이전에는 고지를 할 것입니다.Blizzard는 고지한 기간 경과 후에는 플랫폼을 제공하거나 지원하지 않을 수 있습니다. 이러한 플랫폼 중단의 경우 귀하는 계정에 남은 이용기간이나 배틀코인의 환불 이외에는 당사에게플랫폼 계속이나 기타 손해의 배상을 청구할 수 없습니다. 플랫폼 또는 플랫폼에 대한 접근을 제공하기로 하는 Blizzard의 합의는 Blizzard의 서버의 용적 또는 다른 기술에 대한일시적 임대 또는 대여로 해석되지 않습니다.
  2. 계약의 종료.
    1. 자발적 해지. 이용자는 본 라이선스 계약의 제 1.D.8조나 제7.A조에 의한 조건에 의하거나 관계법령상 또는 법원의 결정에 의한 합당한 근거에 의하여Blizzard에게 support@blizzard.com으로 이메일로 연락하여 해지할 수있습니다. 해지할 경우, 계정에 부착된 모든 라이선스와 충전된 금액을 포함한 재산적 가치는 소멸하며 이용자의 개인정보는 당사의 개인정보취급방침에 의하여 관리되며 최종적으로삭제됩니다. 개인정보 삭제 후 일정기간 경과시 개인정보 삭제의 결과로 라이선스나 충전된 금액의 복구를 포함한 계정에 대한 어떠한 도움도 드릴 수 없습니다.
    2. 약관의 위반 등에 의한 정지/삭제. Blizzard는 본 약관의 위반이 있는 경우 사전에 이용자에게 통지를 하고 소명의 기회를 부여한 후, 그 위반 정도 따라 계정을정지할 수 있습니다. 다만, 중대한 위반으로서 그에 대하여 긴급한 대응이 필요한 경우에는 사전 통지 없이 이용자의 계정을 정지할 수 있으며, 이 경우에는 사후에 통지합니다.본 이용 약관에 대한 위반을 포함(이에 제한되지 않음)하여 이용자의 부정이용으로 인해 Blizzard가 해지한 계정은 다시 복구되지 않습니다. 대부분의 계정 정지, 해지또는 삭제는 본 이용 약관, 게임 내 정책 또는 게임 라이선스 계약에 대한 위반의 결과로 설명할 수 있으며, 이에 제한되지 않습니다. 본 규정에 의한 계정의정지/삭제에 대한 소명을 원하실 경우 정지 삭제의 통보를 받은 날로부터 15일 이내에https://kr.battle.net/support/ko/로연락하실 수 있습니다. Blizzard는 15일 이내에 소명에 대하여 답변하도록 최선의 노력을 다합니다. 다만 불가피할 경우 고객에게 통지한 후 15일 이후에도 소명에대한 답변을 할 수 있습니다.
    3. 약관의 위반 등에 의하여 본 라이선스 계약이 종료되는 경우 귀하의 게임에의 접근권리 및 귀하가 게임에의 접근권한을 부여받기 위하여 한 선지급은 모두 몰수됩니다. 또한귀하는 본 라이선스 계약의 종료 전 귀하의 계정에 선지급된 어떠한 금액도 환불되지 않음을 인식하고 이에 동의합니다.

13. 분쟁해결

귀하는 당사자 일방이 상대방에 대해 제기하는 일체의 법적 절차에서의 모든 청구는 양 당사자간 분쟁 사안에 대하여 민사소송법 또는 기타 관련법령상 실체적인관할권을 보유하고 있는 법원에서 개시되고 진행된다는 점에 동의합니다. 이 계약과 관련하여 제기된 소송에서 승소한 당사자는 민사소송법에 의거하여 타방 당사자로부터 소송과 관련하여 지급된 비용을 청구할 수있습니다. Blizzard와 귀하 사이에 분쟁이 발생할 경우 Blizzard 또는 귀하는 콘텐츠산업진흥법 제 29조에서 전하고 있는 콘텐츠 분쟁조정위원회의에 분쟁조정을 신청할 수 있습니다.

14. 준거법

본 라이선스 계약에서 달리 규정하고 있는 경우를 제외하고, 본 라이선스 계약은 대한민국의 법률의 적용을 받으며, 이에 따라 해석됩니다.

15. 등급 및 시스템 요구사항

귀하는http://kr.blizzard.com/ko-kr/company/legal/ko-kr/gradesystem.html에서 당사의 게임의 등급과 시스템 요구사항에 대한 정보를 확인할 수 있습니다.

16. 일반 조항

  1. 게임은 미국 정부가 수출을 금지하고 있는 국가(또는 그 주민 또는 국민)나 미 재무부 특별제한 국가 목록 또는 미 상무부 수출제한 목록에 포함된 특정인에게는 재수출, 다운로드 등의 어떠한방법으로도 플랫폼의 이용, 제공할 수 없습니다. 귀하는 이러한 국가에 소재하지 않고, 이러한 지역의 통제를 받지 아니하며 이러한 지역의 주민 또는 국민이 아니고 해당 리스트에 포함되어있지 않음을 진술하고 보증합니다.
  2. Blizzard는 본 라이선스 계약상의 지위의 전부 또는 일부를 귀하의 동의여부를 불문하고 다른 개인 또는 법인에게 양도할 수 있습니다. 다만 Blizzard의 사전 동의 없는 귀하의 본라이선스 계약상의 지위 양도는 무효입니다.
  3. Blizzard의 본 라이선스 계약 조항의 집행의 실패는 (1) 해당 조항상 보장되는 권리의 포기 또는 (2) 해당 조항을 집행할 수 있는 권리의 축소로 해석되지 않습니다.Blizzard는 특정한 경우 본 라이선스 계약 조항상의 권리실행을 포기하기로 결정할 수 있습니다. 그러나 귀하는 그 후에도 여전히 포기된 조항에 따를 의무를 부담합니다.
    1. Blizzard에 대한 경우. 본 라이선스 계약에 따라 이루어지는 귀하의 Blizzard에 대한 고지는 서면으로 이루어져야 하며 다음의 주소로 보내져야 합니다:대한민국 서울특별시 강남구 테헤란로 521 파르나스타워 15층, Blizzard Entertainment. 약관담당자 앞
    2. 귀하에 대한 경우. 본 라이선스 계약에 따라 이루어지는 Blizzard의 귀하에 대한 고지는 서면고지, 이메일 또는 웹사이트 블로그 포스팅을 통하여이루어집니다. 위와 같은 고지유형 및 경우는 당사의 개인정보취급방침에 자세히 적시되어 있는바, 개인정보 취급방침은Blizzard Privacy Policy에서확인할 수 있습니다.
  4. Blizzard는 자신의 합리적인 통제범위 밖의 사유로 인하여 의무이행이 지체되거나 불능해진 경우에는 그에 대한 책임을 지지 않습니다. 위와 같은 통제범위 밖의 사유에는 자연재해, 당사의가상공간에 대한 예측불가능한 침입, 전쟁, 테러, 폭동, 통상금지령, 행정당국 또는 군사당국의 행위, 화재, 홍수, 사고, 파업, 운송수단∙연료∙에너지∙노동력 또는 자료의 부족이포함됩니다.
  5. 본 라이선스 계약의 일부가 무효로 판단되거나 집행할 수 없다고 판단되는 경우, 해당 부분은 분리되고, 본 라이선스 계약의 나머지 부분은 완전한 효력을 갖습니다.
  6. 본 라이선스 계약은 http://kr.blizzard.com/ko-kr/company/legal/index.htmlBlizzard 법률관련 문서에 제공되는 Blizzard의 다른 관련 정책과 함께, 당해 문서의 실체적인 내용과 관련한 양 당사자 간의 완전한 합의를 구성하며, 기존의 모든 구두 또는서면으로 합의된 내용에 우선합니다. 본 라이선스 계약이 어떠한 사유로 종료되든 제 2, 5, 6, 7, 8, 12, 14, 15.B, 17,18,19조는 그 효력을 유지합니다.
별첨 1

대한민국 거주자에 대한 판매 조건

  1. 목적. 다음은 귀하와 Blizzard 및 그 관계사인 Blizzard 엔터테인먼트 유한회사를 통한 계약입니다.
    1. 본 Blizzard 온라인 스토어 특별약관(“특별약관”)은 Blizzard 플랫폼(“플랫폼”)의 최종 사용자 라이선스 계약(“이용약관”) 중 당사의 상품 및 서비스를 구매함에 있어,귀하와 Blizzard의 권리, 의무 및 책임사항을 보다 명확하게 규정함을 목적으로 합니다.
    2. 본 라이선스 계약은 이용약관의 필수불가결한 일부를 이루며, 본 라이선스 계약의 모든 정의는 이용약관에서 나오는 의미와 동일합니다.
  2. 특별약관의 개정. Blizzard는 본 특별약관을 개정할 경우 이용약관 11조에 준하는 방법으로 공지하며 적용됩니다.
    1. 통지
      1. Blizzard가 귀하에게 통지를 하는 경우, 귀하가 Blizzard와 미리 약정하여 지정한 전자우편 주소로 할 수 있습니다.
      2. Blizzard는 불특정다수 회원에 대한 통지의 경우, 1주일이상 Blizzard의 웹사이트 게시판에 게시함으로써 개별 통지에 갈음할 수 있습니다.
    2. 제품 또는 기타상품의 공급. Blizzard는 귀하와 제품 또는 기타상품의 공급시기에 관하여 별도의 약정이 없는 이상, 귀하가 청약을 한 날부터 7일 이내에 제품 또는 기타상품을 배송할 수 있도록주문제작, 포장 등 기타의 필요한 조치를 취합니다. 다만, Blizzard가 이미 제품 또는 기타상품의 대금의 전부 또는 일부를 받은 경우에는 대금의 전부 또는 일부를 받은 날부터 3영업일 이내에조치를 취합니다. 이때 Blizzard는 귀하가 제품 또는 기타상품의 공급 절차 및 진행 사항을 확인할 수 있도록 적절한 조치를 합니다.
    3. 환급 및 과오금
      1. Blizzard는 귀하가 주문한 제품 또는 기타상품이 품절 및 다른 사유로 인도 또는 제공을 할 수 없을 때에는 지체없이 그 사유를 귀하에게 통지하고 사전에 제품 또는 기타상품의 대금을받은 경우에는 대금을 받은 날부터 3영업일 이내에 환급하거나 환급에 필요한 조치를 취합니다. 환급이 지연될 경우 그 지연기간에 대하여 전자상거래 등에서의 소비자보호에 관한 법률 시행령에서정하는 지연이자율을 곱하여 산정한 지연이자를 지급합니다. 다만 환급시 귀하가 제품 및 서비스의 이용으로부터 얻은 이익에 대한 금액을 공제하고 환급할 수 있습니다.
      2. Blizzard의 귀책사유로 귀하에게 과오금이 발생한 경우, Blizzard는 귀하가 결제한 방법과 동일한 방법으로 환불하며, 동일한 방법으로 환불이 불가능할 경우에는 이를 사전에고지하고, 귀하와 협의하여 환불합니다. 다만, 귀하의 귀책사유로 과오금이 발생한 경우, Blizzard는 과오금을 환불하는데 소용되는 비용은 합리적인 범위에서 귀하가 부담해야 합니다.
    4. 주문취소
      1. Blizzard와 제품 또는 기타상품의 구매에 관한 계약을 체결한 귀하는 개별 제품 및 서비스 이용약관이나 거래조건에서 달리 규정하지 않는 경우, 수신확인의 통지를 받은 날부터 7일이내에는 주문을 취소할 수 있습니다.
      2. 귀하는 제품 또는 기타상품을 배송 받은 경우 다음 각호의 1에 해당하는 경우나 해당 제품 및 서비스에 스타터 팩이나 데모의 형태로 시험 상품을 제공한 경우에는 반품 및 교환을 할 수없습니다.
        1. 귀하에게 책임 있는 사유로 제품 또는 기타상품이 멸실 또는 훼손된 경우(다만, 제품 또는 기타상품의 내용을 확인하기 위하여 포장 등을 훼손한 경우에는 청약철회를 할 수있습니다)
        2. 귀하가 제품 또는 기타 상품을 사용 또는 일부 소비한 경우
        3. 귀하의 이용 또는 일부 소비에 의하여 제품 또는 기타상품의 가치가 현저히 감소한 경우
        4. 시간의 경과에 의하여 재판매가 곤란할 정도로 제품 또는 기타상품의 가치가 현저히 감소한 경우
        5. 같은 성능을 지닌 제품 또는 기타상품으로 복제가 가능한 경우 그 원본인 제품 또는 기타상품의 포장을 훼손한 경우
      3. 전항 제ii호 내지 제v호의 경우에 Blizzard가 사전에 주문취소가 제한되는 사실을 귀하가 쉽게 알 수 있는 곳에 명기하거나 시용상품을 제공하는 등의 조치를 하지 않았다면, 귀하의주문취소는 제한되지 않습니다.
      4. 귀하는 상기 규정에 불구하고 제품 또는 기타상품의 내용이 표시·광고 내용과 다르거나 계약내용과 다르게 이행된 때에는 당해 제품 또는 기타상품을 공급받은 날부터 3개월이내, 그 사실을 안날 또는 알 수 있었던 날부터 30일 이내에 청약철회를 할 수 있습니다.
      5. 귀하가 플랫폼의 선물기능을 이용하여 제3자에게 제품 또는 기타상품을 선물한 경우, 선물한지 7일 경과하거나 해당 제품 이나 기타상품을 수령한 제3자가 해당 제품이나 기타상품 이용을 시작한경우, 청약을 철회할 수 없습니다.
  3. 해지
    1. 귀하는 플랫폼의 모든 이용을 중지하고, 이와 관련한 모든 자료를 폐기함으로서 이용약관을 해지할 수 있습니다. Blizzard는 계속적 이용계약의 경우에는 각 제품/서비스에서 달리규정하지 않는 한, 상품/서비스 가액에서 이용자가 이미 사용한 부분에 해당하는 금액 (각 상품별 사용금액 산정기준은 상품 구매시 별도 고지할 수 있습니다.)을 제외하고 남은 금액에서 남은금액의 10%이내 금액 또는 남은 금액이 10,000원 이내인 경우에는 1,000원을 공제한 후 나머지 금액을 환불합니다. 다만 잔액이 1,000원 이하인 경우 환불이불가능합니다. 전항에 의한 청약철회나 본항에 의한 해지의 경우, 다음과 같은 당사의 웹사이트나 전화번호로 신청할 수 있습니다.
  • 웹사이트: https://kr.battle.net/support/ko/ticket/submit
  • 전화번호: (02) 1644-3210
    2. 귀하가 다음 각호의 사유를 포함한 본 특별약관의 조항을 준수하지 않을 경우, Blizzard는 이용약관을 해지할 수 있습니다.
    1. 플랫폼 가입 신청시에 허위 내용을 등록한 경우
    2. Blizzard 온라인 스토어를 이용하여 구입한 제품 또는 기타상품의 대금, 기타 Blizzard 온라인 스토어 이용과 관련하여 귀하가 부담하는 채무를 기일에 지급하지않는 경우
    3. 다른 사람의 Blizzard 온라인 스토어 이용을 방해하거나 그 정보를 도용하는 등 전자상거래 질서를 위협하는 경우
    4. Blizzard 온라인 스토어를 이용하여 법령 또는 이 특별약관이 금지하거나 공서양속에 반하는 행위를 하는 경우
    
    1. 귀하의 의무. 귀하는 다음 행위를 하여서는 안됩니다.
      1. 신청 또는 변경시 허위 내용의 등록
      2. 타인의 정보 도용
      3. Blizzard 온라인 스토어에 게시된 정보의 변경
      4. Blizzard 온라인 스토어가 정한 정보 이외의 정보(컴퓨터 프로그램 등) 등의 송신 또는 게시
      5. Blizzard, 기타 제3자의 저작권 등 지적재산권에 대한 침해
      6. Blizzard, 기타 제3자의 명예를 손상시키거나 업무를 방해하는 행위
      7. 외설 또는 폭력적인 메시지, 화상, 음성, 기타 공서양속에 반하는 정보를 Blizzard 플랫폼 및 온라인 스토어에 공개 또는 게시하는 행위
    2. Blizzard 온라인 스토어와 피연결몰 간의 관계. Blizzard는 블리자드 엔터테인먼트 유한회사의 이름으로 행해진 거래이외에는 책임을 지지 않습니다.
    3. 저작권의 귀속 및 이용제한.
      1. Blizzard가 작성한 저작물에 대한 저작권, 기타 지적재산권은 Blizzard에 귀속합니다.
      2. 귀하가 Blizzard 온라인 스토어를 이용함으로써 얻은 정보 중 Blizzard에게 지적재산권이 귀속된 정보를 Blizzard의 사전 승낙없이 복제, 송신, 출판, 배포, 방송, 기타방법에 의하여 영리목적으로 이용하거나 제3자에게 이용하게 하여서는 안됩니다.
    4. 재판권 및 준거법.
      1. Blizzard와 귀하 사이에 발생한 전자상거래 분쟁에 관한 소송은 대한민국 법률에 정하여진 바에 따라, 귀하의 주소지 관할법원 (주소가 없는 경우에는 관련법 규정에 따릅니다.) 을전속관할로 합니다.
      2. 본 특별약관과 Blizzard와 귀하 사이에 제기된 전자상거래 소송에는 대한민국 법률을 적용합니다.


제1조 (목적)

본 약관은 회원(본 약관에 동의한 자를 말하며 이하 "회원"이라고 합니다)이 주식회사 카카오(이하 "회사"라고 합니다)가 제공하는 티스토리(Tistory) 서비스(이하 "서비스"라고 합니다)를 이용함에 있어 회사와 회원의 권리·의무 및 책임사항을 규정함을 목적으로 합니다.

제2조 (약관의 명시, 효력 및 개정)

  1. (1) 회사는 본 약관의 내용을 회원이 알 수 있도록 서비스 화면(www.tistory.com)에 게시함으로써 이를 공지합니다.
  2. (2) 회사는 콘텐츠산업 진흥법, 전자상거래 등에서의 소비자보호에 관한 법률, 약관의 규제에 관한 법률, 소비자기본법 등 관련법을 위배하지 않는 범위에서 본 약관을 개정할 수 있습니다.
  3. (3) 회사가 약관을 개정할 경우에는 기존약관과 개정약관 및 개정약관의 적용일자와 개정사유를 명시하여 현행약관과 함께 그 적용일자 일십오(15)일 전부터 적용일 이후 상당한 기간 동안 공지만을 하고, 개정 내용이 회원에게 불리한 경우에는 그 적용일자 삼십(30)일 전부터 적용일 이후 상당한 기간 동안 각각 이를 서비스 홈페이지에 공지하고 회사가 부여한 이메일 주소로 약관 개정 사실을 발송하여 고지합니다.
  4. (4) 회사가 전항에 따라 회원에게 통지하면서 공지 또는 공지∙고지일로부터 개정약관 시행일 7일 후까지 거부의사를 표시하지 아니하면 승인한 것으로 본다는 뜻을 명확하게 고지하였음에도 불구하고 거부의 의사표시가 없는 경우에는 변경된 약관을 승인한 것으로 봅니다. 회원이 개정약관에 동의하지 않을 경우 회원은 제14조 제1항의 규정에 따라 이용계약을 해지할 수 있습니다.

제3조 (서비스의 제공)

  1. (1) 회사가 제공하는 서비스의 종류는 아래 각 호로 합니다.
    1. 티스토리(Tistory) 서비스
    2. 기타 회사가 자체 개발하는 등의 방법으로 추가적으로 회원에게 제공하는 일체의 서비스
  2. (2) 회원이 되고자하는 자는 아래와 같은 방법으로 회원이 되어 서비스를 이용할 수 있습니다.
    1. 웹사이트 다음(www.daum.net)의 회원인 경우 해당 사이트의 이용 ID 및 비밀번호를 이용하여 DaumID@daum.net 및 비밀번호를 등록하여 서비스를 이용
    2. 웹사이트 다음(www.daum.net)의 회원이 아닌 경우 회원이 되고자하는 자가 지정하는 임의의 이메일주소 및 비밀번호를 등록하여 서비스를 이용

제4조 (서비스 이용)

  1. (1) 서비스 이용시간은 회사의 업무상 또는 기술상 불가능한 경우를 제외하고는 연중무휴 1일 24시간(00:00-24:00)으로 함을 원칙으로 합니다. 다만, 서비스설비의 정기점검 등의 사유로 회사가 서비스를 특정범위로 분할하여 별도로 날짜와 시간을 정할 수 있습니다.
  2. (2) 제3조의 서비스 내용이 추가, 변경 또는 삭제됨에 있어 회사가 필요하다고 인정하는 경우 회사는 회원의 등록된 메일주소로 서비스 내용의 추가, 변경 또는 삭제된 내용 등을 통지할 수 있습니다.
  3. (3) 전항의 경우 불특정 다수인을 상대로 통지를 함에 있어서는 웹사이트 기타 회사의 공지사항 페이지를 통하여 회원들에게 통지할 수 있습니다.

제5조 (이용계약의 성립)

  1. (1) 회원은 회사가 제시하는 이용계약에 대한 내용을 인지하고 이를 수락함으로써 회사의 서비스에 대한 동의를 표시하고 회사는 이를 승낙함으로써 회원에게 서비스를 제공합니다.
  2. (2) 이용계약에 대한 동의는 인증 이메일에 전달되어진 인증링크를 클릭함으로써 의사표시를 합니다.

제6조 (서비스내용변경 통지 등)

  1. (1) 회사가 서비스 내용을 변경하거나 종료하는 경우 회사는 회원의 등록된 전자우편 주소로 이메일을 통하여 서비스 내용의 변경 사항 또는 종료를 통지할 수 있습니다.
  2. (2) 전 항의 경우 불특정 다수인을 상대로 통지를 함에 있어서는 웹사이트 기타 회사의 공지사항 페이지를 통하여 회원들에게 통지할 수 있습니다.

제7조 (권리의 귀속 및 저작물의 이용)

  1. (1) 회사가 회원에게 제공하는 각종 서비스에 대한 저작권을 포함한 일체의 권리는 회사에 귀속되며 회원이 서비스를 이용하는 과정에서 작성한 게시물 등(이하 “게시물 등”이라 합니다)에 대한 저작권을 포함한 일체에 관한 권리는 별도의 의사표시가 없는 한 각 회원에게 귀속됩니다.
  2. (2) 게시물 등은 회사가 운영하는 인터넷 사이트 및 모바일 어플리케이션을 통해 노출될 수 있으며, 검색결과 내지 관련 프로모션 등에도 노출될 수 있습니다. 또한, 해당 노출을 위해 필요한 범위 내에서는 일부 수정, 편집되어 게시될 수 있습니다. 이 경우, 회사는 저작권법 규정을 준수하며, 회원은 언제든지 고객센터 또는 각 서비스 내 관리기능을 통해 해당 게시물 등에 대해 삭제, 검색결과 제외, 비공개 등의 조치를 취할 수 있습니다.
  3. (3) 회사는 제2항 이외의 방법으로 회원의 게시물 등을 이용하고자 하는 경우에는 전화, 팩스, 전자우편 등을 통해 사전에 회원의 동의를 얻습니다.

제8조 (서비스이용의 제한 및 중지)

  1. (1) 회사는 아래 각 호의 1에 해당하는 사유가 발생한 경우에는 회원의 서비스 이용을 제한하거나 중지시킬 수 있습니다.
    1. 회원이 회사 서비스의 운영을 고의 또는 중과실로 방해하는 경우
    2. 회원이 제11조의 의무를 위반한 경우
    3. 서비스용 설비 점검, 보수 또는 공사로 인하여 부득이한 경우
    4. 전기통신사업법에 규정된 기간통신사업자가 전기통신 서비스를 중지했을 경우
    5. 국가비상사태, 서비스 설비의 장애 또는 서비스 이용의 폭주 등으로 서비스 이용에 지장이 있는 때
    6. 기타 중대한 사유로 인하여 회사가 서비스 제공을 지속하는 것이 부적당하다고 인정하는 경우
  2. (2) 회사는 전항의 규정에 의하여 서비스의 이용을 제한하거나 중지한 때에는 그 사유 및 제한기간등을 회원에게 알려야 합니다.
  3. (3) 제14조 제2항에 의해 회사가 회원과의 계약을 해지하고 탈퇴시키기로 결정한 경우 회사는 회원의 탈퇴 처리 전에 이를 통지하고, 회원은 회사의 통지를 받은 날로부터 30일 이내에 이에 대한 항변의 기회를 가집니다.
  4. (4) 정보통신망 이용촉진 및 정보보호 등에 관한 법률(이하 “정보통신망법”이라 합니다)의 규정에 의해 다른 회원의 공개된 게시물 등이 본인의 사생활을 침해하거나 명예를 훼손하는 등 권리를 침해 받은 회원 또는 제3자(이하 “삭제 등 신청인”이라 합니다)는 그 침해사실을 소명하여 회사에 해당 게시물 등의 삭제 또는 반박 내용의 게재를 요청할 수 있습니다. 이 경우 회사는 해당 게시물 등의 권리 침해 여부를 판단할 수 없거나 당사자 간의 다툼이 예상되는 경우 해당 게시물 등에 대한 접근을 임시적으로 차단하는 조치(이하 “임시조치”라 합니다)를 최장 30일까지 취합니다.
  5. (5) 제4항에 의해 본인의 게시물 등이 임시조치된 회원(이하 “게시자”라 합니다)은 임시조치기간 중 회사에 해당 게시물 등을 복원해 줄 것을 요청(이하 “재게시 청구”라 합니다)할 수 있으며, 회사는 임시조치된 게시물의 명예훼손 등 판단에 대한 방송통신심의위원회 심의 요청에 대한 게시자 및 삭제 등 신청인의 동의가 있는 경우 게시자 및 삭제 등 신청인을 대리하여 이를 요청하고 동의가 없는 경우 회사가 이를 판단하여 게시물 등의 복원 여부를 결정합니다. 게시자의 재게시 청구가 있는 경우 임시조치 기간 내에 방송통신심의위원회 또는 회사의 결정이 있으면 그 결정에 따르고 그 결정이 임시조치 기간 내에 있지 않는 경우 해당 게시물 등은 임시조치 만료일 이후 복원됩니다. 재게시 청구가 없는 경우 해당 게시물 등은 임시조치 기간 만료 이후 삭제됩니다.
  6. (6) 회사는 서비스 내에 게시된 게시물 등이 사생활 침해 또는 명예훼손 등 제3자의 권리를 침해한다고 인정하는 경우 제5항에 따른 회원 또는 제3자의 신고가 없는 경우에도 임시조치(이하 “임의의 임시조치”라 합니다)를 취할 수 있습니다. 임의의 임시조치된 게시물의 처리 절차는 제4항 후단 및 제5항의 규정에 따릅니다.
  7. (7) 회원의 게시물 등으로 인한 법률상 이익 침해를 근거로, 다른 회원 또는 제3자가 회원 또는 회사를 대상으로 하여 민형사상의 법적 조치(예: 형사고소, 가처분 신청∙손해배상청구 등 민사소송의 제기)를 취하는 경우, 회사는 동 법적 조치의 결과인 법원의 확정판결이 있을 때까지 관련 게시물 등에 대한 접근을 잠정적으로 제한할 수 있습니다. 게시물 등의 접근 제한과 관련한 법적 조치의 소명, 법원의 확정 판결에 대한 소명 책임은 게시물 등에 대한 조치를 요청하는 자가 부담합니다.

제9조 (팀블로그 서비스)

  1. (1) 회사의 서비스에서 제공하는 모든 블로그는 블로그를 개설한 회원의 의사에 따라 팀블로그로 운영할 수 있습니다.
  2. (2) 회원은 다른 회원이 개설한 팀블로그에 초대메일을 통해 팀원으로 초대받을 수 있으며 초대메일의 내용에 동의하고 승낙함으로써 팀블로그 회원으로 가입할 수 있습니다.
  3. (3) 팀블로그의 회원등급은 소유자, 관리자, 편집자, 필자의 4단계의 등급으로 구분이 되며 각 회원의 의무는 제11조에 명시한 회원의 의무를 동일하게 부여받습니다. 팀블로그에 속한 회원의 권한과 책임범위는 다음과 같습니다.
    1. 소유자(팀블로그를 만든 회원을 말합니다)는 팀블로그 운영에 대한 모든 권리를 가지게 되며 다른 회원을 초대하여 팀블로그의 개설, 운영, 폐쇄 및 회원관리를 할 수 있습니다. 또한 관리자(소유자가 지정한 운영자격을 가지는 회원을 말합니다)에게 회원관리의 권한을 부여할 수 있습니다.
    2. 관리자는 소유자가 부여한 회원관리 권한 외에 편집자와 필자의 권한을 관리할 수 있습니다.
    3. 편집자는 필자가 팀블로그에 게시한 게시물 등에 대한 편집권한을 가지며 회원관리 권한은 수행할 수 없습니다.
    4. 필자는 팀블로그에 게시물 등을 게시할 수 있으며 본인이 게시한 게시물 등에 대한 편집권한을 가집니다. 필자에 의해 올려진 게시물 등은 공개 게시물 등에 한해 팀블로그로 저작물에 대한 권한이 귀속됩니다. 필자는 회원관리 권한은 수행할 수 없습니다.
  4. (4) 팀블로그의 모든 회원은 자유롭게 팀블로그를 탈퇴할 수 있습니다. 팀블로그에 올려진 게시물 등은 팀블로그 저작물로 인정되어 회원 탈퇴 시 별도의 삭제작업을 병행하지 않습니다.
  5. (5) 팀블로그에 올려진 게시물에 대한 모든 책임은 팀블로그 소유자에게 있습니다.

제10조 (회사의 의무)

  1. (1) 회사는 회사의 서비스 제공 및 보안과 관련된 설비를 지속적이고 안정적인 서비스 제공에 적합하도록 유지, 점검 또는 복구 등의 조치를 성실히 이행하여야 합니다.
  2. (2) 회사는 회원이 원하지 아니하는 영리 목적의 광고성 전자우편을 발송하지 아니합니다.
  3. (3) 회사는 서비스의 제공과 관련하여 알게 된 회원의 개인정보를 본인의 승낙 없이 제3자에게 누설, 배포하지 않고, 이를 보호하기 위하여 노력합니다. 회원의 개인정보보호에 관한 기타의 사항은 정보통신망 이용촉진 및 정보보호등에 관한 법률 등 관계법령 및 회사가 별도로 정한 “개인정보처리방침”에 따릅니다.

제11조 (회원의 의무)

  1. (1) 회원은 아래 각 호의 1에 해당하는 행위를 하여서는 안됩니다.
    1. 회원정보에 허위내용을 등록하는 행위
    2. 회사의 서비스에 게시된 정보를 변경하거나 서비스를 이용하여 얻은 정보를 회사의 사전 승낙 없이 영리 또는 비영리의 목적으로 복제, 출판, 방송 등에 사용하거나 제3자에게 제공하는 행위
    3. 회사가 제공하는 서비스를 이용하여 제3자에게 본인을 홍보할 기회를 제공 하거나 제3자의 홍보를 대행하는 등의 방법으로 금전을 수수하거나 서비스를 이용할 권리를 양도하고 이를 대가로 금전을 수수하는 행위
    4. 회사 기타 제3자의 명예를 훼손하거나 지적재산권을 침해하는 등 회사나 제3자의 권리를 침해하는 행위
    5. 다른 회원의 이메일주소 및 비밀번호를 도용하여 부당하게 서비스를 이용한 경우
    6. 정크메일(junk mail), 스팸메일(spam mail), 행운의 편지(chain letters), 피라미드 조직에 가입할 것을 권유하는 메일, 외설 또는 폭력적인 메시지 ·화상·음성 등이 담긴 메일을 보내거나 기타 공서양속에 반하는 정보를 공개 또는 게시하는 행위
    7. 정보통신망이용촉진및정보보호등에관한법률 등 관련 법령에 의하여 그 전송 또는 게시가 금지되는 정보(컴퓨터 프로그램 등)를 전송, 게시하거나 청소년보호법에서 규정하는 청소년유해매체물을 게시하는 행위
    8. 공공질서 또는 미풍양속에 위배되는 내용의 정보, 문장, 도형, 음성 등을 유포하는 행위
    9. 회사의 직원이나 서비스의 관리자를 가장하거나 사칭하여 또는 타인의 명의를 모용하여 글을 게시하거나 메일을 발송하는 행위
    10. 컴퓨터 소프트웨어, 하드웨어, 전기통신 장비의 정상적인 가동을 방해, 파괴할 목적으로 고안된 소프트웨어 바이러스, 기타 다른 컴퓨터 코드, 파일, 프로그램을 포함하고 있는 자료를 게시하거나 전자우편으로 발송하는 행위
    11. 스토킹(stalking) 등 다른 회원의 서비스 이용을 방해하는 행위
    12. 다른 회원의 개인정보를 그 동의 없이 수집, 저장, 공개하는 행위
    13. 불특정 다수의 회원을 대상으로 하여 광고 또는 선전을 게시하거나 스팸메일을 전송하는 등의 방법으로 회사에서 제공하는 서비스를 이용하여 영리목적의 활동을 하는 행위
    14. 회사가 제공하는 소프트웨어 등을 개작하거나 리버스 엔지니어링, 디컴파일, 디스어셈블 하는 행위
    15. 회사가 제공하는 서비스에 정한 약관 기타 서비스 이용에 관한 규정을 위반하는 행위
  2. (2) 회사는 회원이 제1항의 행위를 하는 경우 해당 게시물 등을 삭제 또는 임시조치할 수 있고 회원의 서비스 이용을 제한하거나 일방적으로 본 계약을 해지할 수 있습니다.
  3. (3) 회사가 제공하는 서비스 중 관련 법령 등의 규정에 의하여 성인인증이 필요한 경우 회원은 해당 서비스를 이용하기 위하여 회사가 제공하는 방법에 따라 실명정보를 회사에 제공하여야 합니다.

제12조 (회원 ID 등의 관리책임)

  1. (1) 회원은 서비스 이용을 위한 회원 ID, 비밀번호의 관리에 대한 책임, 본인 ID의 제3자에 의한 부정사용 등 회원의 고의∙과실로 인해 발생하는 모든 불이익에 대한 책임을 부담합니다. 단, 이것이 회사의 고의∙과실로 인하여 야기된 경우에는 회사가 책임을 부담합니다.
  2. (2) 회원은 회원 ID, 비밀번호 등을 도난 당하거나 제3자가 사용하고 있음을 인지한 경우에는 즉시 본인의 비밀번호를 수정하는 등의 조치를 취하여야 하며, 즉시 이를 회사에 통보하여 회사의 안내를 따라야 합니다.

제13조 (양도금지)

회원의 서비스 받을 권리는 이를 양도 내지 증여하거나 질권의 목적으로 할 수 없습니다.

제14조 (이용계약의 해지)

  1. 회원은 서비스 이용계약을 해지하고자 하는 때에는 회사가 제공하는 서비스 내의 회원탈퇴 기능을 이용하여 탈퇴를 요청할 수 있습니다. 회사는 탈퇴를 요청한 시점에서 제8조 제(1)항의 각호에 해당하는 범위 외 불가피한 사정이 없는 한 즉시 탈퇴요청을 처리합니다.
  2. 회원이 제11조의 규정을 위반한 경우 회사는 일방적으로 본 계약을 해지할 수 있고, 이로 인하여 서비스 운영에 손해가 발생한 경우 이에 대한 민∙형사상 책임도 물을 수 있습니다.
  3. 회원이 서비스를 이용하는 도중, 연속하여 일(1)년 동안 서비스를 이용하기 위해 회사의 서비스에 log-in한 기록이 없는 경우 회사는 회원의 회원자격을 상실시킬 수 있습니다.
  4. 본 이용 계약이 해지된 경우 회원의 게시물 등 일체는 삭제됩니다. 단, 제9조 제(4)항의 경우에는 그러하지 않습니다.

제15조 (게시판 이용 상거래)

  1. 서비스 내 게시판을 이용하여 상거래(판매 및 중개 포함)를 업으로 하는 회원(이하 "게시판 이용 통신판매업자등 회원")의 경우 전자상거래 등에서의 소비자보호에 관한 법률(이하 "전자상거래법")에 따른 통신판매업자 및 통신판매중개업자의 의무사항을 준수하여야 합니다.
  2. (2) "게시판 이용 통신판매업자등 회원"은 전자상거래법에서 요구하는 일정한 신원정보(동법 제13조 제1항 제1호 및 제2호)를 관련 게시판 서비스 내에서 제공하는 입력 기능을 이용하여 표시하며, 해당 신원정보를 회사에 제공해야 합니다.
  3. (3) 회원과 "게시판 이용 통신판매업자등 회원" 사이에 상거래 관련 분쟁이 발생하는 경우 회사는 전항에 따라 확인된 "게시판 이용 통신판매업자등 회원"의 신원정보를 다음 각 호의 어느 하나에 해당하는 자의 요청이 있는 경우 제공할 수 있습니다.
    1. 전자상거래법 제33조에 따른 소비자피해 분쟁조정기구
    2. 공정거래위원회
    3. 시·도지사 또는 시장·군수·구청장
  4. (4) "게시판 이용 통신판매업자등 회원"으로부터 피해를 입은 회원은 고객센터 페이지를 통하여 전항 1호에서 정한 소비자피해 분쟁조정기구에 피해구제신청을 할 수 있으며, 회사는 해당 신청을 대행하여 처리합니다.

제16조 (면책조항)

  1. (1) 회사는 다음 각 호의 경우로 서비스를 제공할 수 없는 경우 이로 인하여 회원에게 발생한 손해에 대해서는 책임을 부담하지 않습니다.
    1. 천재지변 또는 이에 준하는 불가항력의 상태가 있는 경우
    2. 서비스 제공을 위하여 회사와 서비스 제휴계약을 체결한 제3자의 고의적인 서비스 방해가 있는 경우
    3. 회원의 귀책사유로 서비스 이용에 장애가 있는 경우
    4. 제1호 내지 제3호를 제외한 기타 회사의 고의∙과실이 없는 사유로 인한 경우
  2. (2) 회사는 제3자가 제공하거나 회원이 작성하는 등의 방법으로 서비스에 게재된 정보, 자료, 사실의 신뢰도, 정확성 등에 대해서는 보증을 하지 않으며 이로 인해 발생한 회원의 손해에 대하여는 책임을 부담하지 아니합니다.

제17조 (분쟁의 해결)

본 약관은 대한민국법령에 의하여 규정되고 이행되며, 서비스 이용과 관련하여 회사와 회원간에 발생한 분쟁에 대해서는 회사의 본점 소재지를 관할하는 법원을 합의관할로 합니다.

제18조 (규정의 준용)

이 약관에 명시되지 않은 사항에 대해서는 관계법령에 의하고, 법에 명시되지 않은 부분에 대하여는 관습에 의합니다.

부칙 (2016. 9. 12.)

본 약관은 2016년 9월 30일부터 적용하고 2015년 5월 29일부터 적용되던 종전의 약관은 본 약관으로 대체합니다.


1. 수집하는 개인정보 항목

- 필수정보의 수집 : 회원가입 시 이용자의 이메일 주소, 비밀번호를 수집하고 있습니다. 이용자의 이벤트 참여 시 해당 시점에 이용자의 이름, 휴대폰 번호, 유선 전화번호, 배송지 주소 추가 수집을 위한 별도의 동의를 받도록 하고 있습니다.
서비스 이용과정에서 아래와 같은 정보들이 자동으로 생성되어 수집될 수 있습니다.
o IP Address, 쿠키, 방문 일시, 서비스 이용 기록, 불량 이용 기록, 기기정보

2. 개인정보의 수집 • 이용목적

  1. 1) 회원으로 가입한 이용자를 식별하고 가입의사 확인, 불량회원의 부정한 이용을 방지하기 위하여 사용합니다.
  2. 2) 이용자에게 카카오의 다양한 서비스를 제공하고 서비스 이용 과정에서 이용자의 문의사항이나 불만을 처리하고 공지사항 등을 전달하기 위해 사용합니다.
  3. 3) 이용자와 약속한 서비스를 제공하고 유료 서비스 구매 및 이용이 이루어지는 경우 이에 따른 요금 정산을 위해 사용됩니다.
  4. 4) 신규 서비스가 개발되거나 이벤트 행사 시 참여기회를 알리기 위한 정보 전달 및 마케팅 및 광고 등에도 사용됩니다.
  5. 5) 맞춤형 서비스 제공 및 신규 서비스 개발 등에 참고하기 위하여 이를 익명화 하여, 이용패턴과 접속빈도 분석 및 서비스 이용에 대한 통계에서도 사용됩니다.

3. 개인정보의 보유 • 이용기간

카카오는 이용자의 개인정보를 회원가입을 하는 시점부터 서비스를 제공하는 기간 동안에만 제한적으로 이용하고 있습니다. 이용자가 회원탈퇴를 요청하거나 제공한 개인정보의 수집 및 이용에 대한 동의를 철회하는 경우, 또는 수집 및 이용목적이 달성되거나 보유 및 이용기간이 종료한 경우 해당 이용자의 개인정보는 지체 없이 파기 됩니다.
그리고 관계법령의 규정에 따라 아래와 같이 관계 법령에서 정한 일정한 기간 동안 회원정보를 보관합니다.
  1. 1) 서비스 이용 관련 개인정보 (로그인기록)/보존 근거 : 통신비밀보호법/보존 기간 : 3개월
  2. 2) 표시/광고에 관한 기록/보존 근거 : 전자상거래 등에서의 소비자보호에 관한 법률/보존 기간 : 6개월
  3. 3) 계약 또는 청약철회 등에 관한 기록/보존 근거 : 전자상거래 등에서의 소비자보호에 관한 법률/보존 기간 : 5년
  4. 4) 대금결제 및 재화 등의 공급에 관한 기록/보존 근거 : 전자상거래 등에서의 소비자보호에 관한 법률/보존 기간 : 5년
  5. 5) 소비자의 불만 또는 분쟁처리에 관한 기록/보존 근거 : 전자상거래 등에서의 소비자보호에 관한 법률/보존 기간 : 3년
  6. 6) 개인위치정보에 관한 기록/보존근거 : 위치정보의 보호 및 이용 등에 관한 법률/보존기간 : 6개월
  7. 7) 전자금융 거래에 관한 기록 : 전자금융거래법/보존기간 : 5년



멤버십 서비스 이용 약관

 

제1조  (목적)

본 약관은 쿠팡 주식회사(이하 “회사”)가 운영하는 웹사이트모바일 웹 및 앱 등에서 제공하는 멤버십 서비스를 이용하고자 하는 자와 회사 간의 권리·의무서비스 이용절차 및 기타 제반사항을 정함에 그 목적이 있다.


제2조  (용어의 정의)

1. 멤버십 서비스(가칭 로켓와우”, 이하 “본 서비스라고 한다.)대상회원이 멤버십으로 가입함으로써 회사가 대상회원에게 추가적으로 제공하는 각종 서비스 및 관련 부가서비스 일체를 의미한다향후 서비스 명칭의 변경은 사전 고지 없이 가능하다 (서비스 개시 후 서비스 명칭 변경 예정).

2. 회원이란『쿠팡 이용약관』에 동의하고 그 서비스를 이용하는 자로서본 서비스를 이용하기 위해 본 약관에 동의한 자를 의미한다.

3. 대상회원이란『쿠팡 이용약관』에 동의하고 그 서비스를 이용하는 자로서본 서비스 중 개별 서비스를 이용할 수 있는 요건을 갖춘 자를 의미한다.

4. 대상 서비스이란회사가 제공하는 본 서비스 중 회사가 개별 서비스에 대한 상세 설명을 통해 지정한 서비스를 의미한다.

5. 대상지역이란회사가 제공하는 본 서비스 중 회사가 개별 서비스에 대한 상세 설명을 통해 지정한 지역을 의미한다.

6. 무료체험 기간이란본 회원이 본 서비스 이용계약을 체결한 이후부터 본 서비스의 이용료가 결제되기 직전까지 본 서비스를 무상으로 이용할 수 있는 기간을 의미한다.


제3조  (서비스의 제공 및 변경)

① 대상회원대상상품대상지역의 범위는 회사의 사정에 따라 변경될 수 있으며그 변경으로 인하여 본 회원이 본 서비스를 중도에 이용하지 못하게 된 경우 회사는 본 약관 제10조의 규정에 따라 환불한다.

②  서비스는 무료체험 기간 동안 본 회원에게 무상으로 제공되며무료체험 기간 경과 후에는 이용료를 결제한 본 회원에 한하여 본 서비스를 제공한다무료체험 기간은 회사의 사정에 따라 변경될 수 있다.

③ 회원은 무료체험 기간이 만료된 이후회원이 등록한 결제 정보를 이용하여 회사가 이용료를 결제하는데 동의한다.

④ 무료체험 기간은 최초 가입 시에 한하여 1회만 제공되며회원이 되었다가 탈퇴한 후 재가입한 회원에게는 무료체험 기간을 제공하지 아니한다.

⑤  서비스의 내용이 변경된 경우 회사는 변경된 내용을 회원에게 즉시 통지하여야 하며이용료 액수가 변경된 경우에는 변경된 이용료가 결제되는 시점에 회원에게 별도로 새로운 동의를 받아야 한다.


제4조  (본 서비스 가입 신청)

① 본 서비스는 대상회원이 본 서비스를 위한 약관에 동의하고 결제정보를 입력함으로써 가입 신청할 수 있다.

② 회사는 대상회원에게 『쿠팡 이용약관』상 결격사유가 없으면 가입 신청을 승인하며대상회원은 회사가 가입 신청을 승인하는 즉시 본 회원이 된다.


제5조   (추가 정보의 수집)

회사는 본 서비스를 제공하기 위하여 필수적으로 요구되는 정보를 별도의 동의 없이 추가로 수집할 수 있다다만수집하는 정보가 개인정보에 해당하는 경우 관련 법령 및 『쿠팡 이용약관』상의 개인정보 보호 규정을 준수해야 한다.


제6조  (본 회원의 의무)

회원은 회사로부터 본 서비스의 수령 및 이용료의 결제를 위해 회원 본인의 정보를 최신으로 유지하여야 하며회사는 회원정보가 부정확하여 발생하는 불이익에 대하여는 책임지지 않는다.


제7조  (회사의 통지 의무)

① 회사는 회원에게 본 서비스의 개별 서비스에 대해 설명하여야 하고서비스 내용의 변경이 있는 경우이를 회원에게 통지하여야 한다.

② 회원의 이용료가 결제된 경우 회사는 회원에게 결제 사실을 통지하여야 한다.


제8조   (금지행위)

① 회원은 이 약관에 따른 회원의 권리의무의 전부 또는 일부를 타인에게 대여양도위임할 수 없다.

② 회원은 본 서비스의 정상적인 운영 또는 다른 회원의 본 서비스 이용을 방해하는 행위를 하여서는 아니된다.


제9조   (서비스의 중단 및 탈퇴)

① 회사가 본 서비스를 중단하는 경우 회사는 본 서비스 화면을 통하여 중단일 30일 전에 회원에게 공지하여야 한다.

② 회원의 카드 한도 초과 등으로 이용료의 결제가 이루어 지지 않을 경우 회사는 해당 회원에게 그 기간 동안 본 서비스를 제공하지 않을 수 있으며위와 같은 상황이 지속되는 경우 회사는 해당 회원에게 영구적으로 서비스의 제공을 중단할 수 있다.

③ 회원은 언제든지 탈퇴함으로써 본 서비스의 이용을 해지할 수 있다.


제10조   (환불)

① 회사는 본 서비스 및 개별 서비스에 대하여 결제 및 환불 조건과 그 변경 내용에 대해 회원에게 설명하여야 한다.

② 회원이 이용료를 결제한 이후 본 서비스가 중도에 해지되는 경우회사는 회원이 결제한 금액에서 이용일수에 해당하는 부분을 공제한 금액을 환불한다.


제11조    (기타)

본 약관과 『쿠팡 이용 약관』이 상충하는 경우 본 약관이 우선하여 적용되고본 약관에서 규정하지 않은 사항은 『쿠팡 이용 약관』을 적용한다.

 

본 약관은 2018 10 4일부터 시행한다.

LLM(Large Language Models)에 대해 배우고 싶으시다면, 기초부터 차근차근 시작하는 것이 좋습니다. LLM은 자연어 처리(Natural Language Processing, NLP)의 한 분야로, 대량의 텍스트 데이터를 기반으로 언어를 이해하고 생성하는 모델을 말합니다. 여기 몇 가지 단계로 나누어서 공부할 수 있는 프로젝트를 제안드립니다:

1. 자연어 처리(NLP) 기초 이해하기

  • 텍스트 데이터 전처리: 정규 표현식을 사용한 텍스트 클리닝, 토큰화, 스톱워드 제거, 어간 추출 및 표제어 추출 등의 기초적인 NLP 전처리 방법을 학습합니다.
  • Python과 NLTK 라이브러리 사용: Python의 NLTK(Natural Language Toolkit) 라이브러리를 사용하여 기본적인 텍스트 분석을 수행해봅니다.

2. 머신러닝과 NLP의 결합

  • 기본적인 머신러닝 모델 학습: 머신러닝의 기초를 다진 후, 텍스트 분류나 감성 분석과 같은 간단한 NLP 태스크를 수행해 보는 프로젝트를 시작합니다. Scikit-learn 라이브러리를 활용한 분류 모델을 만들어 보세요.
  • Word Embedding 이해하기: Word2Vec이나 GloVe와 같은 워드 임베딩 모델을 학습하고, 이를 사용해 텍스트 데이터를 벡터 공간에 매핑하는 방법을 학습합니다.

3. 딥러닝과 NLP

  • TensorFlow나 PyTorch 학습: 딥러닝 프레임워크인 TensorFlow나 PyTorch를 사용하여 기본적인 신경망을 구축하는 방법을 학습합니다.
  • RNN과 LSTM을 사용한 텍스트 생성: 순환 신경망(RNN)과 장단기 메모리(LSTM) 네트워크를 사용하여 간단한 텍스트 생성 모델을 만들어봅니다.

4. 대형 언어 모델(Large Language Models) 탐구

  • Transformer 모델 학습: Transformer 아키텍처의 기초를 이해하고, 이를 기반으로 한 모델(BERT, GPT 등)에 대해 학습합니다.
  • Hugging Face의 Transformers 라이브러리 사용: Hugging Face의 Transformers 라이브러리를 사용하여 사전 훈련된 LLM을 탐색하고, 다양한 NLP 태스크에 적용해보는 프로젝트를 진행합니다.

5. 실제 프로젝트 수행

  • Fine-tuning 사전 훈련된 모델: 특정 태스크에 맞게 사전 훈련된 LLM을 Fine-tuning하는 방법을 학습하고, 실제 데이터셋에 적용해봅니다.
  • 자체 LLM 프로젝트: 배운 지식을 토대로 자신만의 LLM을 설계하고, 구현해보는 프로젝트를 진행합니다.

이 과정들은 LLM에 대한 이해를 넓히고, 실제로 어플리케이션을 만들어보는 데 도움이 될 것입니다. 또한, 이러한 프로젝트를 진행하면서 발생하는 문제들을 해결하는 과정에서 더 깊은 지식을 쌓을 수 있습니다.

============================================================================화사첨족.

집에서 일하는 것이 회사 사무실에서 일하는 것보다 더 편하다고 느끼는 이유는 여러 가지가 있을 수 있습니다. 개인적인 선호도나 작업 환경에 대한 요구 사항이 다르기 때문에, 각자의 이유는 조금씩 다를 수 있습니다. 여기 몇 가지 공통적인 이유를 소개합니다:

  1. 통근 시간의 절약: 집에서 일할 때는 출퇴근을 위해 시간을 소비하지 않아도 됩니다. 이 시간을 다른 개인적인 일이나 추가적인 업무에 할애할 수 있어서, 일과 생활의 균형을 더 잘 맞출 수 있습니다.
  2. 유연한 근무 환경: 집에서 근무하면 자신의 근무 환경을 자유롭게 조정할 수 있습니다. 예를 들어, 음악을 들으면서 일하거나, 원하는 시간에 휴식을 취할 수 있습니다.
  3. 소음 및 방해 요소 감소: 사무실 환경은 때때로 시끄럽거나, 동료들로부터의 방해를 받을 수 있습니다. 집에서는 이러한 외부 요소들을 더 잘 통제할 수 있어, 집중력을 유지하기가 더 쉬울 수 있습니다.
  4. 개인적인 안락함: 집은 개인적인 공간이므로, 자신이 가장 편안하게 느끼는 환경을 만들 수 있습니다. 예를 들어, 의자나 책상과 같은 사무용 가구를 자신의 선호에 맞게 선택할 수 있습니다.
  5. 건강 및 웰빙: 집에서 일하면 식사 준비나 운동과 같은 개인적인 건강 관리를 더 잘 할 수 있습니다. 사무실에서는 이러한 활동을 위한 시간을 찾기 어려울 수 있습니다.
  6. 기술의 발전: 클라우드 기반 도구와 커뮤니케이션 플랫폼의 발전으로 집에서도 팀원들과 효과적으로 협업할 수 있습니다.

물론, 집에서 일하는 것이 모든 사람에게 장점만 있는 것은 아닙니다. 집중력 유지, 업무와 개인 생활의 경계 설정, 사회적 고립감 등의 도전도 있을 수 있습니다. 하지만 많은 사람들이 위에서 언급한 이유들로 인해 집에서 일하는 것을 선호합니다.

집에서 일하는 것이 더 편하다고 느끼는 이유는 개인마다 다를 수 있지만, 일반적으로 다음과 같은 요인들이 작용할 수 있습니다.

  1. 출퇴근 시간 절약: 집에서 일하면 출퇴근에 소요되는 시간과 에너지를 절약할 수 있습니다. 이는 더 많은 자유 시간과 편안함을 제공합니다.
  2. 유연한 근무 환경: 집에서는 자신에게 가장 편안하고 생산적인 환경을 조성할 수 있습니다. 원하는 대로 작업 공간을 구성하고, 선호하는 조명이나 온도 등을 조절할 수 있습니다.
  3. 자율성과 집중력 향상: 사무실의 잡음, 동료와의 대화, 회의 등의 방해 요소가 줄어들어 업무에 더 집중할 수 있습니다. 또한, 자신의 페이스에 맞춰 일할 수 있어 자율성이 높아집니다.
  4. 가정생활과의 조화: 집에서 일하면서 가족과 더 많은 시간을 보낼 수 있고, 육아나 가사 등 개인적인 일과 업무를 더 유연하게 병행할 수 있습니다.
  5. 비용 절감: 출퇴근 비용, 식비 등을 아낄 수 있고, 회사에서 제공하는 자원 대신 이미 가지고 있는 개인 물품을 사용할 수 있습니다.
  6. 스트레스 감소: 직장에서의 人間關係, 업무 환경에 대한 스트레스가 줄어들 수 있습니다. 익숙하고 편안한 공간인 집에서 일하는 것이 정신적 안정에 도움이 될 수 있습니다.

다만, 재택근무가 모든 사람에게 적합한 것은 아닙니다. 업무 특성, 개인의 성향과 역량, 가정 환경 등에 따라 사무실에서 일하는 것이 더 효과적일 수도 있습니다. 개인의 선호도와 상황을 고려하여 최적의 근무 방식을 선택하는 것이 중요합니다.

 

 

  1. 저자는 SNS를 브런치와 트위터로 제한하기로 했습니다.
  2. 브런치에서는 기존의 콘셉트를 유지하되, 기술 블로그 형식으로 운영할 계획입니다.
  3. 기술 블로그를 하려는 이유는 저자의 경험과 연결되어 있습니다. 저자는 오랜 기간 교육 활동을 해왔고, 한국의 코딩 교육 상황을 개선하고자 하는 목표가 있습니다.
  4. 현재 한국의 코딩 교육은 학교가 감당하기 어려운 상황이며, 학원이나 온라인 교육도 한계가 있다고 봅니다. 이를 개선하기 위해서는 해외에서 성공한 교육자들의 노하우가 필요하다고 생각합니다.
  5. 한국 사회의 전반적인 문제점과 한계에 대해서도 언급하였습니다. 저자는 현재의 상황을 부정적으로 인식하고 있습니다.
  6. 자본주의 사회에서 돈과 성공이 인간을 변화시키는 현상, 그리고 불평등한 현실에 대한 고민도 드러냈습니다.
  7. 미래 세대인 코딩 영재들에 대한 기대감을 표현하면서도, 잘못된 방향의 교육에 대한 경계심도 나타냈습니다.




블로그 포스팅의 힘






전에 밝혔지만, 직장 생활하면서도 교육에 관심이 여러 활동을 하는데 특이한 것은 가끔 오는 과외 문의는 결국 인터넷 글을 보고 온다.






- 안녕하세요 현재 *지역 거주 중이고 제가 필요한 건 opengl 중에 간단하게 동작하는 것들을 구현하는 걸 배우고 싶습니다 * 페이는 과제 난이도 및 개수로 일단 회당 5~10만 원 정도로 생각중입니다 *


- 안녕하세요. 리눅스 커널을 공부하고 있는데 quick start를 위해 도움을 주실 분들 구하다가 글을 발견하고 메일 보내봅니다. *


- 안녕하세요. * 혹시 어셈블리어 기초과정 과외 가능하시면 연락 주십시오 시간은 되도록 그쪽 사정에 맞출 수 있습니다. *




공유 지식의 힘






대부분의 인터넷 글을 정리하고 카페 활동을 시작했었다. 사실 쓴 책에도 밝혔지만 "인터넷 서핑 공부법"이란 게 있어서 내가 썼던 글과 지식도 시간이 지나면 쓸모없는 것이 되고, 단순히 블로그 조회수만 올려주는 역할만 하는데 사람들에게 도움이 되진 않는다. 그래서 차라리 카페가 낫겠다 싶었다. 그렇게 카페를 하다 접었다가 최근 다시 시작했다. 내가 몰랐던 사실은 대부분의 사람들은 잘 된 카페에 모이고 활동을 한다는 것. 지인도 마찬가지. 결국 잘 안되더라도 재미를 느끼고 활동하는 사람과 함께 해야 유지시킬 수 있다는 것이다. 잘되고 나서는 얼마든지 사람을 모을 수가 있다. 그리고 퀄리티 있는 지식의 공유는 결국 사람을 모은다. 모여진 사람을 이끌며 줏대 있는 결심을 지속적으로 내비치면 주는 사람이 더 도움을 받는 커뮤니티가 된다.





프로그래머 Programmer : 네이버 카페


기술을 더욱 깊이 있게 하고픈 개발자 모임입니다.


cafe.naver.com 









Design Pattern


디자인 패턴의 실무적 접근방법은 이미 이전 포스팅에서 모두 말했다. Creational Pattern 뿐이지만 객체를 생성하는 new의 위치를 어디에 쓰느냐가 패턴의 종류를 결정했었다는 글은 내 책의 글귀인 "프로그래밍은 CPU와 MEMORY의 장난"이라는 말과 일맥상통한다.





C&JAVA Programming 실무 프로그래밍 초급편









GoF Design Pattern이 소프트웨어 영역에서는 시온이기에 사실 모든 디자인 패턴은 이 책에서 나왔다고 할 수 있다.





GoF의 디자인 패턴


이 책은 디자인 패턴을 다룬 이론서로 디자인 패턴의 기초적이고 전반적인 내용을 학습할 수 있다.


www.yes24.com 







그러나 내가 기존의 알던 내용을 제대로 정립하고, 배운 곳은 여기다.





The Catalog of Design Patterns



refactoring.guru 







아마 링크만 클릭하고 조금의 노력만 더해진다면 실무에서 쓰이는 코드들을 리팩터링 하면서 디자인 패턴을 제대로 배워 볼 수 있겠다. 내가 쓰는 중급 편의 지식도 대부분 여기서 파생되었다고 보면 되겠다. 그러나 내가 생각하는 것은 좀 더 Firmware 쪽 지식 base기에 디자인 패턴의 하부 단계를 생각할 수 있겠다. 조금 더 C에 가깝고, 리눅스 커널에 가깝다고 해야 할까?






지금까지 소개한 디자인 패턴은 사실상 모듈 디자인 패턴이다. 아키텍처 디자인 패턴은





10 Common Software Architectural Patterns in a nutshell


Ever wondered how large enterprise scale systems are designed? Before major software development starts, we have to choose a suitable…


towardsdatascience.com 







여기를 참고하여 인터넷 서핑으로 공부를 해야 하고, 그 상위의 시스템 디자인 패턴은 스스로가 갈고닦을 수밖에 없고, 나중에는 개인 경험 차이에 의해 다변화된다. 실무 프로그래밍 고급 편에 총정리를 할 생각이다. 그 사이 많은 시스템을 설계하고 만드는 수밖에 없다.






디자인 패턴 레이어가 햇갈리면 요구사항 분석 - 시스템 설계 - 아키텍처 설계 - 모듈 설계로 가는 V 모델을 보라.






지금도 많은 프로젝트를 하고 있지만 사실상 시스템 디자인 패턴은 아마존 클라우드로 귀결되고 있고, 그 비용을 낮추는 물리 시스템을 설계하는데 많은 시간을 쏟고 있다. 그게 내가 가질 차별점이라면 차별점일까...






따지고 보면 메이저 리그가 아닌 마이너리그에서의 비용 때문의 고민일 것 같지만, 자본주의 사회에서 똑같이 필요한 서비스를 제공한다고 했을 때 결국 승리하는 것은 적인 비용이라는 것은 누구나가 아는 사실.






단, 시간이 문제인데 "성공"이라는 것을 또 경험해보고 싶다면 그 시간을 어떻게 줄일지 고민해야 한다.






아직 1년 안된 신입 개발자가 폭풍 성장하는 것을 보면서, 결국 IT 기술 정립을 어떻게 해야 할지 몰라서 각자 목소리를 내고 있는 IT 기술을 학교로 돌려 보낼 수 있다고 자신한다. 






이미 많은 사람들이 노력하고 있기도 하고.

'진행 프로젝트' 카테고리의 다른 글

Creational Pattern 에 대한 썰  (0) 2019.01.22

구글의 AI는 뛰어나다. 물론, IBM 다음으로.


그 이유는 바둑 대결 같은 show는 이미 오래 전 퀴즈, 체스 분야에서 했고 이미 의료 진료에서 상용화를 이루어 국내 병원에 판매하고 있는 IBM


그러나 분야는 다르기에 동영상 추천 분야는 넷플릿스보다 구글이 뛰어나다고 느낀다. 정량적이지 않아 미안하지만 한 명의 유저로서.


솔직한 유튜버들의 수입 정보를 보다보면, 이 후 구글이 계속 추천해 준다.


치과의사 - https://www.youtube.com/watch?v=P_eZysqKK3A, 대졸직후 200~300, 전문의 일당 50, 20-1000, 교정 일당 80, 1600~2000, 지방급여가 많음, 기타 좋은 이야기 [구독각]


당구장 사장 - https://www.youtube.com/watch?v=FgsaC_5qlrE&t=43s , 한달 3000이상 기억. 솔직하고 개그 프로만큼 재밌음 계속 보게됨


IT 영업 - https://www.youtube.com/watch?v=dX7JrFmdg0o 490~970


철구 - https://www.youtube.com/watch?v=LLz8J-XsMEQ 아프리카 210~400, 유투브 3100,


킴성태 - https://www.youtube.com/watch?v=2zU8q-2Q4C4 140~740 연봉 6000


실리콘 벨리 - https://www.youtube.com/watch?v=9vrrNGEj2_k 연봉 2 가능



몇 달 되었다. 이미 지인 3분께 몇 주간 빌려드리고 다시 돌려 받은 것​


링크는


https://github.com/danielgindi/Charts



ChartsDemo-iOS Swift 그룹 아래 다음 개의 파일을 복사한다.

LineChart1ViewController

BalloonMarker

DemoBaseViewController


xib 복사하지 않고, interface builder 에서 view 추가하고 Custom Class

LineChartView 맞춘다. -> Module Charts 자동으로 들어간다.


LineChart1ViewController 열고 기존 리소스를 지우고, 다시 연결해 준다.

다음 세개를 연결한다.


    @IBOutlet var chartView: LineChartView!

    @IBOutlet var sliderX: UISlider!

    @IBOutlet var sliderY: UISlider!

    

    override func viewDidLoad() {

        super.viewDidLoad()


2개를 올렸으니 주석 처리해야할 것이 생긴다.


        chartView.rightAxis.enabled = false

        

//        [_chartView.viewPortHandler setMaximumScaleY: 2.f];

//        [_chartView.viewPortHandler setMaximumScaleX: 2.f];



    @IBAction func slidersValueChanged(_ sender: Any?) {

//        sliderTextX.text = "\(Int(sliderX.value))"

//        sliderTextY.text = "\(Int(sliderY.value))"


그래프 나옴.

Fin.


[이 포스트는 계속 업데이트 합니다.] --> 중단되었습니다. 보통 포스팅이 중단되면 관련 기술이 완전히 사장되었던지, 다른 포스트에 version 2가 있다는 의미 입니다.

 

2024년 1월 1일의 결정 : 단 하나의 프로젝트는 제외하고, 내가 혼자서 만드는 모든 프로젝트 SwiftUI 로 전격 교체!

내가 혼자서 만든 TakeTouch 는 바꾸지 못한다(내재화한 오픈소스가 방대하여 아마 8명 팀이 해도 1년은 넘게 걸릴거라 생각한다.)

 

 

 

==== 지난 글 ====

 

iOS에 대한 관심이 높아진 것인지? ^^;; 인기 급 상승하네. 이 포스팅은 내가 봐도 참 알차다.

---------------------------------------------------------------



1. 폰트 지정


label.font = UIFont.init(name: "NanumSquareOTFL", size: 16)

폰트 이름은

for family in UIFont.familyNames.sorted() {
    let names = UIFont.fontNames(forFamilyName: family)
    print("Family: \(family) Font names: \(names)")
}

샌프란시스코 폰트 다운로드(sf compact, sf pro)
https://developer.apple.com/fonts/

Fonts - Apple Developer
developer.apple.com 

나머진

https://brunch.co.kr/@jade/203

저작권 걱정없는 무료 한글폰트


한글날 기념 무료 한글 글꼴 포함 | 이제 매년 한글날이 되면 많은 기업들이 한글폰트를 내는 것이 좋은 홍보의 수단이 되는 듯 하다. 최근에 누구나 이용할 수 있도록 공개된 무료 한글 공개 폰트(글꼴)들을 정리해 보았다. 유료가 아니어도 예쁜 폰트가 참 많아졌다. 1. 네이버 나눔한글폰트 http://hangeul.naver.com/2016/nanum 가장 많이 사용하는 무료 한글 폰트가 아


brunch.co.kr/@jade/203 

2. UINavigationBar

색상 바꾸기

internal extension UIColor {
    convenience init(red: Int, green: Int, blue: Int) {
    assert(red >= 0 && red <= 255, "Invalid red component")
    assert(green >= 0 && green <= 255, "Invalid green component")
    assert(blue >= 0 && blue <= 255, "Invalid blue component")
    self.init(red: CGFloat(red) / 255.0, green: CGFloat(green) / 255.0, blue: CGFloat(blue) / 255.0, alpha: 1.0)
}

convenience init(rgb: Int) {
    self.init(
    red: (rgb >> 16) & 0xFF,
    green: (rgb >> 8) & 0xFF,
    blue: rgb & 0xFF
)}


override func viewDidLoad() {

    super.viewDidLoad()
    let navigationBarAppearance = UINavigationBar.appearance()
    navigationBarAppearance.tintColor = UIColor(rgb:0xffffff)
    navigationBarAppearance.barTintColor = UIColor(rgb:0x00aaee)
    navigationBarAppearance.backgroundColor = UIColor(rgb:0x00aabb)
}

숨기기

override func viewWillAppear(_ animated:Bool) {
    super.viewWillAppear(animated)
    UINavigationBar.appearance().isHidden = true
    self.navigationController!.isNavigationBarHidden = true
    self.navigationController?.navigationBar.isHidden = true
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    UINavigationBar.appearance().isHidden = false
}

3. iPhone Screen Resolution enum

//Device Native Resolution(Pixels) UIKit Size (Points) Native Scale factor UIKit Scale factor
//iphone XS Max 1125 x 2436 414x896
//iphone XS 1242 x 2688 375 x 812
//iPhone XR 828 x 1792 414x896
//iPhone X 1125 x 2436 375 x 812 3.0 3.0
//iPhone 8 Plus 1080 x 1920 414 x 736 2.608 3.0
//iPhone 8 750 x 1334 375 x 667 2.0 2.0
//iPhone 7 Plus 1080 x 1920 414 x 736 2.608 3.0
//iPhone 6s Plus 1080 x 1920 375 x 667 2.608 3.0
//iPhone 6 Plus 1080 x 1920 375 x 667 2.608 3.0
//iPhone 7 750 x 1334 375 x 667 2.0 2.0
//iPhone 6s 750 x 1334 375 x 667 2.0 2.0
//iPhone 6 750 x 1334 375 x 667 2.0 2.0
//iPhone SE 640 x 1136 320 x 568 2.0 2.0
//iPad Pro 12.9-inch
//(2nd generation) 2048 x 2732 1024 x 1366 2.0 2.0
//iPad Pro 10.5-inch 2224 x 1668 1112 x 834 2.0 2.0
//iPad Pro (12.9) 2048 x 2732 1024 x 1366 2.0 2.0
//iPad Pro (9.7-inch)1536 x 2048 768 x 1024 2.0 2.0
//iPad Air 2 1536 x 2048 768 x 1024 2.0 2.0
//iPad Mini 4 1536 x 2048 768 x 1024 2.0 2.0

extension CGPoint : ExpressibleByStringLiteral {
    public init(stringLiteral value: String) {
    let point = CGPointFromString(value)
    self.init(x: point.x, y: point.y)
    }
}

enum iPhoneScreen : CGPoint {
    case iPhone_X_XS = "{375, 812}"
    case iPhone_XSMax_XR = "{414, 896}"
    case iPhone_8Plus = "{414,736}"
    case iPhone_8_7_6sPlus_6s_6Plus_6 = "{375,667}"
    case iPhone_7_Plus = "{414, 736}"
    case iPhone_SE = "{320, 568}"
    case iPad_Pro_129 = "{1024, 1366}"
    case iPad_Pro_105 = "{1112, 834}"
    case iPad_Pro97_iPadAir2_iPadMini4 = "{768, 1024}"
}

쓸 때는 CGPoint 자체를 써도 되고, iPhoneScreen.iPad_Pro_129.rawValue.x 이렇게 써도 된다.



4. AUTOLAYOUT 맛보기

다음은 각 기 다른 회사의 채용 공고에 있는 iOS 개발자 자격 사항이다.


1. Objective-C, Swift, Auto Layout, Storyboard, 객체지향 등의 이해도가 있으신 분
2. swift, objective-c, auto layout
3. Swift , storyboard, auto layout 사용 경험자

Android 개발할 때는 FrameLayout 보다 RealativeLayout를 많이 쓰니 사실상 auto layout이 맞으나, 결국 아이콘은 xhdpi, xxhdpixxxhdpi 뿐 아니라, sw600dp, sw720dp 등 기억나는 것만 10개 이상의 layout 폴더에 각기 다른 pixel의 아이콘을 넣었었다. 그리고 기종을 체크해서 코드로 레이아웃을 다르게 구현했었다. 왕도는 없더라. 그래야 깨끗하게 나오니까. 삼성폰의 번들 아이콘이기도 했으나...

스타트업이나 중소기업을 보면 Andorid 보다 iOS로 시작하는 경우가 많다. 7~8년 전 내가 알던 안드로이드 폰 종류가 7000천 가지였는데 지금은 만가 지도 더 될 것 같다. 그래서 트러블 슈팅에서 오는 비용을 줄이기 위해 screen density가 단순한 iOS 먼저 개발하고 성공하면 Android를 하는 경우가 많았다. 같이 개발하더라도 Auto layout를 선호한다.

Android에서 autolayout 이 relative 스타일이라면, iOS는 constratins라 하겠다.


Constraints를 제대로 알려면


https://developer.apple.com/documentation/uikit/nslayoutconstraint





NSLayoutConstraint - UIKit | Apple Developer Documentation



developer.apple.com 
부터 보면 되겠지만


좀 더 쉽게 접근하려면 UITableView를 만들고 그 Cell을 코드로 구현하면 된다.


기초는 여기...
https://www.ioscreator.com/tutorials/prototype-cells-table-view-ios-tutorial-ios10
Prototype Cells in Table View iOS Tutorial


When using Table Views inside the Storyboard, prototype cells can be used to create some predefined or even custom layouts of the Table View Cells. In this tutorial we will create a basic Prototype cell, which includes an (optional) image and a title. This


www.ioscreator.com 











트러블 슈팅 팁.


unable to dequeue a cell with identifier
스토리 보드에서 Table View Cell의 Identifier 설정이 맞지 않는 경우.
let cell = tableView.dequeueReusableCell(withIdentifier: "여기", for: indexPath)
여기와 Identifier가 일치해야 한다.


굳이 cell을 붙이지 않더라도 TableView만 붙인 상태에서 테스트해 볼 수 있으니,
let cell: UITableViewCell = UITableViewCell(style:UITableViewCellStyle.subtitle, reuseIdentifier: "Cell")
이 코드로 테이블 뷰가 잘 보이는지 확인할 수 있다.


Could not cast value of type 'UITableViewCell'
self.tableView.register(CustomTableViewCell.self, forCellReuseIdentifier: "여기")

즉, Constraints 만드는 방법은 2가지

contentView.addConstraint(NSLayoutConstraint(item: value, attribute: NSLayoutAttribute.centerY, relatedBy: NSLayoutRelation.equal, toItem: self.contentView, attribute: NSLayoutAttribute.centerY, multiplier: 1, constant: 0))


contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-[title]-[value]-|", options: [], metrics: nil, views: viewsDict))


다양한 옵션은

https://stackoverflow.com/questions/25413239/custom-uitableviewcell-programmatically-using-swift


Custom UITableViewCell programmatically using Swift


Hey all I am trying to create a custom UITableViewCell, but I see nothing on the simulator. Can you help me please. I can see the label only if I var labUserName = UILabel(frame: CGRectMake(0.0, 0...


stackoverflow.com 
를 참고하고 xcode의 autofix 기능을 이용하면 최신 코드로 변경이 가능하다.


맛을 봤다면, 이제 스냅킷을 쓰자.
https://github.com/SnapKit/SnapKit


SnapKit/SnapKit


A Swift Autolayout DSL for iOS & OS X. Contribute to SnapKit/SnapKit development by creating an account on GitHub.
github.com 



-
------------------- 나의 구글 블로그 글 옮겨서 통합 ------------------

 

Android에서 Androidmanifest.xml이 설계도 이 듯, iOS에서는 info.plist 가 비슷한 역할을 한다.

info.plist의 Launch screen interface file base name은 런치 스크린을

Main storyboard file base name은 처음 실행할 스토리 보드 이름을 지정한다.

 

스토리 보드도 xml 파일이다. 

 

<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14313.18" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">

 

처음 실행되는 스토리 보드는 initialViewController 체크박스에 체크를 해야 한다. 물론, GUI로 보여주지만 결국, 다음과 같이  XML이 바뀌는 것이다.

 

<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14313.18" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="QfJ-J6-o4q">

 

스토리 보드에서는 ViewController를 지정할 수 있다. 이제 어떻게 코드가 흐르는지 알 수 있다.

 

autolayout을 위해 스토리 보드에서 constraints를 지정할 수 있지만, 왜 굳이 코드로 해야 하는지는 깊게 설명하지 않고 싶지만 굳이 말하자면, 큰 프로그램이 되는 환경 속에서 UI 작업을 지속적으로 경험해보면 코드로 할 필요성을 느낄 수밖에 없다. 애플이 편하게 MVC로 만들어주긴 했지만 말이다.(안드로이드는 무조건 xml이지...)

개발자는 항상 플랫폼 테스터도 되기 때문에 (본디 디버깅은 재미있지만) 이후 재미없는 디버깅을 하게 될 가능성이 크다. 서버와의 싱크를 맞추려니 콜백 지옥에 빠지고 그 지옥에서 나로려니  MVC를  MVVM으로 바꿔야 한다. 결론은 코드라는 이야기.

 

초유의 관심사 AutoLayout, 1편에서 snapkit을 쓰자고 했다.

 

snapkit은 pod으로 설치하고

  pod 'SnapKit', '~> 4.0.0'

import SnapKit 만 하면 UIView와 그 하위 친구들에게 바로 쓸 수 있다.

 

var firstGroup : UIView 던

var btnVarious : UIButton이던

var iqr : UILabel이던

 

쉽게 constraints를 지정할 수 있다.

 

firstGroup.snp.makeConstraints { (make) in

            make.width.equalToSuperview()

            make.height.equalTo(29)

            make.left.equalTo(0)

        }

 

btnVarious.snp.makeConstraints { (make) in

            make.width.equalTo(29)

            make.height.equalTo(29)

            make.right.equalTo(btnQuestionMark.snp.left).offset(-1)

        }

 

iqr.snp.makeConstraints { (make) in

            make.width.equalTo(110)

            make.height.equalTo(28)

            make.left.equalToSuperview().offset(22)

        }

 

storyboard에서 만드는 것처럼 원하는 view에 add를 먼저 하고 제약사항을 만든다. 붙인 view가 바로 superview다. offset은 + 값과 -값이 있고 둘은 서로 반대 방향이다. 좌표계를 바꿀 수 있지만 보통은 좌측 상단이 0,0이니 어디가 + 방향 인지는 쉽게 알 수 있다.

 

     labelAmount.snp.makeConstraints { (make) in

            make.width.equalTo(52)

            make.height.equalTo(17)

            make.left.equalTo(amount.snp.left)

            make.top.equalTo(amount.snp.bottom)

        }

값을 직접 지정할 수동 있고, 다른 view의 snp를 얻어와서 맞춰줄 수도 있다.

 

그럼 어떤 값 지정이 가능할까? public class ConstraintMaker를 보면

    public var left: ConstraintMakerExtendable {

    public var top: ConstraintMakerExtendable {

    public var bottom: ConstraintMakerExtendable {

    public var right: ConstraintMakerExtendable {

    public var leading: ConstraintMakerExtendable {

    public var trailing: ConstraintMakerExtendable {

    public var width: ConstraintMakerExtendable {

    public var height: ConstraintMakerExtendable {

    public var centerX: ConstraintMakerExtendable {

    public var centerY: ConstraintMakerExtendable {

    public var baseline: ConstraintMakerExtendable {

    public var lastBaseline: ConstraintMakerExtendable {

    public var firstBaseline: ConstraintMakerExtendable {

    public var leftMargin: ConstraintMakerExtendable {

    public var rightMargin: ConstraintMakerExtendable {

    public var topMargin: ConstraintMakerExtendable {

    public var bottomMargin: ConstraintMakerExtendable {

    public var leadingMargin: ConstraintMakerExtendable {

    public var trailingMargin: ConstraintMakerExtendable {

    public var centerXWithinMargins: ConstraintMakerExtendable {

    public var centerYWithinMargins: ConstraintMakerExtendable {

    public var edges: ConstraintMakerExtendable {

    public var size: ConstraintMakerExtendable {

    public var center: ConstraintMakerExtendable {

    public var margins: ConstraintMakerExtendable {

    public var centerWithinMargins: ConstraintMakerExtendable {

 

이런 값들이 있고 스토리 보드를 쓰다 보면 거의 대부분 알 수 있는 것들이다. 주의할 점은 제약 사항 충돌이다. left와 right 제약 사항을 동시 지정해보면 쉽게 알 수 있을 것이다.

 

SnapKit의 원리는 간단하다. 다음과 같이 Int Values를 array에 넣고 나중에 for 문을 돌면서 UIKit의 API를 이용(1편 참조)하여 제약 사항을 지정하는 것이다.

 

    internal static var none: ConstraintAttributes { return 0 }

    internal static var left: ConstraintAttributes { return 1 }

    internal static var top: ConstraintAttributes {  return 2 }

    internal static var right: ConstraintAttributes { return 4 }

    internal static var bottom: ConstraintAttributes { return 8 }

 

10진수로 더해도 되지만, 본디 2진수의 각 자릿수가 더 편하다.

1, 2, 4, 8 이 각각 2진수에서 1, 10, 100, 1000이다. 그래서 2진수로 1111인 15의 값은

    internal static var edges: ConstraintAttributes { return 15 }

에 대입되어 있다.

 

size는 width, height다. 

 internal static var size: ConstraintAttributes { return 192 }

 

   internal static var width: ConstraintAttributes { return 64 }

   internal static var height: ConstraintAttributes { return 128 }

 

최고수는 

  internal static var centerWithinMargins: ConstraintAttributes { return 786432 }

라서 UInt(32비트에서만 2,147,483,647 64비트에서는 

18,446,744,073,709,551,615

... 믓튼 충분)에 담겨있다. 모든 수를 보려면(internal struct ConstraintAttributes : OptionSet... 참조)

 

이런 속성들을 

 

internal static func makeConstraints...

internal static func remakeConstraints...

internal static func updateConstraints...

internal static func removeConstraints(item: LayoutConstraintItem) {

        let constraints = item.constraints

        for constraint in constraints {

            constraint.deactivateIfNeeded()

        }

    }

 

를 이용하여 적용한다.

 

 internal func activateIfNeeded(updatingExisting: Bool = false) {

        guard let item = self.from.layoutConstraintItem else {

            print("WARNING: SnapKit failed to get from item from constraint. Activate will be a no-op.")

            return

        }

        let layoutConstraints = self.layoutConstraints

 

        if updatingExisting {

            var existingLayoutConstraints: [LayoutConstraint] = []

            for constraint in item.constraints {

                existingLayoutConstraints += constraint.layoutConstraints

            }

 

            for layoutConstraint in layoutConstraints {

                let existingLayoutConstraint = existingLayoutConstraints.first { $0 == layoutConstraint }

                guard let updateLayoutConstraint = existingLayoutConstraint else {

                    fatalError("Updated constraint could not find existing matching constraint to update: \(layoutConstraint)")

                }

 

                let updateLayoutAttribute = (updateLayoutConstraint.secondAttribute == .notAnAttribute) ? updateLayoutConstraint.firstAttribute : updateLayoutConstraint.secondAttribute

                updateLayoutConstraint.constant = self.constant.constraintConstantTargetValueFor(layoutAttribute: updateLayoutAttribute)

            }

        } else {

            

NSLayoutConstraint.activate(layoutConstraints)

            item.add(constraints: [self])

        }

    }

 

UI기초 전편의 링크를 보면 constratins를 적용하는 것이 번거로웠다.

 

contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-[image(10)]", options: [], metrics: nil, views: viewsDict))

contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:[labTime]-|", options: [], metrics: nil, views: viewsDict))

contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-[username]-[message]-|", options: [], metrics: nil, views: viewsDict))

contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-[username]-[image(10)]-|", options: [], metrics: nil, views: viewsDict))

contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-[message]-[labTime]-|", options: [], metrics: nil, views: viewsDict))

 

혹은, 

 

        NSLayoutConstraint.deactivate([self])

        let newConstraint = NSLayoutConstraint(

            item: firstItem,

            attribute: firstAttribute,

            relatedBy: relation,

            toItem: secondItem,

            attribute: secondAttribute,

            multiplier: multiplier,

            constant: constant)

.

.

.

이런 식의...

 

그래서 쉬운 문법으로 AutoLayout을 위한 constraints를 쓸 수 있다는 점이 참 매력적인 SnapKit이다. , .snp.makeConstraints { (make) in ...    { $0. ...

 

'Swift & Python 실무 > {APP} SOCANNER APP' 카테고리의 다른 글

스토리보드 이동 방법  (0) 2019.02.14
제주도 항공 촬영  (0) 2019.01.19
C의 struct와 Swift 의 struct  (0) 2019.01.19
userDefault 활용  (0) 2019.01.16
Practical Swift  (0) 2019.01.14

2편이다.


각 언어의 특징으로만 보라는 이상한 말


내가 좋아하는 책이라 여러 권을 산 책이 있다. Objective-C라는 책인데 난 2권 다 있다. 물론, 내가 책을 쓸 때도 이 책의 영향을 많이 받았다.(2.0버전) 마크 달림플(Mark Dalrymple), 스콧 내스 터(Scott Knaster), 와카르 말릭(Waqar Malik). 실무 개발자 3인방의 내공을 책으로도 크게 느낄 수가 있다. 사실, 실무를 오래 한 프로그래머가 깊게 파보면 다른 프로그래밍 언어 책과 큰 내용 차이는 없다. 작은 두 가지의 의견을 새롭게 낼 뿐이었다. 그러나 그 작은 의견은 아는 사람이 보면, 프로그래밍의 정수를 담은 것이라 하겠다. indirection layer와 이 세상의 문제를 완벽하게 해결해 줄 수 있는 단일 프로그래밍 언어는 존재하지 않는다는 것이다. 그래서 각 언어의 특징은 그 언어로 이해하라는 식의 글귀가 있었다.(책 뽑아서 보면 되지만 너무 아래 깔려 있다 ㅠ)


그중 후자는 시중의 책에서 가장 많이 인용되어 잘못 생각하는 사람이 많이 생겨나는 것 같아서 몇 글자 적어 본다. 다른 책이 원조일 수도 있겠지만, 그들의 프로그래밍 역사로 봤을 때 벤치마킹이 분명하다. 후자는 프로그래밍 언어는 바로 그 언어의 특징으로만 봐야 한다는 말이다. 어느 책이나 이 말을 돌려서 하던지, 직접적으로 적던지... 비슷하게 쓴다.


미국에서 사는 사람들의 문화, 한국 사람의 문화. 다르고 언어도 그 문화의 다름과 같이 1:1로 완벽하게 대치될 수 없는 부분이 있다. 그러나 뿌리가 판이하게 다르고 역사도 너무도 깊다. 그에 반해 컴퓨터의 역사를 깊지도 않고 그 뿌리는 결국 인텔 프로세서다. 혹은, ARM Instruction Set이다.


3인방이 말한 것도 한 가지 언어를 배울 때 집중해서 깊게 이해라 하는 뜻이지. 이기종의 언어에서 말하는 똑같은 개념까지도 다르게 표현하라는 뜻은 아니다. 한국말에 있는 부모님 마음속의 한, 인연 등 문화적 관점에서 이해해야 할 부분도 있거니와. 영어 사전에서 쉽게 찾을 수 있는 한국말은 같다고 봐도 무방하듯이 각 프로그래밍 언어의 비슷한 부분은 비슷하게 이해하면 된다.


상속, 다형성, 캡슐화, interface, delegate, abstract, protocol


요즘 코딩 교육을 일반 교사가 직접 배워서 하기 때문에 가끔 지인을 만나 비 전공자 교사의 고충을 듣는다. 사실 나도 코딩 교사가 따로 있을 줄 알았는데 말이다. 어차피 모든 지식은 학교로 다시 돌려보내야 하는 것이 맞으니 몇 가지 적어 본다. 교사는 워낙 똑똑한 사람들이라 이미 지식은 꽉 차 있다. 두리뭉실한 개념을 이 분야의 묵은지가 연결만 시켜주면 되겠다. 비공개로 출판한 책에서 밝힌 적이 있는데, 글로 쓰는건 제대로 전달되지 않지만 끄적여 본다.(장자 윤편으로 검색해서 관련 글을 보시길)


어려운 개념들은 쉽게 말해도 관계없고, 또 그게 많다.


상속은

복사/붙여 넣기.


내가 프로그래밍 수업에서 상속을 가르칠 때도 이렇게 간단히 말한다.


썰을 더 풀면,

다형성은 배열 돌려서 동시 다발적으로 실행하게 만들기 위함이라고 했는데, 사실 실무에서는 그게 다다. 

void pointer가 java에서 object type이다. 그래서 모든 객체를 가리킬 수 있고 그것을 다형성이라 부른다. 


간단한 이론이지만 이것으로 메시지 큐를 구현하고, 또 애플이나 안드로이드 앱 프레임워크를 만든다. 어떤 알림이 오면 각 앱을 list 에 등록하고 for문을 돌면서 브로드 캐스팅 메시지를 날리게 되는 것이다. 


Xcode에서 싱글뷰 어플 test 하나 만들고 Viewcontroller에 넣으면 된다.


우선 해당 글에 있던 델이게이터 예제.

//

//  ViewController.swift

//  test

//

//  Created by Junho HA on 2018. 10. 5..

//  Copyright © 2018년 hajunho.com. All rights reserved.

//


import UIKit


class ViewController: UIViewController {


    override func viewDidLoad() {

        super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.

        let a : implementMe = 지나가던사람()

        a.날사랑하니()

    }

}


protocol implementMe {

    func 날사랑하니() -> Void

}


class 남자 : implementMe {

    func 날사랑하니() {

        print("...")

    }

}


class 관심있던남자 {

    func 날사랑하니() {

        print("어")

    }

}


에서 implementMe 를 상속받는 친구는 implementMe type으로 생성가능하다. 추상화된 포인터로 보면 되겠다.


행인을 하나 추가하고 배열로 선언하면 다음과 같다.


//

//  ViewController.swift

//  test

//

//  Created by Junho HA on 2018. 10. 5..

//  Copyright © 2018년 hajunho.com. All rights reserved.

//


import UIKit


class ViewController: UIViewController {


    override func viewDidLoad() {

        super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.

        let a : [implementMe] = [ 지나가던사람() , 행인1() ]


        a[0].날사랑하니()

        a[1].날사랑하니()

    }

}


protocol implementMe {

    func 날사랑하니() -> Void

}


class 남자 : implementMe {

    func 날사랑하니() {

        print("...")

    }

}


class 관심있던남자 {

    func 날사랑하니() {

        print("어")

    }

}


class 지나가던사람 : 관심있던남자, implementMe {

}


class 행인1 : implementMe {

    func 날사랑하니() {

        print("누구슈")

    }

}


a[0], a[1] 은


   for x in a {

            x.날사랑하니()

        }


로 치환 가능하다.


결국, 인터페이스 하나 던져주고 아래에서 다 구현하라고 하고 어떻게 구현했던 상위 포인터(Object  던 Void Pointer던 상위 포인터든)로 하위 구현부의 메소드를 for 문 돌려서 실행시켜 주면,


모든 앱의 이름도 반환 받을 수 있고,

모든 앱을 실행시킬수도,

모두 지울 수도,

모든 앱의 메시지 수신부에 메세지를 보낼 수도 있다.


다형성은 간단한 개념이지만 매우 강력한 아키텍쳐 패턴의 주요 개념이다. 참고로 우리가 패턴이라고 하는 것들은 대부분 모듈 패턴이다.


캡슐화는

변수 마음대로 못 바꾸게 하기.

가령 속도라는 변수가 있어서 자동차를 제어한다면 그 속도가 0보다 크고 200보다 크게 세팅되어야 한다는 조건을 걸어 주는 게 좋다. 그래서 변수를 직접 제어하지 안혹, getter/setter를 쓴다.


인터페이스는 상속자(상속받은 무언가)가 구현해야 할 껍데기다.

앱스트랙트는 껍데기에 살을 좀 붙인 것이다.


껍데기는 다중 상속이 가능하다.

살이 붙은 것(내용이 있는 것)은 다중 상속이 불가능하다.


다중 상속(복사/붙여 넣기) 해봤자. 껍데기는 껍데기일 뿐이다. 구현해야 할 것만 많아진다.

제약 사항이 많다는 것은 누가 편하게 쓰라고 만들어 놓으면서 제약을 걸어 놓은 것이다.


가령 허허벌판 일 때는 규칙이 없지만, 놀이터를 만들어 줄 테니 아이들만 뛰어놀게 하라는 제약처럼.


프로토콜은 인터페이스와 같다. 다만, 다른 애들이 대신 구현해 줄 수 있다.


protocol implementMe {

    func 날사랑하니() -> Void

}


라는 프로토콜이 있다. 프로토콜은 껍데기다.

Protocol methods must not have bodies


그럼 이 프로토콜(인터페이스, abstract class)를 상속하는 클래스는 무조건 구현을 해 줘야 한다.

class 남자 : implementMe {

    func 날사랑하니() {

        print("...")

    }

}

안하면,

Type '남자' does not conform to protocol 'implementMe'

맞지 않는다고 한다.


만약 구현하고 싶지 않은 누군가가 있다고 하자

class 지나가던사람 : implementMe {

}

이 경우엔 다른 클래스가 구현해도 된다.


class 관심있던남자 {

    func 날사랑하니() {

        print("어")

    }

}


class 지나가던사람 : 관심있던남자, implementMe {

}


관심있던 남자가 날사랑하니()를 구현해 놓았었으니 복/붙하면 implementMe의 요구사항을 충족시켜준다는 뜻. UITableViewDelegate, UIScrollViewDelegate 같이 복잡한 녀석들로 이런 개념으로 쉽게 분석이 가능하다. 다른 복/붙(상속)없이 해당 델리게이트만 상속하면 구현해야할 수많은 stub이 있다.



위에서 말한 모든 개념은 사실 아래의 요구사항으로 생겼다.


1. 잘 만들어 놓으니(framework, library, api,...)

2. 네가 맘대로 복/붙해서 가져다 써(상속)

3. 그런데 몇 가지는 네가 알아서 넣어야 하니까 구현을 해야 할 거야 내가 정해놓은 규칙대로 (인터페이스, 프로토콜, 앱스 트렉트 클래스/매소드)

4. 모두 구현하기 싫으면 다른 애들이 구현한 거 그대로 상속(복사)해서 써(델리게이트)

5. 내가 만든 것의 값은 마음대로 못 바꿔(접근 제한자, 캡슐화) 수치가 0이 되면 사람이 죽을 수도 있으니 0이 들어오면 에러를 발생시켜버릴 때(setter, assert)


그래서 사실 따지고 보면 다 같은 개념은 아니다.


그러나 실무에서는 비슷하다.


모듈을 보는 단계에서는 완전히 다르고,

아키텍처를 보는 단계 해서는 부분 부분 다르고,

시스템을 보는 관점에서는 완전히 같다.


프로그래밍은 어차피 메모리와 CPU의 장난.


lambda, 함수형 프로그래밍, 클로저

 

셋 다 같은 말이다.


모든 함수는 y=f(x) 에서 나왔다.


세상 간단.


함수형 프로그래밍은 람다 대수에서 나왔다.


람다 대수의 핵심은 무언가를 추상화하는 방법과 구체화 하는 방법에 대한 철학이고.

특징은 익명 함수라는 것.


클로저는 기본적으로 함수 포인터다.


    func 주문받기() -> [String] {

        let 주문목록 : [String] = ["짜장면", "짬뽕"]

        return 주문목록

    }


swift 에 이런 함수를 만들었다면 C의 함수포인터로


String (*v)();

v = 주문받기


이렇게 만들 수 있을 것이다.


그러나 swift 는 문법이 쉽다.


let v = 주문받기

var v = 주문받기


쉽게 만들 수 있다. 배가 고프니 중국집을 하나 만들어 본다. 배가 고파 자장면이 아닌 입에 촥 감기는 짜장면을 불러 본다.


class 중국집 {

    func 주문받기() -> [String] {

        let 주문목록 : [String] = ["짜장면", "짬뽕"]

        return 주문목록

    }

}


프로그래밍은 많은 사람들이 작업을 하기 때문에 수많은 클래스에 수많은 함수가 있다. 클래스는 메모리에 없으니 생성해서 만들어 줘야 함수를 쓸 수 있다.


let a : 중국집 =  중국집()

let b = a.주문받기()


자바였다면,

중국집  a = new 중국집();

이었겠지.


클래스 생성없이 메모리에 바로 생성시키는 방법도 있다. primitive type, new, malloc, static

static 은 swift에도 있으니


  static func 주문받기() -> [String] {

        let 주문목록 : [String] = ["짜장면", "짬뽕"]

        return 주문목록

    }

로 선언하면


print(중국집.주문받기())

가 가능하다.


내가 주문하려면, 파라미터를 넣고

  func 주문받기(s : [String]) -> [String] {

        let 주문목록 : [String] = s

        return 주문목록

    }


 let c : [String] = ["짜장면", "짬뽕"]

 print(a.주문받기(s: c))


혹은


  print(a.주문받기(s: ["짜장면2", "짬뽕2"]))

로 하면 된다.


위의 위키피디아 링크 "람다대수"를 보면 함수가 반드시 이름을 가질 필요는 없다. 는 구절이 있다.

b가 그렇다. print(b) 도 되지만, a.주문받기() 혹은 print(a.주문받기(s: ["짜장면2", "짬뽕2"])) 처럼 b를 안 써도 된다. b가 생긴다는 것은 상태 변수 혹은 속성 혹은 멤버변수 혹은 프로퍼티(다 같은 말이다)가 생긴다는 말인데 b 를 안쓰니 함수형 프로그래밍의 특징이 하나는 상태값을 저장하지 않는 것으로 귀결된다. C/C++, Objective-C, C#, JAVA, SWIFT 모두 함수형 프로그래밍 언어의 특징을 구현할 수 있다. 그러나 하나의 프로그래밍 패러다임만 구현하지 않는다.


이 상황에서 주문하는 쪽은 상태를 가질 필요가 없다(중국집 전화번호만 있으면 된다) 그러나 중국집은 주문 목록은 있어야 한다.



한타임 쉬고. <밥먹음 ㅋㅋ> 배부르니 중국집이 하기 싫어진다.


자, 여기까지 하고 문법 짚고 가보자.

보면, 클로저는

(parameters) -> return type in

statements

}

이렇게 선언한다고 한다.


swift 에서 함수 선언은


func #name(parameters) -> return type {

        function body

}


이랬다. func와 이름이 사라지고 {} 가 바깥으로 나와버려서 function body 시작점을 몰라 in 이 들어갔다.

별거 없다.


이제 중국집을 다시 만들고, 고객의 소리를 받아보자.


class 중국집 {

    private var 주문목록 : [String] = []

    static func 고객소리(x : ()->Void) {

        x() //고객의 소리는 x, 실행 명령어는 ()

    }

}


고객의 소리는 이렇게 만드는데,

    func name() -> Void {

            print("짜장면 더 맛있게 해주삼")

        }

        중국집.고객소리(x: name)


앞 서 말했 듯이 내가 func를 가질 필요는 없겠다.


중국집.고객소리(x: {})

중국집.고객소리(x: { () -> Void })

중국집.고객소리(x: { () -> Void in print("짜장면 더 맛있게 해주삼")})


그런데 () -> Void 이거 왠지 결국엔 C의 함수포인터랑 같다. 안돼! 난 최신 언어라구.


중국집.고객소리(x: { print("짜장면 더 맛있게 해주삼")})


이렇게도 가능하겠다.


        중국집.고객소리(x: { print("짜장면 더 맛있게 해주삼")

            print("짬뽕은 더 맵게")

        })


결국 실행은 사장이 하는 거고 구현을 클라이언트(함수를 호출하는 사람)이 하게 되었다. 그리하여 파라미터도 사장이 넣을 수 있다. 사장의 성깔이 좋은지 아닌지 중국집 사장이 직접 넣어보자.


class 중국집 {

    private var 주문목록 : [String] = []

    static func 고객소리(x : (Bool)->Void) {

        x(true)

    }

}


성격이 좋다고 넣었다. 그러면 고객은 한마디 더 할 수 있다.


        중국집.고객소리(x: { (사장성깔좋아) in

            print("짜장면 더 맛있게 해주삼")

            print("짬뽕은 더 맵게")

            if(사장성깔좋아) { print("진짜 맛없어요")}

        })


이렇게 클로저가 탄생하게 되었다. UI 기초 2편을 써야 하는데 스냅킷 내용이 반 이상이라. 클로저를 먼저 짚고 넘어가야할 것 같아서. 물론, 축약 안하고 써도 된다.


        중국집.고객소리(x: { (사장성깔좋아) -> Void in

            print("짜장면 더 맛있게 해주삼")

            print("짬뽕은 더 맵게")

            if(사장성깔좋아) { print("진짜 맛없어요")}

        })


그리고 사실 프로그래밍 할 때 이런 프로그래밍 언어적 특성이나 모듈 패턴을 몰라도 아키텍처만 잘 짜면 굳이 축약 코드로 도배 안해도 충분히 재 사용성이나 메모리 사용량은 감소한다.


결국 임베디드, C/C++을 해야 언어를 제대로 이해할 수 있다. 기초 서적은 외서를 보지만 가끔 국내 서적도 여러권 가서 내가 이해한 것이랑 비교해 보는데 생략된 부분이 너무도 많다. 물론, 나 역시도 써봐서 싣고자 했는데 까먹고 못 실었던 내용이 많으니... 비슷한 경우일 수도 있겠다.


그러나 람다 대수의 위키 페이지를 참고하는 게 함수형 프로그래밍을 더 확실히 이해할 수 있는 지름길이라 하겠다. fxJAVA 도 함수형 프로그래밍인데,...


사실 수학을 떠나, 프로그래밍 언어에서 완전히 함수형으로 된다는 것은 메모리 관리가 완전히 순차적으로 되어야 한다는 말이다. 메모리 청크 찾는 거야 운영체제 단에서 어쩔 수 없다고 해도 그 상위에서는 정말 순차적으로 들어가야 한다. 그래야 데이터 무결성도 지켜지고 액세스 속도도 빠르다.


뭐, 응용 프로그래머야 함수형 프로그래밍 흉내만 잘 내어도 쓸데없는 상태 변수를 만들지는 않겠지만, 결국 언어를 만든 사람이 적절한 타이밍에 메모리 관리를 효율적으로 하는 게 중요하다고 생각한다.


+ Recent posts