내게 있어서 "창작"이라는 활동을 통해 얻는 긍정적 기분이 꽤 컷다.

상상속에만 있고 현실에 있지 않은것을 현실에서 가능해내도록 구현해낸다라는것이 상당히 매력적이였다.

아마 대부분의 창작자들이 그 창작의 대상이 만들어지고나면 얼마나 멋질까라는 생각을 자신을 움직이게 하는 동력으로 사용하고있을 것이라 생각한다.

나의 경우 창작을 하는데 있어서 프로그래밍언어와 컴퓨터라는 수단이 사용되었고 이것을 이용해서 이루어지는 창작활동은 코딩이라는 작업을 통해 이루어졌다.

나는 본래 그림을 그렸다. 그림을 그릴때는 컴퓨터 대신 연필과 붓을 사용했다. 코드, 연필, 붓 등은 내가 창작활동을 하는데 있어서 사용된 도구들이다.

내가 좋아하는 창작활동을 하는데 사용되는 도구들인 만큼, 이 도구들에 대한 관심도 클수밖에 없고 이것을 잘 다룰 수 있게 되는것은 중요한 문제였다.

하지만 이것이 창작활동이라는 본래 목적을 앞서지는 못한다.

 

그렇다 하더라도 도구사용에 미숙하면 창작활동이 자유롭기 어려운것이 사실이다.

항상 만들거리에 대한 아이디어들이 있었고 이것을 만들어내는 활동을 계속 했지만 도구에 익숙하지 않기때문에 작업할때마다 항상 다양한 문제를 만났다.

이렇게 만나는 문제는 해결하지 못하면 내 창작에 제약이 생겨 목표를 달성할수 없는 중요한 문제였고 그 만큼 매 상황에 대한 해결은 절실했다.

이 상황들을 해결해 나가면서 경험이 쌓여갔고 해결했다는 의미는 내 창작활동에 있어서 표현의 한계가 한겹 벗겨졌다는 의미이기 때문에 이때 얻는 깨달음이 주는 기쁨도 매우컷다.

 

이것을 다르게 말하면 내게 있어서 창작활동이 중단되면 해결해내야할 상황은 더 이상 만들어지지 않게되는것이다.

이에 따라 해결해야할 상황이 없으니 더 이상의 배움은 있을 수 없고 배울 이유도 없다는 말이 된다.

 

100% 유흥을 목적으로 한 이 창작활동은 글을 쓰고있는 오늘까지 이어지고있다.

이유는 모르겠지만 내 성향상 창작이라는 것이 가지는 의미가 크고 이 성향은 나이가 들어도 크게 변하지 않고있다.

 

언젠가 "코딩 문제를 푼다" 라는 개념이 있다는걸 알게됐다.

코딩문제를 푼다? 생각도 못해본 개념이다. 학교다닐때 문제집에 있는 문제들은 풀어봤어도 코딩문제..?

내게 있어서 "코딩"이라는 행위는 내가 기획한 것을 만들어내는 목적으로 사용된 수단이였다.

그런데 코딩문제를 푼다는 것은 조금 달랐다.

코딩문제를 풀고자 하는 사람에게는 코딩문제를 만나기 전에는 해결해야할 문제가 없는상태이며 코딩문제를 만남으로써 해결해야할 문제가 생겨나는 것이다.

그리고 이에 따라 코딩이라는 행위를 통해 해당 문제를 해결해내고 그것을 통해 배움을 얻고 그 상황이 종료되는 형태이다.

 

나는 창작하지 않으면 막힐일이 없고 막힐일이 없으면 해결해야할 것이 없으므로 배움이 존재할 수 없다고 생각했다.

하지만 코딩문제는 창작할 것이 없다 하더라도 해결해야할 상황을 인위적으로 만들어 배움을 경험할 수 있게 해준다는 점을 알게되었고 코딩문제를 푸는게 아니면 코딩이라는 활동을 할 일이 없는 사람들이 꽤 많다는것도 알게되었다.

 

그리고 다음의 생각으로 이어진다.

그렇다면 왜.. 코딩으로 만들고싶은게 없는 사람임에도 코딩실력을 키우기위해 가상의 상황(코딩문제풀기)을 만들어서 경험을 쌓으려는 노력을 할까?

 

코딩의 목적에는 창작이라는 유흥을 즐기기 위함만이 있는게 아니란 점을 생각해야한다.

