본문 바로가기메뉴 바로가기


FE개발자의 성장 스토리 01 : Judy, 첫 컨퍼런스에 가다(feat. JSConf korea 2020)

안녕하세요, 2019 카카오 개발자 겨울 인턴십으로 시작하여 현재는 카카오 FE개발을 맡고 있는 FE플랫폼팀의 Judy입니다. 개발자가 되어 처음으로 참여해 본 컨퍼런스 참관기를 공유하고자 합니다.


나의 첫 컨퍼런스 JSConf korea

지난 9월 20일, 자바스크립트 개발자들을 위한 컨퍼런스인 JSConf Korea가 열렸습니다. 저의 첫 컨퍼런스인 JSConf korea는 세계 각국에서 개최되는 컨퍼런스로, 한국에서는 작년에 이어서 두 번째로 개최되었습니다.

자바스크립트 개발자들에게 많은 관심을 받는 행사이다 보니 티켓이 빠르게 매진되었습니다. 저는 티켓팅에 실패해서 포기해야 하나 고민했었는데요, 마침 인턴 시절 카카오는 크루들의 역량 향상을 위해 컨퍼런스나 학회 참여를 지원해 준다고 들었던 것이 생각나서 혹시나 하는 마음으로 참가 티켓을 요청드렸더니 바로 지원받을 수 있었습니다.👏

이번 컨퍼런스는 코로나19(COVID-19)로 인해 온라인으로 진행되었고 메인 스테이지, 엑스포 부스, 세션 3트랙으로 구성되었습니다. 메인 발표는 말 그대로 가장 메인이 되는 자바스크립트와 관련된 세션 영상이 제공되었고, 발표 후에는 해당 세션에서 Q&A가 라이브로 진행되었습니다. 엑스포 부스에서는 후원사 소개 및 평소 개발자들이 해당 회사에 궁금했었던 것들에 대해 질의응답하는 시간이 마련되었습니다.

저는 메인 스테이지와 시간이 겹치는 세션과 엑스포 부스는 아쉽게도 많이 참여하지 못했고, 메인 스테이지에 집중적으로 참여하였습니다. 가끔 녹화 영상이나 정리된 글을 본 적은 있지만 컨퍼런스에 직접 참여한 것은 처음이었고, 다양한 나라의 개발자들의 발표도 들을 수 있게 되어 많은 기대를 했습니다. 

자바스크립트 개발 컨퍼런스라고 해서 웹으로만 주제가 편향되지 않을까 생각했었는데 정말 다양한 분야의 발표가 있었고, 그중에서 기억에 남는 발표 몇 가지를 정리해 공유하고자 합니다. 

Judy의 인사이트 (feat. 기억에 남는 발표들)

– 접근성이 떨어지는 웹사이트? 자바스크립트의 잘못은 아니랍니다.

Mediaocean에서 개발 스페셜리스트로 일하고 있는 아누라다 쿠마리님 발표

접근성을 신경 써야 하는 이유와 웹 접근성을 높일 수 있는 방법들과 접근성 확인 시 사용하면 좋은 도구들을 소개하는 세션입니다.

이 글을 읽고 계신 분 중에 개발하면서 접근성(accessibility)에 대해 관심을 가져보신 분이 계신가요? 저는 개발하며 단 한 번도 접근성에 대해 고려해본 적이 없었기 때문에 굉장히 인상 깊게 다가왔던 발표였습니다. 심지어 처음에 발표 제목만 봤을 때는 속도 개선과 관련된 발표일 것이라고 생각했을 정도로 ‘접근성’이라는 단어가 가지는 의미에 무지했었고, 평소 전혀 관심을 갖지 않았던 주제였습니다.

모든 기능이 키보드만을 통해서 접근할 수 있도록 만들기 위해 포커스 관리를 해주어야 하고 outline을 제거하면 안 된다는 것이나, 마우스 이벤트 외에도 키보드 이벤트들을 추가해 주어야 한다는 것 등 사소하지만 저는 전혀 생각지 못했던 점들에 대해 신선한 충격을 받고 새로운 시각으로 다시 한번 생각해보게 되었습니다.

발표를 들으며 제가 개발했었던 프로젝트를 확인해봤었는데요, 포커스 관리는커녕 대부분의 버튼을 키보드로 이용하기 어려웠습니다😢. 오히려 저는 그동안 예쁘지 않다는 이유만으로 디자인 담당자에게 버튼 outline을 제거해달라고 요청하거나 img 태그에 alt(대체 텍스트)를 제공하지 않는 등 접근성을 낮추는 개발을 하고 있었습니다. 반성하는 중입니다.

