brunch

You can make anything
by writing

C.S.Lewis

by zwoo Oct 04. 2023

개발자다운 연휴 보내기

떠나자 코딩 여행

이번 연휴는 꽤 길다. 나는 거기에 이틀의 휴가를 붙여서 8일을 쉬는 중이다. 이번 연휴는 개발자답게 코딩을 하며 알차게 보내고 싶었다. 휴일이 약 이틀 정도 남은 시점에서, 지난 6일간 무얼 했는지 한번 회고해보려고 한다. 


기획


처음 개발자가 되기로 마음먹은 것은 웹 화면에 내 생각을 그대로 옮겨놓을 수 있다는 생각 때문이었다. 막상 공부해보니 생각을 그림이나 사진처럼 있는그대로 화면에 옮긴다는 것은 생각보다 어려운 일이었고, 현업에서 그것은 개발자보다는 디자이너의 역할에 가까웠다.


그러던 중, 화면에 그림을 그리는 것 같은 작업은 캔버스 API 를 이용하면 할 수 있다는 것을 알게 되었다. 흥미가 생겼다. 이번 연휴에 공부해보기로 했다.


뭘 만들어보면 좋을까? 그래, 계절을 표현해보자!

이번 여름, 비가 많이 내린 것을 떠올렸다. 비가 내리는 것을 표현해보고 싶었다. 빗방울이 떨어질 때마다 화면 아래쪽에 잔물결효과가 일어나면 좋겠다고 생각했다.


원고작업을 도와주시는 매니저님께 이 기획을 말씀드렸더니 흥미를 보이셨다. 다만 생각지도 못한 답변이 돌아왔다.


"좋습니다. 혹시 계절에 맞게 가을은 어떨까요?"


그러고보니 어느새 가을이었다. 



작업


AI그림에 대해서는 사람마다 의견이 분분하지만, 내게는 이미지 검색처럼 느껴진다. 필요한 그림 자료가 있으면 검색 대신 미드저니에게 생성해달라고 부탁한다. 다만 검색과 달리 이 세상에 단 하나뿐이며, 내가 원하는 구체적인 조건들을 모두 만족시키는 자료이다. 처음 마주했을 때는 AI가 내 직업을 포함해 사람들의 일거리를 모두 가져갈 거라는 불안감이 엄습했지만, 악마같은 편리함에 계속 손이 갔다. 미드저니에게 가을배경을 만들어달라고 부탁하고, 흩날리는 낙엽들도 몇개 그려달라고 했다.


캔버스 API는 HTMLCanvasElement API 요소들을 부르는 명칭이다. 이 API 요소들은 <canvas> 태그 안에 내장되어있고, 쿼리셀렉터로 canvas 요소에 접근한 후 getContext() 메서드를 호출하면 그리기를 시작할 수 있다. 이렇게 접근한 컨텍스트는 여러 그리기 메서드를 내장하고 있다. arc 메서드로 곡선을 그리거나 stroke 메서드로 직선을 그릴 수 있다.


가을을 표현하기 위해서 하늘에서 바닥으로 떨어지는 비와 낙엽을 만들었고, 마우스의 움직임에 따라 windVector 값을 지정해서 이 벡터값에 의해 비와 낙엽의 x좌표가 좌우로 변경되도록 해서 바람에 따라 흩날리는 움직임을 표현하고자 했다.


처음보는 API 메서드들이 생소해서 익숙해지는 데까지 이틀정도 걸렸고, 실제 작업은 2~3일 정도 걸렸다. (중간에 잠깐 가족들과 시간을 보냈다) 어느 정도 완성이 된 상태에서 개발자 친구들에게 피드백을 구했는데, 고맙게도 여러가지 개선지점들을 짚어주어서 실수도 잡고 리팩토링도 할 수 있었다. 감사의 마음을 담아 기프티콘을 선물했다. 


자세한 작업과정은 발행될 원고에 써야 해서 이번 글은 이정도로 마무리하려고 한다. 



개발자다운 연휴를 보냈나요?


이번 연휴는 개발자로서 공부를 게을리하고 있다는 죄책감을 떨칠 수 있는 시간을 보낸 것 같다. 무엇보다 오랜만에 '만들어야 하는 것'이 아닌 '만들고 싶은 것'을 만들었더니 진짜 재미있었다. 2d 만으로도 상당히 많은 미적인 요소들을 표현할 수 있다는 게 참 인상깊었고, 이렇게까지 유용한 웹 API 의 수준에 감탄했다. 흥미가 생긴 김에 좀더 공부해볼 생각이다. (그런데 3d (three.js) 까지 건드릴 것 같지는 않다..ㅋㅋ) 



Photo by Annie Spratt on Unsplash


TMI1.

지난번 글의 분위기가 많이 어두컴컴했던 것을 기억하는 사람도 있을 것이다. 지금은 그때보다 상당히 좋아졌다. 모든 면에서. 우선 내가 업무에 꽤 적응한 것 같다. 실수가 줄어들었고 작업시간도 단축됐다. 팀이 원하는 스타일과 작업 방향에 익숙해졌고, 잡음이 줄어들었다.


내가 노력한 결과일 수도 있고, 팀원들과 팀리더가 많이 기다려주고 도와준 결과일 수도 있고, 둘다일 수도 있다. 정말 다행이고, 감사한 마음이 든다.


TMI2.

혼자만의 생각에 깊이 몰두하는 시간이 나에게는 가장 자유롭게 느껴진다. 책상에 앉아서 혹은 거리를 산책하면서 방해받지 않는 시간이 아주 소중하다. 그런 시간을 많이 확보해둘수록 회사에서 사람들과 교류하는 것을 즐기게 되는 것 같다. 회사 바깥에서의 시간만으로도 내 시간은 충분하니까.




   







매거진의 이전글 [정글]프로젝트가 끝난 후 보완한 것
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari