위 후기는 3/30 송도 컨벤시아에서 이루어진 GDG 인천 & 송도 : Hello World! 24 후기이다. 사실 이런 본격적인 개발 컨퍼런스는 처음이라 많이 기대가 되었다.
13:00 ~ 18:00까지 총 다섯 시간 동안 이루어졌으며 각 타임마다 5개의 세션이 있어서 원하는 것을 골라들으면 되었다!
첫 번째 세션은 데이터베이스 분야의 IT 전문가, 강성욱 DBOps 엔지니어님의 ‘커뮤니티’의 중요성에 관한 세션이었다.
동행인과 웹 개발 커뮤니티에서 만난 사이라 그런지 같이 이러한 주제의 세션을 듣는게 뜻깊었다.
세션은 전반적으로 강성욱 엔지니어님의 커리어 이야기를 통해서 전해진다. 그는 사실 처음부터 개발을 할 생각이 없으셨다고 하셨다. 어렸을 때부터 장사에 관심이 많은 그는 컴퓨터 도매상가에서 부품을 유통하고 재고를 관리하는 일을 했었다. 그러다가 물류관리에 특정 패턴을 인지하고 장사를 잘 하기위해 데이터를 관리하는 법을 배워야겠다고 생각이 들어 장사의 수단으로서 DBA를 시작하셨다.
이 대목에서 교직 수업에서 ‘학교 폭력’이라는 주제를 유아들에게 어렵지 않게 이 주제를 관철시킬 수 있을지 새로운 교육자료를 모색하기 위해 웹 개발을 시작한 나와 동질감이 들었다.
블로그 퇴고 중에 발견한 칼럼인데 이미 작년에 이런 말씀을 하셨군요..
당시에는 지금처럼 데이터가 트렌드도 아니었고 비전공자가 관련 교육을 받거나 자료를 습득하는 것이 어려웠던 터라 데이터베이스에 대한 정보를 얻고 SQL을 공부하기가 쉽지 않았다. 놀랍게도 그는 여기서 포기할한 것이 아닌 가장 DB로 활성화되어있던 커뮤니티에 가입해서 부산에서 서울을 매주 횡단하며 밥값까지 아껴가며 스터디에 참석한다. 나중에는 이를 위해 상경하시기도
강 엔지니어님은 이러한 커뮤니티 덕분에 빠르게 성장할 수 있었다고 회고하셨다. 그가 이야기한 커뮤니티의 장점들로는 커뮤니티 선배들의 찐!(매운맛) 가르침, 강제로 공부할 수 밖에 없는 환경(스크럼 전략), 커뮤니티의 질문에 답글을 달면서 모르는 것을 알기, 매일 공부한 것을 정리(블로그), 지속적인 실습 등등..이 있었다. 기본적으로 늘 열정적으로 배우면서 적극적인 태도를 가지신 분이라고 느껴졌다. 또한 늘 열심히 노력했던 덕에 언제든 기회가 오면 꽉 잡을 수 있도록 준비된 모습이 인상적이었다. 무엇보다 잘하는 주변 사람들을 보며 좌절하는 것이 아닌 성장의 원동력으로 삼는 모습을 통해 닮고 싶다는 생각을 하게 되었다.
잠시 커뮤니티와 거리를 두면서 개인 공부 위주로 시간을 보내던 나에게 그동안 참여했던 개발 커뮤니티들이 나에게 어떠한 긍정적인 영향을 주었는지 전반적으로 회고해 볼 수 있었던 시간이었다. 또한 커뮤니티를 직접 운영해보면서 배우는 것도, 얻는 것도 많다는 말씀에서 피로의 홍보팀장으로 보내던 나날들이 생각났다. 앞으로도 개발 사회에서 어떤 종류의 커뮤니티들을 만나게 될지 기대가 되었다. 커뮤니티의 순기능과 어떤 태도로 개발 공부를 이어나가야하는지에 대해 알려주신 강성욱 엔지니어님께 감사드립니다 :)
최근 한 독서모임에서 <철학은 어떻게 삶의 무기가 되는가>라는 책으로 내적동기는 외적동기를 앞서야 진정한 성공과 성과가 나온다에 대한 토의를 했었다. 여기서 이야기하는 내적 동기란 순수히 그 일 자체가 목적이 되어 월급이나 성과급과 같은 외적 동기와는 무관하게 작용하여 일의 효율을 높이는 것을 의미한다. 단순히 책의 텍스트로 읽었을때는 바로 이 내용이 와닿지는 않았다. 돈 벌고 먹자고 하는 것이 바로 직업이고 일인데.. 당장 해커톤만 해도 상금이 걸려있으면 어떻게 해서든지 순위권에 올라가려고 더 노력할 것 같은데 어떻게 내적 동기가 외적 동기를 추월할 수 있을까? 라는 의문점이 있었는데 어느 정도 이 세션이 답이 되었다.
Just Why?
- 왜 당신은 개발자가 되셨습니까?
- 대한민국 현재 기준 수천개의 직종, 직업이 있는데, 도대체 왜?
- 치열 하십니까?
이 세션을 진행해주신 권대건 개발자님은 이와 같은 질문들을 던지며 공허함과 충만함에 대한 정의를 내리셨다.
공허함 = 허전함, 찝찝함
충만함 = 치열함, 정성껏, 영혼을 담아, 100%
목표는 공허하게 만든다.
- 목표를 달성하기 위해, 쏟아 부을 것인가?
- 하루하루를 충만하게 보내고, 과정의 결과로 목표를 이룰 것인가?
권 개발자님께서는 목표(외적 동기)로 인해 공허함이 생길 수도 있다는 것을 경계하며 ‘하루하루를 충만하게 보내고, 과정의 결과로 목표를 이룰 것’을 피력했다. 이는 앞서 언급한 내적동기의 선순환과도 맥을 함께한다.
“목표없이 일단 시작해 보세요. 충만하게..”
원하던 원치 않던, 생각지도 못한 사이에 목표는 여러분의 과정이 될것입니다.
‘충만함’을 계속 강조하시는 부분에서 칙센트미하이의 <절대적 몰입의 상태 - 몰입 이론>이 생각났다.
💡 <절대적 몰입의 상태 — 몰입 이론>
1. 과정의 모든 단계에 명확한 목표가 있다.
2. 행동에 대해 즉시 피드백한다.
3. 도전과 능력이 균형을 이룬다. (자신의 능력에 맞는 도전)
4. 행위와 의식이 융합한다.
5. 집중을 흐트러뜨리는 일은 의식에서 배제한다.
6. 실패를 두려워하지 않는다.
7. 자의식이 소멸된다.
8. 시간 감각이 왜곡된다.
9. 활동이 자기 목적이 된다.
-칙센트미하이
사실 교육의 수단으로서 생각했던 개발이 어느순간 그 자체로 목적이 되어버리니 그 과도기에서 약간 혼란을 느꼈던 시기가 있었다. 그러나 이러한 혼란은 진정으로 문제 정의를 하고, 웹을 설계하고 웹 페이지를 디자인한 후 코드로 구현하며 팀원들과 회의하고 배포된 웹을 유지보수를 하며 점차 사그라들었다. 개발을 하는 그 일련의 과정에서 진정한 몰입의 상태에 도달하며 충만하게 살았던 덕이었던 것 같다.
그러한 충만함을 기억하며 즐겁게 개발하고 싶다.
개발과 철학을 재밌게 접목하여 풀어주신 권대건 개발자님께 감사드립니다. :)
쓰다보니 너무 길어져서 분리했다.
명확하게 RESTful API란 이것이다!!! 라는 인사이트를 얻고 싶었지만
그런 개념이 아니라는 것을 깨달은 세션이었다.
이전부터 유튜브나 블로그를 통해 속으로 덕질(?)하던 김재호 개발자님의 세션..
내심 궁금했던 <건물주의 기쁨과 슬픔>
의 저자이기도 하셔서 이번 Hello World! 24에 참여하신다는 소식을 듣고 이왕 독서모임 책 주문하는 김에 사버렸다.
모두가 마냥 부러워하기만 하는 건물주의 고충에 대한 이야기와 개발 이야기, 약간의 경제 개념과 인생관에 관한 이야기가 어우러진 재밌는 에세이였다.
이 책의 저자이자 이번 세션의 진행자, 김재호 개발자님은 전직 네이버, 카카오 개발자로 현재는 직장인 소개팅 앱 <커피한잔>을 1인 개발로 운영중이시다. 세션은 전반적으로 어쩌다 1인 개발을 하게 되었는지에 관해 타임라인에 따라 이루어졌다.
아이디어 : 파랑새는 가까운 곳에 있다.
- 자기만 볼 수 있는 뭔가가 있을 것.
- 남들은 모르는 나만 보이는 것.
- 아직 학생이라던가.
- 다들 수도권 사는데 나만 지방에 산다던가.
- 취미생활 등에서 찾아볼 것.
나 또한 남들이 찾지 못한 나만의 새로운 아이디어를 찾고 싶다.
읽고 싶은 이야기가 있는데 아직 그런 책이 없다면 네가 그 책을 써야 한다
- 토리 모리슨(노벨문학상 작가)
ppt 슬라이드에 이 문구가 나오자 속으로 놀랐던 부분이다.
이 명언을 세워놓고 재수시기에 꼭 이 재수기록을 만화로 풀어보고 싶다는 생각을 했고 3년 전에 직접 인스타툰을 그리고 작년에 출판을 하면서 실천을 해보았다.
이 마인드를 개발에도 적용시키자는 생각은 깊게 안했어서 시야가 탁 트이는 기분이 들었다.
1인 개발자의 덕목
- 꾸준함
- !조급함
1인 개발자 뿐만이 아니라 모든 개발자들에게 해당되는 말 같다.
조급하면 되려는 일도 되지 않고 상황에 대한 통제적인 능력을 잃기가 쉽다.
'현재 나는 조급하게 행동하고 있지 않는가, 꾸준하게 가고 있는가'를 생각하며
스터디원과 지난 3월 월간 회고할때도 !조급함이라는 말을 쓰기 시작했다.
회사에서 있었던 모든 일들이 좋은 경험
- 클라이언트 개발
- 서버 개발
- 웹 개발
- 인프라
- 고객 문의
- 기획, 디자인, 마케팅
회사에서 열심히 해봐야할 것들
- 인증, 결제, 배포
- 로그인 플로우, 상태 관리
- 인프라/보안
- 내가 기획서를 쓴다면? 상상해보기
- 광고만들어보기
내가 참여한 대부분의 프로젝트에서 '프런트엔드 개발자'라 명시되어 있긴하지만 전반적인 프로젝트 관리와 UI/UX 디자인, 기획 및 마케팅에도 관여를 하면서 프로덕트를 다각적으로 살펴볼 수 있어서 개발적인 시야를 높이고, 개발 기술을 어떻게 활용해 나가야할지에 대한 인사이트를 얻은 것 같았다. 또한 취준생 입장에서 '회사에서 열심히 해봐야할 것들' 이라는 슬라이드를 통해 회사 업무 및 개발에서 중요한 부분들을 알아갈 수 있어서 유익했다.
1인 개발자를 넘어 좋은 개발자가 되려면 단순히 '개발' 업무에만 국한되어 기술적인 지원만 하는 것이 아닌, 거시적으로, 나무가 아닌 숲을 봐야한다는 생각이 들었다.
세션 이후 QnA가 끝날 때까지 대기타다가 책에 사인을 받았다.
재밌는 에세이를 출간해주시고 좋은 세션, 따뜻한 한마디까지 해주신 김재호 개발자님께 감사드립니다 :)
이번 GDG 컨퍼런스의 거의 유일한 웹 프런트엔드 세션이었다.
왜 리액트를 사용하는지, 왜 자바스크립트가 아닌 타입스크립트가 더 유용한지에 대한 답이 충분히 되는 세션이었기 때문에 프런트가 아닌 다른 개발자들이 들어도 좋았을 것 같았다.
이 세션을 진행하신 임성호 요기요 프런트엔드 개발자님은 리액트의 장점, Typescript의 특징을 엮어서 이 둘의 조합과 시너지를 중점적으로 설명해주셨다.
리액트를 쓰는 이유
1. 선언적 UI
2. Component 기반
3. 함수형 programming
4. 랜더링
해당 슬라이드를 보면서 '나는 왜 리액트를 쓰지? 리액트가 재밌다고 느껴지는 포인트들이 어떤 것이었을까?" 를 생각해보니 두번째 이유인 Component 기반이 큰 것 같다. Component를 사용하면 재사용성이 늘어나고 복잡한 UI를 효율적으로 관리할 수 있다. 유년시절 가장 좋아했고 지금도 종종 모으고 있는 LEGO 블록처럼 컴포넌트를 분해하고 조합을 반복하면서 웹을 구성해나갈 수 있다. 리액트는 레고 블록놀이 같아서 좋다.
JS의 한계
이 한장으로 요약한다
자바스크립트는 동적 타입 언어이다. 좋게 말하면 한 변수에 다양한 타입의 값이 할당될 수 있어서 유연성이 높고, 타입 시스템을 고려하지 않고 코딩을 할 수 있어 러닝커브가 빠르고 코드도 간결해진다. 하지만 런타임 오류로 인한 디버깅의 어려움, 성능 저하, 예측 불가와 같은 명백한 단점이 존재한다. 이러한 단점은 프로젝트의 규모가 커지고 유지보수 기간이 길어질수록 더 부각된다.
이러한 단점을 보완하기 위해 마이크로소프트에서는 JS의 슈퍼셋, Typescript를 2012년에 출시하였다.
Typescript는 말 그대로 자바스크립트에 정적 타입을 명시한 언어이다. 타입스크립트는 컴파일 시점에 타입 체크를 수행하여 개발 중에 오류를 사전에 발견할 수 있게 해준다.
이 말은 즉, 리액트와 조합해서 사용했을 때 props와 state에 타입을 명시함으로써, 예상치 못한 타입의 값이 컴포넌트로 전달되는 것을 방지할 수 있다. 이는 개발 과정에서의 신뢰성을 향상시키고, 버그를 추적하기 쉽게 만든다.
급하게 찍느라 사진이 잘렸지만 가운데가 frontend를 의미한다.
이 사진처럼 프론트엔드 개발자는 유저와 서버 간 소통의 중간단계에 위치해 있다.
그러므로 프론트엔드 개발자는 사용자의 입력을 서버가 원하는 데이터 형태로 보내주는 것이 중요하고,
서버의 데이터 또한 사용자가 원하는 형태로 그려낼 수 있어야 한다.
임 개발자님께서는 이 두가지 일 모두에 타입은 중요하다는 것을 강조하시면서 타입스크립트 뿐만 아니라 zod와 같은 도구의 도움을 받을 수도 있다하셨다.
리액트와 타입스크립트의 조합과 시너지에 대해서 알아갈 수 있는 좋은 시간이었고, 더 나아가서 프론트엔드 개발자란 어떤 개발자인지 생각해보는 계기도 되었다. 역시나 좋은 세션을 제공해주신 임성호 개발자님께 감사드린다. :)
오랜만에 서울, 판교를 벗어나서 송도라는 새로운 장소에서, 첫 개발 컨퍼런스에 참석할 수 있었던 뜻깊은 기회였다. 기술 세션과 커리어 및 일반 세션이 적절히 분포되어 있어서 골라듣는 재미도 있었다. 덕분에 멋쟁이 개발자분들의 이야기를 듣고, 학습하고, 교류할 수 있었던 좋은 기회였다.
다시한번 이렇게 좋은 기회를 마련해주신 GDG Incheon & Songdo와 같이 보러가자고 이끌어준 동행인분께도 감사드린다 👍
좋은 포스팅 감사합니다 ^^