취업, 즉 돈벌이라는 중요한 문제해결을 목적으로 삼을 수도 있는것이다.

 

그리고 취업을 하려면 능숙해져야 할테니 실력을 쌓아야할 이유가 생기는것이다.

해결해야할 상황을 만나서 해결해보는 경험을 해보지 않으면 실력이 쌓일수 없기 때문에 가상의 상황(코딩문제풀기)을 인위적으로 만드는것이다.

언젠가 부터는 비슷한 목적으로써 클론코딩이라는 개념이 생겨나기도 했다.

 

물론 이러한 활동들 자체도 유흥활동이 될수 있을것이라 생각한다.

우리가 일부러 재미를 위해 퍼즐게임을 즐기는등의 것과 같이 말이다.

그래서 창작활동을 하지 않는 사람들을 위해 이러한 형태의 유흥을 즐길수 있는 곳을 만들었다.

물론 배움도 기대할 수 있을것이라 생각한다.

내게 무언가를 프로그래밍을 하면서 잘 안되서 막힌 상황이 놓여졌다

사용하던 프로그래밍언어는 JAVA였다

그래서 JAVA사용자들이 모여있을만한 커뮤니티를 찾아갔다

그래서 질문을 위해 말을 꺼냈다

"자바 잘 아시는 분 계신가요?"

라고 말을 꺼낸 후 등장하실 분을 기다렸다

5분을 기다렸고 10분을 기다렸다 30분을 기다려도 "제가 잘합니다!" 라고 말하며 등장하는 사람이 없었다

이번에는 질문을 바꿨다

"자바 고수님 계신가요?"

마찬가지로 오랜시간 기다렸지만 등장하지 않았다

질문을 바꿔서 다시 물었다

"제 문제에 대해 해결방법을 알고계신 분 계신가요?"

등장하지 않았다..

모두가 나를 차단했나? 나를 무시하나 의심도 들고 해서 물어보기를 그만두고 결국 어쩔 수 없이 다시 혼자 고민하게 되었고

고민하던 중 해결하게 되었다

내 문제는 단순 오타에 의한문제였고 오타를 수정하니 해결이 되었다

System.out.printlm("Hello");

System.out.println("Hello");

로 고치니 되었다


만약 질문을 바꿔서 이렇게 했다면 어땠을까?

System.out.printlm("Hello"); 를 실행한 결과로 Hello 가 나오기를 기대했는데 나오지 않습니다 무슨 문제가 있는걸까요?

실제로 커뮤니티에 이 질문을 드려보았다

질문을 올리고 10초가 채 지나지 않아

T님께서 "lm이라서...?" 라고 도움말씀을 주셨고

이어서 곧바로 C님께서 "lm ln 아닌가요?" 라고 말씀주셨다

두분께서 내 질문을 보고 생각하신 것은

T님께선 "어?????? 뉴비가 질문을하네?? lm??큭..내도움이 필요한 순간이군...이 방에서 잘난 체를 할 수 있는 기회가 왔어! 내가 1등으로 대답해야지!"

C님께선 "전 제가 아는게 신나서"

라고 말씀해주셨다


그럼 도움 받지 못한 질문은 왜 아무에게도 응답을 받지 못했을까?

1. "자바 잘 아시는 분 계신가요?"

2. "자바 고수님 계신가요?"

3. "제 문제에 대해 해결방법을 알고계신 분 계신가요?"

1,2번은 사실 비슷한 의미이다. 말 그대로 나는 자바 고수를 찾았다. 그런데 아무도 등장하지 않은 이유는?

스스로 고수라고 생각할 사람이 얼마나 있을까?

설령 고수라 생각하는 사람이 있다 하더라도 스스로를 그리 칭하는것을 자화자찬이라는 말로써 부정적으로 생각하는 분위기도 없지 않다고 생각하여 이를 의식하는 분도 계실수 있다

결국 스스로를 "내가 이구역에서 제일 고수다!"라고 당당하게 자칭할수 있는 사람을 찾는것이 쉬운일인지를 생각해보면 된다

3번질문은 사람들은 내 질문이 뭔지를 모른다. 왜냐? 나는 문제가 뭔지 아직 공개하지 않았다. 그러니 내 문제를 해결해줄 수 있는지 알 사람은 아무도 없다.

결국.. 생각해보면 문제는 단순오타에서 생긴일이였다

