-
Kakao Tech meet 24.12.18일상/Everything 2024. 12. 18. 23:18SMALL
카테밋 카카오 테크밋에서 AI 와 Front-end 를 주제로 세미나를 열었기에 다녀왔습니다.
제가 관심있었던 분야는 AI 가 아닌 프론트엔드관련 주제였고, 특히 '디자인과 API 없이도 개발을 시작하는 방법' 이라는 주제는 모바일 개발자 (프론트엔드) 로서 자주 마주치고 고민했던 문제였기 때문에 관심이 많이 갔습니다. 하지만 다른 AI 주제들도 발표를 들으면서 카카오에서 굉장히 다양한 시도와 성능 개선을 위한 노력들을 하고있다는 것을 알게되었고 AI 관련 업무에서의 관심사가 어떤것인지도 대략적으로나마 알 수 있는 계기가 되었던 것 같습니다.먼저 첫 발표인 'AI Agent 기반 스마트 AI 마이 노트' 는 사내에서 업무평가를 조금더 자동화하고 잘 정리할 수 있을까의 문제를 해결하기위한 업무평가 도구였습니다. 보통 회사에서 업무평가를 위한 기록을 작성할때, 업무 티켓, 여러곳에 분산되어 작성했었던 관련 기록들 등을 참고하여 작성을 하게 될 것 같습니다. 그러다 보니 작성하는 사람 입장에서도 분산되어있던 자료들을 모으느라 시간도 오래걸리고 그 와중에 빠뜨리는것이 있을수도 있고, 잘못 작성하게 되는 경우도 있을 것 같습니다.
카카오에서는 이를 좀더 편하게 작성할 수 있도록 도와주고 평가에 반영할 수 있도록 AI 마이 노트 라는 서비스를 회사 내부에서 사용하고 있다고 하는데요, 이 서비스를 개발하면서 여러 포멧으로 분산되어있는 자료들을 정리하기 위한 노력들, AI 의 추론능력을 향상시키기 위한 노력 등 여러 방면의 도전과 문제 해결 과정에 대해 들을 수 있었습니다.
두번째 발표인 'TDD로 앖거다는 프론트엔드: 디자인, API 없이도 개발을 시작하는 방법' 은 제가 가장 기대했었던 발표 주제였었는데요, 발표의 핵심내용은
- 행위에 대한 테스트를 미리작성하고 또 구현하고, 이 행위들을 필요한 컴포넌트들에 잘 이식한다.(?! 정도로이해)
- 프론트에서 UI를 위해 사용되는 데이터와 DTO 를 구분하여, 외부에서 오는 데이터가 변경되더라도 내부 변경사항을 최소화 시킨다.
였던 것 같습니다. 제가 이해하기로는요.
첫번째 내용인 행위에 대한 테스트를 작성한다. 라는 이야기는 처음에는 조금 생소했었는데 발표를 듣다보니 조금이나마 이해가 되기 시작했습니다. 보통 프론트엔드에서 테스트라고 하면 UI 테스트와 유닛테스트. 크게 두가지로 나눌 수 있을 것 같습니다. 여기서 UI 테스트보다는 유닛테스트에 초점을 맞추어 작성을 하되, 각 단위인 행동들이 어떤 키를 가진 UI 컴포넌트에서 실행되어야 하는지 정의를 한 뒤, 추후에 디자인이 되어 UI 컴포넌트를 작성할때 컴포넌트별로 취해야 할 행동들에 맞추어 미리 정의된 키를 넣어줌으로써, 미리 작성했던 테스트가 깨지는것을 최소화하고 변경을 작게할 수 있다 라는 것으로 이해했습니다.
두번째 내용의 경우에는 뷰에서 사용되는 데이터와 외부에서 들어오는 데이터를 분리하고, 이 데이터들 간에 맵핑을 잘 해서 외부데이터가 변경되더라고 맵핑을 통해서 뷰에서 사용되는 데이터의 변경을 최소화 하자는 의미 입니다.
예를들면
// DTO @Serializable data class SomeDto( val id: String, val currency: String, val country: String, val city: String, val population: Int, val president: Int, ) // Mapper class IAmMapper<T, S> { fun doMapping(){ ..// } } // ViewModel data class SomeViewModel( val id: String, val country: String, val city: String, )
SomeViewModel 의 경우 프론트에서 필요한 데이터를 임의로 정의를 한 것이고, SomeDto 의 경우 외부에서 제공되는 데이터 형식 인터페이스입니다.
디자인과 API 없이 기획을 바탕으로 UI 에서 사용될 데이터를 미리 정의를 한 뒤 API 의 인터페이스가 나왔을때 보통은 프론트엔드에서 정의했던 데이터와 네이밍과 데이터의 타입, 필요한 데이터의 갯수 등이 다를 가능성이 높습니다. 이럴때 해당 데이터의 변경사항이 뷰쪽에 변경을 미치는것을 최소화하기 위해 ViewModel 과 Dto 사이의 변환을 제공하는 Mapper 을 따로 두어 뷰쪽 데이터의 변경을 최소화할 수 있다는 내용이었습니다.세번째 발표인 '업무 효울화를 위한 카카오 사내봇 개발기' 의 경우 AI 를 활용한 업무 Agent 도구 발표였습니다. 이 또한 굉장히 놀라운 발표였는데요, 카카오 사내에서 다양한 서비스들이 있고 필요한 데이터들이 여러 서비스에 분산되어 있다면 개발자가 필요한 데이터를 바로바로 찾기가 굉장히 어렵습니다. 이를 해결하기 위해 사내봇이 모든 데이터에 대한 접근을 관장하고 AI 기술을 이용하여 필요한 데이터에대한 질문을 바탕으로 적절한 서비스로부터 데이터를 다시 전달해주거나 접근할 수 있는 방법을 알려주는 내부 서비스 였습니다.
이러한 도구를 직접 개발한다는것에 굉장히 놀라웠습니다. 역시 IT 대기업은 달랐습니다.
아쉽게도 AI에 대한 전반적인 지식이 없어서 세부적인 내용은 이해를 잘 하진 못하였지만 AI 를 개발할때 어떤것들을 고려하는지는 알게되었습니다.
예를들면 질문에 대한 추론 스코어점수를 올리기 위한 노력, 메모리 최적화, 성능 최적화 등 다양한방면으로 고려를 많이 했습니다.
간만에 판교에 가봐서 새로웠고 카카오 아지트도 정말 깔끔하고 좋았습니다. 또한 내용들도 굉장히 알차서 시간가는줄 모르고 고개 끄덕이면서 들었던 것 같습니다.
금주 토요일에는 Android 와 Flutter 등 모바일 세션 위주의 GDG Incheon 에 가 볼 생각인데요 제가 더 많이 관심을 가지는 주제이니만큼 좋은 경험 할 수 있다면 좋을것같습니다.
ps. 참여 선물로 스티커를 받았는데 이쁘네요 ㅋㅋ
LIST'일상 > Everything' 카테고리의 다른 글
Clean architecture is not Data - Domain - Presentation (0) 2025.02.25 DevFest Jeju 참여 후기 25.1.5 (0) 2025.01.07