2022 JSConf 후기(+ 컨퍼런스에 대한 생각)

오다혜·2022년 9월 18일
5

JSConf 에 대한 생각과 목표

6월에 제주도에서 열렸던 웹 컨퍼런스 참여 이후 3달 만에 컨퍼런스에 참석하게 되었다. 제주도 웹 컨퍼런스 이후에 ‘컨퍼런스는 웬만하면 참석한다.’ 는 신조(?) 가 생겨서 이번 JSConf도 바로 티켓을 끊었다. 16만원이라는 가격이 살짝 부담스럽기는 했지만 세션들 제목만 봐도 알차고 유익한 내용들이 가득해서 결제가 망설여지진 않았다.

비용과 시간을 할애해서 가는 것이기 때문에 사람들마다 참가 목표가 분명히 있었을 것이다. 나의 이번 컨퍼런스 참가의 목표는 두 가지였다.

  1. 새로운 지식을 기반으로 한 열정 충전
  2. 개발자 분들과의 교류

회사를 입사한 지 3개월 차가 되었는데 근무하는 매 순간마다 부족한 점을 느꼈다. 아직 시간과 노력이 임계량만큼 필요한데 지금 당장 부족하다는 감정에 압도되어서 그만 열정이 식어버렸다. 컨퍼런스를 이런 나의 상황을 조금이나마 개선시켜줄 수 있는 터닝포인트로 삼고자 했다. 소위 말하는 ‘개발자 뽕’을 채워서 다시금 개발에 재미를 느껴보고 싶었다. 또한 나의 상황을 함께 공유하고 연차가 조금 더 있으신 주니어, 시니어 개발자 분들과 함께 교류하면서 해결책을 모색해보고 싶기도 했다.

티켓을 구매하고 얼마 뒤에 워크샵 추가 모집 메일이 왔다. 기왕 비싼 돈 내고 가는 거 세션들은 유튜브로도 볼 수 있으니까 최대한 참여할 수 있는 것은 다 참여하자는 마음에서 워크샵을 세 개 다 구매했다. (그래서 총 20만원이 넘는 돈을 쓴 셈이다..ㅎㅎ)

인상 깊었던 내용

세션