이게 고수가 필요할정도의 문제였는지도 생각해볼 필요가 있다

결국 문제 해결을 위해 고수를 찾은 나는

이는 "내가 해내지 못했을 문제정도라면 분명 고수가 필요해야만 할거야" 라고 생각한 결과이지 않을까 한다

결론: 사람을 이해하자

도움을 주신 T님 C님 두분께 감사드립니다

이 소프트웨어개발의 분야는 용어도 많고 알아야할것도 참 많습니다

그 중 나는 뭐를 배워야하고 얼마나 어디까지 배워야하는가는 정말 알기 어려운 문제죠

그래서 이 문제에 대해서 이전에 같은 이름의 변수를 만들 수 있을까? 라는 의문에 대한 이야기를 이어서 해보고자 합니다

애초에 이 궁금함이 없었다면 이전에 했던 알아내려는 시도도 안해봤을겁니다

 

그런데 위의 의문은 내가 여러분에게 던진 의문이지 여러분 스스로가 만들어낸 의문이 아닙니다

사실 이런 의문은 아무 계기 없이 떠오르기가 힘듭니다.

보통 이런 의문은 무언가를 만들어가는 과정 혹은 공부하는 과정에서 계기가 만들어질 수 있습니다

특히 무언가를 만들어가는 과정에서 다양한 문제를 겪게되고 이것이 의문을 가지는 계기가 되는 경우가 많다고 생각합니다

아무것도 안하면 궁금할게 없습니다 막히는게 없으니까요 그래서 알아야할게 없습니다

그래서 이때는 그냥 아무것도 알려는 시도도 하지 않아도 상관없습니다.

이 시점에서 공부를 끝내도 상관없습니다. 알아내야할게 없으니까요.

 

같은 이름의 변수를 만들수 있는지에 대한 의문은 결국 여러분은 내가 문제제기함에 의해서 여러분은 여러분의 의지와 상관없이 얼떨결에 같이 생각해보게 되었었는데요

나는 많이 궁금했는데 여러분도 나와같은 정도로 궁금했을지 궁금합니다

만약 나였다면 나는 알면좋고 몰라도 그만인정도이지 않았을까합니다

심지어 내가 겪은 문제도 아니기 때문에 문제가 뭔지에 대해 파악하는데도 에너지가 들기도하고 딱히 알고싶었던게 아니기때문에 에너지를 들여서 문제가 뭔지 파악하고싶은 마음도 잘 안들듯합니다

그리고 내 문제도 아니기 때문에 이걸 알아서 뭐에 써먹어야할지에 대한 생각도 딱히 없을겁니다

애초에 그건 내 문제가 아니였으니까요

이런 딱히 관심 없는 질문은 강좌나 책을 펼쳐보면 어렵지 않게 많이 만나볼 수 있습니다

  • 스코프란 무엇인가
  • 클로져의 작동원리는 어떻게되는가
  • 실행컨텍스트란 무엇인가
  • 동시성에 대한 제어를 어떻게 해야 안전한가

 

궁금한가요?

나라면 안궁금할거같습니다

내가 딱히 해당 내용을 몰라서 지금 뭐 문제되는 상황이란게 없거든요

 

안궁금한건 지금 볼 필요 없습니다

내게 필요한게 아니라는 뜻입니다

미리 알아두면 나중에 좋은거라면 나중에 필요할때 보면 됩니다

나중에 필요한 상황이 생기고 모르면 안되는 상황을 만나게되면 그것을 알아내는것이 당신에게는 무엇보다 중요한일이고 그만큼 관심이 가는 이슈가 될것입니다

이럴때에 해당내용을 받아들이게 되면 훨씬 학습효과가 좋을수 밖에 없지요

 

알고싶지도 않은, 필요로 하지 않는 것들을 커리큘럼에 따라 주입받는 형식으로 공부하기 보다는 창작활동을 통해 많이 막히면서 알고싶은 것이 만들어지는 계기를 많이 만드는 것이 좋습니다

창작활동을 시작하기전에는 무엇에 막힐지 예상하기 어려우며 필연적으로 무언가에 막히게 될것이고 그것을 해결하면 머지않아 또 다른 문제가 기다리고 있을겁니다

이렇게 만난 문제에 대해 알아내는것이 현재 나와 여러분에게 현재 공부해야할 우선순위에서 가장 높이있는 내용입니다

외계인은 존재하는가?

JS에서 같은 이름의 변수를 만들수 있는가?

 

이 두 질문의 차이점은 전자는 인류가 모르고 후자는 안다는것이죠

하지만 이 두 질문의 공통점도 있습니다

그것은 나는 둘다 모른다는 점입니다

 

인류가 외계인의 존재 여부에 대해 알고자 어떤 노력을 하고있을까요?

인류가 이미 알고있는 지식을 활용해서 우주선을 만들어서 외계로 보내보기도하고

관측기계를 만들어서 관측을 하는등의 활동을 하죠

인류가 이런 시도를 해서 알아내기 전엔 신적존재가 알려주지 않는 이상 알 수 없죠

 

나에게 JS에서 같은 이름의 변수를 만들수 있는가? 라는 문제는 어떨까요?

내게 이 문제는 외계인이 존재하는지의 여부와 마찬가지로 내가 알지 못합니다

하지만 이건 외계인 문제와 다르게 이미 인류가 알고있죠

하지만 독학을 하는 내 입장에서는 물어볼 존재가 없다는것은 외계인문제와 다를바 없습니다

 

그러면 나는 이것을 알기위해 어떻게 할 수 있을까요

나는 인류가 우주에 대한 이해를 위해 기존의 지식을 바탕으로 연구해나가는 방법처럼

나도 기존에 알고있는 지식과 논리력을 바탕으로 이것을 알고자 하는 시도를 할 수 있습니다

 

지금부터 그 방법이 어떻게 만들어질 수 있을지에 대한 이야기를 해보고자합니다

다른말로 독학의 노하우입니다

let aa = 123;
let aa = 435;

외계인은 존재할까? 라는 의문이 어떤계기로 인류에게 생겼던것과 같이 위와 같이 같은 이름의 변수를 만들수 있을까? 라는 의문이 나에게 찾아올 수 있습니다.

내가 이게 가능할지 어떨지 모른다고 할때 이것을 알 방법은 무엇이 있을까요?

그래서 나에게 미션이 주어졌습니다

"이게 가능할지 어떨지 모른다고 할때 이것을 알 방법은 무엇이 있을까" 이것을 알아내는것입니다

 

그래서 나는 고민한 결과, 나는 "실행해보면 될것같다" 라는 아이디어가 떠올랐습니다.

여러분은 다른 아이디어가 떠올랐을 수도 있습니다.

만약 아이디어가 안떠올랐다면 "이게 가능할지 어떨지 모른다고 할때 이것을 알 방법은 무엇이 있을까" 라는 이 질문에 아직 머물러 있어야합니다.

 

나는 "실행해보면 될것같다" 라는 아이디어를 떠올렸지만 정작 어떻게 실행하는지 모릅니다.

 

그럼 나의 그 다음 미션은?

"어떻게 실행할수 있을까"를 알아내는것입니다.

또 이와 동시에 생겨난 미션은 "어떻게 실행할 수 있을지에 대한 방법을 어떻게 알아낼 수 있을까?" 입니다.

 

나는 구글링을 하면 될것같다는 아이디어가 떠올랐고 구글링을 통해 실행하는 방법도 알게되었습니다

그래서 실행했습니다

 

실행해보니 뭔가 거부감 드는 빨간 라인이 표시되면서

Uncaught SyntaxError: Identifier 'aa' has already been declared

라고 하네요

그런데 나는 영어를 모릅니다

나에게 생긴 미션은? "이 영어의 뜻이 무엇이고 빨간 표시는 무엇을 의미하는가?" 라는 의문을 해결하는것입니다

동시에 생겨난 미션은 "이게 무슨뜻인지를 알아낼 방법은 무엇일까"에 대한 아이디어를 내는것입니다

 

그래서 떠오른 아이디어는 "구글링해보자 번역기에 넣어보자" 입니다

번역기로번역해보니 잡히지 않은 구문 오류: 식별자 'aa'가 이미 선언되었습니다. 라고 하네요

 

이렇게 까지 했을때 내가 최초 가졌던 같은이름의 변수는 만들수 있을까에 대한 답을 알게 되었다고 할 수 있을까요?

저라면 이 정도의 결과를 얻은 상황에서 "아.. 안되는거구나" 라고 생각하면서도 오해의 소지가 있을수도 있겠다라는 의심정도는 할 듯합니다

