brunch

You can make anything
by writing

C.S.Lewis

by 김창현 May 26. 2023

창작할 때 연습보다 중요한 것

주의: 모든 창작에 해당됨

창작할 때 사람은 가장 행복한 것 같다. 그건 잘 될 때 말이고,

창작을 해야만 할 때 가장 괴롭다.


나도 글을 쓸 때 무슨 말 부터 시작해야 할지 모르겠고,

내가 쓴 문장이 마음에 들지 않은 적 투성이다. (지금도 마찬가지다).


옛날에 글 잘쓰는 방법은 3다로 얘기했다.

쉽게 말하면 많이 읽고, 많이 쓰고, 많이 생각하라는 뜻이다.

예전부터 이 말이 진리임과 동시에 뭔가 빠졌는데, 그게 뭔지 잘 모르겠다.


세상에 창작할 게 참 많다.

그림, 음악, 영화, 시나리오, 수필(이 글도 예외가 아니다) 등

ChatGPT가 많은 걸 해주는 시대이지만,

여전히 그런 많은 도구들을 가지고 우리는 창작물로 경쟁을 한다.


코딩 역시 마찬가지이다.

코딩을 잘 못하는 사람은 코드를 가져다 붙인다.

예를 들어 HTML로 <table> </table>을 생성할 때 그냥 있는 자료 모두

테이블 코드를 하나씩 가져다 쓰면  


   <tr>

      <td>7</td>

      <td>8</td>

      <td>9</td>

    </tr>


이런 식으로 전체를 다 복붙을 반복하면, 7,8,9에 있는 글자만 바꿔서 내용을 추가할 수 있다. 그런데 만들어야 할 table이 1000개짜리 표라면? 물론 다소 비현실적인 예이지만 그런 경우도 얼마든지 존재할 수 있다.


그럴 경우는 함수를 써야 한다. 반복문을 써서 코드를 생성해내게끔 해야 한다. 웹프레임웤은 그런 기능들을 제공한다. 예를 들어 루비에서는 다음과 같은 문법을 제공한다.



    <% @walls.each do |wall| %>

      <tr>

        <td><%=  wall.title %></td>

      </tr>

    <% end %>


이렇게 하면 Wall이라는 클래스 안에 들어있는 모든 제목이 다 표로 생성된다. tr, td 이런 얘들을 계속 복붙해줄 필요가 없는 것이다. 좀 다른 얘기지만, 반복할 수 있는 것은 다 코드로 변환이 가능하다.


그런데 이 코드들을 다 자기가 생성하려고 해보자.

그럼 HTML 테이블 문법 외워야지, Ruby 코드 외워야지, Rails와 Ruby가 어떻게 상호작용하는지 알아야지.. 머리가 한도 끝도 없이 복잡해진다. 여기서 방법은 두가지다.


1. ChatGPT에게 물어본다.

이 방법으로 요즘은 상당히 많은 코딩의 문제를 해결할 수 있다. 나는 지금도 html table 문법을 잘 모른다. 거의 할 때마다 ChatGPT에게 시키는 것 같다. 예를 들어 위 코드 역시 "3*3 테이블 html"이렇게만 입력하면 ChatGPT가 코드를 생성해준다. 이런 단순한 코딩은 ChatGPT를 믿어도 좋다. Trust me.

 

2. 비슷한 코드를 찾아본다.

1번 방법은 완벽하진 않다. 코딩의 수준이 높아질수록 ChatGPT만으로 해결 안되는 문제들이 많기 때문이다. 그렇다면 나랑 비슷한 홈페이지를 내가 만들고 싶어하는 언어로 만들어낸 사례를 찾는다. GitHub 사이트 에 가면 여러분이 생각하는 거의 모든 종류의 코드가 다 있을 것이다. 심지어 코딩 책을 사지 않아도, 코딩 책에 나와 있는 코드가 다 공개되어 있는 경우도 허다하다. 저자들에게는 좀 미안하지만(나를 포함해서), 책을 사지 않아도 샘플 코드들을 볼 수 있다. 그리고 그 코드들을 하나씩 실행시켜본다. 그리고 생각한다. "이런 코드는 이럴 때 쓸 수 있겠는데?" 그럼 그런 코드를 기록해놓는다.