발표를 들은 후 접근성에 관심이 생겨 확인해보니 카카오에서는 보다 더 나은 접근성을 위해 팀이 별도로 구성되어 많은 서비스들의 접근성을 관리하고 개선하고 있었는데요, 해당 팀에서 올려주신 자료와 더불어 어떤 상황에서 어떻게 접근성을 올리고 있는지 관심을 가지고 지켜보고 있습니다.

기획, 디자인, 개발 단계에서 모두 접근성을 고려해본다면 더 많은 사용자들을 위한 좋은 서비스가 나올 것 같습니다. 저도 앞으로 프로젝트를 개발할 때, 접근성을 고려하며 개발을 해봐야겠습니다. 이렇게 한 번도 생각해보지 못한 시각으로 문제를 새롭게 바라보게 되는 것이 컨퍼런스의 묘미 중 하나인 것 같습니다.

– 퇴근 후 집 도착 10분 전, 집 안 거실의 에어컨을 켜고 싶어서 삽질한 썰

microsoft에서 cloude advocate으로 일하고 있는 유저스틴님 발표

라즈베리파이를 이용해 만능 리모컨을 만든 개발기에 대한 세션입니다.

평소 자바스크립트로 생각해보지 못했던 홈오토메이션(가정 자동화: 스마트폰을 이용해 집안의 가전 및 기기들을 조작하고 관리하는 기술) 관련 주제라 신선했고, 저도 가끔 사무실에서 에어컨 리모컨을 가지러 가기 귀찮을때가 많았어서 관심이 가는 주제였습니다.

IoT(Internet of Things)를 구현하기 위해서는 굉장히 복잡할 거라 생각하고 지레 겁먹고 있었는데, 발표에 따르면 라즈베리 파이와 node 서버를 이용해서 생각보다 아주 간단하게 만들 수 있었습니다. 

재미있는 점은 발표 제목이 ‘에어컨을 켜고 싶어서 삽질한 썰’인데 다른 가전제품은 모두 성공했는데 에어컨 리모컨을 만드는 것만 실패하셨다는 것인데요, 그것에 영감을 받아(?) 저는 에어컨 리모컨으로 만 만들어보는 것으로 개인 프로젝트를 진행 중입니다.

저는 항상 웹으로 다른 서비스를 만들어보는 개인 프로젝트만 진행했었는데요, 발표를 들으며 홈오토메이션에 대해 관심이 생겨서 공부 중이고 조금 더 나아가 직접 앱을 구현하기 위해 react-native도 공부해보고 있습니다. 

발표자님 블로그에도 자세하게 정리되어 있어 발표 외에도 많은 도움을 받고 있고, 저도 성공적으로 개발을 완료한다면 내용을 정리해서 팀 내에 공유하려고 하고 있습니다.😊

– 잃어버린 UI를 찾아서: 디자인 시스템 개발기

카카오 엔터프라이즈 AI 검색팀에서 FE 개발을 하시는 전우진님 발표

규모가 큰 프로젝트 개발 시 기획, 마크업, 개발의 협업을 개선하기 위한 카카오 엔터프라이즈의 KST(Kakao search Template, 공통 컴포넌트 관리 시스템) 개발 및 도입기에 대한 발표였습니다.

기획, 디자인, 개발 간의 협업 가이드를 정하고 커뮤니케이션 비용을 줄이고자 하는 것은 대부분의 it기업에서 지향하는 목표일 것이라 생각합니다. 카카오도 FE와 마크업 간의 효율적인 소통을 위해 협업 가이드를 정하고 적용해보는 등 많이 노력을 하고 있습니다.

제가 알기로 카카오 FE플랫폼팀에서 기획, 디자인, 개발 모두 사용할 수 있는 툴을 사용해본 적이 없는 것으로 알고 있는데, 어느 정도 규모가 있는 프로젝트의 경우 발표해 주신 KST(Kakao search Template)를 적용해보면 좋을 것 같다는 생각을 했습니다.

규모가 큰 광고 관련 프로젝트 개발에 참여했었을 때, 개발자들이 각각 다른 기능을 담당해 개발을 진행했었습니다. 처음에 공통 컴포넌트를 나누고 스토리북을 통해 공통 컴포넌트를 공유해 재사용성을 높이고자 했었지만 기획, 디자인 담당자들과 공유가 잘되지 않아서 서로 다른 기획서와 디자인 사이를 오가며 어느 쪽이 맞는 것인지 확인해야 했던 경우도 많았고, 촉박한 개발 일정 때문에 점점 스토리북을 사용하지 않고 어느 기능에서는 공통 컴포넌트를 사용하고 어느 기능들은 미처 공통 컴포넌트를 확인하지 못하고 내부에서 자체적으로 구현하거나, 이미 있는 공통 컴포넌트를 중복으로 만들어 진행되기도 했습니다. 따라서 한 컴포넌트를 수정해야 하면 전체 검색을 통해 공통 컴포넌트 외에 독립적으로 사용되고 있는지 확인해야 하는 등 비효율적으로 관리되어서 개발 부채로 남겼던 경험이 있습니다.

발표를 들으며 당시 프로젝트에 발표해 주신 기획, 디자인, 개발 모두가 사용 가능한 KST(Kakao search Template)를 적용했으면 겪었던 문제들을 조금 더 효율적으로 해결할 수 있지 않았을까? 하는 생각이 들었습니다.

올해 상반기 내부적으로 카카오 공동체 FE개발자들의 기술 교류를 위한 밋업을 준비하고 있었으나 코로나19(COVID-19) 때문에 중단되었고 FE플랫폼팀 내부적으로 기술 발표만 진행되고 있는데요, 컨퍼런스를 통해 공동체 개발자분의 세션을 들으니 빨리 코로나가 끝나 다 같이 기술 발표를 공유하면 좋을 것 같다는 생각을 하게 되었습니다.

마치며 

저의 첫 컨퍼런스가 온라인으로 진행되다 보니 현장감을 많이 느끼지 못했고, 메인 발표가 끝나고 쉬는 시간에 부스를 체험하거나 다양한 서비스들을 경험해보고 기념품을 받을 수 없어서 조금 아쉬웠습니다😅. 특히나 참가하신 다른 개발자분들과의 커뮤니케이션을 많이 기대했었는데 그 부분이 제일 아쉬웠습니다.

개인적으로 느끼기에 JSConf korea는 기술적으로 깊이 있는 내용만을 다루기보다는 ‘자바스크립트로 이런 것까지 할 수 있다!’를 보여주는 느낌의 컨퍼런스였습니다. 저는 그동안 웹에만 관심을 가지고 있었는데 자바스크립트와 관련된 다양한 주제의 발표를 들으며 다른 분야의 사이드 프로젝트를 진행해보고 싶다는 생각도 가지게 되었고, 아직 선구적이라 조금 더 발전이 필요한 분야는 계속해서 관심을 가지며 공부해보고 싶은 생각도 하게 되어서 만족도가 아주 높은 컨퍼런스였습니다.

해당 분야에 대한 지식이 부족하여 이해가 가지 않았던 부분도 많았지만 그럼에도 불구하고 발표를 듣고 데모를 만져보며 해당 분야에 관심을 가질 수 있던 계기가 되었습니다.

언젠가 저도 JSConf korea에서 발표를 할 수 있기를 기대하며, 저의 첫 컨퍼런스 참관기를 마치도록 하겠습니다! 다음에 이어질 FE개발자의 두 번째 성장 스토리도 많은 관심 부탁드려요. 감사합니다.


✔️ 함께 하면 좋은 글



