DEVIEW는 미래를 향한 개발자들의 시선이 담긴 국내 최대 규모의 개발자 컨퍼런스입니다.
국내외 개발자들이 모여 최고의 기술과 경험, 노하우를 나누며 함께 성장을 이어갑니다.
DEVIEW 는 네이버에서 주최하는 개발자 컨퍼런스 행사로, 개발자들의 시선이라는 의미로 Developer's View 의 줄임말이라고 한다.
최근 코로나로 인해 DEVIEW 2020과 2021을 온라인으로 개최했는데, 이번 DEVIEW 2023는 오프라인 행사로 돌아왔다.
DEVIEW 2023 공식 홈페이지에서 2/7(DAY1), 2/8(DAY2) 각각 오후 3시에 예약이 진행되었다.
홈페이지에 가보면 DAY1과 DAY2에 따라 여러 분야의 많은 세션들을 미리 둘러볼 수 있고,
여러가지 토픽들을 주제로 세션을 필터링 할 수 있다.
프론트엔드 개발자를 준비하고 있는 나는 대부분의 Web 세션이 모여있는 DAY1에 꼭 가고싶었다. 특히 최근 토이 프로젝트로 에디터와 관련된 프로젝트를 진행중이였기에 DAY1의 NAVER ETECH
팀 발표를 꼭 듣고 싶었다.
하지만 간절했던 마음을 몰라주었는지 DAY1 예약을 실패했다..💦
대신 그 다음날에 진행된 DAY2 예약에 성공했다. 홈페이지 FAQ 에 참가 티켓의 무상 양도가 가능하다는 이야기를 찾았고, 이를 바탕으로 개발자 커뮤니티에서 DAY1 예약에 성공한 분과 교환에 성공했다!
올해 DEVIEW는 삼성동 코엑스에서 개최되었다. 코엑스는 처음 가봤는데 생각보다 엄청 커서 놀랐다. DEVIEW 전시회장 위치 반대쪽에서 내려서 한참을 걸었다. 👣
입장데스크에 도착해서 예약 정보를 확인하고, 이때 받은 팔찌로 각 세션 입장을 할 수 있다.
팔찌와 함께 DEVIEW
라는 로고가 레터링된 가방도 받았다. 가방에는 물이랑 초콜릿, 그리고 개발자틱한 키캡이 들어있었다. 가방이 꽤 넓어서 다음에 소개할 네트워킹 부스에서 받은 기념품들을 담기에 충분했다.
네이버 D2 NEWS 홈페이지에서 미리 공개했던 네트워킹 부스도 엄청 많았다. 당장 생각나는것만 네이버 eXpert, 웨일, CLOVA 부터 쿠팡 등 꽤나 많은 부스가 있었다.
서비스를 소개하는 것 부터, 채용 프로세스와 관련된 프로그램도 많았다. 세션 사이사이 쉬는시간에 프로그램에 참여하기 위해 네트워킹 부스 줄이 엄청 길게 생겼는데, 세션 입장줄과 겹쳐서 굉장히 북적북적한 분위기였다.
나도 부지런히 돌아다녀서 많이 참여하고 스티커도 많이 모았다! 😄
나는 키노트와 함께 관심있는 프론트엔드 기술과 관련된 5가지 세션에 참가했다.
키노트에서는 AI와 관련된 이야기를 해 주셨다. 특히 ChatGPT 열풍때문인지, 키노트에서도 HyperClovaX, SearchGPT 등 네이버가 그리고 있는 AI 비전을 옅볼 수 있었다.
느낀점에서도 다시 이야기하겠지만, 현업에서 ChatGPT가 엄청나게 영향을 끼쳤구나를 온몸으로 느낄 수 있었다. 키노트에서도, 그리도 내가 들은 세션에서도 가끔씩이지만 ChatGPT 이야기도 나왔고, 만들고 있는 서비스와 AI를 결합하는 비전도 많이 이야기했다.
아무튼 이렇게 키노트를 마치고, 트랙별로 발표장을 나눠서 세션을 들을 수 있었다.
참고로 발표 자료는 지금도 DEVIEW 2023 홈페이지에서 다운받을 수 있고, 조만간 발표 영상도 업로드 될 예정이라고 한다.
CFCs(Cross Framework Components), 여러 프레임워크에서 호환 가능한 컴포넌트 이야기 v2 - 최연규, NAVER Search
egjs
라는 자바스크립트 오픈소스 라이브러리를 개발하고 있는데, 이때 든 생각이 잘 만들어진 자바스크립트 컴포넌트를 여러 프레임워크에서 사용할 수 있을까?
라는 생각이라고 한다. - CFCs 등장 배경CFCs DOM
은 메소드, 이벤트, 그리고 UI 중심의 컴포넌트였다. CFCs DOM
의 주요 이슈는 바닐라 컴포넌트의 렌더링과 리액트 jsx와 같은 프레임워크의 렌더링을 동기화 하는 과정이였다고 한다.state - mounted - unmounted - result(state 반환)
플로우를 가진다는 공통점을 발견했다고 한다. (실제로 발표 자료나 영상을 보면, 각 프레임워크별 코드를 보여주면서 비교 설명해주신다.)CFCs Reactive
는 이런 함수 컴포넌트처럼 상태 기반, 이벤트 처리 등이 가능한 컴포넌트라고 한다. 위처럼 플로우가 비슷하기 때문에 egjs
로 작성한 자바스크립트 코드를 Compatible
이라고 하는 호환 가능한 코드로 작성하고, Compatible
를 각 프레임워크별로 제공하는 어댑터를 통해 프레임워크에서 작동 가능한 코드로 변환해준다고 한다.Compatible
로 변환해서 다른 프레임워크에서 쓸 수 있도록 CFCs Warp
이라는 개념을 고민하고 있다고 하셨다.CFCs Reactive
발표를 DEVIEW 2023의 첫번째 세션으로 들었는데, 처음부터 너무 흥미로운 주제였다. 지나가면서 생각으로만 했던 아이디어였는데, 실제로 구현되어 있고, 현업에서도 사용하고 있다는 점이 굉장히 신기했다. egjs
가 오픈소스로 공개되어 있기 때문에 관심이 있다면 한번 사용해봐도 좋겠다.
CLOVA Note 서비스를 개발하면서 어떻게 프론트엔드 개발자가 AI 서비스를 구성했는지에 대한 이야기 - 임대현/이은성, NAVER Cloud
next-pwa
라이브러리를 사용하셨다고 하고, PWA를 통해 오프라인 지원을 구성한 내용을 소개해주셨다.modernizr
라이브러리를 통해 사용자 디바이스를 판단하고 (터치인지? 마우스인지? 등) UI 뿐만 아니라 UX적으로도 반응형으로 구현하셨다고 한다.클로바노트를 줌에 연결하면 더 자연스러운 노트 기능을 제공할 수 있지 않을까?
라는 생각으로 줌 연동을 개발하셨다고 한다. 줌 API를 활용해서 처음에는 레코딩 완료된 영상을 변환해주는 방식으로 작동했다고 한다. 이후 목표를 중간중간 내용 요약이나 실시간 받아보기/번역 등으로 확장했고, 줌 API의 라이브스트림 기능을 활용해서 구현했다고 한다.원자(atom)
를 구현상 실제 최소 단위로 사용하기가 힘들어서 유기체(organism)
단위로 구현하는 경우가 많았다고 한다. 그래서 디자인 패턴을 약간 커스텀해서 material UI
와 같은 라이브러리에서 제공하는 수준을 원자(atom)
단위로 정의하고 사용하셨다고 한다.redux
의 모든 기능을 사용할 수 있다고 판단해서 적용하셨다고 한다. 그리고 사이드이펙트를 방지하기 위해 리코일을 훅을 통해서만 접근할 수 있게 제한했다고 한다.두번째 세션에서는 개발에 대한 시야를 넓힐 수 있었다고 생각한다. 큰 프로젝트에서 주요 이슈(PWA)를 해결한 이야기나 기술스택을 사용하는 이유가 이렇게 명확해야 하는구나를 느꼈다. (요약에는 쓰지 않았는데 fetch를 사용하는 이유, fetch가 있는데 axios만의 기능이 남아있어서 함께 사용하고 있는 이유 등도 소개해주셨다.) 그리고 디자인패턴의 경우에도 프로젝트마다 항상 어떻게 프로젝트를 구성해볼까 하는 고민이 있었는데, 적용해볼만한 좋은 예시를 공유해주셔서 너무 좋았다.
UI 빌더를 개발하기 위한 과정을 소개하는 이야기 - 김훈민, NAVER ETECH
HomeBuilder 2.0
에서 UI 파운데이션 기능을 추가했고, 디자이너가 없었기 때문에 차크라UI
라이브러리를 도입했다고 한다.이번 세션의 발표 흐름이 너무 좋아서 요약하는 것 보다 실제로 한번 보는것을 추천한다. 프로젝트를 어떻게 구성하고 있고, 거기서 문제점을 찾아내서 개선하는 과정을 옅볼 수 있어서 너무 좋았다. 나는 커스텀에 대한 부분이 굉장히 흥미로웠는데, 나도 개발하다보면 어떻게 더 확장할 수 있을까?
하면서 보이지 않는 확장에 개발시간을 소모했던 경험이 있다 보니 꽁짜 점심은 없다 라는 이야기에 굉장히 공감이 됐다.
네이버의 스마트에디터, 1세대부터 3세대까지의 개발 이야기 - 김성원/이진, NAVER ETECH
content-editable
을 사용했고, 문서 모델링을 통해 문서를 JSON 형태로 저장했다고 한다.content-editable
을 사용해서 입력, 커서, 글꼴 처리 등 브라우저에서 많은 부분을 도움받을 수 있었지만, 다른 영역(콘텐츠) 까지 드래그가 되지 않는 문제가 발생했다고 한다. 그리고 content-editable
또한 브라우저가 처리하다보니 내부 동작이 다른 문제가 있었다.가상커서
와 input buffer
를 적용했다고 한다.input buffer
를 통해 처리했다고 한다.Ctrl+V
와 같은 키보드 이벤트로 붙여넣기는 가능했지만, content-editable
이 아니기때문에 우클릭-붙여넣기
가 불가능했고, 다국어입력처리 등에서 문제가 발생했다.가상 커서
와 지금까지의 기능을 보존한 채 이런 문제점을 해결했다고 한다.content-editable
을 다시 사용하기로 했다고 한다. 하지만 사용하고 있던 리액트와 MobX와 충돌이 발생했다고 한다.content-editable
의 경우 DOM을 직접 조작하는 형태다보니 동기화 문제가 발생할 수 있다.snapshot
방식은 구현하기 쉽고 오류는 적지만 메모리 리소스 등 성능 이슈가 있고, event sourcing
방식은 비교적 성능은 좋지만, 연산에 대한 역연산을 모두 정의해야 하고 많은 연산을 다시 실행하면 마찬가지로 성능 이슈가 발생할 수 있다고 한다.부분 snapshot
방식을 개발해서 적용했다고 한다. (마찬가지로 특허로 등록했다고 한다.)수정
이라는 동작을 블록처럼 관리했다고 한다. 명령을 Action
이라는 단위로 정의하고, Action
의 input-output을 연결해서 복잡한 실행 과정을 순차적으로, 단순하게 실행할 수 있도록 코드로 구현했다고 한다. (마찬가지로 특허..)Dart Sass
를 적용해서 모듈화를 적용했다거나, 실제로 스타일시트 파일에 쓰이는 컨벤션도 소개해주셨다.부스트캠프를 하면서 한 마스터님께서 프론트엔드 끝판왕이 에디터다
라고 하셨는데, 왜 그런지 알게 된 세션이였다. 지금 진행중인 토이 프로젝트가 노션 에디터와 비슷한 블록 기반 에디터를 구현하려고 하고 있는데, 문서를 어떻게 데이터로 구조화 할 지, content-editable
를 사용해서 어떻게 표현 할 지 고민하고 있다. 아직 앞의 문제들을 처리하지 못한 상태인데, 세션을 듣고 드래그는 어떻게 처리하지?
, 복붙 안되면 어떡하지?
와 같은 문제가 벌써 머리에 들어와버렸다..
이와 별개로 발표가 너무 재밌었다. 가장 관심 있는 주제라 그런지 내용 하나하나 집중해서 들었고, 중간에 무뚝뚝하게 특허로 등록했습니다.
라는 부분에서 현장 분위기도 웃음이 나오는 분위기였다.
GraphQL을 운영하면서 겪은 문제를 해결하는 이야기 - 권기범/오제관, NAVER Glace
스키마
는 데이터를 다루는 클라이언트 입장에서의 데이터의 모양으로, 클라이언트는 GraphQL의 스키마만 보고 데이터를 사용할 수 있다고 한다.Field Argument
를 통해 데이터를 요청할 때 (이미지 크기와 같은)값을 쿼리에 포함할 수 있다고 한다. 이 때 입력값을 제한하기 위해 TypeScript의 Enum
을 사용해서 제한했다고 한다....on
에서 타입별로 우아하게 처리할 수 있다. 하지만 스펙이 추가된다거나 하는 확장에는 닫혀있기 때문에 interface
를 사용했다고 한다.Custom Scala
라는 단위로 단순 string
이 아닌 날짜(YYYY-MM 등), 전화번호, 이메일과 같은 스칼라를 등록할 수 있다고 한다.Field Resolver
기능을 사용하여 서버측으로 일부 위임할 수 있다고 한다. 이를 서버사이드 호이스팅이라고 표현하셨다.Apollo Client
를 이용해 클라이언트사이드에서 데이터를 정규화해서 해결하고, 데이터 의존성을 Relay
를 이용해 깔끔하게 처리하는 부분도 소개해주셨다.지금까지 GraphQL이라는 이름만 듣고 정확히 어떤 기술인지 알아보지 않았는데, 이번 세션을 통해 완전 영업 당해버렸다. 실제 예시 데이터와 함께 어떤 문제가 있었고, GraphQL을 통해 어떻게 해결했는지 들으면서 너무 좋은데?
라는 생각이 계속 들었다.(아마 다음 토이 프로젝트가 있다면 알아보고 사용하지 않을까?) 그리고 당장 GraphQL을 적용하지 않더라도, 일반적인 TypeScript를 사용할 때에도 어떻게 타입을 관리하면 좋을지도 약간 배운 것 같다.
이번 DEVIEW 2023이 내가 참석한 두번째 개발자 컨퍼런스다. 첫번째 컨퍼런스인 부스트컨퍼런스 2022에서 너무 좋은 경험을 얻어서 컨퍼런스가 좋아진 것 같다.
이번 DEVIEW 2023에서는 크게 두가지를 느꼈는데, 첫번째는 AI(특히 ChatGPT) 가 내 생각보다 훨씬 뜨거운 주제라는 점, 그리고 다시 열심히 해야겠다는 점을 느꼈다.
AI에 크게 관심을 가지지 않다보니, AI가 엄청 뜨겁다
, ChatGPT 엄청나다
이런식으로 조금은 멀리서만 알고 있었다. 하지만 이번 DEVIEW 2023 키노트에서부터 AI에 대한 이야기로 가득했고, 내가 참여한 프론트엔드 위주의 세션에서도 이런 서비스와 AI가 결합하면..
과 같은 미래를 그리고 있다고 많이 소개해주셨다. 그래서 AI가 이젠 정말 가까워졌다고 느꼈고, 실제로 현장에서 그 열기를 제대로 느꼈다.
그리고 두번째로 식상하지만 멘탈을 리프래시 할 수 있었다. 부스트캠프가 12월 말에 종료되고 1월, 그리고 2월까지 취업준비를 하면서 약간 기약없는 마라톤을 하는 것 처럼 열정이 식어가고 있었는데, 컨퍼런스 분위기에서 나도 다시 열심히 해야겠다 열정을 얻은 것 같았다.
눈으로 보며 듣는 음성 기록, 클로바노트 서비스의 웹 기술 톺아보기
를 발표하신 임대현 개발자님께서 DEVIEW 2011에 참석했고, 그때 본인도 거기서 발표를 해보고 싶다고 느꼈다고 한다. 이후에 정말로 DEVIEW 2015에서 발표를 하셨고, 이번 DEVIEW 2023에도 참석하셨다고 한다.
마찬가지로 나도 아직 갈 길이 멀지만 언젠간 나도 그 앞자리에서 도움되는 이야기를 해보고 싶다는 작은 목표가 생겼다.
안녕하세요. SmartStudio에서 여러 도구를 만들고 있는 우상훈이라고 합니다. 저희 센터에서 개발한 두 개의 제품 (SmartEditor, HomeBuilder)에 대해서 저 보다 더 상세히 리뷰를 적어 주셔서 고맙습니다 :-)
안녕하세요. 클로바노트 임대현 입니다.
리뷰를 상세히 잘 해주셨네요. 앞으로 김승현님의 성장 스토리를 기대하겠습니다.
목표를 세우고 목표를 향해 즐겁게 개발하시길 바랄게요.
궁금한 점이 있으시면 언제든지 DM주시고, 다음에 또 만나면 커피 한잔 해요^^
https://www.linkedin.com/in/iamdenny
조만간 DEVIEW에서 직접 발표하시는 날도 오겠는걸요