이 방법이 거의 모든 창작에 적용될 수 있다는 것을 알게 되었다. 아인슈타인은 이렇게 말했다.

"창의력의 원천은 출처를 교묘하게 숨기는 데 있다"고.

결국 모든 창작의 기본은 베끼기다. 특히 코드의 경우 이미 수많은 사람들이 수많은 코드를 만들어서 쓰라고 공개까지 해 놓고 있다. 물론 이 코드를 그대로 가져가서 토씨하나 안 바꾸고 상업용으로 팔면 도둑질이다. 그러나 자신의 프로젝트에 필요한 코드를 도려내서 사용하는 것은 언제나 오케이다. 그리고 코드는 도려낸다고 해서 원본에 손상이 가는 것도 아니다.


그림을 잘 그리고 싶으면, 다른 사람의 그림을 흉내내고, 소설을 잘 쓰고 싶으면, 잘 쓴 소설의 플롯을 가져온다. 코드를 잘 짜고 싶으면, 남들의 코드를 가져와서 사용해본다.


창작의 화룡점정, 창작의 꽃은 매무새에 있다고 생각한다. 가져오는 것으로는 부족하다. 잘못 가져오면, 도둑질이 될 수 있다. 논문의 경우 가져오고 난 다음에는 꼭 출처 표기가 필요하다.


예전에 어떤 교수가 사회과학은 종이랑 가위만 있으면 누구나 할 수 있다고 말한 것을 들었다. 남의 문장 가져오는 거니까. 윤리의식이 없다고? 그렇지 않다. 인용과 패러프레이징은 글쓰기의 기본 중 기본이다. 그리고 학문적 글쓰기에서 인용과 패러프래이징 없으면 한 문단도 제대로 나아가기 힘들다(해본 사람은 알 것이다).


가장 바보(나를 포함해)는 처음부터 자기가 뭔가 해보려고 낑낑대는 것이다. 아, 나도 바보다. 창작해야 한다는 생각에 낑낑대는 시간이 너무 많다. 그럴 시간에 한번이라도 더 베끼는 게 남는 것이다. 베끼고 숨기고, 베끼고 숨긴다. 여기서 "숨긴다"는 표현은 약간의 오해의 소지가 있는데, "숨긴다"는 것은 출처를 숨긴다는 것이 아니고, 원작의 표현 방식을 내 작품에 맞도록 바꾼다는 의미이다. 어쩌면 창작은 그 자체가 모방이다.


이렇게 하면 시나리오, 음악, 코딩, 미술 못할 게 없을 것만 같다.


이제 3다, 많이 읽고, 많이 쓰고, 많이 생각하라는 창작의 기본 원리 중 어디가 부족한 지 눈치채셨으리라 믿는다. 3다가 아니라 4다가 되어야 한다. "많이 베껴라." 수많은 레퍼런스에서 부지런히 베끼고 또 베껴라. 그리고 마지막에 '숨기기' 즉 자신만의 색깔로 바꾸기를 성공하면 창작은 훌륭하게 완성된다.


예술의 기본은 representation이다. 이걸 '재현'이라고도 많이들 번역하는데, 결국 이 단어 역시 '베낀다'는 뉘앙스를 품고 있다. 원래 그림은 자연의 아름다움을 훔친 것이다. 베끼면  아무래도 똑같이 베낄 수 없기 때문에 'representation'이 되는 것이다.


인류 문명의 발전은 창조적 파괴가 아니라 Ctrl-C, Ctrl-v에 더 가깝다는 생각이다. 똑같이 베끼는 것은 불가능하기 때문에 변형이 일어나고, 변형 안에서 진정한 창조가 일어난다.


아이디어가 떠오르지 않는다고 앉아서 이런 저런 생각을 할 시간에,

하나라도 더 부지런히 베끼는 것이 좋은 창작자로 가는 지름길이라 감히 말할 수 있을 것 같다.



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari