자체제작 문제 학생들을 가르치며 학생들에게 쉬운 알고리즘을 학습시키기 위해 만든 문제입니다. 마음껏 퍼가셔도 좋습니다. 상업적 사용은 금지합니다.
누가 제일 강한 히어로지?
list안 요소들의 자리를 서로 바꿔주는 함수
댕댕이는 어벤저스 시리즈를 본 후, 히어로들이 토르 -> 아이언맨 -> 캡틴 아메리카의 순서대로 강하다고 생각했다.
토르는 신이므로 인간이 도저히 이길 수 없고,
아이언맨은 기술로 무장했으므로 이 역시 인간의 능력 이상이며
마지막으로 캡아가 인간 중에서의 최대치라고 생각한 것이다.
하지만 같이 영화를 본 고영이의 생각은 달랐다.
캡아는 이 중에서 가장 약체인 순수 인간이면서(기계가 없는) 가장 올곧고 선한 의지를 가졌기 때문에 이 중에서 가장 강한 존재라고 말했다.
그 다음 아이언맨은 기술의 도움을 받지만 그래도 인간을 초월했다고 볼 수 있어 두번째로 강하며,
토르는 신이긴 하지만 망치 없이는 무쓸모(?)인데다 아이언맨처럼 스스로 개발한 것이 아니라 출신때문에 그냥 부여받은 것이라서 이 중에서는 가장 약한 존재로 봐야 한다고 했다.
그래서 고영이는캡아 -> 아이언맨 -> 토르의 순으로 강하다고 생각했다.
댕댕이는 고영이의 논리에 설득당해 생각을 바꾸게 되었다.
이를 코드로 표현해보자.
댕댕이의 최초 생각을 강한 순서대로 배열해보자.
heroes = ['토르', '아이언맨', '캡틴아메리카']
토론 후의 댕댕이의 리스트는 아래와 같이 바뀌었다.
heroes = ['캡틴아메리카', '아이언맨', '토르']
위의 변화를 살펴보면 list의 [0]번째 값과 [2]번째 자리가 값이 서로 바뀌었다.
이렇게 list의 어떤 요소 두개의 자리를 서로 바꿔치기 해주는 함수를 만들어보겠다.
문제 풀기
이 함수의 이름은 바꿔치기를 의미하는 'swap'으로 하겠다. 이 함수가 하는 일은 list의 [0]번째 값과 [2]번째 값의 자리를 서로 바꾸어주는 것이다. heroes = ['토르', '아이언맨', '캡아'] 라는 리스트가 있다고 할 때, swap이라는 함수에 heroes를 넣고 돌린 결과가 아래와 같이 반환되도록 하면 성공이다. 그리고 heroes에는 바뀐 값이 다시 담기도록 하자. 이 함수를 돌리면 heroes의 값은 아래와 같이 된다.
또 다른 친구 보노보노는 아이언맨의 수트보다 토르의 묠니르가 더 우월한 문명의 초물질적(?) 기술이라고 말했다.
아이언맨의 수트는 토르의 묠니르보다 뒤쳐진 문명이라는 것이다.
그래서 이번에는 아이언맨을 3위로 하고 토르를 2위로 정했다.
이렇게 생각은 계속 바뀔 수 있으므로 이제부터는 바꿀 자리를 입력받기로 한다.
swap() 함수에 바꿀 값들의 자리까지 지정할 수 있도록 하자.
바꿀 값들의 위치를 매개변수 idx1, idx2 로 받기로 한다.
heroes = ['캡아', '아이언맨', '토르']
def swap(list, idx1, idx2): # n1, n2는 list내의 인덱스 번호
# 임시저장소 역할을 하는 temp에 idx1에 있는 값을 저장해둔다.
temp = list[idx1]
# idx1 위치에다 바꾸고자 하는 idx2 위치에 있는 값을 넣는다.
list[idx1] = list[idx2]
# idx2 위치에는 아까 임시저장소 temp에 기록해두었던 최초 idx1 위치에 있던 값을 가져온다.
list[idx2] = temp
return list
# 인덱스 1번 값과 인덱스 2번 값의 자리를 서로 바꾼다.
heroes = swap(heroes, 1, 2)
이제 heroes에는 ['캡아', '토르', '아이언맨'] 이 담겨있을 것이다.
여러분은 과연 어떤 순서대로 강하다고 생각하는가?
heroes = ['배트맨', '슈퍼맨', '아이언맨', '완다'] 이와 같은 데이터가 주어질 때, 위에서 만든 swap( )함수를 이용하여 여러분이 강하다고 생각하는 순서대로 영웅들을 배치해보라.
그저 그런 날, 기분이 좋은 날, 기분이 좋지 않은 날을 반복하다가 뜻밖의 좋은 일이 생기는 선물같은 날들이 있다.
퇴근하고 집에 오니 현관문 손잡이에 쇼핑백이 걸려있었다.
일에 지쳐 빨리 집에 들어가고 싶은 마음뿐이어서 얼른 쇼핑백을 들고 들어오느라 사진은 미처 찍지 못했다. ㅋ
예쁜 포장안에 들어있던 것은, 친한 언니로부터의 맛있는 홈메이드 반찬과 쪽지!
스승의 날이라 준비했단다.
반찬은 당연히 너무 맛있었다. ㅠㅠ 갓 해서 준 듯한 신선함과 엄마의 손맛이 느껴지는 재료 듬뿍 맛 듬뿍, 자극적이지 않고 달지 않고 짜지 않은 그런 맛! 정말 너무너무 맛있었다. 역시 요리도 재능이다. 나에게는 없는 재능. 최근에는 음식을 아예 하지 않고 있어서, 언니가 아니었으면 이런 맛을 볼 수 있었을까 싶다. 맛있다고 유명한 반찬가게에서 사와도 이런 맛은 볼 수가 없었다.
그런데, 스승의 날인데 언니가 나한테 왜...?? 하고 어리둥절 했는데 쪽지를 읽고 의미를 알고 감동받았다.
나를 스승 취급(?)해주신 언니께 매우 감사.💕 ^^*
문장도 글씨체도 어쩜 이렇게 멋지게 쓰시는지!
이렇게 가끔, 내가 누군가에게 도움이 되었다는 사실을 알았을 때 그보다 기쁠 수가 없다.
언니가 그 마음을 표현해주었기에 나도 덕분에 행복하고 감사함에 가득 잠길 수 있었다.
우리에게 표현은 얼마나 중요한가!
그리고 스승의 날 밤, 지난 겨울 해운대로 전학을 간 가르치던 학생에게서 톡이 왔다.
수업하는 동안은 필요한 말 외에는 딱히 대화도 많이 하지 않았지만 나는 평소 학생들에게 대화를 많이 거는 편이라 그 아이와 많은 얘기는 못나눠도 자주 짧은 대화를 하곤 했었다.
하나있는 남동생과 함께 수업을 들으며 항상 무심한 척 하면서 동생을 신경쓰고 챙기던 속 깊은 친구였다.
마지막 수업하는 날까지도 나에게는 아무 얘기 없이 떠났어서 나중에 학부모께 전학으로 이제 수업을 못 듣는다는 사실을 듣고 그동안 정들었었는데 인사도 못하고 헤어진 것이 섭섭하고 아쉬웠었다. 그런데 얼마후에, 그 친구가 깜짝 놀라게도 손편지로 메세지를 보내왔었다.
속이 깊었던 친구라, 앞에서는 말로 하지 못했던 자신의 마음을 글로 담아 보낸 것이었다. 전학가니까 이제 못온다는 말을 하기가 수업시간에 얼굴을 보고 말하기 어려웠었나 보다. 그런 마음을 알고 나니 뭉클함이 밀려왔었다.
그 후로 정말 아주 가끔, 뜬금없이 이 친구와 그 동생이 떠오르며 잘 지내는지 생각날 때가 있다.
정말 신기하게도 그런 날은 어김없이 이 친구로부터 톡이 온다.
학생에게 동의 받았습니다 ㅋ
중학생 답게 늦게까지 잠을 안자는지 이렇게 늦은 시간에 톡이 왔다. ㅋ
한창 공부하느라 책과 씨름하다가 톡을 확인하고 얼마나 감동받았던지💖 하루동안의 피로가 모두 한방에 가시는 기분이었다.
당장 답장을 했다. ㅇㅇ아. 너는 항상 선생님이 준 것보다 더 많은 것을 내게 돌려주는구나! 고마워. 네 덕분에 나도 더 좋은 선생님이 되기 위해 노력하게 된단다!
한편으로 내가 이 아이에게 이만큼 감사를 받을만한 일을 했던가 하는 생각이 들며 부끄러워진다. 그리고 나를 돌아보게 된다.
간단하게 요약정리나 하고 예제 조금 실으면 됐을지도 모르지만, 그렇게 하기는 싫었다. 또또 나의 열정이 막 불타올랐다.
그래서 까짓거 그럼 만들지 뭐! 하면서 교재를 만들게 됐다. 한달정도의 여유기간이 있었는데, 마지막 2주정도는 정말 밤을 새워 몰입해서 만들었다. 매일 하루 3~4시간정도 잤던 것 같다. 아마 시작한지3일째되는 날부터 후회하기 시작했던 것 같다.
그렇게 단기간에 만든 교재니 뭐 퀄리티가 얼마나 될까마는, 그래도 10차시안에 함수까지 갈 수 있도록 구성하면서 최대한 쉽고 이해가 잘 가도록 최선을 다했다.
강의를 하면서도 교재를 완성해나갔기 때문에 그날그날 교재를 출력해 들고 갔다. 하루에 한사람에게 주는 양이 몇십장이어서 집에서 다 출력해가기가 아까웠다갈 수가 없었다. 그래서 한부만 집에서 출력해서 학교에 가서 복사해서 아이들에게 나누어주었다.
복사를 마치면 내 팔에는 약 100~200장가량 프린트물이 들려있곤 했는데 학교측에서는 내가 들고 있는 종이 양을 보고 깜짝 놀랐다. 아니 그럼 단 몇장이면 될 줄 알았냐고...
거금 2,000원을 털어 일일히 쫄대화일에 다 끼워줬지만 분실하는 아이들도 있었고 결석한 날의 프린트물은 없거나 했다. 또 나는 정성들여 컬러로 제작했건만 학교 복사기로 흑백복사해서 나누어주다보니 글씨도 잘 안보이고 내가 원하는 느낌이 전혀 아니었다.(컬러 복사 되냐고 묻고 싶었지만 내가 매일 A4를 100장 이상 써제끼는 걸 보고 놀라시는 교감선생님을 보고 참았다) 나는! 고퀄! 고퀄이 좋다고!
그래도 6명의 친구들을 데리고 1주일동안 정말 재미있게 수업했다.
그 중 몇명은 차출(?)되어 온터라 코딩이 뭔지 타자치는 방법도 모르는 친구들이었다. 그런데 점점 흥미를 가지며 자기는 이제 해커가 되겠다고 장난치기도 했다. 갈수록 눈을 반짝이며 수업을 듣는 모습을 보니 피로가 다 사라지는 것 같았다.
10차시 수업을 마치며 정신없이 몰아친 스케쥴안에서 아이들이 개념들을 다 이해했는지 걱정됐고, 기왕 의욕이 올라온 아이들을 위해 남은 과정은 혼자서라도 공부할 수 있도록 교재를 주고 싶었다.
혹시 교재를 제본해서 만들어주면 받고 싶은 사람이 있는가 물었더니 1명을 제외하고 모두 열정적으로(?) 받고 싶어했다. 그게 왜 그렇게 뿌듯했던지. 내가 만든 교재를 받고 싶어하는 사람이 83.3%나 되다니!
마치 단체손님 예약 주문을 받는 느낌
소량 제본을 맡기려니 비용이 생각보다 많이 나왔다. 권당 2만원이었던가. 그래서 '이럴거면 차라리' 병이 도지고 말았다. 십만원주고 제본할거면 차라리, 제본기를 사서 직접 하자! 사두면 앞으로도 두고두고 쓸테고, 그럼 비용도 오히려 더 싸게 친다! ... 라고 스스로를 속이며 열심히 검색을 해서 제일 가격대비 품질좋은 열제본기 한대와 열제본 커버 한세트를 샀다.
그리고 종이도 100g짜리 질 좋은 용지 한박스를 샀다. 기왕 만들어주는 거 튼튼하고 예쁘게 만들어주고 싶었다. 오래오래 보도록!
어머. 그런데 5년간 잘 쓰던 프린터가 오랜만에 쓰려고 보니 고장났네? ... 프린터도 새로 샀다. ...
그때 애들에게 주려고 제본한 교재
총 400여장을 출력하는데는 6시간 걸렸다. 약속한 날까지 가져다주기 위해 밤을 꼬박새워 프린트하고 제본까지 마쳐서 학교로 가져다 드렸다. 책을 받길 원했던 아이들 목록과 함께.
그러고 돌아오는 발걸음이 그렇게 가벼울 수가 없었다. 맞다. 실로 그때 나는 가벼웠다.
왜냐하면 내 지갑이 텅 비어버렸기 때문이다. 약 2주를 밤새 준비하고 1주일간 열심히 강의하고 남은 것은 제본기 한대와 프린터 한대였다.
그렇게 되었다.
그래도 뭐 나름 괜찮다고 스스로를 다독였다. 맨 처음에 강의 계약을 할 때 1년 계약기간으로, 첫 수업에서 학생들로부터 만족도가 잘 나오면 그 뒤 남은 기간동안 수업을 하는 조건이었기 때문이었다.
언제쯤 연락이 올까. 매일매일 설레었다. 만족도 조사결과가 나왔는지 궁금해서 담당 교사께 톡으로 여쭤보기도 했다. 수업을 지속하고 못하고보다 아이들이 얼마나 내 수업에 만족했는지, 내가 수업을 재미있게 했는지 충분히 잘 전달했는지가 너무 궁금했다.
그런데 담당하신 분께서는 답변은 주신다고 해놓고도 없었고, 몇차례 문의하니 본인은 새학기에 다른 학교로 가신다며 인수인계를 잘 해놓을테니 걱정마시라 하셨음에도 결국 아무런 인수인계를 하지 않고 가셨다 한다.
뭐라구요?
학교측에서는 나와 면접보고 계약서를 작성할 때 했던 약속들은 모두 깡그리 잊은 듯 새롭게 강사를 뽑는 공고를 냈고, 나는 1년 계약서를 써놓고도 다시 응시해서 면접도 다시 보고 다시 계약서를 또 쓰는 이상한 상황이 되어버렸다.
아이들이 좋아하겠다며 잘 나눠주겠다고 하시던 내 교재들은 한권도 밖으로 나가지 못한채 캐비닛에 쳐박혀있었고, 일을 이어받은 새로오신 선생님이 그걸 발견하셨다고 한다.
부들부들...
이 과정들에서 나는 상처를 받았다. 학교가 나에게 했던 약속은 물론 계약서에 적혀있던 사항조차 제대로 지켜지지 않았고, 무엇보다 아이들과 철썩같이 약속했던 교재들이었는데 단 한사람의 손에도 가지 못한 것이 속이 상했다. 후에 다시 만난 아이들에게 물어보니 교재를 가져가라는 연락을 전혀 듣지 못했다고 한다.
그리고 강사인 내가 하면 심각한 잘못이 될 일들이 학교측에서는 아무 미안함도 없이, 문제 될 것도 없이 그냥 지나가는 것이 부당하다고 느꼈다. 분명히 첫 계약서에 쓰여있던 계약기간조차 무시하고 새롭게 계약을 맺을 수 있다는 게 아이러니했다. 계약서 내용을 강사는 무슨 일이 있어도 지켜야 하는데 말이다.
이 일은 나의 열정에 분명히 영향을 주었다. 물론 아직도 나는 새로운 일에 불꽃이 튀거나 하면 또 완전히 몰입하고 만들어내는 걸 즐긴다.
하지만 다시는 학교라는 장소에서 그만큼 열의를 쏟고 싶지 않은 것이 솔직한 마음이다.
어쨌든 그때의 경험은 좋은 자산이 되긴 하였다.덕분에 제본기도 생기고(눈물) 프린터도 새로 사고(눈물x2) 짧은 시간에 교재를 만들어내는 요령도 익혔으니 말이다.
지금은 결국 그 학교에서 다시 일을 하고 있긴 하지만, 또다시 교재라던지 하는 부분에서 내가 받아들이고 싶지 않은 요구를 받는다면 언제라도 그만두려고 한다.
네.
비단 이 곳 뿐만이 아니라 일을 하면 할수록... 여러가지로 학교에서 일을 하는 것이 나에겐 참 안맞다는 생각을 자주 한다.
빠르게 변하는 시장에서 새롭고 좋은 교재들이 하루가 멀다하고 쏟아지는데 미리 정해둔 교재가 아니면 쓸 수 없다거나, 강사에게는 새로운 것 혁신적인 것을 원하면서 새로운 프로그램을 시도하려고 하면 난색을 표한다거나 ... 지원없이 알아서 하길 바란다거나...
딱딱 정해진대로 맞춰진대로 하지 않으면 곤란한 것도...
여러모로 나에게는 참 갑갑하게 느껴진다. 나는 자유롭게, 이것저것 시도해보면서 아이들에게 충분히 배움을 만끽하고 머물수 있게 해주고 싶은데, 학교의 요구에 맞추려다 보면 그럴 수가 없다.
이렇게 학교랑 안 맞는 내가 어쩌다가 또 학교로 흘러들어와서 일을 하고 있을까. 이래저래 생각이 많아진다.
0 : 3 개 1 : 1 개 2 : 2 개 3 : 0 개 4 : 3 개 5 : 2 개 6 : 2 개 7 : 0 개 8 : 2 개 9 : 0 개
0은 몇개이고 1은 몇개이고 이런식으로 출력하면 된다.
자 이제, 문제를 해결하기 위해 단계를 잘게 쪼개어 생각해보자.
2) 생각하기
포인트 1.
먼저 list의 첫 요소부터 마지막 요소까지 한바퀴 돌아야 한다.
포인트 2.
위처럼 한바퀴 돌면서 해당 값의 개수를 누적시켜 '메모장'에 적어두어야 한다.
위 두가지 포인트를 기억하고 이제 코드 작성으로 들어가보자.
우리가 만들 것은 여러개의 데이터를 던져주면 그 안에 어떤 숫자가 몇개가 들어있는지 알려주는 자동화기계이다.
! 주의 : count() 명령어는 사용하지 않기로 한다. 왜냐하면 사실 이 짓을 하는 이유는 count()와 같은 기능을 직접 구현해보는 데 목적이 있기 때문이다. 파이썬 선배님들(?)이 미리 만들어놓은 count()명령어가 하는 일을 어떤식으로 구현해 낼 수 있을지 아이디어를 내고 검증하는 데 목적이 있다.
3) 코드짜기
1. 틀 만들기
이제부터 만들 자동화기계의 이름은 how_many라고 하겠다.
먼저, how_many라는 함수를 선언한다.
그리고 사용자가 던져주는 데이터를 받아담을 빈 서랍(변수)가 필요하다.
변수 이름은 아무것이나 상관없지만 나는 data라고 지어주었다. 이 서랍은 위에서 나온 list가 들어갈 공간이다.
def how_many(data):
2. 메모장 준비
일단 데이터로 주어질 list에는 0부터 9까지의 숫자만 존재하는 것을 우리는 미리 알고 있다.
그러니 메모장에 미리 0부터 9까지의 칸을 만들어둔다.
이 칸은 각각 인덱스 넘버로 구분한다. 0번째 인덱스 자리에는 숫자 0의 개수를, 1번째 인덱스 자리에는 숫자 1의 개수를 적는 식이다.
칸을 만들때 파이썬 규칙에 따라 그 칸들을 비워둘 수 없으니 초기값 0으로 채워준다.
def how_many(data):
memo = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # 이 부분
이렇게 0을 10개나 일일히 찍는 것은 실수가 있을 수도 있고, 비효율적이다. 혹시 데이터가 커져서 더 많은 칸을 만들어야 할 때는 매우 귀찮아진다. 0을 100개씩 찍어야 한다거나 1,000개씩 찍어야 한다면... 오 마이갓.
그래서 아래처럼 리스트 안에서 for문을 사용하여 자동화 하자.
def how_many(arr):
memo = [0 for i in range(10)] # 이 부분
이렇게 해두면 range()안의 숫자만 수정하여 0을 100개도 1,000개도 만들 수 있다.
이제 아래와 같은 10칸짜리 메모장이 준비가 되었다.
현재 memo 변수에는 위와 같은 list가 담겨있다.
3. 데이터 한바퀴 돌기
입력받은 데이터를 처음부터 끝까지 훑어야 하니 아래처럼 data를 범위로 하는 for문을 작성한다.
def how_many(data):
memo = [0 for i in range(10)]
for i in data: # 이 부분
이렇게 처음부터 마지막까지 한개씩 살펴봐야 한다.
4. 개수 세기
첫번째 데이터부터, 메모장의 해당칸에 개수가 누적되도록 한다.
첫번째 데이터가 '4'이니까, 메모장의 4번째 칸에 +1이라고 개수를 up 해주는 것이다.
def how_many(data):
memo = [0 for i in range(10)]
for i in data:
memo[i]+= 1 # 이 부분
위 코드를 모두 돌고 나면, memo장에는 data내 모든 숫자의 count된 개수가 기록되어 있다.
아래 그림을 참고하여 이해해보자.
5. 결과 출력하기
개수 세기가 끝나고 나면 memo 변수 안에 결과물이 아래처럼 예쁘게 담겨있을 것이다.
이제 이 결과를 보기 좋게 출력해준다.
memo에는 0번째 인덱스에 0의 개수가, 1번째 인덱스에 1의 개수, 2번째 인덱스에 2의 개수... 이런식으로 숫자들이 담겨 있다.
memo역시 처음부터 끝까지 한바퀴 돌아야 하니 for문을 작성한다.
그리고 memo의 첫요소부터 마지막 요소까지 출력하도록 한다.
def how_many(data):
memo = [0 for i in range(10)]
for i in data:
memo[i]+= 1
for ii in range(len(memo)): # 이 부분
print(ii, '->', memo[ii]) # 이 부분
주의할 것은 for문에서 memo를 범위로 줄 때 range(len(memo )) 이런 형태로 감싸주어야 한다는 점이다.
왜 이렇게 써야 할까? 그냥 for ii in memo 라고 작성하면 안되는 걸까?
for ii in memo 라고 작성할 경우 for문이 참조하는 범위가 memo의 값 [3, 1, 2, 0, 3, 2, 2, 0, 2, 0]이 된다.
결과를 출력할 때 memo[0], memo[1], memo[2] ... memo[9] 이렇게 인덱스 넘버 순서대로 돌아야 차례대로 몇개인지 기록해놓은 값인 3, 1, 2, 0... 을 가져올 수 있. But, 만약 memo자체를 범위로 주면 값인 [3, 1, 2, 0, 3, 2, 2, 0, 2, 0]이 범위가 되고, 따라서
memo[3], memo[1], memo[2], memo[0]... 이렇게 가져오는 순서가 뒤죽박죽 엉망이 되고 만다.
for문은0부터 10미만까지반복하게 된다. 따라서 0, 1, 2... 8, 9까지 반복하게 되고, memo[0], memo[1], memo[2] ... 순으로 올바르게 값을 가져오게 된다.
4) 테스트
코드 작성이 끝났다면, 이제 코드를 실행시켜보자.
def how_many(arr):
memo = [0 for i in range(10)]
for i in arr:
memo[i]+= 1
for ii in range(len(memo)):
print(ii, '->', memo[ii])
list = [4, 0, 4, 4, 1, 8, 8, 2, 2, 5, 0, 6, 5, 6, 0] # 데이터
how_many(list) # 함수 실행
갈때는 인터미디에잇(3단계) intermediate 였던 것이 돌아올 때쯤에는 그래도 아주 약간 업그레이드 되어서 어퍼 인터미디에잇(4단계) upper intermediate가 되었었지만 한국으로 돌아온 후 다시 인터미디에잇(3단계) intermediate로 완전히 돌아왔다.
그리고 그게 지금까지 변함이 없다.
15년전에 다녔던 시드니 kent street의 랭귀지 스쿨.
20대초부터 왜 나는 영어가 늘지 않을까 하고 늘 고민했다. 그러다 자각한 뼈아픈 사실은, 나는 영어를 제대로 공부해 본 적이 없다는 것이다.
한번도 무언가를 A부터 Z까지 제대로 끝마쳐 본 적이 없는 나의 성향 탓이다. 호주까지 가서도 공부는 제껴두고 놀기 바빴다.
성인 ADHD가 아닐까 하고 스스로를 의심하는 나는 항상 무언가를 해도 띄엄띄엄하게 되는데, 아니나다를까 영어공부도 그렇다. 그래도 내 인생에서 가장 치열하게 영어를 공부 했던 시기가 딱 두번이 있었다.
첫번째, 중학교때 전교에서 가장 무서운 선생님이 영어를 가르치던 때였다. 말 안듣는 아들때문에 화가 나서 설거지하던 후라이팬을 던졌는데 후라이팬이 방문에 날아가 꽂혔다던, 체구는 자그마하지만 아주 무섭고 파워풀한 여성이셨다. 학생들보다 키가 작지만 교내에서 제일 성질더럽기로 소문난 이 분은 여학교에서도 매일같이 학생들을 패고 다니셨다. 지금은 상상도 할 수 없는 이야기지만 그때는 그랬다.
그래도 학생들에게 공포는 살지언정 미움은 사지 않았던 것이 이분에게는 절대적인 2가지 원칙이 있었다. 1. 숙제를 해올 것. 2. 안해오면 맞는다.
문제는 그 숙제라는 것이 영어 교과서 단원 하나를 통째로 외워오는 것이라는 데 있었다. 첫 수업날 앞으로 매주 한 단원의 모든 문장을 외워오는 숙제를 내 줄 것이고 해오지 않은 사람은 맞는다는 아주 간결한 규칙을 알려주셨다. 학생들은 모두 코웃음쳤다. 영어 단원 하나를 며칠만에 통째로 외운다는게가능하지도 않을뿐더러 그걸 매주 검사하리라고 생각하지 않았었다.
자연스럽게도 다음 수업시간이 돌아왔을 때, 숙제를 해온 학생이 거의 한명도 없었던 걸로 기억한다. 지금은 잃어버렸지만 당시에는 나에게 책을 몇번만 봐도 잘 외워지는 참 좋은 능력이 있었다. 아무도 안해와서 흐지부지 될것 같기도 했지만 겁이 많았던 나는 왠지모를 불안감에 일단 거의 다 외웠다.
90년대 중반에 사용하던 중학교 영어 교과서. 중고책 판매 페이지에서 퍼왔다.
그래서 다행히 살아남았다. 그 전설의 레전드인 선생님은 자신이 했던 말을 철저히 지켰다. 당시 50명이 넘던 반 아이들을 모두 일일히 종아리를 때리셨는데, 단 한명도 제외하지 않고 처음부터 끝까지 똑같은 강도를 지켰다. 한명당 3대씩이었나 5대씩이었던가.
나와 다른 한명정도를 제외하고 나머지 모든 학생이 풀스윙으로 종아리를 맞았다. 우리보다 체구도 작았던 가냘픈 여자 선생님이 도대체 식단구성을 어떻게 하시는지 궁금해질만큼 한시간내내 같은 강도로 때렸다. 두번째 수업은 그렇게 맞느라 시간이 다 갔다.
그 다음 수업부터는 기적이 나타났다. 나는 그때 인간에게는 한계가 없다는 것을 깨달았다. 한반에 한두명씩 있는 학업을 아예 포기한 친구들을 제외하고 모든 학생들이 교과서를 외워온 것이다. 영어단원 하나를 통째로 외운다는 게 누구에게나 가능한 일인 줄 그때 처음 알았다. 반에서의 등수와 상관없이 공부를 잘하고 못하고와 상관없이 외워왔다. 그야말로 두뇌의 신비였다.
그 선생님은 항상 공평했다. 때리면서 공평하다고 하니 좀 이상한데, 자신의 감정에 따라 매를 휘두르는게 아니라 안해오면 때리고, 해오면 안때렸다. 1년 내내 강철같은 선생님이었지만 느슨할 때도 있었다. 바로 열심히 외우려고 노력한 흔적이 있을 때였다. 실컷 외웠는데 생각이 안나 버벅이면서 얼굴이 벌개져 고개를 숙이는 아이들은 봐주거나 살살 때렸다. 그러나 딱 봐도 외우려는 노력조차 안한 아이들은 사정없이 맞았다. 그리고 학생들을 미워하지 않았다.
그래서 그런지 대부분 아이들도 불만이 없었다. 그 선생님 수업이 있는 날은 소위 일진인 아이들도 아침부터 영어교과서를 들고 공부하는 날이었다. 쉬는시간에 책상위를 뛰어넘어 다니던 아이들도 그날만큼은 쉬는시간을 쪼개가며 공부했다. 그렇게 지금은 상상도 할 수 없는 무슨 군대 훈련소같은 방식 덕분에 중학생때 영어 하나는 확실하게 공부 했다. 집안형편때문에 학원을 다닌적이 거의 없는데도 내가 영어 기초에 나름 자신이 있는 건 중1, 중2때 교과서를 통째로 외웠던 덕분이다.
그때 공부해둔 걸로 수능때까지 버텼다. 고등학교에 가서는 놀기 바빠서 영어 공부를 한 적이 없다. (영어 교과서가 어떻게 생겼는지도 기억나지 않는다. 중학교 교과서는 어렴풋이 기억이 나는데) 그래도 수능 80점 만점에서 52점인가 나왔었다. 중학교때 열심히 해둔걸로 근근히 버틸만했다.
두번째로 영어에 초집중했던 시기는 몇년전에 어린이집 엄마들과 함께하는 영어 스터디를 이끌 때였다. 야나두를 잠깐 이용해보고 애니메이션으로 하는 영어공부에 눈을 떴을 때였다. 이런 체계로 스터디를 하면 재미있겠다 싶어서 방법을 연구하고 참여할 사람들을 모집해서 몇달간 진행 했었다.
방법은 이랬다.
1. 쿵푸팬더 1편을 우리말로 각자 본다. 그러면 어떤 스토리이며 대충 어떤 대사가 오가는지 기억하게 된다.
2. 이제부터 영어자막으로만 매일 30초정도의 분량으로 자른 영상을 본다. 그 중에서 자막에 일부러 자막에 포함시키지 않은 짧은 문장한개를 받아쓰기한다.
아직까지 너무 긴 문장은 힘들기 때문에 영어자막으로 보여준다. 당시에 우리 스터디그룹은 대부분 레벨 1 수준이었으므로 조금만 문장이 길거나 어려우면 포기하는 멤버들이 나왔다. 그래서 일단 모든 멤버가 최대한 지치지 않고 가는 걸 목표로 정했다. 그러니 문장은 최대한 단순하고 잘 들리며 흔히 쓰는 단어로 구성되어 있어야 했다.
액션씬이나 대사가 없는 씬은 잘라내기 때문에 하루30초 분량이라 해도 100일 정도면 애니메이션 한편을 완주하게 된다.
3. 위 과정을 마치고 나면 다시 처음으로 돌아가 반복한다. 다만 이번에는 좀 더 긴 문장 두세개를 자막없이 받아쓰기한다. 이미 한번 다 들어본 문장이라 앞 사이클보다는 수월하다. 이 과정은 좀 더 짧게 걸렸던 것 같다. 70일 혹은 80일만에 끝났던 것 같다.
4. 위 과정을 다시 반복하는데 이번에는 문장이 더 길어지고 클립의 양도 늘어난다. 이렇게 해서 한두달 안에 세번째 복습을 마치는 게 목표였다.
스터디모임은 나의 개인사정으로 4번 단계를 진행하다 중단하게 되었지만 이 시간은 내게 큰 경험이 되었다.
매일 영상을 편집하고 번역해야 했다. 기존 자막은 의역이 많아 영어 초보자들에게는 적합하지 않았다. 유아동이 우리말을 배우듯 직독직해하여 보여주어야 이해가 쉽기 때문에 모두 내가 손수 다시 번역해야 했다.
자막을 달고, 퀴즈를 낼 문장을 선택하고, 정답으로 제공할 영상을 다시 편집하고... 30초 분량의 클립을 위해 하루 한두시간씩 공을 들였는데 그렇게 즐거울 수가 없었다. 또 그렇게 영어에 몰입했던 적이 없었다.
그리고 이 때 나는 평생 컴플렉스였고 죽어도 안되던 듣기가 조금씩 되는 신기한 경험을 했다.
그래도 내 영어는 여전히 중학생 수준에 머물러있다. 도무지 늘지 않는다. 당연하다. 나는 영어에 시간을 그만큼 충분히 투자하지 않았다.
그동안 한번도 영어 학원을 2달 이상 다녀본 적이 없었고 영어 관련책을 처음부터 끝까지 본 적이 없었다.
그러다 작년부터 다시 영어공부의 필요성을 절실히 느낀 것은, 개발공부를 하면서 MDN문서를 봐야해서였다.
정말 무슨 말인지 하나도 모르겠다.
그나마 MDN문서는 깔끔하고 정제된 문장으로 되어 있어 하나하나 독해하려면 시간이 아~주 많이 걸려도 가능하지만, 스택오버플로우 같은 경우는 우리가 댓글 달 때 문어체로 달지 않는 것처럼 거기도 구어체가 많다보니 정말 무슨 말인지 전혀 못알아먹겠는 때가 종종 있다.
코드를 짜다 버그가 발생했을 때 1분 1초가 바쁜데.... 스택오버플로우 사이트에서 암호 해독하듯 떠듬떠듬 읽다가 포기하고 집어던지고 한글로 검색하며 얼마 나오지 않는 소스에 답답해 가슴을 칠때, 아.. 영어공부!!!!! 라는 단어가 머리속을 점령하곤 했다.
코드만 따온다고 끝이 아니라 나는 원리를 알고 싶은데! 그 원리가 다 영어로 씌여있다! ㅠㅠ
(파파고나 구글번역은 대체로 유용하지만 간혹 더 헷갈리게 할 때가 있으니)
그래서 나는 영어책을 그렇게 사모았나보다. 정작 보지도 않으면서. 그동안 사모은 게 수십권인데 얼마전에 그득하게 쌓여있는 문법책들이 너무 징그럽게 느껴져 몇권만 놔두고 다 내다버렸다.
그리고 오늘 문득 책장에서 딱 눈에 띈 두권만 샥 뽑아들었다.
이 책은 그동안 사본 책들 가운데에서도 정말 좋은 책이라는 생각이 들었던 책으로, 나처럼 초중급에서 애매하게 다음단계로 못넘어가는 사람들이 기초를 다시 다지고 싶을 때 유용하다. 하도 오래전에 배워둔 문법들이 자주 사용하지 않아 가물가물할 때, 정말 추천한다.
하루 분량이 4페이지 정도인데 쓰는 양이 얼마 안된다. 가벼운 마음으로 시작할 수 있다. 전혀 부담주지 않는다. 그러면서 문법을 한번 싹 훑는다.
이 책은 시리즈로 있는데 지금 내 책장에 있는 책은 그 중 2번째 책쯤 된다. 앞권은 어디로 사라졌는지 보이지 않는다. 앞권이 15일 안에 완성이고 뒷권에 해당하는 위 책이 또 15일에 완성, 합쳐서 한달안에 완성하는 프로그램이다. 정말 괜찮다. 눈높이 영어를 하던 기분으로 하루에 문법 한 파트씩 정복하는 것이다. 한달안에 기본문법을 다 훑을 수 있다. 물론 문법공부에 이미 조금 익숙한 사람이어야 효과가 있을 듯 하다. 자세하게 설명하지 않기 때문에.
이 책이 정말 좋다고 생각하는 것은, 예전에 스터디 모임을 이끌때 했던 방식처럼 문장 확장 방식으로 학습하게 되어 있다는 것이다.
첫 파트에서 '그것은 날아가는 비행기였어요'문장이 다음날에는 '그것은 산 너머로 날아가는 비행기였어요'로 발전한다.
이렇게 간단한 구조의 문장에서 살을 붙여나가며 문법을 전체적으로 훑는데 한권에 15일밖에 걸리지 않는다. 정말 마음에 든다.
이 책을 다 하고 나면 다음 단계로 에세이 라이팅이 있고 그 다음단계로 이메일 라이팅이 있다.
총 합쳐서 100일 완성 프로그램이라고 한다.
오늘부터 도전한다. 한번도 영어 책 하나를 마스터해본 적이 없는 내가 이 책을 마스터해보기로 결심했다.
100일동안 할 것이 참 많다. 꿈 100일쓰기도 한달째 하고 있고...
이 책은 어원으로 하는 단어 공부에 꽂혔을 때 샀던 책이다. 오래전에 뇌새김 영어를 잠깐 체험했을 때였다. 어원 하나를 알면 단어 한개를 외워도 약간씩 변형된 다른 단어 7~8개까지 더 알수 있으니 암기하는게 죽도록 싫은 나한테는 획기적인 방법이라고 생각했다.
그때는 매우 효율적이라고 생각했는데 지금은 사실 잘 모르겠다.
맥락없이 단어만 외우는 것에 회의감이 있어서다. 그런식으로 기억한 것은 뇌가 오래 가지고 있지 못한다는 것을 알게 되어서이다. 어원을 안다는 것 자체가 단어에 대한 맥락을 알게 되긴 하지만... 경험상 단어만 외우는 것보다 그 단어를 포함한 통문장으로 외우는 것이 가장 효과적이었다. 아이들이 동화책으로 영어를 배우듯이 배우는 것이다.
이 부분은 사실 내가 아직 잘 모르기 때문에 가타부타하기가 어렵다. 일단은 이 책도 좋은 책이니 시도해보기로 한다.
돌이켜보면 내가 스스로 집중과 몰입했을 때 영어가 늘었었다. 학원을 가서 한시간 앉아있다 오는 동안에는 는다는 느낌이 들지 않았었다. 심지어 비싼 돈을 주고 하루종일 어학원을 다닐때도 마찬가지였다.
중학교때 맞지 않기 위해 미친듯이 한가지 방법으로 한우물을 팠을 때, 영상편집하고 문제 만드는 게 재미있어서 미친듯이 몇달간 집중했을 때, 그때 습득한 게 내 영어의 거의 전부다.
두 시기의 공통점은 내가 스스로, 집중하고 몰입했었다는 점이다.
결론.
15년째 초중급인 내 영어 좀 어떻게 해보고 싶을 때, '좋은 책'을 골라 한권을 마스터해본다. 나 스스로.
나도 현재 메타버스 수업을 하고 있지만, 메타버스라는 개념에는 어떤때는 회의적이었다가, 어떤때는 긍정적이었다가 오락가락하는 편이었다. 메타버스가 무엇인지 사전적 설명은 할 수 있었지만, 누군가가 그래서 메타버스가 게임과 뭐가 다른데? 하고 물어온다면 쉽사리 답할 수가 없었다.
메타버스가 무엇인지 어떤 플랫폼들이 현재 나와있는지를 알려주는 책들은 많았지만, 정말 메타버스가 우리 삶을 바꿔놓을까? 주가를 띄우기 위한 기업들의 설레발은 아닐까? 이런식으로 사라져갔던 과거 기술들이 얼마나 많았던가? 예를 들면 처음 등장할 때는 모든 TV시장을 집어삼킬것만 같다가 지금은 언급조차 되지 않는 3D TV처럼, 메타버스라는 기술도 곧 그렇게 시들해지지 않을까? 이런 질문들에 속시원하게 답해 줄 자료를 찾고 있었다.
그래서 정한 책이 이 책이었다.
미라클 북클럽에서는 한 책을 가지고 3주간 토론한다. 그동안 경험해 본 바, 1달은 너무 길었고, 2주는 항상 아쉬웠다. 그래서 3주로 정했는데 아주 만족스럽다. 책을 꼭꼭 씹어 읽기에 딱 적당한 기간이다.
어제는 이 책의 첫 주간으로, 나는 겨우 50페이지밖에 읽지 못하고 참석했다. 그런데 그 안에서 토론을 나누다 보니 메타버스에 관한 많은 생각들이 정리가 되는 것을 느꼈다. 혼자서 사색하는 것보다 훨씬 많은 것을 내 안에서 정립할 수 있었다.
1. 무료봉사자 VS 소득을 창출하는 크리에이터
심즈라는 게임이 있다. 이 심즈를 플레이 해본 사람들은 요즘 많이 활용되고 있는 게더타운같은 메타버스 공간이 익숙하지 않을까 생각한다.
심즈의 매력은 내가 건축가 & 인테리어 디자이너가 되어 실제로는 상상만 해볼 수 있는 멋진 집들을 마음껏 지어볼 수 있다는 점이었다.
그 매력에 푹 빠져서 당시 함께 모여 게임하던 친구들이 전략시뮬이나 총싸움을 하는 동안 나는 밤이 새도록 심즈에서 집을 짓고 놀았다.
그렇게 집 구조를 결정한 후 벽지와 바닥재를 원하는 취향대로 바꾼다. 벽지와 바닥타일은 현실뿐만 아니라 가상공간에서도 정말 중요해서 집 전체의 분위기를 바꾸는데 결정적이었다.
이렇게 일차적인 인테리어를 끝내고 나면 거기에 알맞는 디자인의 가구와 가전제품들을 배치한다.
쉐비 스타일로 꾸미고 엔틱가구를 놓을 수도 있고, 아니면 모던한 벽지를 발라놓고 무채색의 가구들을 들여놓아 뉴욕의 펜트하우스처럼 꾸밀 수도 있었다.
그런데 문제가 있었다. 미국에서 개발한 심즈가 기본적으로 제공하는 벽지와 바닥타일로는 내가 원하는 그 느낌이 안나는 것이다.
대충 이런 느낌이렇게 현실과 동떨어진 인테리어...
특히나 나는 불만이었던 것이, 당시에도 일본의 ZEN스타일이 세련된 것으로 여겨져 일본풍의 벽지와 바닥 아이템들이 많았다.
하지만 한국풍은 어디에도 없었다. 그래서 최대한 한국적인 스타일로만 꾸며도 결국은 묘하게 일본풍이 났다. 나는 그 점이 늘 마음에 안들었다.
한국 유저가 제작한 것으로 보이는 심즈1의 한국풍 전통 벽지. 한국 스타일 벽지나 아이템은 매우 귀했다.
자연스럽게 심즈를 이용하던 유저들 중 능력자들이 벽지와 바닥타일, 심지어 가구, 가전제품같은 아이템들을 제작하여 인터넷상에 올렸고, 전세계 사람들이 다운로드를 받으러 들락거렸다. 그런 파일들을 모아놓은 사이트들은 당시에도 엄청난 방문객 수를 자랑했다.
그런 사이트의 게시판에는 어떤 풍의 벽지를 제작해달라는 요구가 끊임없이 올라왔고 특히 현실 집과 물건에 가깝게 만들어진 아이템, 벽지 들은 굉장한 인기를 자랑했다. 현실느낌이 많이 날수록 인기도 높았다.
그 당시에도 사람들은 게임냄새 풀풀 나는 기본템보다, 유저들이 직접 제작한 현실과 꼭 같은 느낌을 내게 해주는 아이템들에 관심이 많았다.
이케아 소파가 올라왔을 때도 난리가 났었다. 심즈의 기본 쇼파는 너무 가짜같았기 때문이다.
대충 이런 느낌. 비주얼적으로만 보자면 현실감이 매우 낮다. 현실과 동떨어진 아이템 디자인 탓이 크다.
많은 이용자들이 위와 같은 벽지와 바닥재를 스스로 디자인하여 인터넷에 올렸다. 그리고 그보다 백배는 많은 이용자들이 그런 파일들을 다운로드해서 받아갔다.
심즈를 통해서도 알 수 있듯이 기본적으로 사람들은 가상공간에서 현실을 똑같이 구현해내는 데에 관심이 많다. 여기에 대해서는 나중에 다시 이야기하겠다.
유저들이 만들어내는 아이템들은 어마어마하게 많아져서 나중에는 벽지 몇개를 고르기 위해 밤을 새서 사이트들을 뒤져야 했다.
그래도 내가 만들어내고 싶은 느낌을 구현해내고 나면 그렇게 기쁠 수가 없었다. 이것은 유저들이 창작한 실제와 비슷한 아이템들이 있었기 때문에 가능했던 것이다.
초기 심즈에서는 사용자들이 구리고 구린 기본 아이템들로부터 최대한 벗어나 이렇게 고급스러운 집을 건설하고자 몸부림을 쳤다.
위와 같이 잡지에 나올법한 멋진 집을 디자인한 유저들은 인터넷에 공개하며 자랑스러워했다. 그러나 자랑스러운 기분과 다른 유저들의 부러움, 그것이 끝이었다.
유저들의 스킬은 점점 더 발전하여 거의 건축 공모전같은 느낌을 주기도 했다.
수면 아래 잠겨있는 모던 하우스. 최근의 심즈로는 이렇게까지 구현이 가능하다. 점점 더 현실감을 더해가고 있다.
심즈4로 구현한 우리나라 시골 할머니집 인테리어
심즈를 보며 알 수 있는 것은 다음과 같다.
1. 사람들은 내가 살고 있는 현실 아주 그럴듯하게 가상공간에 구현해 내는 것을 매우 즐긴다 (이는 심즈 뿐만 아니라 훨씬 이전에 유행했던 심시티를 봐도 알 수 있다)
2. 가상공간이 현실과 흡사할수록 열광한다.
특히 1번은, 저때 거의 모든 유저들은 밤을 새워 손수 제작한 아이템을 올려도 아무런 대가가 없었다. 사람들은 그것을 무료로 다운받아갔고 나중에는 원작자가 누군지도 모르게 인터넷 여기저기를 돌아다녔다. 그런데도 헤비 업로더(꾸준히 많은 자료를 올리는 사람들)들은 자신들이 제작했다는 것을 사람들이 모르는데도, 돈이 주어지지 않는데도 열심히 만들어서 인터넷에 올렸고 많은 사람들은 여전히 공짜로 받아가 즐겼다.
이런 부분은 웹 2.0의 특징과 맞닿아있다. (인터넷의 발전 단계 중 공유가 기본이며, 데이터 무료로 사용하는 것이 보편적 통념인 단계. 데이터의 소유권을 딱히 중요하게 생각하지 않음)
그런데 이제 시대가 달라지고 있다.
처음 유튜브가 등장했을 때, 사람들은 자기들만의 비법, 레시피를 인터넷에 아낌없이 공개하는 사람들에 대해 적잖이 충격을 받고 우려하기도 했다. 그 이전에는 음식장사를 하는 사람들의 레시피는 본인들의 보물과 같은 것이었고 돈을 받고 넘겨줄지언정 공짜로 세상에 공개하는 일이 흔하지 않았다. 어떤 특수한 취미, 공예, 기술, 이론들을 보유한 강사, 장인들도 마찬가지였다.
그런데 유튜브가 그 모든 것을 '공유'라는 운동장 위에 올려놓았다. 유튜브를 이용하여 수익을 얻을 수는 있지만, 기본적으로 이용자에게는 무료이다(유튜브 구독료를 제외하고).
그동안 전세계가 타인의 귀한 비법, 자료, 스킬, 경험들을 공짜로 즐겼다. 지금도 마찬가지이다. 하지만 모든 세상은 정반합의 원리에 의해 굴러간다. 지식 공유의 시대가 한바탕 몰아치고 지나가자, 이제 다시 유료 강의 플랫폼들이 떠오르고 있다. 클래스 101, 숨고, 꾸그, 타인의 지식과 노하우를 정당하게 돈을 내고 이용하는 흐름이 다시 슬며시 온 것이다. 공짜의 시대는 점점 지나가고 있다
그 배경에는 블록체인이 등장하며 다가온 웹 3.0의 시대가 있다. 블록체인 기술덕분에 인터넷상의 많은 자료들에 고유값을 쉽게 매길 수 있게 되었고 그것이 바로 NFT이다. 위에서 이야기한 심즈를 예로 든다면, 내가 만든 벽지를 NFT화 하여 이것을 구매한 사람만 사용하게 할 수 있는 것이다.
이전에는 밤새워 만든 자료를 인터넷에 올리고 다운로드 수가 몇천 몇만을 찍는 것을 보면서 흐뭇해하거나 내가 만든거라고 지인들에게 자랑하는 정도가 보상이었다. 하지만 이제는 블록체인과 NFT 덕분에 이야기가 달라진다. 지금까지는 무료봉사이자 재능기부였지만 이제는 그에 대한 대가를 전세계 누구로부터 받을 수 있게 된다. 따로 스토어를 개설하고 사업자를 내고 어쩌고 하는 복잡한 과정이 없이도 말이다.
그래서 NFT가 창작자들에게 유토피아를 맞이하게 해줄 거라고도 한다.
벌써 메타버스 아이템을 디자인하고 판매하여 월 천만원을 번다는 중고등학생들도 미디어에서 볼 수 있다.
메타버스는 곧 보편화될 것이다. 그건 막을 수 없는 흐름이다.
인터넷이 초기에 전세계에 광풍을 불러왔고, 지금은 사용하지 않는 사람이 없는 것처럼 말이다.
메타버스는 다른 수식어를 다 떼고 가장 짧게 표현한다면 '가상공간'인데, 사람들은 갈수록 세련되고 더 현실감있는 가상공간을 원할 것이고, 초창기인 지금이야 뚝딱거리는 그래픽들을 보며 이게 무슨 가상공간... 할 수도 있지만 앞으로 갈수록 발전할 것이다.
초기 인터넷을 생각해보면 된다. 초기 인터넷 화면은 이랬다.
지금의 인터넷은 어떤가? 최근에 저런 디자인의 화면을 본 적이 있다면 아마 누군가 15년전 쯤에 만들어놓고 관리하는 것을 잊었거나 포기한 유적지와 같은 사이트일 것이다. 메타버스도 다르지 않을 것이다. 지금의 메타버스라고 불리우는 플랫폼들은 사용자들의 눈에 차지 않겠지만, 메타버스 플랫폼은 이제 시작이다.
현재 메타버 비즈니스 모델로 많이 사용되고 있는 게더타운. 마치 90년대에 하던 게임과 같은 화면이다.
교육용으로 많이 사용되는 코스페이시스는 그나마 나은편이나 이게 현실을 대체한다고 생각하면 아직은 우스운 수준이다.
초기 기술은 언제나 허접하고 우스워보인다. 이게 그렇게 세상을 바꿀거라고? 싶다.
하지만 앞으로 컴퓨터 사양과 통신망(5G를 넘어선 6G가 또 나오겠지?)이 업그레이드 되면, 훨씬 실제와 비슷한 메타버스가 나타날 것이다.
그렇게 되면 우리가 현재 50년전 사람들은 상상도 못했던 옷과 음식을 인터넷으로 주문하는 세상에 살고 있듯이,
지금의 우리는 상상하기 힘든, 메타버스 세상 안에서 하루의 상당시간을 거주하는 세상에 올 것이라고 생각한다.
MySql 서버를 재시작 하고 싶은데 The server quit without updating PID file 오류가 발생하면서 안될 때가 있다.
$ mysql.server restart
Shutting down MySQL
. ERROR! The server quit without updating PID file (/opt/homebrew/var/mysql/iain-ui-MacBookPro.local.pid).
ERROR! Failed to stop running server, so refusing to try to start.
대충, 서버가 PID파일을 업데이트 하지 않고 종료되었다는 메세지이다.
그리고 서버 실행을 멈추지 못했으므로 서버 재시작을 거부한다고 한다.
내 경우에는 mysql.server stop을 먼저 실행해주고 나서 mysql.server restart를 하면 성공적으로 진행이 됐다.
$ mysql.server stop
Shutting down MySQL
. SUCCESS!
$ mysql.server restart
Shutting down MySQL
. SUCCESS!
Starting MySQL
. SUCCESS!
그러나 위 방법으로 해결이 안될 때를 대비하여 에러 해결법을 적어둔다.
컴퓨터에서 실행 중인 MySQL 프로세스 확인하기. 터미널에서 아래 코드를 실행한다.
ps -e | grep mysql
그럼 이렇게 결과가 나오는데, 실행중인 프로세스들이 있다는 뜻이다.
실행 중인 프로세스를 종료하기 위한 구문
kill -9 <PID>
PID란 맨 왼쪽의 다섯자리 숫자이다. 위 캡쳐에서는 83773, 83872, 83970이 되겠다.
PID를 이용하여 실행중인 프로세스들을 차례로 kill하고 다시 시작해보면 되겠다.
PID란 Process Identification의 약자이다. 프로세스가 실행된 후 종료될 때까지 시스템이 프로세스를 고유하게 식별하도록 하는 '프로세스 식별자'이다.
국방, 경찰, 소방, 공원, 도로 등이 해당하며 보통 정부에 의해서 공급되는 것을 말한다.
공공재에는 시장가격이 존재하지 않으며 수익자부담 원칙도 적용되지 않는다.
공공재 규모의 결정은 정치기구에 맡긴다.
한 개인의 소비가 다른 이의 소비를 방해하지 않으며, 여러 사람이 동시에 편익을 받는다는 특징이 있다.
또한 대가를 지급하지 않은 특정 개인을 소비에서 제외하지 않는다.
공급탄력성
가격변화에 대한 공급의 민감도이다.
공식 : 공급량의 변화율 / 가격의 변화율
만일 1%의 가격 상승이 1%보다 더 큰 공급량 증가를 가져오면 공급이 탄력적이라고 말하고
1%의 가격 상승이 1%보다 더 적은 공급량 증가를 가져오면 공급이 비탄력적이라고 한다.
즉, 가격이 상승했을 때 공급량이 그에 비해 얼마나 늘어나는가이다.
가격이 조금만 상승해도 공급량이 크게 증가한다면, 공급이 탄력적이며 가격이 상승한 것에 비해 공급량 증가가 그럭저럭이라면 공급이 비탄력적인 것이다. (가격을 올렸더니 고무공처럼 공급량이 팍 튀더라 혹은 가격을 올려도 공급량이 그리 움직이지 않더라)
공급량 변화율과 가격의 변화율이 같아서 공급탄력성이 1이 될 경우는 공급이 단위 탄력적이라고 말한다.
만약 어떤 재화가 가격변동에 전혀 영향을 받지 않아 공급량이 그대로라면, 공급의 가격탄력성은 0이고 완전 비탄력적이라 말한다. 이 경우 공급곡선은 수직선이 된다.
공급탄력성은 가격 상승 하락에 따라 공급량을 조절하는 생산자의 능력에 따라 달라진다.
공매도
없는 것을 판다는 의미로 주가 하락을 예상하는 투자자가 금융기관으로부터 주식을 빌려서 먼저 매도한 후, 일정 시점 후에 시장에서 주식을 매입하여 되판다. 매도가 매수보다 먼저 일어나는 특이한 거래이다. 지금 가지고 있지도 않은 주식을 먼저 팔고 나중에 사서 갚는 것이다.
사는 시점에서 주가가 내려가있으면 이득이지만 (비싸게 팔고 싸게 사서 갚았으므로) 예측이 빗나가 주가가 내려가있다면 손해를 보게 된다.
가뜩이나 약세장에서는 주가 폭락을 초래하는 측면이 있으므로(주가가 떨어질 것이라 생각하고 너도 나도 빌려서 대량으로 팔아버리므로 그렇지 않아도 락세를 탄 주가가 곤두박질 치게 만든다) 각국에서는 공매도에 대해 많은 규제를 하고 있다.
국가신용등급
한 국가의 정부가 빚을 갚을 수 있는 능력이나 빚을 갚을 의사를 평가한 것. 국제신용평가사가 매긴다.
국제금융시장에서 차입금리나 투자여건을 판단하는 기준이 된다.
미국의 S&P, 무디스, 영국의 피치 등 유명 국제신용평가기관들이 해당국의 정치체제의 안정성, 국가안보의 위험 등 정치적 요소와 경제성장률, 외채규모, 대외 채무불이행 경험등 경제적 요소를 종합적으로 고려하여 평가한다.
크게 투자등급과 투기등급의 신용도로 나뉜다.
국가신용등급이 올라가면 정부와 기업, 금융기관등이 더 낮은 가산금리(=위험 프리미엄)로 외화를 조달할 수 있어 외화차입 비용을 크게 줄일 수 있다.
국채
정부가 재정자금을 조달하기 위해 발행하는 채권.
국고채권, 재정증권, 국민주택채권 및 보상채권으로 나뉘며 국고채권이 대부분을 차지한다.
국고채권은 적자재정시 재원을 조달하기 위해 국채법에 의해 발행되며 만기는 3년, 5년, 10년, 20년, 30년, 50년 등 6가지 종류가 있다.
"엄마, 그거 동화책 아니에요? 엄마가 그런 걸 왜 읽어요?" "엄마가 먼저 봐야 네가 읽을 만한 책인지 아닌지 알 수 있지." 그렇게 어머니는 모든 책을 자신이 먼저 읽고 나서 꼭 필요한 책만 나에게 읽게 했다. 어머니 덕분에 꼭 읽어야 할 책들은 모두 읽었고, 나중에시간이 지나서야 그게 나에게 얼마나 큰 도움이 되었는지를 깨달았다. 35p
"엄마. 외할머니가 절 막 때렸어요. 마치 복날에 개 잡듯이 팼어요." 어머니가 까르르 웃으시더니 말씀하셨다. "복날에 개 잡듯이 팬다는 말은 어디서 배웠니?" 그러고는 다정하게 나를 바라보며 말을 이었다. "할머니는 옛날 분이시라서 가르치는 방식이 조금 다를 뿐이야. 너를 미워하는 것이 아니니까 외할머니를 미워하거나 워망하면 안 된다." 나는 갑자기 울음이 터졌다. 서러웠다. 어머니마저 내 편이 되어주지 않았다고 느꼈기 때문이었다. 나를 달래며 어머니가 말씀하셨다. "그래도 외할머니처럼 고마운 분이 어디 있겠니? 밥 세끼 꼬박 꼬박 다 챙겨서 먹여주시지, 더러운 체육복이나 속옷까지 다 손으로 빨아주시지, 우리 주위에 그런 일을 해줄 사람이 또 누가 있겠니? 너도 이제 다 컸으니 외할머니 고마운 줄 알고, 좀 때리시더라도 네가 그냥 이해해 드려라. 너 남자잖아 짜식아. 울지 마!" 어머니의 말을 듣자 나는 기분이 한층 나아졌다. 어머니는 울지 말라고 윽박지르거나 명령하는 대신, 상황을 이해하기 쉽게 설명해 주셨고 나는 그런 어머니의 모습이 너무 좋았다. 내 울음이 잦아들자 어머니는 나를 안으며 말씀하셨다. "엄마가 미안해. 고생시켜서 미안해. 나중에 꼭 돈 많이 벌어서 데리러 올게. 그때는 엄마랑 같이 살자." 어머니와 대화를 나누고 나니 외할머니를 이해할 수 있을 것도 같았다. 38p
수업이 끝나고 쉬는 시간을 알리는 종이 울렸다. 나는 자리에서 벌떡 일어나 그 애에게 다가갔다. 이번에는 인사도 없이 곧바로 발로 얼굴을 걷어찼다. 싸움에서 이기는 방법은 간단하다. 그것은 이길 때까지 싸우는 것이다. 43p
공부도 마찬가지다. 공부도 땅과 다를 것이 하나도 없다. 많은 사람들이 공부를 하지만, 자신이 만족할 만큼의 성과를 내지 못하는 이유는 간단하다. 그건 돌려받을 마늠 공부하지 않았기 때문이다. 공부와 땅, 둘 다 절대 거짓말을 하지 않는다. 결국 노력한 만큼 돌려받으며 힘을 쏟은 만큼 이루어진다. 59p
암기의 비결은 결국 '체계적인 정리'와 '반복 학습'에 있다. 나는 외울 내용을 압축하고 또 압축한 정리 노트를 만들어서 가지고 다니면서 틈나는 대로 외웠다. 64p
개념원리를 보다가 이해하기 힘든 부분이 나오면 바로 중학교 수학책을 펼쳤다. 고등학교 1학년 수학에서 배우는 내용의 대부분이 중학교 과정의 심화였기 때문이다. 그래서 개념원리를 봐도 이해가 안 가면 중학교 과정을 본 후 고등학교 과정으로 돌아와서 문제를 풀었다. 그 방식은 매우 효과적이었다. 기초가 탄탄히 잡히니 풀리는 문제도 더욱 많아졌다. 영어는 처음에는 단어를 몰랐기 때문에 해석을 제대로 할 수 없었다. 그렇다고 단어 책을 사서 외우자니 너무 지겨웠다. 그래서 내가 선택한 방법은 '선 해설 후 문제'방식이었다. 문제집 뒷 부분의 답지를 펼친 후 해석을 한 줄 먼저 보고 영어 지문을 읽는 방식이었다. 이렇게 계속 공부를 하니 점점 영어 표현이 익숙해졌다.
다시 공부를 시작했을 때 나는 기초가 하나도 없었다. 그런 상황에서 가장 어려웠던 점은 바로 수업을 따라가기가 힘들다는 것이었다. 공부를 잘하려면 크게 두 가지 원칙을 지켜야 한다. '수업에 집중하기'와 '기초부터 차근차근 공부하기'. 그러나 공부를 늦게 시작한 나는 두 원칙을 동시에 지킬 수가 없다. 학교 수업이 이미 기초를 넘어선 단계까지 나가 있었으니까. 내가 선택할 수 있는 방법은 두 가지였다. 하나는 수업을 따라가는 것을 포기하는 대신 계획을 세워 처음부터 차근차근 공부하기. 다른 하나는 수업을 어떻게든 따라가려고 애쓰면서 이미 지나가버린 진도와 기초는 따로 시간을 내어 보충하기. 나는 둘 중 하나만 잡기보다는 둘 다 잡아야겠다고 생각했다. 물론 무모한 결정이었다. 머리도 그다지 좋지 못한 내가 예습과 복습을 하면서 이미 지나가 버린 진도까지 공부하기에는 시간이 턱없이 부족했다. 그런데 왠지 나는 할 수 있다는 자신감이 있었다. 오기였다는 표현이 더 정확할지도 모르겠다. 만약 시간이 모자라면 1초를 열 번 나누어 쪼개 쓰더라도 어떻게든 해내겠다고 각오했다. 104p
수업 전에 최소한 한두 번은 미리 훑어보려고 노력했다. 그래야 기억에 오래 남기 때문이다. 예습과 복습을 꾸준히 하면 전체 공부 시간은 훨씬 줄어든다. 수업 전에 한 번 훑어보고, 수업을 듣고, 그날 자습시간에 복습을 하면 같은 내용을 하루에 세 번 보게 된다.그러면 왠만한 내용은 머릿속에서 체계가 잡혀서 저장된다. 물론 다음 날 일어나면 또 다시 잊어버린 것 같겠지만, 시험 기간 때 다시 집중해서 들여다보거나 외워 보면 의외로 쉽게 되살아난다. 그게 반복의 힘이고 예습, 복습의 힘이다. 105p
처음에는 공부해야 할 것이 산더미 같았다. 웬만한 것들은 다 몰랐으니까. 그러나 참고 꾸준히 했다. 이 단계에서 가장 중요한 것은 공부법이 아니라 참을성이다. 많은 학생들이 참는 단계에서 실패한다. "공부가 정말 이렇게 힘든 거라면 나는 도저히 못 할 것 같다"라는 말이 이때 나오게 된다. 그래도 참아라. 당장은 괴롭겠지만 그 기간은 절대 오래 지속되지 않는다. 계속 공부를 하다 보면 신기하게도 점점 공부할 양이 줄어든다. 내가 공부해야 할 전체의 양을 보지 말라. 그러면 압박감이 느껴지고 공부가 힘들어진다. 단지 오늘, 지금 이 시간에 해야 할 부분만 의식하면 공부를 쉽게 할 수 있다. 공부한 부분을 기록하는 습관은 이 기간을 좀 더 쉽게 통과하는 데 많은 도움이 된다.(참는 단계를 지나면 찾아오는 것) 105p
처음에는 공부해야 할 것이 산더미 같았다. 웬만한 것들은 다 몰랐으니까. 그러나 참고 꾸준히 했다. 이 단계에서 가장 중요한 것은 공부법이 아니라 참을성이다. 많은 학생들이 참는 단계에서 실패한다.
"공부가 정말 이렇게 힘든 거라면 나는 도저히 못 할 것 같다"라는 말이 이때 나오게 된다.
그래도 참아라. 당장은 괴롭겠지만 그 기간은 절대 오래 지속되지 않는다. 계속 공부를 하다 보면 신기하게도 점점 공부할 양이 줄어든다. 내가 공부해야 할 전체의 양을 보지 말라. 그러면 압박감이 느껴지고 공부가 힘들어진다. 단지 오늘, 지금 이 시간에 해야 할 부분만 의식하면 공부를 쉽게 할 수 있다.
공부한 부분을 기록하는 습관은 이 기간을 좀 더 쉽게 통과하는 데 많은 도움이 된다.(참는 단계를 지나면 찾아오는 것) 105p