이 판단에는 오해가 있을 소지가 있으니 염두는 하는것이 좋습니다

그래서 오해를 해소해볼 방법으로써 "그럼 이름을 다르게 하면 문제가 없을까?" 라는 아이디어를 떠올렸습니다

 

그래서 이름을 바꿔보니까 빨간 오류메세지가 사라졌네요

이렇게 했을때 오류가 사라진것을 확인했을때 이전에 내린 결론에 오해의 소지가 많이 사라졌다고 평가할수 있을듯 합니다

 

이쯤되면 나는 어떤 결론을 내릴수 있을까요?

같은 이름은 못쓰네? 라는 내용을 나는 누구에게도 의존하지 않고 독학으로 내 연구를 통해 알아냈습니다

물론 내가 이 결과를 과정에서 잘못된 실험을 해서 오해했을 가능성도 꽤 존재합니다.

그렇다 할지라도 나는 내가 기존에 가지고있는 지식과 논리력을 통한 연구로 새로운 사실을 알아냈다라는 사실이 중요합니다

그리고 이렇게 얻은 사실에 오류가 존재한다면 추후 겪게될 상황들에서 나의 논리로 설명이 안되버리는 등의 상황이 만들어질 수 있고, 이런 상황이 오해를 풀 또다른 계기가 될 수 있게됩니다

과학의 역사도 보면 그렇죠 어떤 시대에 정설로 믿어졌던 이론이 시간이 흘러 뒤집어지기도 하는거죠

 

이 결과를 통해 아래와 같은 의문이 생겨날 수도 있습니다

아래와 같은 의문으로 이어질 수 있기를 바랍니다

if( 10 > 20 ){
    let aa = 123;
}
let aa = 435;

이렇게 조건이 안맞아서 변수를 만들지 않으면 없는것으로 판단되어 아래 435를 담는 변수를 만들 수 있을까?

궁금함을 가질 수 있죠. 여러분이라면 궁금함이 생길거같나요? 이런 궁금함이 생기기 위해서는 적어도 if 에 대한 내용은 얕더라도 알아야겠지요

이것을 알아낼 방법은?

이전상황과 마찬가지로 "실행해보면 되겠다" 라는 생각이 들것같습니다

그리고 실행하는 방법은 이미 이전상황에서 습득해둔 상황입니다

그래서 바로 실행해보니 이번에는 에러가 없네요 문제없는거같습니다

 

그래서 두번째 테스트에서 이번에는 조건을 참으로 만들어서 let aa = 123; 가 실행되어 변수가 만들어지도록 해봅니다

첫번째 테스트였던 같은이름 변수 만들수 있는가에 대한 테스트의 결과 알게된 내용을 바탕으로 생각해본다면 아래 코드는 문제가 있어야할것이라고 생각이 들것입니다.

그래서 내 생각이 맞는지 실제로 확인해보고자 또 실행을 해봅니다

 

if( 10 < 20 ){
    let aa = 123;
}
let aa = 435;

문제가 발생을 안하네요?

나는 이것이 문제가 될것이라고 생각하고 테스트를 했습니다

그런데 문제가 될때 나오는 에러메세지가 안나오네요

내 생각은 어디서부터 잘못되었을까요?

위의 실험에 문제가 있었을까요?

논리적으로 내가 설명할 수 없는 상황이 만들어졌습니다

그래도 괜찮습니다. 이렇게까지 논리적인 접근을 했다면 이것으로 충분한 사고를 거친것이고 논리적 사고연습을 한것입니다

프로그래밍에서 이런식으로 논리적 사고를 하는것은 매우 중요합니다. 위에서 만들어진 나의 오해는 어떻게해서든 알아낼 방법을 찾아내서 풀면 되는것입니다

지금 당장 알아내지 못해도 괜찮습니다

그래서 일단 여기까지의 상황과 해결해내야할 숙제에 대한 내용을 글로 정리해두세요

let aa = 123;
let aa = 435;
// 나는 위 실험을 통해 같은 이름의 변수는 만들어질 수 없음을 이미 파악한 상황에서 아래의 실험을 해보았다

if( 10 > 20 ){
    let aa = 123;
}
let aa = 435;
// 이것은 첫번째 aa변수가 if조건이 맞지 않아 만들어지지 않았으므로 두번째 aa변수가 만들어지는데 문제가 없었다

if( 10 < 20 ){
    let aa = 123;
}
let aa = 435;
/*
그러나 이것은 첫번째 aa변수가 if조건이 맞아 만들어졌음에도 불구하고 두번째 aa변수 만들어지는데는 문제가 없었다
10 < 20 조건이 참인 이유로 let aa = 123; 가 실행되어져 aa변수가 만들어짐에 따라 
let aa = 435; 에서 같은이름을 사용하고자 하는 이유로 문제가 발생해야한다고 생각하는데 문제가 없는 이유를 알아내야한다
*/

사실 독학을 한다해도 코딩관련 커뮤니티에 이 문제를 공유해서 물어볼 수도 있습니다

위의 정도로 내가 파악한 상황을 논리적으로 정리해둔 의문을 담은 글은 충분히 다른 사람들도 관심을 가질만한 주제가 될 수 있을것이고 그런만큼 도움이 될 의견을 얻을 확률도 높아질 것이라고 생각합니다

 

처음으로 돌아가서 같은이름의 변수를 만들수 있는가의 의문은 어떻게 시작될 수 있는가에 대해 생각해볼 필요가 있습니다

이런 의문을 만들어내지 않으면 애초에 이것을 알아야할 이유도 만들어지지 않는것과 다름없고 이렇게 계속 스스로에게 질문을 던지고 해결해나가는것은 성장하는데 필수적입니다

이 이야기에 대해서는 다음기회에..

걱정스러운 일이 생겼다.

이 일이 생긴 오늘은 일요일.

이 걱정을 확실히 하기 위해서는 해당 업체에 전화를 해서 물어봐야한다.

하지만 오늘은 일요일이라 업체는 쉰다.

나는 이 걱정을 내일 업체가 출근할때까지 가지고있어야한다.

내 경험상 이런 걱정거리는 항상 주말이나 손을 쓸 수 없을때 일어난다.

지난번에는 이런 일이 금요일 저녁 6시 5분정도에 생긴적이 있다.

이 때는 업체는 6시에 퇴근했고 5분이 지나 연결할 수 없고 나는 다음주 월요일까지 이 걱정을 안고있어야했던 상황이였다

이때에 비하면 이번의 경우는 조금 낫지만 걱정을 안고있어야하는것은 괴로운일임은 변하지 않는다

 

일요일 오후 3시에 걱정이 생겼고 내일 오전 9시까지 이 걱정을 가지고 있어야한다

앞으로 남은 시간은 18시간.

보통 이런 걱정을 가지게되면 다른 일은 모두 정지되며 아무것도 할 수 없다

잠을 잠으로써 시간을 지워버리는것이 최선의 선택이다

오후 3시부터 저녁 8시까지 5시간동안 걱정을 하며 시간을 보냈고 8시에 억지로 눈을감고 자정까지 잠을 자냈다.

자정부터 꾸역꾸역 새벽 3시까지 잠을 더 자냈다

자낸다라는 표현이 적당한 상황이다.

잠이 안왔기 때문이다.

새벽 3시부터는 더 이상 잠을 잘 수 없었다.

새벽 3시부터 아침 9시를 기다리기로 했다.

 

18시간을 모두 다 버린 후 드디어 아침 9시가되어 전화를 했다.

9시 1분이 됐는데도 전화를 받지 않는다

이상함을 느껴서 확인해보니

 

오늘은 대체휴무일이였다

마음고생 24시간 추가

이 글은 의학적으로 전문적이지 않은 그냥 제 생각을 담은 글임을 참고부탁드립니다

불안감을 가진다는건 시간이 지나 내가 손해를 볼수도 있기 때문에 갖게 되는 것이다.
그 손해의 크기가 클지 작을지도 알수 없기 때문에 마음은 더욱 불편해지는 것이다.

불안감을 가졌을때 이 불안감을 없애는 방법은 내가 아는 한 다음과 같다.
첫째 이 불안감은 시간이 흐르면 잊혀지게된다. 시간이 흐르면 무엇때문에 불안했었는지도 잊게된다.
둘째 손해를 봐도 상관없다고 생각할 수 있다면 근원적인 문제가 사라지게되어 불안하지 않을 것이라 생각한다. 하지만 손해를 봐도 상관없다고 생각하기는 어렵다.
셋째 불안해 할 이유가 없는 근거들을 모아서 불안감을 없애는 방법이 있다. 하지만 근거를 모으기 쉽지않고 근거가 없으면 방법이 될 수 없다.

실제로 내 경우는 세번째 방법을 주로 시도한다. 종종 근거를 모을수 있게되어 불안감이 해소되는 경우도 있지만 이 방법으로 해결이 안될때도 많다.
해결되지 않았을때는 어떻게하는가? 차선책으로 두번째 방법을 시도한다. 꽤 난이도가 있다. 높은 확률로 실패한다. 실패하면 그 다음 방법으로는 첫번째 방법을 선택한다.
첫번째 방법, 그냥 시간 흘려보내는 것이다. 그러면 거의 대부분의 불안감은 사라진다.

이 불안감으로 인한 불편함을 극복하기 위해 평소에 하는 일은 불안감을 가지는 상황이 생겼을 때 세번째 방법을 통해 불안감을 해소 수 있게 하기위한 근거를 평소에 미리 수집해 두는 것이다.
한 예로 외출 중 집에 가스불을 껏는지에 대한 걱정을 가질 것에 대비해 외출 전에 미리 사진을 찍어두어 근거를 만들어두는 것과 같은 일이다.
외출 중 이 사진이 있다면 이 걱정은 하지 않아도 되게 되는 것이 된다.
그래서 불안감으로 인한 불편함을 없애기 위해 또 다른 새로운 불편함을 감수하는 것이다.
그래도 불안감으로 인한 불편함보다 상대적으로 그 정도가 작기 때문에 새로운 불편함을 선택하고있다.

이렇게 일상속에서 근거를 매번 만들어두는 방법으로 불안감을 가지는 것을 어느정도 극복할 수 있었다
하지만 가끔 근거를 만들어두는 것을 내 실수로 빠트리거나 하는 일도 분명 존재하며 이럴때에는 불안감에 빠지는 것을 막을 수 없고, 실제로 그 빈도가 잦다..🥲
무엇보다 이것은 방법이라고 말하기에는 나의 근본적인 문제는 해결되지 않았기 때문에 방법이라고 말하기에 부족하다.

이런 현재 내 상태를 포함해서 불안감에 대해 받아들이는 정도의 등급을 정해보았다
내가 이 분야 전문가가 아니라 엉터리 정리일수도 있다

상태1 작은 가능성에도 의미 부여하지 않고 나와 내 기억을 의심하지 않음
상태2 작은 가능성에도 의미 부여하고 나와 내 기억을 의심하지 않음
상태3 작은 가능성에도 의미 부여하고 나와 내 기억을 의심 함 그래서 근거가 필요함

상태3은 현재 내 상태이고 내 상태에서의 문제는 근거가 없다면 불안에 빠지는것이라고 스스로 생각했기 때문에 현재 내 상태보다 나은 단계를 상태2에 표현해둔 모습으로 해두었다
불안감이 생겼을때 내 기억을 되짚어보거나 나 스스로에 대한 믿음이 있다면 불안감은 해소될 수 있을것이라고 생각했기 때문이다
그래도 상태2도 여전히 불안감을 가지는 상태인 이유로 이보다 나은 모습을 상태1에 표현해두었다

관련글을 읽어보니 이런 증상을 불안장애라 하고 불안장애 중에서도 강박 장애라고 하는것 같다
강박장애도 여러가지로 나뉘는데 병적의심(pathologic doubt)에 해당하는것 같다

강박장애는 전두엽과 기저핵 부분의 혈류 이상으로 인해 세로토닌의 기능이 저하되거나, 세로토닌 수용체의 감수성 증가가 원인이라고 알려져 있다고 한다
세로토닌은 불안과 행복을 느끼게 하는데 관여되있는 신경전달물질이라고 한다.
이것은 뇌내에서 머무른 후 다시 사라지게 된다고 하는데 SSRI는 이것이 머무르는 시간을 늘려주는역할을 한다고 한다.
치료방법으로는 세로토닌 재흡수 억제제인 SSRI를 복용하는 것, 혹은 인지행동치료 처방을 하기도 한다고 하며 둘을 병행하면 치료에 도움이 된다고 한다

이 중 인지행동치료중에는 Exposure and Response Prevention 라고 불리우는 치료가 효과가 있다고 한다

