-
검색엔진이 좋아하는 블로그는 따로 있다
검색엔진 최적화를 위한 SEO 대응, 그리고 효과적인 글쓰기
2025-07-20 14:26
내 글이 검색엔진 상단에 노출되게 하려면 어떻게 해야할까? 검색엔진 최적화, 즉 SEO 대응을 위한 방법은 크게 두가지로 나눌 수 있다. 시스템적으로 SEO 대응하기 글 쓸 때 “효과적으로” 작성하기 이 포스팅에서는 위 두가지 방법을 통해 검색엔진에 블로그 글을 노출시키고 유입을 늘리는 방법을 설명한다. 🛠 시스템적으로 할 수 있는 것들 Github Pages로 호스팅되는 Jekyll 기반의 페이지를 기준으로 설명한다. 1. sitemap.xml 생성 및 등록 검색엔진이 내 사이트 구조를 파악할 수 있도록 도와주는 것이 sitemap.xml이다. Jekyll에선 jekyll-sitemap 플러그인을 이용하면 자동으로 생성된다. # _config.yml url: "https://blog.cowkite.com" # 블로그 주소 plugins: - jekyll-sitemap 생성된 sitemap.xml을 Google Search Console에 등록해주면 크롤링과 인덱싱이 시작되고, 구글 검색엔진에 내 글이 노출된다. 자세한 내용은 이전 글인 👉 내 블로그 글이 구글 검색결과에 노출되도록하기 내 블로그 글이 구글 검색결과에 노출되도록하기 2. robots.txt 설정 크롤러가 어떤 페이지에 접근 가능한지 알려주는 robots.txt도 중요하다. “어디는 봐도 되고, 어디는 보지 마라”고 알려주는 ‘지침서’같은 것이다. 검색 허용 여부 제어함으로써 일부 페이지를 크롤링하지 못하게 막을 수도 있고, CSS, JS 같은 리소스나 관리용 경로 차단함으로써 불필요한 리소스를 차단할 수도 있다. 사이트맵 위치를 알려줌으로써 검색엔진이 빠르게 구조를 이해하게 도와줄 수도 있다. 블로그의 루트 경로에 직접 robots.txt 파일을 생성한다. 기본적으로는 아래 구조를 따른다. User-agent: * Allow: / Sitemap: https://{블로그주소}/sitemap.xml 만약 특정 경로를 차단하고 싶으면 Disallow를 추가해주면 된다. User-agent: * Disallow: /admin/ Allow: / Sitemap: https://{블로그주소}/sitemap.xml 3. canonical 태그 설정 설정에 따라 같은 글을 여러 URL로 접근할 수도 있을 것이다. 예를들면 아래와 같은 경우가 있다. - https://blog.cowkite.com/page1 - https://blog.cowkite.com/page1?utm_source=naver 이 경우 검색엔진은 중복 콘텐츠로 인식할 수 있기 때문에, canonical 태그로 대표 URL을 명시하는 것이 중요하다. 이렇게 설정해두면 검색 결과에 표시될 우선 URL로 인식되고, SEO 평점 분산을 방지할 수 있다. _layouts/default.html 또는 _includes/head.html 파일을 수정해서 아래 한줄을 추가하면, 사이트 전역의 <head>를 일괄 적용할 수 있다. <link rel="canonical" href="{ page.url | absolute_url }"> 4. 메타 태그 및 OG(Open Graph) 설정 OG 태그란 Open Graph Protocol이 줄임말로, Facebook, Twitter 등 SNS에서 링크 미리보기 정보를 읽어올 수 있게 제목, 설명, 이미지, URL 등을 설정할 수 있다. 나 또한 개인적으로 블로그를 만들면서 가장 신경썼던 것 중에 하난데, 다른 설정들과 달리 공유할 때 즉각적으로 보이는 영역이므로 세심하게 설정하는 것을 추천한다. 또한 Google 검색 미리보기에도 영향을 미치기도하므로, 검색결과와 SNS 공유 썸네일에서 예쁘게 보이려면 OG 태그를 활용하는 것이 좋다. canonical 태그를 추가할 때와 마찬가지로 _includes/head.html또는 _layouts/default.html에 추가해주면 된다. <meta property="og:type" content="article"> <meta property="og:title" content="{{ page.title }}"> <meta property="og:description" content="{{ page.subtitle | default: site.description }}"> <meta property="og:url" content="{{ page.url | absolute_url }}"> <meta property="og:image" content="{{ site.url }}/assets//assets/2504202307/og-default.png"> 여기서 조금 더 신경 쓰면 각 게시물마다의 썸네일을 적용할 수 있다. 또 추가로 공유 썸네일에서 description을 활용하지 않는 SNS를 대응해서, title에 description까지 노출하도록 적용할 수도 있다. 이 부분까지 다루기엔 글이 흐름이 너무 길어질 수 있으니, 추후에 별도의 글로 작성해야겠다. 5. 이미지 최적화 및 lazy-loading 이미지는 SEO에서 LCP(Largest Contentful Paint) 성능에 큰 영향을 준다. 당연한 얘기겠지만 이미지가 크면 LCP, CLS 등 Core Web Vitals 점수가 하락하므로, 용량이 과다할 경우 감점 요인이 된다. 물리적으로 과도하지 않은 이미지 사이즈 및 webp 포맷의 이미지를 사용하는 것이 것이 가장 우선시 되어야하지만, 시스템적으로도 보완할 수 있는 방법이 있다. webp 확장자의 파일이 있을 경우 우선 사용하고, 없을 땐 jpg/png 사용하도록 일관화하기 사용자가 스크롤할 때 불러오도록 lazy-loading 속성 사용 alt 속성을 적용해서 이미지 설명으로 SEO + 접근성 향상 시키기 이 때 liquid를 활용해서 커스텀 스니펫을 사용하면, 이미지를 삽입할 때마다 신경쓰지 않아도 된다. _includes/lazy_image.html를 생성하고 아래 코드를 삽입한다. <figure class="{{ include.figure_class | default: 'lazy-figure' }}"> {% if include.webp %} <picture> <source srcset="{{ include.webp }}" type="image/webp"> <img src="{{ include.src }}" alt="{{ include.alt | default: '' }}" loading="lazy" decoding="async" width="{{ include.width | default: '100%' }}" class="{{ include.class | default: 'lazy-img' }}"> </picture> {% else %} <img src="{{ include.src }}" alt="{{ include.alt | default: '' }}" loading="lazy" decoding="async" width="{{ include.width | default: '100%' }}" class="{{ include.class | default: 'lazy-img' }}"> {% endif %} {% if include.caption %} <figcaption>{{ include.caption }}</figcaption> {% endif %} </figure> 그러면 앞으로 {% include img.html src="이미지주소"...를 사용할 때마다 자동으로 이 코드 스니펫을 참조하게 된다. alt, width, height 태그를 자동 지정해주고, loading="lazy", decoding="async" 같은 속성을 주입하도록 설정했다. 이 때 .webp 파일을 사용하면 물리적인 이미지 용량 감소에도 도움이 되므로, 이미지 경로내에 .webp 확장자가 있는 경우에 그 파일을 사용할 수 있도록 적용했다. 사용하기 일반적으로 마크다운에서 이미지를 사용할때는  방법을 사용했을 것이다. 이제 커스텀 스니펫을 사용하기위해, 글을 작성할 때 아래처럼 작성하면 된다. {% include img.html src="이미지주소" text="설명" width="800" height="600" %} 6. CSS/JS 최적화 검색엔진은 페이지의 로딩 속도 역시 평가 지표로 활용한다. 특히 Core Web Vitals 중 LCP(Largest Contentful Paint), FID(First Input Delay)와 같은 성능 지표는 HTML 문서와 더불어 JS, CSS의 영향도 크게 받는다. CSS와 JS가 불필요하게 크거나, 페이지 렌더링을 블로킹하는 경우 페이지 노출 순위에 불리하게 작용할 수 있다. 이를 방지하기 위해 다음과 같은 조치를 적용할 수 있다. 비동기 로딩: <script> 태그에 defer 또는 async 속성을 사용하여 렌더링 블로킹을 최소화한다. defer: HTML 파싱이 끝난 뒤 실행되며, 순서를 보장한다. async: 다운로드가 완료되면 바로 실행되며, 순서는 보장되지 않는다. 불필요한 CSS 제거 (purge): 사용되지 않는 스타일을 빌드 시점에 제거하여 최종 번들 용량을 줄인다. Jekyll에서는 별도 빌드 스크립트를 통해 purgeCSS와 같은 도구를 연동하거나, TailwindCSS를 사용하는 경우 content 경로 설정으로 처리 가능하다. 경량 웹폰트 사용: 외부 폰트를 불러올 경우 기본 시스템 폰트 혹은 Pretendard, Inter 등 경량화된 웹폰트를 사용하는 것이 바람직하다. 또한 font-display: swap 속성을 지정하여 텍스트가 즉시 표시되도록 설정하는 것이 좋다. 성능 최적화는 단지 빠른 로딩을 넘어서 사용자 경험과 SEO 평가 모두에 영향을 주기 때문에, CSS/JS 자산의 관리 전략은 SEO의 핵심 기초라 할 수 있다. 7. HTTPS 적용 HTTPS는 검색엔진 최적화에 있어 필수 요소이다. Google은 HTTPS를 공식적으로 순위 결정 요소로 활용한다고 밝혔으며, 사용자의 브라우저에서도 보안 경고를 유발할 수 있기 때문에 반드시 적용되어야 한다. GitHub Pages는 자체적으로 HTTPS를 기본 제공하지만, 맞춤 도메인을 사용하는 경우 다음과 같은 사항들을 확인해야 한다. DNS 설정 확인: 커스텀 도메인을 사용하는 경우, GitHub Pages에 연결된 CNAME 설정 및 A 레코드가 올바르게 지정되어 있어야 한다. HTTPS 강제 리디렉션 설정: https:// 접속을 강제하도록 GitHub Pages 설정에서 “Enforce HTTPS” 옵션을 활성화한다. Search Console 등록 시 HTTP/HTTPS 구분: Google Search Console에서는 HTTP와 HTTPS를 별도의 속성으로 인식하기 때문에, HTTPS 도메인 기준으로 사이트를 등록하고 sitemap.xml도 해당 주소로 제출해야 한다. SSL 인증서는 GitHub에서 자동으로 발급되지만, 적용 지연이나 DNS 설정 누락 등으로 HTTPS가 정상 작동하지 않을 수 있으므로 최종적으로 https://{도메인} 주소로 접속 시 인증서가 문제 없이 작동하는지 확인하는 절차가 필요하다. HTTPS가 적용되지 않은 사이트는 보안뿐만 아니라 검색 신뢰도 측면에서도 불이익을 받을 수 있으므로, 사이트 초기 구축 시 반드시 우선적으로 확인해야 할 항목이다. ✍️ 콘텐츠적으로 할 수 있는 것들 1. 글 하나에 핵심 키워드 하나 검색엔진은 하나의 페이지가 어떤 주제를 다루는지를 판단할 때, 해당 콘텐츠의 중심 키워드를 기준으로 문맥을 분석한다. 따라서 하나의 글 안에 여러 키워드가 혼재되어 있다면 주제성이 약해지고, 검색 결과에서의 적합도 또한 떨어질 수 있다. 가장 이상적인 구조는 글 하나당 하나의 핵심 키워드를 중심으로 전체 내용을 구성하는 것이다. 핵심 키워드를 명확히 정의하고, 그 키워드가 설명하는 대상, 배경, 실행 방법, 예시 등으로 글의 흐름을 잡아나가야 검색엔진도 정확하게 해당 페이지를 평가할 수 있다. 특히 검색 트렌드가 짧은 문장형 또는 질문형 검색어로 이동하고 있기 때문에, 키워드는 단순 명사형보다는 “jekyll SEO 설정 방법”, “깃허브 페이지 SEO 적용하기” 와 같이 문장 형태로 구성하는 것도 효과적이다. 2. 제목과 소제목에 키워드 삽입 검색엔진은 <title>, <h1>, <h2> 태그와 같은 구조화된 제목 영역을 우선적으로 인식하여 콘텐츠의 주제를 파악한다. 이때 핵심 키워드를 제목에 포함시키는 것은 해당 키워드와의 연관성을 직접적으로 전달하는 가장 효과적인 방법이다. 예를 들어, Jekyll 블로그 SEO 설정 방법이라는 제목은 “jekyll”, “seo”, “설정”, “블로그”라는 주요 키워드를 자연스럽게 포함하고 있으며, 본문 내 소제목들도 "## sitemap.xml 생성하기", "## canonical 태그 설정"과 같이 키워드 중심의 문장으로 구성하면 검색엔진이 각 단락의 맥락을 더 쉽게 이해하게 된다. 또한, 제목이 검색결과에서 클릭률(CTR)에 직접적인 영향을 주기 때문에, 단순 키워드 나열보다는 사용자 관점에서 유익함이 드러나도록 문장을 구성하는 것이 중요하다. 3. 자연스럽게 키워드 반복 검색엔진은 본문 내 키워드의 밀도와 위치, 반복 빈도를 통해 해당 페이지의 주제와 전문성을 판단한다. 하지만 과도하거나 인위적인 키워드 반복은 오히려 패널티 요소로 작용할 수 있기 때문에, 문맥 속에 자연스럽게 녹아들도록 배치하는 것이 바람직하다. 보통 하나의 글 내에서 핵심 키워드를 3~5회 정도 자연스럽게 사용하되, 각 문단의 앞부분 또는 제목과 인접한 위치에서 강조하는 것이 효과적이다. 예를 들어, "jekyll seo"라는 키워드를 사용할 경우 "jekyll 블로그를 운영하는 입장에서 seo는 필수적인 고려사항이다"와 같이 문장 흐름에 맞게 삽입하면 SEO와 독자 경험 두 측면 모두에 긍정적인 결과를 낼 수 있다. 4. 내부/외부 링크 적극 활용 링크는 콘텐츠의 신뢰성과 구조를 높이는 데 있어 중요한 역할을 한다. 내부 링크는 동일 사이트 내의 관련 콘텐츠를 연결함으로써 사용자 체류 시간을 증가시키고, 사이트 전반의 인덱싱 효율을 개선하는 데 기여한다. 반면, 외부 링크는 Google, MDN, Wikipedia 등 신뢰도 높은 출처를 인용하여 정보의 신빙성을 높이는 데 효과적이다. Jekyll 기반 블로그에서는 다음과 같이 내부 링크를 활용할 수 있다: <a href="/blog/2504212055/">다음 글 보기</a> 이처럼 HTML 앵커 태그를 사용하여 다른 포스트로 자연스럽게 흐름을 연결하면, 사용자는 맥락 상 연관된 정보를 연속적으로 탐색할 수 있고, 검색엔진은 해당 페이지의 정보 연결성을 긍정적으로 평가한다. 5. alt 텍스트와 캡션 작성 이미지 역시 SEO 대상이다. 특히 이미지에 포함된 내용을 검색엔진이 직접 해석할 수 없기 때문에, 대체 텍스트인 alt 속성과 선택적 figcaption 태그를 활용하여 이미지의 의미를 텍스트로 보완해야 한다. 예를 들어 다음과 같이 작성하면: <img src="/assets/example.png" alt="jekyll seo 설정을 위한 sitemap 예시"> <figcaption>SEO를 위해 sitemap.xml을 설정하는 예시 화면</figcaption> 검색엔진은 alt 속성을 통해 이미지의 의미를 인식하고, 시각장애인이나 이미지 로딩이 불가한 상황에서도 접근성을 유지할 수 있다. 캡션은 콘텐츠 내 시각 자료가 단순한 장식이 아닌 정보 요소임을 강조하며, 이미지와 텍스트 간의 연결성을 높이는 역할을 한다. 6. 콘텐츠 최신 상태 유지 검색엔진은 페이지가 언제 작성되었고, 얼마나 자주 업데이트되는지를 통해 정보의 신선도(Freshness)를 평가한다. 따라서 오래된 콘텐츠라 하더라도, 주기적인 업데이트와 last_modified_at 등의 메타데이터를 활용하면 SEO 관점에서 긍정적인 신호로 작용할 수 있다. Jekyll에서는 아래와 같이 작성일과 수정일을 명시할 수 있다: # 포스트 Front Matter 예시 date: 2023-05-10 last_modified_at: 2025-04-20 수정일을 명시하면 검색엔진이 인덱싱 시 해당 글이 최근에 갱신되었음을 인식하며, 사용자에게도 정보의 최신성을 간접적으로 전달할 수 있다. 단, 날짜만 변경하는 식의 형식적 갱신은 오히려 신뢰도를 저하시킬 수 있으므로, 실제로 의미 있는 변경 사항이 동반되어야 한다는 점을 유의해야 한다. 🔖 추가 점검 사항 검색엔진 최적화는 단순히 초기 설정을 잘하는 것으로 끝나지 않는다. 사이트 운영 중 발생할 수 있는 인덱싱 오류, 구조적 문제, 콘텐츠 노출 누락 등에 대응하기 위해서는 정기적인 점검과 사후관리가 필수적이다. Search Console에서 인덱싱 상태 수시 확인 Google Search Console은 내 사이트가 검색엔진에 어떻게 인식되고 있는지 확인할 수 있는 대표적인 도구다. 페이지별 색인 여부, 오류 메시지, 모바일 사용성, 클릭 수 등의 데이터를 통해 현재 상태를 진단하고 필요한 조치를 취할 수 있다. 특히 다음과 같은 상태 메시지를 수시로 체크해야 한다: Discovered - currently not indexed: 페이지는 발견되었지만 아직 인덱싱되지 않은 상태 Crawled - currently not indexed: 크롤링은 되었으나 인덱스에서 제외된 상태 Duplicate without user-selected canonical: 중복 콘텐츠로 판단되었으나 대표 URL이 지정되지 않은 상태 각 메시지는 원인을 분석하고 해당 페이지의 내부 링크를 강화하거나 sitemap을 재등록하는 등의 대응이 필요하다. canonical 태그 명시로 중복 콘텐츠 방지 특정 글이 쿼리 파라미터에 따라 여러 URL로 접근 가능한 경우, 검색엔진은 이를 서로 다른 콘텐츠로 판단하거나 중복 콘텐츠로 인식할 수 있다. 이때 canonical 태그를 통해 대표 URL을 명시함으로써 SEO 점수의 분산을 방지하고, 검색 결과에 노출될 URL을 통제할 수 있다. 이 조치는 특히 UTM 파라미터, 공유용 링크 등 다양한 유입경로가 존재하는 블로그 환경에서 더욱 중요하다. OG 이미지 및 게시물별 썸네일 삽입 OG(Open Graph) 태그는 SNS 공유 시 콘텐츠의 미리보기 정보를 제공하며, 간접적으로 클릭률(CTR)과 검색 노출에도 영향을 미친다. 본문 내 OG 이미지 또는 대표 썸네일을 삽입하면 사용자에게 콘텐츠의 신뢰감을 주고, 다양한 플랫폼에서 일관된 콘텐츠 미리보기를 제공할 수 있다. 가능하다면 각 포스트마다 개별 OG 이미지를 설정하고, 기본 이미지가 존재하지 않는 경우에는 og-default.png 등의 기본값을 지정해두는 것이 좋다. 반응형 UI 및 모바일 퍼스트 디자인 적용 검색 트래픽의 상당 부분은 모바일에서 유입되며, Google은 모바일 페이지의 품질을 기준으로 인덱싱하는 Mobile-first Indexing을 적용하고 있다. 따라서 모든 페이지는 데스크탑뿐 아니라 다양한 해상도에서도 적절히 렌더링되어야 하며, 폰트 크기, 버튼 크기, 이미지 너비 등에서도 모바일 사용성을 충분히 고려해야 한다. Jekyll 기반 블로그의 경우, CSS media query, flex/grid 레이아웃 구조, 뷰포트 메타 태그 등 기본적인 반응형 설계를 적용하는 것이 좋다. Lighthouse로 주기적인 성능 체크 Google Chrome의 개발자 도구에서 제공하는 Lighthouse는 SEO, 퍼포먼스, 접근성, PWA 등 다양한 영역에 대한 자동 진단 리포트를 제공하는 도구다. 페이지 로딩 시간, 렌더링 차단 리소스, 이미지 최적화 여부 등을 점검할 수 있으며, 각 항목은 점수화되어 표시되므로 변경 전후를 비교하거나 병목 지점을 찾는 데 유용하다. 주요 항목으로는 다음을 점검하는 것이 좋다: Largest Contentful Paint (LCP) Total Blocking Time (TBT) Cumulative Layout Shift (CLS) SEO 항목 내 title/description 유무, 링크 상태 등 정기적인 Lighthouse 테스트를 통해 SEO 대응뿐만 아니라 전체적인 웹페이지 품질을 한층 더 안정적으로 유지할 수 있다. 📚 마치며 SEO는 한 번 설정하면 끝나는 게 아니라, 계속 손보고 점검해야 하는 일이다. 검색엔진도 계속 바뀌고, 사람들이 뭘 찾는지도 계속 달라지니까. 처음엔 메타 태그를 달고, sitemap을 만들고, 키워드를 넣는 식으로 기술적인 부분부터 시작하지만 쓰다 보면 결국 중요한 건 그 안에 담긴 내용이 사람한테 얼마나 도움이 되느냐라는 걸 느끼게 된다. 검색엔진에 잘 보이는 것도 중요하지만, 그보다 더 오래 남는 건 읽는 사람이 ‘좋은 글이었다’고 느끼는 순간일지도 모르겠다. 그래서 요즘은 예전처럼 “어떻게 하면 상위에 노출될까?”보다는 “이 내용이 필요한 사람한테 닿을 수 있을까?”를 더 자주 생각하게 된다. 이 글도 누군가에게 그런 작은 도움 하나쯤은 되었으면 좋겠다.
-
내 블로그 글이 구글 검색결과에 노출되도록하기
페이지의 사이트색인을 생성하고 Google Search Console에 등록하기
2025-04-20 22:48
📦 구글은 나를 모른다 블로그를 시작할 때 흔히 착각하는 것이 있다. 구글 검색에 내 글이 알아서 잘 노출될 것이라는 것. 혹은 Google Analytics로 유입된 것을 확인하거나, 댓글이 달리고나면 내 글이 잘 검색되고 있을거라는 기대를 한다. 실제로 글을 작성하고 며칠이 지나면 구글 검색결과에 노출이 되긴한다. (혹은 페이지 구조에 따라 아예 안 될 수도 있다.) 글을 올리고 ‘언제쯤부터 내 글이 검색될 수 있을지’ 기다리는 대신 구글 검색 결과에 더 효과적으로 노출하는 방법을 소개하려고한다. 바로 Google Search Console에 사이트를 등록하고, 색인을 제출하는 것. 🤔 Google Search Console? Google Search Console에 사이트색인을 등록하는 이유는 단순히 검색결과에 더 잘 나타나기 위해서다. 물론 굳이 콘솔에 사이트색인을 등록하지 않더라도 언젠가는 구글이 내 페이지를 크롤링해서 검색결과에 노출하긴 하지만, 구글이 수동으로 사이트를 찾는 데엔 시간이 걸리기도하고, 특히 커스텀 블로그나 GitHub Pages 기반의 블로그는 내부 링크 구조가 약하면 크롤링이 잘 되지 않는 경우도 많기 때문에 직접 등록해주는 것이 좋다. 또한 Google Search Console의 부가적인 기능으로 페이지 상태를 실시간으로 확인할 수 있고, 어떤 페이지가 검색 유입이 많은지, 어떤 쿼리로 유입되는지 분석이 가능하므로 SEO 개선 힌트도 얻을 수 있다. 🏃 적용 방법 Github Pages로 호스팅되는 Jekyll 기반의 페이지를 기준으로 설명한다. 1. 사이트맵 파일 생성 Jekyll에서는 jekyll-sitemap 플러그인을 사용하면 사이트맵 파일인 sitemap.xml이 자동 생성된다. _config.yml에 url을 명시해주고, 플러그인을 추가해주자. url: "https://blog.cowkite.com" # 블로그 주소 plugins: - jekyll-sitemap 이제 배포하고 나면 ‘{블로그주소}/sitemap.xml’에서 전체 포스트 목록을 구글봇이 볼 수 있게 된다. 내 설정 파일을 예시로 들면, ‘https://blog.cowkite.com/sitemap.xml’ 주소에 생성되는 것이다. 사이트색인은 새 글을 발행하거나 _config.yml 파일이 수정될 때마다 자동으로 크롤링된다. 2. Google Search Console 등록 Google Search Console에 접속한 뒤, 속성(Property)을 추가해준다. 그러면 구글이 자동으로 소유권을 확인하고 등록한다. 도메인 방식은 DNS 설정이 필요하므로, URL 접두어 방식으로 등록하는 것을 추천한다. 만약 소유권 확인이 안 된다면 안내에 따라 수동으로 소유권을 등록하는 방법도 있다. includes/head.html에 소유권을 확인하기 위한 코드를 삽입하면 된다. <!-- Google Search Console --> <meta name="google-site-verification" content="xxxxx" /> 3. sitemap 제출하기 직접 제출하지 않아도 시간이 지나면 수동으로 크롤링하는 듯 하지만, 좌측 메뉴에서 Sitemaps 메뉴에 진입하여 직접 제출할 수 있다. 수동으로 sitemap.xml 파일을 생성해서 지정할 것이 아니라면, 최초 1회 제출을 통해 구글봇이 주기적으로 갱신되는 것을 크롤링한다. 제출하면 색인 대기열에 들어가고 몇 시간~며칠 사이에 검색 노출이 시작된다. sitemap.xml 파일 주소를 입력 후 '제출' 버튼을 클릭한다. 4. 페이지 색인 생성 요청하기 좌측 메뉴에서 ‘URL 검사’를 클릭하여 메뉴에 진입해서, 발행된 글의 주소를 입력한다. 안내 메시지가 ‘URL이 Google에 등록되어 있지 않음‘이든, ‘URL이 Google에 등록되어 있음‘이든 ‘색인 생성 요청’ 버튼을 클릭하면 된다. 이 또한 직접 제출하지 않아도 시간이 지나면 수동으로 크롤링 되지만, 반영하는데 시간이 소요되므로 글을 발행하거나 수정할 때마다 수동으로 요청하면 좋다. '색인 생성 요청' 버튼 클릭하기 🧘 마치며 Google Search Console은 구글 검색엔진에 효과적으로 대응하는 방법이 맞다. 그러나 브라우저가 구글만 있는 것은 아니기 때문에, 궁극적으로는 SEO까지 잘 대응해야한다. 사이트 색인을 등록하는 것이 내 블로그를 ‘인지’하게 하는거라면, SEO 대응은 내 글을 ‘노출’하게 하는 것이다. 다음 편인 검색엔진 최적화 (SEO 대응) 글까지 참고해주면 좋다. 👉 검색엔진이 좋아하는 블로그는 따로 있다 검색엔진이 좋아하는 블로그는 따로 있다 보너스) 🚨 트러블 슈팅 1. 색인이 안 되는 흔한 원인들 색인 생성 및 제출, 검토 과정에서 아래 오류가 발생할 수 있다. Search Console에서 “URL 없음” 오류 블로그 주소와 다른 속성을 등록한 경우 발생한다. 나의 경우에는 https로 시작하는 주소를 입력해야하는데, http로 시작하는 속성을 생성해서 지속적으로 해당 오류가 발생했다. 뒤늦게 발견하고 https로 시작하는 속성을 새로 등록하고 해결되었다. sitemap.xml이 생성되지 않음 jekyll-sitemap 플러그인을 누락했거나, _config.yml 파일에 url 속성이 설정되어있지 않을 경우 발생한다. _config.yml 파일을 다시 확인해준다. 새 글이 sitemap에 없는 경우 일단 단순히 내 브라우저에 파일이 캐싱되어있는지 먼저 확인해봐야한다. 브라우저의 시크릿모드로 확인하거나, 터미널에 curl {블로그주소}/sitemap.xml 명령어를 통해 확인할 수 있다. % curl https://blog.cowkite.com/sitemap.xml <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://blog.cowkite.com/blog/2003062358/</loc> </url> ... 여전히 새 글이 sitemap에 노출되지 않는다면, GitHub Pages가 아직 빌드가 안 된 경우이므로 다시 빌드를 하면 된다. Action을 제어하는 경우가 아니라면, empty commit을 하거나 _config.yml 설정을 바꿔주는 것으로 충분하다. % git commit --allow-empty -m "Trigger rebuild" % git push 2. Search Console에서 페이지 색인 과정 중 발생하는 오류들 사용자가 선택한 표준이 없는 중복 페이지 같은 내용을 다른 URL로 향유할 경우에 발생한다. 예를 들면 아래 같은 경우에서 구글이 어떤 URL을 대표로 삼을지 몰라 발생하는 오류다. - https://blog.cowkite.com/page1 - https://blog.cowkite.com/page1?utm_source=naver 나의 경우에는 위 경우가 아님에도 불구하고, 각기 다른 다양한 게시물들에서 중복 페이지 오류가 발생하긴 했다. 어쨌든 해결법은 _layouts/default.html 혹은 _includes/head.html에 canonical 태그를 추가함으로써 이 URL이 진짜 주소임을 알릴 수 있다. <link rel="canonical" href="https://blog.cowkite.com/blog/2504202248/"> 리디렉션이 포함된 페이지 말 그대로 페이지가 리디렉션돼서 색인할 수 없다는 뜻인데, 나의 경우엔 내가 페이지 속성을 실수로 https가 아닌 http로 등록한데서 발생한 휴먼 에러긴하다. 이처럼 실제로 리다이렉션을 한 경우가 아니라면 보통은 http → https, www → non-www, 커스텀 도메인 변경 등이 원인이 된다. 커스텀 도메인을 사용하는 경우, 최종 주소 (리디렉션 된 주소) 를 등록해야 한다. 예를 들면 ‘https://cowkite.github.io’가 아닌 ‘https://blog.cowkite.com’로 등록이 되어야한다. 찾을 수 없음 (404) 사이트맵에는 있지만, 해당 글을 찾을 수 없는 경우에 발생한다. 대표적으로 기존에 게시했던 글을 삭제하는 경우다. 혹은 퍼머링크가 바뀌었을 가능성도 있다. Jekyll에서 퍼머링크는 기본적으로 날짜 기반이므로, YYYY/MM/DD/slug 구조를 확인해야한다. 발견됨 - 현재 색인이 생성되지 않음 콘텐츠 양이 너무 적거나, 내부/외부 링크가 거의 없거나, robots.txt가 막고 있거나, 구글이 “중복 컨텐츠일 수도”라고 생각한 경우 해당 오류를 발생시킨다. 위에서 설명한대로 글 작성 후에 Search Console에서 직접 색인 생성을 요청하면 된다. 크롤링됨 - 현재 색인이 생성되지 않음 위 오류와 거의 흡사한데, 너무 비슷한 내용만 반복된 페이지이거나, sitemap에 너무 늦게 반영된 경우 발생할 수 있다. 혹은 블로그 코드에 <meta name="robots" content="noindex">가 설정되어있을 수도 있다. 이럴 경우 _layouts 또는 _includes/head.html에서 meta robots 태그를 확인해보고, 만약 없다면 추가해준다. <meta name="robots" content="index, follow"> 그리고 sitemap.xml이 최신인지 확인하여 위에 설명한대로 empty commit을 통해 강제로 sitemap 갱신할 수 있다. 만약 모든 것이 정상인데 발생하는 오류라면, 마찬가지로 해당 글들을 수동으로 페이지 색인 생성하도록 요청한다.
-
나는 내 삶의 사용설명서를 뒤늦게 받아들였다.
ADHD와 APD를 진단 받은 개발자의 이야기
2025-04-13 22:51
나는 멀쩡하지 않았다. 그리고 그걸 깨달았을 때 이상하게도 안도했다. 평생을 “왜 이럴까?”라는 질문 속에 살았으니까. 정리되지 않는 책상, 자꾸 놓치는 약속, 자주 되묻는 대화, 산만함과 과도한 몰입 사이를 왔다 갔다 하는 삶. 나만 그런 줄 알았고, 그건 단순한 성격 문제라고 생각했다. 더 노력해야 한다고, 더 철저해져야 한다고, 그렇게 스스로를 몰아세웠다. 그런데 어느 날, 그 모든 것의 이유를 들었다. 진단명 하나에 너무 많은 퍼즐이 맞춰지는 경험. 이 글은 그 경험의 기록이다. 제가 ADHD라뇨. APD는 또 뭔데요. 1. 처음으로 이상하다고 느낀 날 - ADHD를 의심하게 된 계기 🛤️ 그날도 기차를 놓쳤다 2024년 여름, 다이빙 동호회와 울릉도 여행을 가던 날이었다. 하필 그 날은 나의 팀 마지막 출근일이기도했다. 치워도, 치워도, 치워치지않는 자리 정리에 정신이 없었고, 결국 기차 시간이 촉박해져 3년간 함께한 팀원들에게 인사도 못 했으며, 끝끝내 유일한 포항행 SRT마저 놓쳐버렸다. 대전까지 이동해 겨우 KTX를 타긴 했지만, ‘복합열차’ 개념을 몰라서 호남으로 갈 뻔했고, 그 와중에 성심당 빵까지 놓고 내렸다. 한번에 갈 수 있지만 굳이 굳이 택시, SRT, KTX 모든 수단을 다 동원해서 도착한 포항역 “소연님 완전 ADHD인데” - 장난처럼 던진 누구가의 말에 그 자리에 있던 사람들이 웃으며 고개를 끄덕이기 시작했다. 내가 대화 중 갑자기 다른 말을 한다거나, 방금 했던 말을 꼭 다시 반복하게끔 되묻는단다. 특히 친하게 지내던 OO님이 가장 흥분하며 말했다. “어쩐지 이상하다 생각했어!” - 내가 ADHD 환자임이 기정사실 마냥 확실시 되고 있었다. 😅 사실 검사도 몇개월동안 미루고 미루다 OO님이 하도 보채서 갔다. 🔄 놓치고 잊고 잃어버리는 나의 루틴 나도 안다. 매번 놓치고, 기억하지 못하고, 정리가 잘 안 되던 수많은 순간들. 난 첫인상으로 철두철미해 보인다는 말을 많이 듣지만, 내 친구들은 내가 그렇지 않다는 걸 잘 안다. 난 자주 지각하며, 자주 잊어버리고, 또 자주 잃어버린다. 길치가 아닌데도 잘못 된 길에 들고, 비행기는 3번쯤 놓쳤으며, 기차를 놓친 횟수는 셀 수도 없다. 물을 따를 땐 항상 흘리며, 이미 산 물건을 몇 번이고 또 사고, 물건을 제자리에 두지 못한다. 무엇이든 간에 적어놓지 않으면 꼭 기억해야 하는 것들도 기억하지 못한다. 이건 단순한 건망증이 아니라, 내 일상 자체의 반복 구조였다. 그래서 어느 순간부터는 이 모든 게 당연해졌다. ‘나는 원래 이런 사람이니까’라는 체념 같은 것. 여러분들은 사가정에서 만나기로해놓고 삼각지에 간 말도 안 되는 경험이 있는가? 난 있다. 🕳 그래서 나는 더 꼼꼼했다 많은 것을 놓치기 때문에 나는 업무 중엔 최대한 많은 것을 기록하고 메모하며, 사소한 것까지 검토한다. 그 모습 덕택에 날 잘 모르는 사람들은 내가 꼼꼼하다는 착각을 한다. 물론 일상생활 중에는 애로사항이 많지만 업무 중에는 오히려 ‘꼼꼼하다’는 피드백까지 받으니, 내 단점은 보완 가능하다는 생각을 해왔다. 철두철미해 보이는 나의 첫인상 (이 순간에도 뭔갈 잊어버리거나 잃어버렸음) 하지만 그날 울릉도에서 들었던 한 마디 이후, 처음으로 이런 생각이 들었다. ‘혹시, 이게 단순한 성격이 아니라 진짜 문제일 수도 있는 걸까?’ 내가 그동안 ‘개성’이라며 넘겨온 수많은 행동들이 사실은 누군가에겐 ‘증상’일 수도 있다는 가능성. 그렇게, 나는 내 삶을 조금 더 진지하게 들여다보기로 했다. 이건 사소한 계기였지만, 내 인생에 있어 가장 큰 의심이었고, 동시에 가장 중요한 질문이었다. 그러니까 제 인생이 바나나 껍질 40배라고요? 2. 검사 과정 - ADHD는 어떻게 진단받을까? 🩺 문진 & 상담 의사 선생님의 대면 문진/상담으로는 너무나도 가볍게(?) ‘전형적인 ADHD’라는 소견을 받았다. 여기서 끝이 아니고, 본격적인 검사는 이 때부터 시작이다. 무려 두시간 가까이 머리에 뭘 쓰고 뇌파 검사, IQ 테스트, 집중력 테스트를 봤다. ADHD 검사가 이렇게 과학적이고 체계적일 줄 몰랐다. 정신과는 내 생각보다 하이테크했다(!) '삐빅- ADHD입니다.'하고 끝날 줄 알았나요? 저도요 🧠 뇌파검사 (EEG, Electroencephalography) ADHD의 뇌의 전기적 활동 패턴은 일반인과 다르기 때문에, ADHD 특유의 신경생리학적 특징을 확인할 수 있는 근거가 된다고 한다. ADHD 환자들은 Theta 파와 Beta 파의 비율을 의미하는 TBR이 일반적으로 높은편인데, 이는 멍함과 집중력 저하를 의미하며, 뇌의 각성 수준이 낮다는 것을 보여준다. 이런걸 머리에 쓰고 뇌파를 검사한다. 내 이런 모습 아무한테도 안 보여주고싶은데, 왜인지 병원 로비에서 검사시킴.. 그런데 나는 이 뇌파검사에서 꽤 독특하게 나왔다. 여기에는 두가지에 소견이 있다. 첫번째는 내가 과잉형 ADHD라는 것. 일단 ADHD 판별에 가장 중요한 지표인 TBR 수치가 하위 5%가 나왔다. 이는 ADHD 양상과는 반대되는 패턴으로, 되려 내가 너무 지나친 각성 상태라고 했다. 특히 나는 고주파대역(Beta, High Beta, Gamma)가 다소 비정상적으로 활성화 되어있었는데, 이 또한 과잉 각성 상태라는 의미이다. 그리고 두번째로는 나의 이런 극단적인 양상이 감각 자극 처리의 불균형 때문이라는 것. 예컨대 청각 자극을 받아들이는 능력이 떨어지기에, 이를 시각적 집중력으로 과보완하면서 전체적인 뇌파의 방향성이 왜곡된 것이라는 해석이었다. 뇌가 부족한 자원을 보완하기 위해 다른 영역을 과도하게 동원하게 되면서, 각종 수치들이 비정상적으로 하위 5% 혹은 상위 5%에 치중된 것이다. 이렇게까지 극단적일 필요 없잖아. 🧮 IQ 테스트 (Raven’s SPM, 유추능력 중심) 집중력보단 지능의 문제일 수 있으므로 지능 검사 혹은 IQ 테스트를 같이 한다고 했다. 그리고 나는 이 검사에선 최고 수치인 ‘140 이상’이 나왔다. 의사 선생님은 이걸 특히 주목하셨는데, 학창 시절이나 사회생활에선 잘 해왔지만 생활 속 반복되는 실수가 계속되었다는 점 자체가 고기능 ADHD 환자에게 흔히 나타나는 양상이라고 했다. 수업 시간에 집중을 못 해도 벼락치기로 충분히 높은 성적을 냈고, 좋은 대학, 좋은 직업을 가지는데도 문제가 없었기 때문에 지능이 높을 수록 발견이 늦게 된다 한다. 그리고 또 다른 인사이트도 있었는데, 그래서 아마 나의 경우에도 성인이 되어서 ADHD가 생겼다기보다는, 어린 시절에 발견되었어야할 ADHD가 높은 지능에 가려져 뒤늦게 발견 된 케이스일 것이라고 의견을 주셨다. IQ 검사라는걸 말 안 해주셔서, ADHD 판별 검사인줄로만 알고 너무 어려워서 당황했다. 🎯 집중력 테스트 (CAT) ADHD를 판별하는 가장 중요한 테스트. 반응 속도나 오류율, 일관성 등을 체크하며 지속적 주의 집중 능력, 실수 빈도, 반응 일관성 등을 검증한다. 계속해서 변화되는 규칙을 찾아낸다거나, 특정 숫자가 나올 때마다 화면을 클릭하거나, 특정 소리가 나오면 화면을 클릭한다. 3이 들릴 때마다 클릭하기 - 사실 하면서도 내가 너무 못 하는게 보여서 무력감에 눈물이 핑 돌았다. 여기서도 뇌파검사와 마찬가지로 극단적인 결과가 나왔는데, 시각 집중력(Visual Span)에서는 상위 1%, 청각 집중력(Auditory CPT)에서는 하위 1%였다. 이 극단적인 양상을 통해 나는 단순히 집중을 못 하는 사람이 아니라, 감각 처리 능력의 불균형이라는 더 근본적인 문제에서 비롯되었음을 알 수 있다. 청각 자극에 대한 정보 처리가 지연되거나 누락되기 때문에, 나는 시각 정보에 더욱 의존하게 되고, 이것이 반복되면서 시각 자극 관련 뇌 영역이 과도하게 활성화된다. 동시에 청각 자극에 대해선 점점 더 무뎌지는 악순환이 반복되는 것이다. 그래도 꽤 재밌었던 변화하는 규칙 찾는 카드 게임 3. 검사 결과 - 진단명 하나에 맞춰진 퍼즐들 💥 [ADHD] 나는 멈추지 못 하는 ‘과잉 인간’이다. 나는 ADHD하면 ‘산만한 아이’정도를 떠올렸다. 그래서 내 얘긴 아닐 거라고 생각했다. 나는 대부분의 시간을 잘 깨어 있고, 오히려 과도하게 집중하고, 멈추지 못하고 생각하는 사람이니까. 그러니 ‘집중을 못 하는 사람’이라는 말은 나와 맞지 않다고 여겨왔다. 히지만 나의 경우엔 ‘하이퍼포커스(hyper-focus)’와 ‘과잉계획’, ‘기록 강박’, ‘감정 반응의 민감성’ 같은 특성이 더 두드러졌다고 했다. 정신없이 일을 몰아서 처리하고, 하루 12시간을 넘게 일에 몰두하고, 머릿속에 열 개의 일을 동시에 떠올리고, 쉬고 있을 때도 조용히 쉴 수 없었다. 실제로 나는 주어진 업무가 많을수록 오히려 성과가 좋았다. 동시에 프로젝트를 세네 개 진행할 땐 집중력이 올라갔고, 일이 줄어들면 무기력해지며 주의가 흐트러졌다. 이건 ADHD 환자에게서 자주 나타나는 ‘과잉동기-탈진 루틴’이라고 한다. 몰아치듯 집중했다가 갑자기 방전되는 구조다. 그러니까 나는 가만히 못 있는 사람이 아니라, 멈추지 못하는 사람이었다. 저는 비빔, 아니 과잉 인간입니다. 🎧 [APD] 소리는 들리는데, 뇌에는 닿지 않는다 사실 ADHD 진단보다 더 충격적이었던 건, 청각 처리 능력에 대한 결과였다. 뇌파 검사와 집중력 테스트 모두 청각 자극 반응에서 유난히 낮은 수치를 기록했다. 하위 1%의 청각 정보 처리 능력. 뇌파 지수로도 청각 정보 전달 속도가 기준치의 절반 수준이었고, 그 마저도 인지력이 35%밖에 안 되었다. 내가 겪는 청각 관련 특징들 - 소음이 섞이면 대화 내용이 사라진다 - 말을 ‘다시’ 들어야 한다 - 가끔은 말은 들리는데, 의미가 뇌에 닿지 않는다 - 자막이 없으면 영화를 보지 못 한다. 실제로 시끄러운 공간에선 대화 내용을 거의 놓친다. 누군가 말을 하면, 이해하기까지 몇 초가 더 걸린다. 분명히 방금 들은 말인데도 ‘그게 무슨 말이지?’ 하며 머릿속을 맴돌다가 결국 다시 묻게 된다. 특히 말 전체의 문맥을 한 번에 받아들이지 못하고, 정보가 왜곡되거나 통째로 사라지기도 한다. 나는 그동안 이걸 산만함이나 건망증으로 착각해왔다. 이런 경험이 반복되다 보니, 난 ‘듣는 것’보다 ‘보는 것’에 의존하게 됐다. 예컨대 자막 없는 영화는 사실상 못 보기 때문에 보려는 시도도 하지 않는다. 그러나 이건 나의 ‘성격’이 아니라 뇌의 ‘처리 구조’ 문제였다. 이것이 바로 청각 처리 장애(APD, Auditory Processing Disorder)였다. 청력이 나쁜 것도, 귀가 아픈 것도 아니다. 소리는 들리지만, 그 안의 ‘정보’가 뇌에 닿지 않는 것. 그냥 매일이 이런 상황 🎯 [감각불균형] 무지성 몰빵 스탯의 기행 빌드 나는 청각 정보 처리능력에서 하위 1%가 나왔지만, 시각 정보 처리 능력에서는 상위 1%가 나왔다. 한쪽 감각의 결핍을, 다른 감각이 ‘과하게’ 보완하고 있다고 한다. 쉽게 말해, 나는 청각 정보를 잘 받아들이지 못한다. 듣고 있는 듯하지만, 실제로는 인식하지 못하고 지나가는 경우가 많다. 누가 방금 한 말을 다시 물어보게 되는 이유, 대화 중 자주 주제를 놓치는 이유는 다 여기에 있었다. 반면, 시각 자극에는 비정상적으로 민감하다. 뭔가를 보면 바로 파악하고, 기억에 잘 남는다. 숫자나 글자의 배열을 시각적으로 기억하는 능력은 비정상적으로(?) 높다. 실제로 나는 머릿속에 사진으로 저장하는 것처럼 특정한 것들을 굉장히 잘 기억한다. 이를테면 카드뒤집기 같은 거. 누가 스탯을 이렇게 몰빵으로 찍어요; 4. 되돌아보며 - 나는 나에게 장애가 있다는 것을 왜 몰랐을까? 🧩 결핍을 덮은 능력 - 단점 덕에 발전한 장점 고등학생 때부터 나는 매일 아침 할 일을 적었고, 회의 중에도 요점을 메모했다. 사람들은 날 보고 ‘정리 잘한다’, ‘디테일하다’고 했지만, 나는 이렇게 하지 않으면 내가 잊어버리는 게 너무 많아서 그랬다. 메모, 기록, 정리, 문서화, 캘린더 관리 — 그러니까 나의 방식이라기보단 생존 그 자체였다. 그 시스템 덕분에 ‘꼼꼼한 사람’이라는 평판을 얻었고, 나도 사실은 그렇게 믿어왔다. 17살부터 지금까지 매일 아침 해야할 일을 적는 것이 10년이 넘도록 습관이 되었다. 🎭 결핍을 가린 가면 - 고지능이라는 외피 수업 내용이 전혀 뇌에 박히지 않고 있었지만, 성적이 좋으면 아무도 그 사실을 발견하지 못한다. IQ가 높거나 성과가 뛰어난 사람일수록, 이런 문제는 더 늦게 드러난다. 주변 사람들은 ‘잘하는데 뭐가 문제야’라고 하고, 본인도 ‘내가 문제인 줄 몰라서’ 방치하게 된다. 능력이 아니라, 결핍을 몰라서 생기는 문제. 나도 그랬다. 나 뿐 아니라, 성인 ADHD를 진단받은 대부분의 사람이 지능 때문에 어릴 적에 발견을 못 했을 것이라 생각한다. 좀 덜 떨어져도 티가 안 날 수 있지 🧱 결핍을 정체화한 오해 - ‘원래 그런 사람’이라는 착각 나는 내가 “원래 그런 사람”이라고 생각해왔다. 늘 피곤하고, 대화 중 자주 놓치고, 정리와 메모에 집착하는 것도 그냥 내 성격이라 믿었다. 예민하고 집중에 기복이 있는 건 그냥 “나는 그런 타입”이라 여겼다. 하지만 그건 ‘원래의 나’가 아니라, ‘어쩔 수 없이 만들어진 나’였다는 걸 알지 못한 데서 비롯된다. 그건 내가 선택한 성격이 아니라, 적응을 위한 전략이었다. "제가 원래 말귀를 좀 못 알아먹어서요" 🏆 결핍을 감춘 성과 - 버티는 사람이 유능해 보이는 사회 우리는 늘 ‘버텨야 했다’. 그걸 ‘능력’이라 착각했고, 나 또한 남들보다 노력해야 가능한 상태를 ‘내 기본값’이라 믿었다. 모두가 각기의 힘든 상황 속에서도 노력을 하고 살아가는거라 믿었다. 성과가 결핍을 감췄고, 그 결핍은 너무 오랫동안 설명되지 않은 채로 남아 있었다. 이제 와서야 그 모든 ‘성과’는 나를 괴롭히던 결핍 위에 세워진 허약한 탑이었다는 걸 알게 되었다. 우린 다들 버티라고 배워오지 않았는가 5. 진단 그 이후 - 달라진 것들 🔊 세상이 조용해지고, 말이 들리기 시작했다 약을 먹은 첫날, 정말 기이한 경험을 했다. 대화 중 상대가 한 말을 기억하고 있었다. 그게 그렇게 놀라운 일일 줄 몰랐다. 이전에는 매번 대화가 ‘들리는 듯 말듯’ 흘러가곤 했는데, 이제는 단어가 명확히 박히고, ‘생각의 소리’와 ‘외부의 소리’가 서로 뒤섞이지 않았다. 알 수 없는 기분에 펑펑 울었다. 이렇게 잘 들리는 거였다니, 이제까지 내가 정말 못 듣고 있었다니, 다른 사람들은 이러한 나의 불편함을 참아주고 있었다니, 그런 복잡한 마음 속에 정말이지 눈물만 나왔다. 약은 만능이 아니다. 잠시동안 집중이 좋아지는 ‘도구’일 뿐이다. 하지만 그 몇 시간 동안의 평온함은, 내가 평생 몰랐던 세계였다. ‘내게 맞는 리듬을 찾고 싶다’ 찾기 위해, 약은 그 리듬을 찾는 ‘보청기’ 같은 역할인 것이다. "이렇게 잘 들린다고?" 다른 사람들의 말이 모두 들리기 시작했다. 📖 진단은 낙인이 아니라, 나에 대한 설명서 진단을 받았다는 건 어떤 면에선 나를 규정짓는 일이었지만, 동시에 나를 해방시키는 일이기도 했다. 나는 늘 “왜 나는 이럴까?”라는 질문에 붙잡혀 있었다. 그리고 그 질문에 대해 “내가 부족해서”라고 답해왔다. 하지만 이제는 이유가 있다. 구조가 있다. 설명이 있다. 나는 그냥 그런 구조의 뇌를 가진 사람이었을 뿐이다. 그 사실은 나를 약하게 만든 것이 아니라, 오히려 나를 다정하게 만들었다. 나는 이제 나를 다그치지 않는다. 못했다는 이유로, 실수했다는 이유로, 끝까지 못 갔다는 이유로 나를 몰아붙이지 않는다. 나는 나를 이해하고 있고, 그 이해는 삶을 바꾸는 힘이 되었다. 진단은 끝이 아니라 시작이었다. 이제는 과거의 내가 이해된다. 무리하게 몰아붙이고, 스스로를 의심하고, 자책으로 무너졌던 그 많은 순간들이. 나는 부족하지 않았다. 다만 다른 구조였을 뿐이다. 그리고 그 구조를 아는 것만으로도 삶은 훨씬 다정해질 수 있다. 깔끔하고 명확한 제품 설명서 🤝 나의 부족함은 타인을 이해하는 문이 되었다 진단 이후, 내가 제일 크게 바뀐 건 타인을 대하는 방식이다. 예전엔 답답하게 느껴졌던 사람들—매번 회의만 요청하고 슬랙으로 기록을 남기지 않던 개발자, 문서를 읽으면 되는데 꼭 설명해달라던 누군가—그들을 이제는 조금 더 너그럽게 바라볼 수 있게 됐다. 이제는 생각한다. ‘혹시 그 사람도 나처럼 정보처리에 있어 어떤 감각의 편향이 있었던 건 아닐까?’ 내가 나의 감각구조를 알게 된 이후, 타인의 행동도 더는 ‘이상함’이 아니라 ‘다름’으로 보인다. 진단은 나만을 위한 것도, 나만 바꾸는 것도 아니었다. 세상을 바라보는 내 태도도 함께 바꿨다. 타인을 위한 포용력 0.1% 증가 6. 글을 정리하며 - 나는 나를 어떻게 대하게 되었는가? 💡 자책하며 살아오던 나의 진짜 사용 설명서 나는 항상 대화를 놓쳤고, 사람들은 내가 집중하지 않는다고 생각했다. 하지만 그건 내 잘못이 아니었다. 내 뇌가 듣는 걸 잘 못하는 구조였다는 걸 이제서야 알게 되었다. 그리고 그걸 모른 채, 나는 정말 너무 오래 멀쩡한 척을 하며 살아왔다. 나는 게으르다고 생각했고, 의지가 약하다고 자책했고, 왜 자꾸 마무리를 못 하냐며 나를 고장난 물건처럼 여겼다. 그런데 아니었다. 나는 망가진 게 아니라, 설명서를 몰랐던 거다. 진단은 낙인이 아니라, 나에 대한 설명서다. 그걸 알게 된 순간, 나는 처음으로 나를 이해할 수 있었다. 설명서가 있다는 건, 이제 나를 고치려 애쓰는 대신, 나를 이해하고 다룰 수 있게 됐다는 뜻이다. 그건 꽤 괜찮은 일이다. 지금도 여전히 지각하고, 산만하고, 언젠간 이미 산 물건을 또 사는 날도 다시 있을 것이다. 하지만 적어도 이제는 “왜?”라는 질문에 답할 수 있다. 그 답은, 나를 다정하게 대하는 첫걸음이 되었다. 예전에는 실수할 때마다 나를 다그쳤지만, 지금은 포용할 수 있다. 그 작은 인정 하나가 일상을 다르게 만든다. 나는 나를 탓하는 대신, 관리할 수 있는 나로 이해하게 되었다. 이건 ‘실패하지 않는 법’을 배우는 게 아니라, ‘실수해도 괜찮은 나’로 살아가는 법을 배우는 일이다. 그리고 그건, 설명서를 가진 사람만이 할 수 있는 태도다. 나는 짐승 합격 🍀 럭키비키~! 💬 그리고, 자책하고 있는 또 다른 당신에게 혹시 당신도 자꾸 산만하다는 말을 듣고, 이미 한 말을 또 묻는다고 핀잔을 듣고, 머릿속이 너무 산란해서 메모를 놓치고, 할 일이 떠오르지 않아 조급해지고 있다면. 그게 꼭 당신의 잘못은 아닐지도 모른다. 나는 연 나이 서른 살이 되어서야 내 삶의 사용설명서를 받았다. 검사를 받는다고 갑자기 지각을 안 하게된다거나 안 하던 청소를 하는 등 인생이 뒤집히는 건 아니지만, 설명이 생긴다는 건 생각보다 큰 변화였다. 그 설명은 나를 바꿨고, 나의 관계를 바꿨고, 세상을 바라보는 방식도 바꿨다. 나는 진단 이후 처음으로 나를 이해했고, 덕분에 타인을 덜 원망하게 되었다. 나도 몰랐던 나의 결핍을 알게 되자, 타인의 이상한 행동들도 조금은 이해할 수 있게 되었다. 혹시 당신도 ‘나는 왜 이럴까’라는 생각으로 하루를 시작하고 ‘이래서 나는 안 돼’라는 말로 하루를 마무리하고 있다면, 오래된 자책 속에 살아가고 있다면, 한 번쯤 사용설명서를 받아보길 바란다. 그건 나를 부정하는 일이 아니라, 나를 이해하는 일이다. 그리고 당신도 나처럼, 스스로를 조금 더 다정하게 대하게 되길 바란다. 나 또한 지금이라도 받아들였기에, 이제 나는 그 설명서대로 살아보려 한다. 그거 아세요 여러분? ADHD는 사실 All Day Happy Day 증후군임ㅋㅋ
-
헤맨 만큼 나의 땅이 되기를
개발자 2024년 회고
2025-01-24 14:05
2024년, 나의 (만)28살은 꽤 변화무쌍한 한해였다. 철인 3종 대회를 출전하는 버킷리스트를 이루지만, 오랫동안 통증이 심하던 무릎이 결국 수명을 다 해서 연골 절제 수술을 받게 되었다. 10년 차 개발자가 되고 엔씨에서 3년간 개발한 프로젝트도 성공적으로 잘 런칭했으나, 정리해고 칼바람과 함께 희망퇴직을 하게 되었다. 야구장에서 시구도 하고, 다이빙 자격증도 취득하고, 베이스기타도 치며 많은 취미를 즐기면서도 어느 순간부터 SNS는 멀리하게 되었다. 이 글은 그러한 나의 2024년이 담긴 연말 회고다. 무릎 수술과 대회 포기 🩼 나는 선천적으로 무릎에 희귀 질환이 있는 가족력이 있다. 스무 살이 되던 해 엄마가 ‘너 외가 쪽 이모들 다 무릎 안 좋은 거 눈치챘어?’라는 질문을 받으며 처음으로 이 사실을 알게 되었는데, 나에겐 그 희귀질환이 발병된 것으로 보이진 않았으나 남보다 무릎 연골이 많이 약하긴 했다. 굳이 과한 운동을 하지 않아도 일상생활만으로 통증을 느끼기 시작한 지도 10년이 다 되어가니까. 그러다 9월, 익산 철인 2종과 시화 철인 3종 대회를 앞두고부터는 더 심상치 않아져서 MRI를 촬영하게 되었고, MRI 사진으로 확인한 내 연골판은 이미 다 갈려서 조각조각된 채로 뼈끝을 간질이고 있었다. 의사 선생님도 조금은 당황해하며 ‘아니 아직 너무 어리신데…‘라는 말만 계속 반복하시다가 수술이 필요하다는 소견을 내리셨다. 처음엔 그게 무슨 말인지 몰라서 ‘수술하면 괜찮아지는거죠?’같은 드라마 대사 같은 질문을 해댔다. 연골 절제술에 대한 설명과 함께 앞으로 운동 계속하시기는 힘들 것 같다는 말을 하셨는데 자세히는 잘 기억 안 나고, 막상 진료실 밖을 나오고 나니 눈물이 계속 나서 병원 로비에 앉아 주룩주룩 울어대기만 했다. 그 일로 많은 것이 바뀌었다. 다이빙, 운동, 수영 같은 것으로 가득 차 있던 내 피드의 알고리즘이 수술, 재활, 장애 같은 것들로 바뀌어 있었다. 그때부터는 하루에 열 개씩 올려대던 인스타 스토리같은 것도 안 올리게 되었다. 왜냐하면 사소한 일상들이 더 이상 재밌지 않아졌거든. 철인 대회 접수 취소를 하면서도 접수비 환불이 안 된다는 안내 같은 것 조차에도 쉽게 우울해했다. 물론 다른 걸 돌려받을 수 있다면 접수비쯤은 돌려받지 않아도 울지 않았겠지. 수술 직전 기록용 셀카 무릎 수술 직후 감각이 없던 다리 휠체어의 눈높이에서 올려다보는 세상 🦽 수술을 위해 병원에 입원했다. 이직하는 과정에서도 하루의 공백조차 내본 적 없었는데, 처음으로 회사에 휴직계를 제출했다. 막상 입원하고 나니 500만원의 수술비와 척추에 꽂는다는 큰 마취 주사 등등이 무서워서 더 이상 눈물이 안 났다. 수술이 끝난 뒤 한동안은 휠체어를 타고 다니며 병원을 누볐는데, 병원 안을 쏘다닐 때는 휠체어만 타면 어디든 갈 수 있는 것 같은 기분이 들어 더 이상 우울해하지도 않고 심지어 자신감도 생겼다. 그러나 퇴원하고 막상 병원 건물을 나서보니, 아. 병원 밖엔 휠체어로는 갈 수 있는 곳이 아무 곳도 없다. 인도의 모든 보도블록은 좁고 울퉁불퉁하다. 그마저도 자꾸 오토바이나 트럭, 공유 킥보드가 주차되어 있고, 가로수 때문에 휠체어 하나가 제대로 지나갈 수 없어 차도로라도 나가려고 하면 단차 때문에 내려갈 수 없었다. 정상적으로 보행할 때의 나는 거의 모든 식당 입구에 단차가 있다는 사실을 왜 몰랐을까? 심지어는 지나가다 휠체어를 판매하는 가게에도 단차가 있는 것을 보고 조금 웃었다. 대부분의 시내버스가 저상버스로 운행되는 것은 알지만, 유튜브로 몇몇 후기를 찾아보다 바로 포기했다. 일반 택시는 딱 한 번 타봤는데, 트렁크에 휠체어가 들어가지 않아 뒷좌석에 넣고 나니 기사님께 너무 실례되는 것 같아 그 뒤로는 택시도 안 탔다. 벤티는 예약해야하는 시스템이라서 필요할 때 바로 이용할 수도 없었다. 어느 날은 오피스 건물 7층에서 1층으로 내려가는 엘리베이터를 타야 할 일이 있었다. 퇴근 시간이라 그랬는지 엘리베이터를 기다리는 사람들이 많았고, 도착한 엘리베이터에도 사람이 많아서 휠체어가 탈 자리는 없어 보였다. 나와 같이 엘리베이터를 기다리던 사람들은 쉽게 엘리베이터에 탑승했고, 그러다가 나와 눈이 마주쳤지만 말없이 ‘닫기’ 버튼을 누르셨다. 그 뒤로도 몇개의 엘리베이터에 탑승하지 못한 채 한참을 내려보내다가, 어느 순간 나타난 누군가의 양보로 겨우 탑승했다. ‘닫기’ 버튼을 누르던 사람의 얼굴은 기억나지 않는다. 왜냐하면 어차피 그 뒤로 백화점에서도, 어떤 상가 건물에서도, 코스트코에서도 비슷한 경험을 겪었으니까. 뚜렷하게 공포로 남아있는 경험은 있다. 가게에서 친구가 계산하는 걸 옆에서 기다리며 둘러보던 중에 갑자기 어떤 남자가 ‘제가 밀어드리겠다’라며 휠체어를 타고 있던 날 밀었다. 당황해서 ‘네? 누구세요? 뭐 하는 거예요?’ 하니 그제야 갑자기 날 이상한데 세우고 말도 없이 가버렸다. 아직도 무엇이었는지 잘 모르겠다. 친구들과 미니언즈 분장하고 민속촌 나들이 갔던 할로윈데이 🎃 마지막 마라톤과 철인 3종 👟 수술 전인 상반기, 무릎 상태가 많이 안 좋은 걸 몰랐던 덕분에 마라톤과 철인 3종에 출전할 수 있었다. 올해는 부산에서 주최된 기브앤레이스 마라톤과 수원에서 주최된 경기 마라톤, 그리고 서울에서 주최된 한강 철인 3종에 출전했다. JTBC 마라톤과 익산 철인 2종, 시화 철인 3종 대회도 신청하긴 했었으나 무릎 수술 때문에 출전하지 못했다. 특히 올해는 기록이 정말 아쉬운 해였는데, 올 초 F45를 하다가 비복근이 파열되어서 발목과 종아리 회복이 덜 된 채로 마라톤에 출전했다. (무릎이 안 좋기 때문에 발목과 종아리 부상이 잦다.) 철인 3종에서는 핀(오리발)을 실수로 집에 두고 가서 맨발로 수영했고, 자전거도 워낙 비싼 자전거다 보니 분실이 걱정돼 따릉이(ㅋㅋ)로 자전거를 탔다. 그래도 2개의 마라톤과 1개의 철인 대회를 성공적으로 완주했고, 이로써 내 버킷리스트를 채웠기 때문에 나도 더 이상 욕심내지 않는다. 가장 건강했던 시기에 가장 행복한 방법으로 최선을 다해 청춘을 빛냈다고 생각한다. 한강 철인 3종 완주한 날 ✨ 어쩌면 인생의 마지막 달리가 될 기록 NC DINOS 시구 ⚾️ 작년인 2023년에 ‘야구 최다 관람자’로 선정되어 시구 기회가 주어졌고, 올해 5월에 시구를 하게 되었다. 마침, NC가 성적이 좋아서 시구 날이 무려 1위 결정전이 되었고, 게다가 그날 상대 팀 에이스 선수가 장염에 걸려서 출전하지 못했다. 내가 시구만 잘하면 왠지 이 기운을 담아 NC가 1등으로 치고 올라갈 것 같은 그런 날이었다. 한숨인지 기합인지 모를 숨을 내뱉고, 포크볼 그립을 잡고, 어설픈 와인드업 자세를 취하고, 1분 같은 1초 뒤, 공이 날았다. 그런데 진짜 거짓말 안 하고, 정말 진심으로, 내 생각보다 내가 공을 진~짜 잘 던졌다. 나름의 자부심을 가지기도 했던 게, 일반인 여자 시구는 마운드보다 한참 앞에서 던진다고 했는데 시구 연습을 도와주신 NC 포수 코치님이 마운드에서 던지셔도 될 것 같다는 말도 하셨으니까. 연습 때보다도 더 잘 날아간 공이 정확히 포수 글러브에 들어가고, 그 긴장한 와중에도 관객들이 ‘오~’하는 소리와 박수 소리도 들렸다. 퇴장하는데 신민혁 투수가 하이파이브도 해줬다. 그런데 하필 내가 시구를 할 때 중계사에서 상대 팀 에이스 선수의 장염에 관해 이야기하며 자료화면으로 넘어갔다. 내 시구는 그렇게 전설로만 남았다. 진짜다. 아, 그리고 NC는 그날 졌다. 전설의 시구 ✨ 풀스택 개발자로의 NC SOFT 정복기 ⛳️ NC SOFT에 입사한 지 만 3년을 두 달 앞둔 8월 초, 풀스택 포지션으로 개발에 참여한 통합 협업 플랫폼 ‘ON AIR’가 런칭되었다. 풀스택 개발자로 전직한 뒤 처음 참여한 프로젝트이기도 하고, 이제까지 경험했던 프로젝트 중 가장 호흡이 길기도 해서 런칭 경험이 특히 새로웠다. 프로젝트 과정 중에서 Spring과 Quarkus를 처음 사용해 보고, 한 번쯤 꼭 해보고 싶던 A-Z 개발도 해봤다. 기획서를 받고 직접 구성을 설계해서 DB 테이블도 만들고, API도 설계하고, 연동도 하고, 화면까지 그려서 디자인 요구사항까지 적용하는 일. 리포트나 대시보드 같은 기능은 Backend가 힘들었고, 인터랙션이 많은 칸반뷰는 Front가 더 힘들었다. 그런데 모든 게 힘들었던 만큼 정말 매 순간이 즐겁게 느껴졌다. 특히 리포트의 통계 API를 만들 때 요구사항이 너무 까다로워서 많이 괴로워했는데, 오히려 그 과정에서 개발이 천직임을 다시금 느끼기도 했다. 퇴근하는 것보다 야근하는 것이 더 즐겁게 느껴지는 경험도 정말 오랜만이었으니까. 런칭하면서 다양한 동료 기획자와 개발자, 디자이너와 함께했고, 기억에 남은 동료들도 특히 많다. 우선 10년 경력 중 가장 멋진 기획자이자 PM이자 PO를 만났다. 협업 플랫폼을 기획하는 기획자인 만큼 프로젝트를 매니징하는 실력 또한 정말 나이스했다. 덕분에 페르소나를 정의하고 요구사항을 수집하는 과정부터 개발 이후 FGT진행까지 함께 참여하고, 실리콘밸리에 온 것처럼 여러 가지 개발 방법론도 사용해 보고 적용해 봤다. 그리고 동료 개발자분들에게도 본받을 점을 많이 느꼈다. 업무가 기능 단위로 분리되어 있다 보니 개발자끼리는 협업할 포인트가 많이 없었는데도, 늘 먼저 신경 써주고 도와주려고 하는 동료들이 있었다. ‘함께 일하고 싶은 동료’란 ‘일 잘하는 동료’ 정도로만 생각했었는데, NC에서 만난 개발자 아저씨들(?) 덕분에 조금은 다른 시각을 갖게 되었다. 난 정말 3년 내내 받기만 했는데도 떠날 때 미안해하시더라. 이토록 좋은 동료들을 만났음에 참 감사했다. 함께 일했던 동료들 희망퇴직과 권고사직 그 사이 ☔️ 프로젝트 런칭 후 무릎 수술로 인한 휴직이 끝나고 10월에 복직하고 나니 복직 이틀 차에 갑자기 온갖 기사와 함께 전사 공지가 떴다. “희망퇴직 프로그램 진행”. 갑자기 수 많은 부서가 없어지고, 파편화되고, 분사되고, 합병되었다. 여기서 포인트는 내가 무릎 수술 전, 부서를 이동해놓고 휴직했다는 것이다. 복직하고 나니 3년간 몸담았던 조직은 희망퇴직 프로그램 대상이 되었다. 그런데 내가 새로 이동한 조직은 희망퇴직 대상팀이 아니었다. 위로금과 잔류를 고민하는 전 팀원들과 대화하면서도, 서로가 서로에게 섣불리 위로나 부러움을 건네기 어려운 상황이었다. 분사 이슈가 겹치며 살얼음판을 걷는 회사 분위기 속에서 그나마 위로금을 받고 퇴직하는 사람이 승자인 것처럼 기조가 흘러가기 시작했는데, 그러다 모든 조직에 희망퇴직과 동일한 위로금 조건으로 권고사직 할당량이 추가로 떨어졌다. 사실 난 작년 평가 등급이 매우 좋은 편이어서 기대를 안 하고 있었으나, 감사하게도 직속 실장님은 휴직자와 업무 미 배치자를 대상으로 우선 면담을 시행하며 나도 대상자가 되었다. 선착순처럼 사직서가 수리되며 블라인드에는 ‘실장이 친한 사람들에게만 권고사직 기회를 줬다’는 모순되고도 웃긴 썰이 돌기도 했는데, 심지어 나 또한 팀장님에게 비슷한 질문을 받았었다. 런칭>팀 이동>휴직>위로금>퇴직이 미리 계획한 것처럼 순서대로 잘 이루어져서, 나로서는 런칭과 동시에 무릎 수술까지 끝낸 뒤 큰 위로금을 받고 NC SOFT를 떠나게 되는 최고의 기회였다. 아, 덤으로 실업급여도 받았다. NC에서의 마지막 날 청소년 코딩 교육 재능 기부 📚 회사를 그만둔 덕에 매년 연말에 하던 재능 기부에 올해는 더 많은 시간을 쓸 수 있게 되었다. 12월, 초등학생들을 대상으로 내가 직접 워크샵을 기획할 기회가 주어졌는데, 막상 직접 기획하려 보니 어려움이 많았다. 기획 단계에서 의도한 가장 큰 포인트는 ‘창의성’이었다. 코딩을 떠나 ‘직접 만드는 경험’의 즐거움을 느꼈으면 싶었고, 그 과정에서 창의적인 결과물이 나오길 원했다. PPT를 따라 코딩하며 모두가 똑같은 결과물을 만드는 ‘수업’을 진행하고 싶지 않았을뿐더러 그 과정이 재밌기 어렵다는 것도 잘 안다. 그리고 ‘실패’하는 경험이 없었으면 했다. 가장 어려운 건 초등학생들을 대상으로 2시간 동안 진행해야 하다 보니, 흥미를 이끌만한 주제여야 하면서도 집중을 유지할 수 있도록 워크샵을 구성해야 했다. 그리고 어떤 학생들은 아직 저학년이거나 코딩에 대한 지식이 적었으나, 어떤 학생들은 이미 게임까지 개발했다는 학생들도 있었기 때문에 코딩을 처음 해보는 학생도, 많이 해본 학생도 즐겁게 참여할 수 있는 워크샵이어야 했다. 이 모든 학생을 대상으로 분반 없이 워크샵을 진행해야하는 것이다. 여기까지 생각이 미치니 점점 더 욕심이 생겼다. 이 공들인 기획을 학생들이 알아주었을지 모르겠으나, 자정 정각에 시작된 참가 신청 접수가 1분 만에 마감되었다는 담당자분의 연락을 받고는 참 기뻤다. 내가 기획하고 진행한 워크샵의 이름은 ‘코딩으로 나만의 패턴 만들기’. 스크래치를 활용해서 반복문과 좌표 개념을 익히고 본인이 직접 그린 패턴으로 또 다른 패턴을 만드는 과정이었다. 다행히 워크샵은 성공적으로 잘 끝났고, 걱정했던 게 무색하게 학생들의 집중도도 매우 좋았다. 기획이란 게 참으로 어렵기도 했으나, 흔히 접할 수 있는 통일화된 코딩 교육이 아닌 신선하고 양질의 컨텐츠를 제공하고 싶은 염원대로 학생들이 잘 즐겨준 것 같아서 기쁘고 보람차고 행복한 과정이었다. 내가 진행했던 워크샵 포스터 Advanced Open Water Diver, 스쿠버 다이빙 🤿 퇴사 후 더 즐길 수 있게 된 것 중 하나는 스쿠버다이빙이다. 취미로 프리다이빙을 즐기며 해외 포인트를 나갈 때 아쉬워서라도 꼭 스쿠버다이빙을 한 번씩 하는데, 자격증이 없다 보니 현지 마스터 손에 들려 다니는 게 아쉬웠다. 그래서 올해 8월 보홀 여행 직전, 한국에서 스쿠버다이빙 OW(Open Water) 자격증을 취득했다. 보홀에서 고래상어와 같이 헤엄도 치고, 국내 바다도 다니며 고성과 울릉도의 조류를 온몸으로 느끼고 왔다. 그리고 OW를 취득한 지 3개월 만인 11월, 더 상위 레벨인 AOW(Advanced Open Water)까지 취득하게 됐다. OW는 수심 18M까지만 잠수할 수 있는데, AOW가 있으면 더 깊은 포인트나 난파선, 동굴 같은 지형 다이빙도 할 수 있기 때문이다. 취득 과정에서 SMB 사용하는 법도 배우고, 난파선 다이빙, 야간 다이빙, 나침반, 완벽 부력, 딥 다이빙 스페셜티까지 수료했다. 로그북도 열심히 쓰다 보니 벌써 25 로그가 되었다. 바다에 25번 입수했다는 뜻이다. 60 로그를 채우고 나면, 다이빙 마스터 과정에 도전하고 싶은 욕심이 있다. 프리 다이빙으로만 가보던 세부 바다를 처음으로 스쿠버 다이빙으로 갔다. 내가 즐긴 모든 것들: F45, 스노우보드, 프리다이빙, 야구, 뮤지컬, 전시회, 베이킹, 춤, 베이스, 그리고 해리포터 ⚡️ 작년에 이어 올해도 열심히 한 것들은 F45와 스노우보드, 프리다이빙, 그리고 야구 관람. 올해는 어쩐지 기회가 좋아서 스카이박스석도 3번이나 다녀왔다. 그리고 올해 더 열심히 한 것들은 ‘혼자서 하기’. 혼자서 뮤지컬도, 전시회도 참 많이 보러 다녔다. 주변에는 이런 취미를 같이 즐길 사람이 없어서 늘 구인하고 다녔는데, 이젠 혼자서도 씩씩하게 잘 놀러 다니는 업그레이드 E가 되었다. 새롭게 배우기 시작한 것들도 있는데, 베이킹이랑 춤을 잠시 찍먹했다. 베이킹은 집에 장비를 들여놓을 용기까진 안 나서 동호회를 통해 요리학원을 갔고, 소금빵이나 휘낭시에, 스콘, 다쿠아즈 같은 것들을 만들었다. 춤은 어느 순간 갑자기 꽂혀서 댄스 학원에 갔는데, 르세라핌 안무를 배우다가 지쳐서 바로 포기했다. 나름 열심히 운동 한다 생각했는데 안 쓰는 근육을 쓰다 보니 단순히 몸 푸는 걸로도 근육통이 왔다. 😂 그리고 베이스 기타도 배웠다. ‘내일은 탑 밴드’라는 초보 밴드에서 나름 합주도 여러번 했다. 밴드에 관심을 가지다보니 페스티벌도 다녔다. DMZ 피스트레인도 가고, 인천 펜타포트도 갔다. 아쉬운 게 있다면 올해는 책을 몇 권 못 읽었는데, 그래도 목표했던 해리포터 시리즈 전권 완독은 이뤄냈다. 어릴 땐 책을 읽고 영화를 보는 것이 관례였는데, 하필 한창 읽던 때가 마지막 편인 ‘죽음의 성물’이 출간되기 전이었다. 그때 시기를 놓친 바람에 책도 못 읽고 영화도 안 본 채로 10년을 혼자 해리포터의 결말을 모른 채로 지냈는데, 올해에서야 드디어 책도, 영화도 다 읽었다. '내일은 탑 밴드' 합주하던 날 보홀에서 만난 거북이 개발자 10년, 그리고 쿠팡으로 이직 🚀 올해는 내가 개발자로서의 커리어를 시작한 지 10년째 되는 해였다. 만 10주년 셀프 선물을 뭐로 할면 좋을지 고민이 많았는데, 희망퇴직 덕분에 스스로에게 여유를 준 것 같아서 나쁘지 않은 선물이었다. 시간과 금전적인 여유 덕분에 쉬면서 유럽 여행도 다녀왔다. 환승 이직만 해본 데다가 불경기라 재 취업 걱정도 많았지만, 어쩌다 보니 쿠팡 리쿠르터에게 연락이 와서 면접을 보게 되고 핏도 잘 맞아서 희망퇴직 접수 일주일 만에 다음 회사 결정이 완료됐다. 연봉도 많이 올리고, 처음으로 회사 주식도 받아봤다. (신기해!) 나중에 시간이 되면 10년에 걸친 개발자 회고록도 적어보고 싶다. 아, 그걸 내 2025년 목표로 세워야겠다. 쉬는동안 다녀온 이탈리아 여행 나의 네번째 회사, 쿠팡 마치며 내 인생은 내가 잘 안다고 생각하지만, 서른이 다 되어도 매년 새로운 이벤트가 생기는 걸 보면 실은 아직도 내 인생을 잘 모르나보다. 그럼에도 불구하고 이렇게 계속 삶을 영위하는 것 자체에 순간적인 기쁨을 느낄 수 있는 사람이 되고 싶다. 내가 겪는 모든 시행착오와 어려움이 결국은 소중한 경험과 성장의 기반이 되기를. ‘헤맨 만큼 나의 땅이 되기를’.
-
사는 건 레벨업이 아니라 스펙트럼을 넓히는 것이다.
개발자 2023년 회고
2024-01-04 01:43
매년 으레 하듯이 새해 계획을 세우다 보면 ‘내가 되어야 할 것’의 그림을 그려놓고 계획을 세우곤 했다. 그러고 나면 연말마다 못 이뤄낸 목표를 두고 내가 왜 그것을 못 해냈는지에 대한 회고를 하곤 했었는데, 그 반성 타임이 싫어서 올해는 ‘잘 지키기 위한 노력‘보다 ‘잘 지키기 위한 수단’ 같은 필승법을 가져가야겠다는 전략을 짰다. 내가 하고 싶은 거 하기. 그게 내 2023년 필승법이었고 덕분에 올해 회고는 예년보다 소박하고 사사로움에 예년보다 편안하다. 👟 달리기 시작 천식+평발+무릎 연골 손상 등의 이유로 달리기가 적합한 몸은 아니긴 하지만 지구력, 정신력을 늘리기 위해 달리기를 시작했다. 달리기를 시작하며 인터벌 훈련을 할 수 있도록 도와주는 ‘RunDay’ 앱의 도움을 많이 받았었는데, 처음 1~2주 차 때 1~2분 달리기만 시키더니 어느 순간 6주 차가 되니 갑자기 7분씩 달리라고 하더라. 그때에는 그 7분이 너무 힘들어서 달리다가도 스스로 ‘컨디션이 안 좋다’ 등의 핑계를 대며 달리기를 멈추곤 했었다. 그렇게 한창 진도를 못 나가던 중 어느 날은 포기하기 싫어졌다. 사실 그때에는 잘하려고 했다기보단 나 자신과의 은밀한 타협 같은 거였다. ‘속도를 낮추고 뛰자.’ 그렇게 8.5k/h로 뛰던 것을 7.5k/h로 속도를 낮추고 뛰었더니, 저속도의 7분 달리기는 생각보다 너무 가뿐하고 쉬웠다. 오래 달리기 위해서 천천히 달리는 것. 너무 간단한 진리인데 나는 스스로 깨닫기 전까지 몰랐다. 3달 동안 거의 매일 쉬지 않고 달리며 '런태기'를 극복해 나갔다. 결과는 완주! 🏊♀️ 수영, 아니 유영 수영에서도 달리기와 마찬가지였다. 영법 교정만 해왔던 기존과 달리 올해는 1시간에 2km를 쉬지 않고 수영하기 위한 목표를 잡고 노력했는데, 처음엔 왕복 5번만 해도 숨이 차고 힘들어서 이걸 어떻게 해내지 싶었다. 그러다 어느 날 같은 레인에서 내겐 할머니쯤 되어 보이는 연세의 여성분이 쉬지 않고 1시간 내내 느릿느릿하게 수영하시는 모습을 보게 되었고, 그분의 뒤를 따라 천천히 수영을 해봤다. 그러다 보니 조금 더 속도를 내어도 완주할 수 있겠다 싶은 나의 페이스를 찾게 되었다. 아래는 그 과정에 있던 그날의 일기다. 내 모든 힘을 써가며 수영할 때는 34분 동안 525m 를 갔다. 6'03"/100m 페이스다. 힘을 풀고 저강도로 천천히 돌면 더 많이 유영할 수 있음을 깨달은 오늘은 43분 동안 1,125m를 갔다. 3'52"/100m 페이스다. 그리고 오늘은 처음으로 1km가 넘는 거리를 자유형으로 왕복하게 된 날이기도 하다. 조급해하지말고 나에게 맞는 속도로 가야 오히려 더 빨리, 더 오래 지속할 수 있음을 깨달은 날. 그리고 1년이 지난 나는 이제 1'57" 페이스로 39분 만에 2km를 쉬지 않고 수영할 수 있다. 🏃♀️ 생애 첫 마라톤 출전 그렇게 수영도 달리기도 꾸준히 하다 보니, 지구력과 폐활량이 많이 늘었다. 어느새 한 시간 동안 쉬지 않고 뛸 수 있게 되면서 묘한 자신감이 붙어 10K, 11K 마라톤을 신청하게 되었다. 그런데 마라톤 출전을 한 달 앞두고 무릎이 엄청 안 좋아지면서 가장 열심히 연습해야 할 때 오히려 연습을 못 했다. 일상생활 중에도 무릎이 많이 아파서 출전하지 말까 하는 고민도 종종 했었고, 어느 날은 날씨가, 어느 날은 계단이, 어느 날은 유전자가 원망스러운 날들을 보냈다. 여기서 소신 발언을 하자면 난 딱히 운동을 좋아하지 않는다. 운동이란 나에게 있어, 그냥 ‘추구미’ 같은 거다. 그런데 이제 컨셉에 사로잡혀서 지독한 컨셉충이 되어 버린.. 사실 마라톤도 그래서 나갔다. ‘달리는 걸 너무 좋아한 나머지 아픈 무릎도 잊고…’ 이런 시나리오가 아니라, 그냥 ‘마라톤에 나가는 내 모습’에 취해서 나간 거다. 😅 꽤 민망하고 웃기지만 여튼 그렇게 아픈 무릎을 이끌고 두 번의 마라톤을 완주했다. 뉴발 10KM 마라톤, 그리고 서울달리기 11KM 마라톤 🚵♀️ 철인 3종 동호회 가입 당연히 철인 3종 동호회에 가입하려고 가입한 것은 아니다….. 어느 날 사내 게시판에 프리다이빙 동호회 홍보 글이 왔길래 반가운 마음에 가입 신청을 했다. 그런데 알고 보니 프리다이빙은 동호회 내 작은 소모임 같은 거였고, 사실 그 동호회는 수영+런닝+달리기를 하는.. 이른바 ‘철인 3종’ 동호회였다. 제가 갑자기 철인 3종 동호회를 가입했다고요..? 😳 그러다 동호회 게시판에서 ‘한강 수영 크로스 챌린지’ 참가자를 모집한다는 글을 보게 되었다. 관심이 생겨서 문의했는데, 오픈워터 수영을 처음 해본다고 하니 수영 반장님(?)이 거의 혼내듯이 잔소리하면서 헤드업 영법을 배워야하니 당장 이번 주말에 수영 정모를 나오라고 했다. 솔직히 동호회 활동까지 할 생각은 없었는데 반장님이 무서워서… 나갔다. 정모에 나가보니 내가 엄청나게 어렸다. 그냥 어린 게 아니라.. 진짜 어렸다. 정신 차려보니 내가 모르는 아저씨들이랑 수영을 하고 있었다. (ㅠㅠㅠ) 그리고 나만 여자였다. 그래서 진짜 도망가고 싶었다. 수영 정모 끝날 때마다 브런치도 먹고 헤어진다고 해서 난 그때까지도 국밥 같은 거 드시러 가시는 줄 알았다. 그런데 따라가 보니 진짜 리얼 ‘브런치’를 사주셨다. 다들 정말 친절했고 텍스트로는 너무 무서웠던 수영 반장님도 한 시간 내내 헤드업 영법을 봐주시면서 많은 도움을 주셨다. 때마침 그날 뵀던 동호회원 한 분이 본인이 다니는 소규모 레슨 센터를 소개해 주셔서 그 뒤로는 그분과 함께 수영도 다니게 되었다. 그러다 어느날은 자전거를 못 탄다는 내 말에 가르쳐주시겠다고 하시며 어디선가 자전거를 빌려오셨다. 알고 보니 수영을 같이 다니던 이분이 자전거 반장님이셨다. 반장님의 초등학생 딸이 쓰던 헬멧을 쓰고 점심시간마다 자전거 앉는 법부터 변속, 공기 주입 방법까지 배웠다. 처음 라이딩을 나가는 날엔 영상도 찍어서 만들어주셨는데 그 영상은 지금 봐도 웃기다. 여튼 그렇게 수영도, 자전거도 타다가 여차저차 마라톤도 나가게 되면서 런닝 반장님도 뵙게 되고… 이제와보니 어느덧 어엿한 철인 3종 동호회의 일원이 되었다. 수영 정모 첫날 얻어먹었던 '진짜' 브런치 🏅 첫 오픈워터, 그것도 한강 횡단 한강 횡단을 준비하는 동안, 출퇴근 시간에는 자유 수영을 가고 점심시간에는 런닝을 하며, 틈틈이 수영 레슨을 받느라 남들 주 3~4회 운동할 때 나는 일 3~4회 운동했다. (푸하하) 매일 다섯 번씩 머리를 감으며 ‘이게 맞나?’하는 생각이 들었지만 어쨌든 그렇게 한강 횡단을 준비했다. 어쩌겠어, 이것이 내 ‘추구미’니까…^^ 한강 횡단의 진짜 큰 산은 대회 당일에 있었다. 횡단 장소는 잠실대교였는데, 잠실대교 밑에는 수중보가 있어서 물살이 꽤 거세다. 나는 그곳을 횡단해야 하는 것이다. 달리는 지하철 창 너머로 보는 한강은 분명 반짝이는 하늘빛이었는데 내가 뛰어들어야 하는 한강은 묘하게 청록색과 회색이 섞인 갈색이었다. 수많은 인파가 한 번에 입수해야 하기 때문에 안전 요원들이 참가자들의 부이를 마구 당기고 밀며 입수시킨다. 처음 맡아보는 강 비린내와 거센 물살 속에서 그렇게 초반 300M를 패닉 수영했다. 물살이 너무 세서 어느 순간 정신을 차리면 내가 왼쪽으로 떠밀려가고 있었다. 분명 헤드업 한 채로 수영하는데 자꾸만 자꾸만 계속 몸이 밀린다. 아니 헤드업을 하긴 하는데 자꾸 내 이마가 다 잠기도록 파도가 친다. 물속은 아무것도 안 보이는데 자꾸 누군가의 오리발이 나를 치고, 한강은 생각보다 차갑고 깊었다. 물살에 떠밀리지 않도록 대각선으로 스트로크하면서 내가 한 생각은 딱 하나였다. ‘아, 이거 내년엔 절대 하지 말아야지…’ ‘나 이거 낙오되지 않고 완주할 수 있나?’ 의심이 들던 찰나에 어느 순간 종점이 보였다. 그제서야 몸이 풀리는 느낌이었다. 그렇게 완주하고 나니 형용할 수 없는 기분이 들어서, 물 밖으로 나오고도 내가 나온 물속을 한참 바라보았다. 그리고 기록은 놀랍게도 실내 연습 때보다 훨씬 잘 해낸 1’27”. 내가 23분 만에 한강을 횡단했다. 금메달, 그리고 함께 완주한 동호회 사람들 🤿 프리다이빙 자격증 취득 프리다이빙도 드디어 다시 시작했다. 3년 전쯤 처음 프리다이빙을 해야겠다고 마음먹자마자 COVID19가 몰아치면서 당시에 선입금한 3n만원 강습료가 공중분해 되었던 아픈 기억이 다시 떠올랐지만 어쨌든 새 강사님을 구했다. 유산소 운동들 덕분에 폐활량이 늘어서 그랬는지 스태틱(숨 참기)도 첫 측정에 바로 2분 45초가 나오고, 다이나믹(잠영)도 바로 성공하긴 했는데, 역시나 3년 전처럼 이퀄라이징이 잘 안됐다. 가끔 극소수의 확률로 처음부터 이퀄이 잘 된다는 사람들이 있다고는 하던데 아쉽게도 그게 내 얘기는 아니었다. 강사님이 하라는 대로 운전 중에도, 업무 중에도 쉬지 않고 성문을 열고 닫으며 프렌젤 이퀄 연습을 하는데 귀가 안 뚫려서 속상해하던 중에 강사님이 물 밖에 나와서 목 움직임을 한번 보자고 했다. “물 밖에선 잘 되는 거 같은데? 이번엔 물 속에서 하던 대로 코를 잡고 다시 해보세요.” 이러시길래 그제서야 알았다. “아.. 물속에서 이퀄할때 코 잡아야 해요?” 황당해하는 강사님을 뒤로한 채 코를 잡으면서 이퀄을 하니 말도 안 되게 너무 잘 된다. 슉슉 내려가지는 줄도 모르고 신나게 핀질하다가 처음으로 16M까지 내려가면서 딥스테이션 바닥에 머리도 찧었다. 그렇게 드디어 AIDA level 2 자격증을 취득했다. 이제 아파트 7~8층 정도의 깊이만큼 하강+잠수할 수 있다는 뜻이다. 숨 참기 + 잠영 + 구조 + 하강 + 이론 시험을 모두 통과했다. 여름휴가로 다녀온 보홀 바다. 물속에는 또 다른 세상이 있다. 🏋️ F45 100회 달성 6월 말 쯤 회사 정기 주차에 낙첨하게 되면서 수영을 지속하기가 어려워졌다. 그러다가 팀원이 F45 일주일 체험을 함께해보자고 꼬셔서 네명이서 함께 일주일 체험을 등록했는데 하루 만에 모두 떨어져나가고 나 혼자 남았다. 나는 일주일 체험비로 결제한 3만원이 아까워서 계속 나갔다. 매일 점심마다 영혼 탈곡된 채로 복귀해서 힘없는 손으로 점심 먹고 그랬는데, 막상 일주일 다 하고 나니 첫날만큼 그렇게 힘들진 않았다. 그리고 회원 등록하면 일주일 체험 비용 3만원도 환급해 준다고 했다. 그래서 F45를 다니게 됐고, 하반기 동안 열심히 한 덕분에 100회 출석을 달성했다. 🎉 매 운동이 끝나면 다 같이 기념사진을 찍는다. (자세히 보면 2024를 표현한 것입니다.) 열심히 출석한 흔적들과 나의 마일스톤 그리고 🚴 로드바이크 🏌️ 골프 🏂 스노우보드 🏃 트래킹 아래는 수영이나 런닝만큼의 시간을 쏟진 않았지만 나름 즐겁게했던 운동들이다. 일부러 계절을 나눠서 했던 건 아닌데 봄에는 골프, 여름에는 로드바이크, 가을에는 트래킹, 겨울에는 스노우보드를 탔었다. 그 외에도 소소하게 가끔 서핑, 크로스핏 등등을 했다. 사실 각 챕터별로 쓰자면 더 쓸 수 있는데 이러다간 연말 회고가 아니라 운동 기록이 될 것 같아서 이쯤에서 자제하고 사진으로 대체한다. 💻 SQLD 자격증 취득 회고의 반 이상이 운동이다 보니 내가 운동만 하는 사람 같겠지만 어쨌든 난 개발자다(…). 7년 반 정도 앱 개발을 하다가 현 회사로 이직하면서 웹 풀스택 개발로 직무를 변경했으니, 풀스택이 된 지 이제 2년반 정도 된 셈이다. 그런데 이게 참 그렇다. 막상 웹 개발을 주니어부터 다시 시작하려니 실무 능력이 떨어지는 내 모습이 참 답답하다. 전생 기억 그대로 환생 시켜준대서 개이득 외치며 콜 했는데 알고 보니 아프리카 대륙에서 환생시켜 준 그런 느낌이다. 여튼 백엔드도 프론트엔드도 아직 공부할 것이 너무 많고 갈 길이 멀었다는 뜻이다. 개발 연차가 있으니까 금방 해낼 줄 알았는데 팀 시니어들에 비하면 턱도 없는 것 같다. 그래서라고 하긴 뭐하지만, 뭐라도 해보자 싶어서 SQLD 자격증을 공부했다. 게다가 우리 프로젝트에서는 JPQL을 쓰고 있고 그마저도 QueryDSL을 작성할 일이 거의 없어 가장 기본적이여야할 쿼리 능력이 부족한 것 같은 느낌이 컸다. 그런데 문제는 이 SQLD 자격증이 대학생도 취득하는 거라는데 난 너무 어려웠다. 쿼리가 문제가 아니라 내가 실무에서 쓰지도 않는 함수를 외워야 했고 계층형 쿼리는 아직도 반 이상은 제대로 이해 못 한 것 같다. 시험장에서도 전부 나가는데 나 혼자 시간 끝까지 다 쓰며 앉아있었다. 공부 더 열심히 할 걸 후회하며 헷갈리는 문제를 몇 번이고 다시 풀어가면서 마킹하다가, 시험 종료 종이 울려서 울며 겨자 먹기로 제출하고 왔는데… 대체 어떻게 붙은걸까? 여튼 붙었다. 심지어 헷갈리는 문제 제외하고도 합격점이었다. 헤헤 ⚾️ KBO 전 구장 출석 회사 행사로 NC다이노스 야구를 보러 갔다가 야구에 빠져서 2년째 계속 야구에 미쳐있는 중이다. 작년에는 수도권+홈구장 위주로만 다녔는데, 올해는 전 구장을 다 가보고 싶어서 ‘KBO 전 구장 원정 응원가기’를 목표로 잡았다. 그런데 이게 생각보다 어려운 도전이었다. 지방까지 내려가서 경기를 보는 만큼 한번 갈 때마다 2연전, 3연전 시리즈를 다 보고 오려 노력했는데, 전국 구장이 10개다보니 그 짓을 최소 10번 이상 해야 했다. 한 번씩만 다녀온다고 쳐도 대략 30일 정도니, 일 년 12개월 중 최소 꼬박 1개월 이상을 야구 보는 데에 시간을 써야 한다는 것이다. 게다가 야구라는 게 그렇게 순탄하지가 않다. 이미 난 숙소도 다 예약하고 연차도 내고 운전까지 해서 땅끝까지 내려왔는데 우천 취소 폭탄 맞고 갈 곳을 잃어버리는 가슴 찢어지는 경험을 해야 한다. 게다가 3연전 다 져서 스윕당하는 경기 보고 올라갈 때는 진심으로 웃음이 안 나온다. 몸도 힘들고, 마음도 힘든 그런 도전이었다. 물론 NC가 야구를 잘했으면 마음은 안 힘들었겠지? 😊 그래도 포스트시즌 진출해 줘서 기뻤던 올해 🏆 23시즌 최다 관람자 선정 (+내년 홈 경기 시구 위촉) 여튼 그렇게 직관하러 다니다 보니 잠실, 고척, 수원, 인천, 대전, 대구, 광주, 창원, 부산까지 구장별로 대략 최소 5번 정도는 원정 응원을 다녀왔다. (전국을 신출귀몰하는 덕분에 어떤 지인들은 가끔 내가 직장 생활을 청산한 줄 오해하지만 실제론 이만큼 개인 시간을 내기 위해 일도 엄청 많이 했다.) 여튼 올해 시즌 144일 중 50일은 넘게 매일 야구장에 있는데, 그러다보니 내가 모기업에서 집계한 최다 관람자로 선정되었다. 😳 게다가 덕분에 내년 시즌 NC다이노스 홈 경기에 시구자로 선정되는 영광도 같이 얻었다. 처음에 연락받고는 부담이 엄청나게 컸는데, 부모님께 말씀드리니 의외로 너무 기특해하셔서(?) 올해 처음으로 효도한 느낌이 들었다. 아마도 내년 회고엔 야구 시구 후기와 함께 찾아올 수 있을 것 같다. 최다 관람자로 선정된 후 선수들이랑 함께 사진도 찍었다. 무려 아시안게임 주역들과... 🙏 1년 이상 안 만났던 친구들 만나기 올해 또 다른 목표는 ‘사람들 만나기’였다. 그것도 1년 이상 안 만났던 친구들 10명 만나기. 너무 오랫동안 안 본 친구한테 만나자고 하면 다단계 가입이나 결혼 초대 등을 의심할 것 같아서 1년 정도의 구간을 목표로 잡았는데, 막상 만나다 보니 1년을 훌쩍 넘어 10년 동안 못 만났던 친구들도 참 많이 만났다. 고등학교 올라가면서 연락이 끊긴 중학교 친구들, 고등학생 때 같은 기숙사 방을 썼던 룸메이트들, 점점 연락을 못 하게 되었던 이전 직장 동료들, 그리고 그때엔 분명 친했는데 환경이 멀어져서 서서히 못 만나게 된 친구들까지. 목표로 잡았던 10명보다 훨씬 많이 만났다. 만나다 보니 서로의 기억 속 친구들 이름이 나오고, 그러다 다음 모임에는 또다시 인원이 늘어서 만나고… N년만에 연락하면 다들 부담스러워할 줄 알았는데 그런 걱정이 무색하게 정말 서로가 서로를 너무 반가워했었다. 어쩌면 내가 올해 한 일 중 가장 잘한 일이 아닐까 싶다. 내가 직접 연락하는 경우 말고도 ‘언제 한번 밥 한번 먹자’는 평범한 안부들을, 올해는 그냥 넘기지 않고 약속을 잡아댔다. 덕분에 한 해가 너무 바쁘고 정신없었지만, 나에게는 정말 행복하고 소중하고 감사한 시간이었다. 사람들을 만날 때 가장 행복한 나 💌 동료들에게 편지 쓰기 올해가 되면서 또 한 게 있다면 함께 일하는 동료들에게 편지를 쓴 일이다. 특별히 고마웠던 분들이 많아서 조그맣게 편지를 쓰다 보니 어느 순간 내가 실원들 모두에게 편지를 쓰고 있었다. 한두 시간이면 끝날 줄 알았던 편지쓰기는 꼬박 3일을 주구장창 써도 끝나질 않았고, 동료들에게 편지를 주고 나니 묘한 해방감과 함께 꽤 뿌듯해져서 딱 그 보람만큼의 가치 있던 일 정도로 마무리될 줄 알았다. 그런데 어떤 분은 내가 쓴 것보다 훨씬 길게 답장을 주셨다. 그 답장을 몇 번이고 한참 읽고 나서야 동료들이 왜 내 편지에 이렇게 고마워하는지, 왜 미안해하는지, 그리고 왜 감동하는지 조금 알 것도 같았다. 각 편지봉투의 그림은 친한 디자이너분이 그려주셨다. 💇♀️ 3년간 기른 머리 기부 인생 대부분의 시간을 단발로 살다가, 모발을 기부하면 소아암 환자에게 가발을 만들어줄 수 있다는 것을 알게 되고 머리를 기른지 3년 쯤 되었다. 기부하기 위해선 파마와 염색을 하지 않은 건강한 자연 모의 상태로 25cm 이상을 길러야 하는데, 기르다 보니 위에 서술한 대로 운동 스케줄 상 하루에 다섯 번씩 머리를 감게 되면서 ‘긴 머리’가 굉장히 지치고 거추장스러워졌다. 그때부터는 한 달에 열 번씩도 더 머리를 잘라버리고 싶은 충동이 있었지만 최대한 긴 기장의 머리를 기부하고 싶어서 겨울까지 꾹 참았다. 막상 머리를 자르는 당일은 묘하게 조금 아쉽기도 했지만, 미용사 선생님께 자르고 난 모발을 넘겨받으니 숱도 많고 기장도 길어서 가발이 참 예쁘게 잘 나오겠다 싶어 뿌듯했다. 그렇게 전달 된 내 모발은 소아암 환자들을 위한 가발이 되었다. 허리까지 오던 긴 머리를 잘랐다. 🧑🏫 코딩 교육 봉사활동 매년 꾸준히 청소년들을 위해 할 수 있는 것들을 하려고 노력한다. 재능 기부를 통한 직무 멘토링 같은 것들도 자주 했고, 작년과 올해는 성남시 초등학생들에게 코딩 교육을 할 수 있는 봉사활동에 참여했다. 이번 봉사활동은 아두이노와 라즈베리파이를 연결하고 파이썬 코딩을 해서 노래도 나오고 빛도 내는 전자 오르골을 만드는 클래스였다. 1:1로 짝을 지어서 함께 페어 코딩을 하는 프로그램인데, 매칭된 짝꿍과 아이스브레이킹 차원에서 대회를 해보니 둘 다 도구리 캐릭터를 좋아한다는 공통점이 있었다. (그러나 나는 검증(?) 질문들에 제대로 대답을 못 해서 인정받지 못했다. 나 진짜로 도구리 좋아하는데ㅠㅠ) 다행히 나한테 도구리 스티커가 정말 많아서 스티커를 왕창 가져오니 짝꿍 친구가 신나서 열심히 오르골을 꾸며줬다. 원래 그러면 안 되는데 몰래 내 도구리 인형도 줬다. 심지어 저녁 먹을 때 몰래 빠져서 불닭볶음면도 같이 끓여 먹었다. 정말 밝고 긍정적인 친구여서 회고를 쓰는 지금도 꽤 인상 깊게 회상이 된다. 기회가 되면 또 볼 수 있을까? 짝꿍 친구가 열심히 꾸며준 우리 팀 오르골 📚 올해 읽은 책은 11.5권 독서를 편식하는 습관을 고쳐보고자 장르별로 골고루 읽어보려 노력했지만 결국 내가 완독할 수 있는 책은 정해져 있었다. 그 와중에 ‘총균쇠’는 반 정도까지 읽다가 결국 다 못 읽고 포기했다. 그래서 올해 읽은 책은 12권이 아닌 11.5권이다. 나는 매주 시체를 보러간다 (유성호), 말의 품격 (이기주), 우리는 왜 잠을 자야할까 (매슈 워커), 숨 (테드 창), 총균쇠 (재러드 다이아몬드), 뇌의 기막힌 발견 (스티븐 후안), 살고싶다는 농담 (허지웅), 자기 결정 (페터 비에리), 인생을 숙제처럼 살지 않기로 했다 (웃따), 언어의 우주에서 유쾌하게 항해하는 법 (신견식), 도덕적 인간은 왜 나쁜 사회를 만드는가 (로랑 베그), 문과 남자의 과학 공부 (유시민). 내가 올해 읽은 책. 가장 기억에 남는 책은 허지웅의 '살고 싶다는 농담'이다. 🐲 용인으로 이사 사실 올해의 가장 큰 변화는 8년간의 서울 자취 생활을 끝마치고 용인으로 이사를 하게 된 것이다. 판교로 출퇴근하게 되면서 서울살이 난이도가 급격하게 올라가게 되어 회사 인근으로 이사 갈 필요가 생겼고, 또 운전을 시작하며 주차장이 협소한 서울 오피스텔에서 살기가 너무 힘들었다. 그렇게 8월 말 용인으로 이사를 했고, 무려 거실이 있는 투룸을 갖게 되었다. 집이 커진 덕분에 요리도 하고, 피아노나 컴퓨터도 둘 수 있고, 늘어나는 짐에 마음 쓸 필요가 없어서 삶의 질이 올라갔다. 오피스텔에서 아파트로 이사를 오다 보니 가전/가구를 모두 새로 사야 해서 셀프 혼수하는 느낌이라 지출이 많긴 했지만, 오로지 나만을 반기는 나의 새로운 집이 너무 좋다. 친구들이 놀러 올때마다 에어비앤비 온 것 같다고 하는 우리 집 💤 마치며 결론적으로 하고 싶은 걸 하자는 필승법은 꽤 성공적이었던 것 같다. 예년보다 공부도 덜 하고 특별한 노력도 덜 했지만, 오히려 훨씬 많은 수확을 얻을 수 있던 한 해였다. 🏃 마라톤도 나가고 🏊 한강 수영 횡단도 하고 🤿 프리다이빙 자격증과 💻 SQLD 자격증도 취득하고 💇♀️ 모발도 기부하고 ⚾️ 시구도 하게 되고 🫶 오래된 친구들도 만나고 💌 동료들에게 편지도 쓰고 🧑🏫 봉사활동도 하고 📚 책도 읽고 🏡 이사도 하고. 제목에도 적은 대로 내 올 한해는 딱 그런 한 해였다. 스펙트럼을 넓힌 해. 사는 건 레벨업이 아니라 스펙트럼을 넓히는 것이다.