컨퍼런스는 이틀에 걸쳐 진행됐다. 나는 워크샵을 3개나 참여했기 때문에 아래와 같이 5개의 세션은 아쉽게도 듣지 못했다. 유튜브로 올라오면 추후에 시청할 예정이다. 모든 세션들이 좋았고 유익한 내용이 가득해서 몇 가지만 추리기가 너무 어려웠는데, 가장 기억에 남는 세션들의 느낀 점을 간략하게 소개해보려고 한다.(영어 세션들은 정확히 들은 게 아닐 수도 있으니 주의..) 아래의 요약글을 보고 흥미가 생기신 분들은 유튜브로 전체 영상을 확인해보시길 추천드린다. 강의들이 20분 정도밖에 안 되기 때문에 심심할 때 하나씩 보기 좋다.

  • 아무도 이야기하지 않는 웹 성능 지표의 비밀 우리가 지금까지 웹 성능을 고려한 환경은 사실 모든 유저의 환경이 아니라 privileged 유저(특권층)에 기반한다. 아프리카 인터넷 사용자들은 두 가지 한계점을 가지고 있는데 첫째는 느린 인터넷 속도, 둘째는 컴퓨팅 파워가 적은 디바이스다. 이러한 환경적 한계를 가지고 있는 경우 아무리 웹 성능을 높인다고 해도 사용자는 불편함을 느낄 수밖에 없다. 이러한 환경에서 불편함을 최소화 하는 방법을 안나는 9가지 설명했는데 그 중 몇 가지만 추려보도록 하겠다.
    1. 시스템 상태에 대한 가시성

      현재 어떤 이유로 로딩이 느린지, 에러가 났다면 무엇 때문인지 사용자가 알 수 있도록 하여 유저의 참을성을 늘려보자. (ex. google maps)

    2. 초기값을 신속하게 보여줘라

      페이지 맨 앞에 나오는 데이터는 초기에 로딩을 하고 중요하지 않은(페이지 첫 부분이 아닌) 부분은 lazy loading을 시키자.

    3. preconnect, prefetch, preload 를 활용하자.

      나머지 중 network resource hint 관련된 내용이 있었는데 제대로 이해를 못해서 찾아보려고 한다. 나도 특권층에 속하고 있어서 네트워크 속도나 컴퓨팅 파워가 적은 환경에 있는 유저에 대한 이해도 부족했고 고려를 해본 적도 없었는데 세션을 통해 새로운 시각을 가질 수 있어서 매우 좋았다.

  • Svelte와 함께 하는 접근성 - 컴파일러 경고를 넘어서 보통 우리가 서비스를 만들 때 어떤 사용자에게 사용될 지 생각을 하면서 만든다. 근데 장애가 있는 분들을 고려해서 코드를 작성하고 있는가? 에 대해 아누라다는 질문을 던진다. Svelte는 컴파일러 경고로 접근성을 높일 수 있는 코드를 강제/추천해주기 때문에 다른 프레임워크보다 접근성을 더 신경쓸 수 있게 해준다. a11y를 고려하는 방법을 여러 개 설명했는데 그 중 몇 가지만 설명하면 다음과 같다.
    1. HTML 시멘틱 태그를 맞춰서 html 구조를 작성한다.

    2. 키보드, form 접근성을 높이기 위한 처리를 하자.

      1. div를 버튼으로 쓰려면 onClick 외에 onKeyDown에 대한 처리도 따로 해야 한다.
      2. form 데이터는 label을 꼭 붙여야 한다.
    3. 접근성 관련 tool을 적극 사용하자.

      • 크롬 확장 프로그램: axe DevTools

      https://chrome.google.com/webstore/detail/axe-devtools-web-accessib/lhdoppojpmngadmnindnejefpokejbdd/related

      • lighthouse
  • React로 영수증 출력해보기 POS기를 만들면서 영수증을 출력해야 하는 도전기 속에서, 기존의 절차지향적 코드에서 React를 활용한 선언적 코드로 변경하게 된 이야기다. 기존에 제공되던 라이브러리들은 문자열을 바이너리로 변경하고 그 다음에 출력을 하는 순서였다면 React를 도입하면서 조금 더 직관적으로 어떤 모양의 영수증이 출력될 지 확인할 수 있도록 만들게 되었다. 여기에서의 핵심적인 접근은 renderer 에 있었다. react는 모바일 기기에 따라서는 네이티브 코드로(react native), 웹에서는 javascript 코드로 바꾸어주는 특성이 있다. **WRITE ONCE, RUN ANYWHERE** 떠올리며 jsx 가 프린터기에 맞는 파일로 바뀌어야 할 때는 그에 맞는 renderer만 제공해주면 된다는 아이디어를 가지고 각 jsx를 돌며 Uint8Array가 되도록 재귀적으로 구현을 했다. 코드를 보니까 쉬운데, 막상 아이디어를 떠올리고 이를 구현하는 과정이 쉽진 않았을 거라고 생각이 들었다. React도 알고 renderer도 아는데..ㅠㅠ 발표도 너무 깔끔하고 전달력이 좋으셨는데 어떻게 저런 아이디어를 생각하고 구현을 하시는 건지 너무 궁금했다.

위에 설명한 세션들 외에도 다 너무 좋은 강연들이였는데 나의 짧은 식견으로 100% 소화를 못 해서 소개하기가 조금 민망해서 안 적었다. 개인적으로 정리는 다 해놓았는데 차차 시간날 때 이해 안 됐던 부분을 찾아서 더 추가해보려고 한다.

컨퍼런스를 통해 얻은 것들

일단 내가 처음 보는 사람들과 이렇게까지 잘 친해질 수 있는 사람이였는지를 처음 발견하게 되었다. 이틀 동안의 컨퍼런스로 무려 다섯 분의 개발자 분과 친해지게 되었다. 대화를 함께 했던 개발자분들은 더 계셨는데 세션 시작시간이 다 돼서 연락처 교환을 못하고 떨어지게 되어 아쉬웠다. 혼밥, 혼영을 즐겨하긴 하지만 이번 컨퍼런스의 목표가 다른 개발자분들과의 교류였던 만큼 먼저 다가가서 인사드리고 대화를 해보려고 시도했다. 적극적으로 사람들과 네트워킹하려고 노력한 만큼 다양한 얘기를 들을 수 있었고 좋은 분들과 친해질 수 있어서 정말 뿌듯했다. 조만간 컨퍼런스에서 뵀던 분들과 커피챗을 열어보려고 한다. 좋은 인연을 계속 이어나가고 싶다.