이 치료방법은 나 스스로를 내가 불안해하는 그 상황에 의도적으로 노출시킨 후 견디는 것을 계속 반복하는 방법이라고 한다
이를테면 평소 외출전에 나중에 불안해 할것을 방지하기 위해 가스를 잠궜는지 사진을 찍어두고 외출했다면 사진을 찍지 않고 그냥 외출하는것이다.
그러면 불안함이 들것이다. 불안함을 경험한 후 나중에 그로 인해 결국 별 문제가 없었다는것을 반복적으로 경험하는 방법이다.

이걸 할때에 주의사항은 들게되는 불안감을 없애기 위한 다른 시도를 하면 안된다고 한다
그 불안은 정면으로 견뎌야한다고 한다

업계에서 통일된, 약속된 용어의 사용은 서로간에 의사소통에 차질이 있지 않기위해 중요한 요소이다

용어란 무언가를 지칭하기 위한 수단으로 사용된다

하지만 위의 이야기는 이미 해당 분야에 대해 숙련된 사람들에 한하는 이야기이다.

학습자 입장에서는 배움의 정도에 따라 다르겠으나 다수 용어들은 반드시 생소할수 밖에 없다.

어떤 개념을 이들에게 설명할때 바탕이 되는 내용을 함께 사용하여 설명하게 되는 경우가 많다. 그리고 이때 그 바탕이 되는것들을 지칭하는 수많은 용어들이 사용된다.

"설명" 어떤 일이나 대상의 내용을 상대편이 잘 알 수 있도록 말하는 행위이다.

하지만 그들에게 생소한 용어가 많을수록 이 목적은 실패로 돌아가기 쉽다.

예를 들어보자

업계에서는 X라는 용어는 3라는 의미로 사용되고 Y라는 용어는 4라는 의미로 사용된다. 그리고 Z라는 용어는 X와 Y을 더한 값 즉 7로써 통용된다.

그리고 여기에 배움을 갈구하는 한 학생이 있다.

이 학생은 Z가 7이라는 사실은 알고있다. 하지만 왜 7인지에 대해 알고싶어한다.

이에 대한 두가지 설명 방법이 있다. 다음과 같다

  1. Z가 7인 이유는 X와 Y를 더한것이 Z와 같기때문입니다
  2. Z가 7인 이유는 3과 4를 더한것이 Z와 같기때문입니다

1번 설명의 경우는 X와 Y가 뭔지 모르는입장에서는 충분한 설명이 될 수 없다. 이 설명을 이해하기 위해서는 X와 Y에 대한 사전 지식이 필요하다

2번의 경우는 이해에 문제가 없다. 모든 내용이 설명안에 들어있다. 부가적으로 X는3이고 Y는4라는 설명도 함께 해줄수는 있다.

위 상황을 보고 아직 Z이 7에 대해 알 준비가 안된 X와 Y에 대한 사전 지식이 먼저 필요한 사람이라고 말할 수도 있겠지만, 2번의 방법으로 충분히 설명이 가능한 일이기도 하다.

결론적으로 말하자면 용어의 사용은 궁극적으로 효율적 커뮤니케이션을 위해 중요하다

하지만 학습자에게 설명하는 상황에서는 본래의 필요와 장점은 사라지게 된다.

학습자 입장에서는 용어에 대해 많이 알수록 물론 좋다.

용어로 도배된 자료가 훨씬 많을것이기 때문이다.

물론 준비가 많이 된 학습자에게 용어는 이해에 도움될 수 있는 요소가 될수도 있다

쉘 상에서 다음과 같이 해서 한줄로 파이썬 코드를 사용할 수 있다.

python3 -c "print('123')"

파일화 되어있는 파이썬 코드를 위와 같은식으로 커맨드라인 한줄로 변환하는 것을 하고자 하는것이다.

한줄로 하여 코드조각처럼 들고다닐 수 있는것이다.

예를 들어 sample.py 이 있고 이 안에 다음의 내용이 기록되있다 하자

쉘에서 다음과 같이 입력해본다

했을때 각각 두개의 경로가 잘 나오면 다음을 진행할 수 있다

만약 안나온다면 안나오는것에 대해 설치해주고 진행하자

실행하고나면 다음의 코드가 나올것이다.

이제 다음의 코드를 쉘에서 실행하면 위 sample.py 파이썬파일을 실행한 셈이 된다.

물론 sample.py파일은 더 이상 없어도 상관없다

복사해서 쉘에 다시 붙여넣어보자

+ Recent posts