judy.do
judy.do 이것저것 관심 많은 개발자 judy입니다
Top Tag
2021
2021-new-krew
adaptive-hash-index
adt
agile
agilecoach
ai
Algorithm/ML
Algorithm/Ranking
almighty-data-transmitter
android
angular
anycast
App2App
applicative
Architecture
arena
ast
async
aurora
babel
babel7
Backend
BApp
bgp
big-data
ble
blind-recruitment
block
Block Chain
blockchain
bluetooth
brian
business
Cache
cahtbot
Caver
cd
ceph
certificate
certification
cgroup
ci
cite
client
clojure
close-wait
cloud
cloudera-manager
clustered-block
cmux
cnn
code-festival
code-review
codereview
coding
competition
component
conference
consul
container
contents
contest
core-js@3
couchbase
COVID-19
cpp
Data
data-engineering
DB
deep-learning
dependency-graph
dev
dev-session
dev-track
developer
developer relations
developers
devops
digitalization
digitaltransformation
dns
docker
dr
employeecard
eslint
Feature List
Featured
friendstime
front-end
frontend
functional-programming
funfunday
fzf
garbage-collection
gawibawibo
GC
github
globalpollution
go
graphdb
graphql
Ground X
growth
ha
hadoop
hbase
hbase-manager
hbase-region-inspector
hbase-snashot
hbase-table-stat
hbase-tools
hri
id
if kakao
ifkakao
infrastructure
innodb
internship
ios
item
Java
javascript
jsconf
jsconfkorea
json
k8s
kafka
kakao
kakao-commerce
kakao-games
kakaoarena
kakaocommerce
kakaocon
kakaoenterprise
kakaok
kakaokey
kakaokrew
kakaomap
kakaotalk
KAS
KCDC
khaiii
Klaytn
Klip
kubernetes
l3dsr
l4
links
load-balancing
machine-learning
marathon
meetup
melon
mesos
Messaging
microservice
mobil
monad
monorepo
mtre
mysql
mysql-realtime-traffic-emulator
nand-flash
network
new
new-krew
nfc
nomad
ocp
open
opensource
openstack
OpenWork
page
parallel
PBA
planning poker
Platform
polyfill
programming-contest
project-structure
pycon
python
quagga
react
reactive-programming
reactor
recap
recommendation
recruitment
redis
redis-keys
redis-scan
related-blind
rest
rubics
ruby
rxjs
s2graph
scala
scalaz
server
service
sharding
shopping
socket
spark
spark-streaming
SpringBoot
ssd
Statistics/Analysis
Stomp
storage
storm
style-guide
support
System
talk
talkchannel
tcp
tech
test
Thread-Debugging
time-wait
tmux
typescript
update
User Story
vim
vim-github-dashboard
vim-plugin
vue
vue.js
web-cache
webapp
WebSocket
weekly
work
workplatform
All Tag
2021
2021-new-krew
adaptive-hash-index
adt
agile
agilecoach
ai
Algorithm/ML
Algorithm/Ranking
almighty-data-transmitter
android
angular
anycast
App2App
applicative
Architecture
arena
ast
async
aurora
babel
babel7
Backend
BApp
bgp
big-data
ble
blind-recruitment
block
Block Chain
blockchain
bluetooth
brian
business
Cache
cahtbot
Caver
cd
ceph
certificate
certification
cgroup
ci
cite
client
clojure
close-wait
cloud
cloudera-manager
clustered-block
cmux
cnn
code-festival
code-review
codereview
coding
competition
component
conference
consul
container
contents
contest
core-js@3
couchbase
COVID-19
cpp
Data
data-engineering
DB
deep-learning
dependency-graph
dev
dev-session
dev-track
developer
developer relations
developers
devops
digitalization
digitaltransformation
dns
docker
dr
employeecard
eslint
Feature List
Featured
friendstime
front-end
frontend
functional-programming
funfunday
fzf
garbage-collection
gawibawibo
GC
github
globalpollution
go
graphdb
graphql
Ground X
growth
ha
hadoop
hbase
hbase-manager
hbase-region-inspector
hbase-snashot
hbase-table-stat
hbase-tools
hri
id
if kakao
ifkakao
infrastructure
innodb
internship
ios
item
Java
javascript
jsconf
jsconfkorea
json
k8s
kafka
kakao
kakao-commerce
kakao-games
kakaoarena
kakaocommerce
kakaocon
kakaoenterprise
kakaok
kakaokey
kakaokrew
kakaomap
kakaotalk
KAS
KCDC
khaiii
Klaytn
Klip
kubernetes
l3dsr
l4
links
load-balancing
machine-learning
marathon
meetup
melon
mesos
Messaging
microservice
mobil
monad
monorepo
mtre
mysql
mysql-realtime-traffic-emulator
nand-flash
network
new
new-krew
nfc
nomad
ocp
open
opensource
openstack
OpenWork
page
parallel
PBA
planning poker
Platform
polyfill
programming-contest
project-structure
pycon
python
quagga
react
reactive-programming
reactor
recap
recommendation
recruitment
redis
redis-keys
redis-scan
related-blind
rest
rubics
ruby
rxjs
s2graph
scala
scalaz
server
service
sharding
shopping
socket
spark
spark-streaming
SpringBoot
ssd
Statistics/Analysis
Stomp
storage
storm
style-guide
support
System
talk
talkchannel
tcp
tech
test
Thread-Debugging
time-wait
tmux
typescript
update
User Story
vim
vim-github-dashboard
vim-plugin
vue
vue.js
web-cache
webapp
WebSocket
weekly
work
workplatform

위로