두 번째로 영어의 필요성을 절실하게 느끼게 되었다. 특히 마지막 세션이었던 에릭 뭰델님의 세션에서 연사자님이 강연을 위해서 영어를 배우셨다는 얘기를 듣고 정말 존경스럽고 멋있었다. 네이티브 스피커도 아니신 분이 저렇게 유창하고 농담도 섞어가면서 여유롭게 강연을 하실 수 있으시다는 게 참 부러우면서도 나도 언젠가 저런 자리가 왔을 때 준비된 사람이여야 기회를 잡을 수 있겠단 생각이 들었다.

세 번째로는 오픈소스 기여에 대한 의지가 생겼다. 에릭 뭰델님이 Node.js에 컨트리뷰터가 된 썰(?)을 들려주셨는데 문제를 해결하기 위해서 다양한 시도를 해보고, PR이 approve 되는 경험을 하시면서 한층 성장하신 것 같았다. 집에 오는 길에 친해진 개발자 분께 나도 오픈소스에 관심이 조금 생겼다고 말씀드리니 good first issue 라는 태그가 달린 이슈들은 해결하기 쉬운 편이니 꼭 한 번 시도해보면 좋겠다고 말씀해주셨다. 조만간 이 뽕(?)이 빠지기 전에 꼭 도전해보리라 다짐했다.

무려 집가는 길에 카톡으로 캡쳐도 해서 보내주셨다.

내가 컨퍼런스를 사랑하는 이유

컨퍼런스를 처음 접한 것은 대학교 1학년 코딩을 막 공부하기 시작했을 때다. 사실 지금 봐도 내가 알아들을 수 있는 내용은 거의 없다. 그저 귀동냥으로 주워들은 단어만 머리에 둥둥 떠다닐 뿐. 근데 그 당시엔 C언어 고작 몇 달 공부한 수준이었고 컨퍼런스도 처음이어서 더더욱 낯설기만 했다. 강연 중에 알아듣는 말이 몇 마디 안 됐고 참여형 세션도 android studio가 제대로 안 깔리는 바람에 거의 하는 둥 마는 둥 하다가 나왔다.

겉으로 보기엔 얻은 게 하나도 없는 행사였지만 이 행사를 참여한 이후에 정말 많은 것이 바꼈다. 일단 충격을 많이 받았다. C언어로 알고리즘 몇 문제 푼다고 개발자가 되는 것은 아니라는 것을 깨닫고 그 때부터 개발 관련 동아리나 활동을 많이 알아봤다. 개발 관련 아르바이트, 교내 동아리 참여가 모두 이 때 자극 받은 원동력을 기반으로 한 활동들이다. 하나씩 활동을 해가면서 지금의 내가 되었으니 2019년 Devfest는 나의 개발자 커리어의 시작이라고 해도 과언이 아니다.

컨퍼런스는 일상에 안주하지 않게 해준다. 어떠한 형태로든 나의 커리어에 자극을 준다. 새로운 사람을 만나게 될 수도 있고, 내가 평소에 접하지 않았던 분야의 이야기를 들을 수도 있고, 아니면 생전 처음 듣는 용어들을 들으면서 자괴감이 느껴질 수도 있다. 이번 컨퍼런스에서 쉬는 시간에 뒤에서 하시는 대화가 들렸다. ‘나는 말하는 감자인 거 같아. 진짜 하나도 모르겠더라.’ 라는 말을 들으니 2019년도의 내가 잠깐 겹쳐 보였다. 컨퍼런스를 가지 않았다면 내가 무엇을 모르는지 조차 몰랐을텐데 나의 무지가 어디까지인지 정확히 알게 되면서부터 변화가 시작되는 것 같다. 모든 세션의 내용을 이해 못 할지라도 컨퍼런스는 좋은 자극제가 될 수 있다.

몇 주 뒤인 10월 8일에 feconf가 열린다. 또 어떤 깨달음이 나를 기다리고 있을지 무척이나 기대된다. 나의 다음 목표는 마냥 자극만 받기 보다는 지식을 조금씩 소화하는 과정을 갖는 것이다. 그동안 미리 예습도 하고 이번에 배운 내용들에 대해 복습하는 시간도 가져보려 한다.

profile
프론트엔드에 백엔드 한 스푼 🥄

0개의 댓글