# AI 페어 프로그래밍, 로우코드, 그리고 | 커리어리

# AI 페어 프로그래밍, 로우코드, 그리고 노코드 ⌨️ 지난 주 개발 업계에 신선한 충격을 준 서비스는 Github Copilot입니다. Copilot은 가장 대표적인 git 솔루션이자 회사인 깃헙에서 발표한 페어프로그래밍 도우미입니다. Visual Studio 환경이나 깃헙 코드스페이스에서 사용할 수 있으며, 프리뷰 버전의 Python, JS, TS, Ruby, Go언어를 포함하여 대부분의 언어를 지원한다고 합니다. 페어프로그래밍은 애자일 개발 방법론 중의 하나로, 한 작업을 두명의 개발자가 함께 프로그래밍합니다. 가장 대표적인 방법은 한명이 'Driver'가 되어 코드를 작성하면, 다른 한명은 'Navigator/Observer'가 되어 작성되는 코드를 바로 리뷰해 주는 방식입니다. 그리고 역할을 자주 바꿉니다. 여기서 핵심은 Driver는 코드의 기술적인 완성도에 집중하고, Navigator는 전체적인 구조와 작업의 방향을 설정하는데 집중하는 것입니다. Copilot의 주요 기능은 주석을 코드로 자동으로 바꾸어 주거나, 테스트를 자동으로 만들어 주거나, 작성된 코드의 대체 솔루선을 추천해주는 것입니다. 현재의 모습은 페어프로그래밍의 Driver 역할을 어느정도 해내는 것 같습니다. Copilot이 조금 더 고도화되고 보편적으로 쓰인다면, 개발자는 주로 Navigator 역할을 맡게 될 것 같습니다. 그러나 페어 프로그래밍 프로그램 이전에 로우코드와 노코드 프로그램에 대한 관심과 성장이 계속 있어 왔습니다. 로우코드와 노코드 프로그램은 코딩을 도와주는 수준을 넘어, 간단한 프로덕트까지 만들어줍니다. No-Code는 코드를 모르는 사람들이 무언가를 쉽게 만들 수 있게 해주는 도구이고, Low-Code는 약간의 지식을 가진 프로덕트 제작자들의 제작 생산성을 높여주는 도구입니다. 최근 한국에서는 서비스 디스콰이엇이 노코드로 아이디어 검증한 사례를 공유해 주기도 했습니다. 페어 프로그래밍부터 노코드까지, 개발 업계에 코딩을 위한 프로그램들이 점점 개선되고 있는데요. 이는 무엇을 의미할까요? 미래의 개발자는 어떤 일을 하게 될까요? 소프트웨어 컴퍼니를 운영하는 Chetan Dube의 칼럼을 소개합니다. • 최근 영국에서 비기술직의 절반 이상이 기술직으로의 이직을 고려하고 있다고 밝혔다. 노코드와 로우코드는 기술 분야에서 코딩 기술을 처음부터 배울 필요 없이 바로 시작할 기회를 가질 수 있다는 것을 의미한다. • 노코드와 로우코드는 개발자에 의존하는 비율, 도입과 관련된 기술적 장벽을 크게 낮춰 애플리케이션 사용을 민주화할 것이다. 로우코드 플랫폼은 금융, 의료, 법률 등의 고객 기반 산업에 혁신적인 영향을 미칠 수 있다. • 그러나 노코드·로우코드 플랫폼은 코딩 기술을 쓸모없게 만든다기보다는, 오히려 반대로 코드를 작성하고 이해할 수 있는 것이 여전히 중요하다는 점을 보여준다. 애플리케이션이 구축되면 효율성을 높이거나 결과를 개선해야 하는 더욱더 복잡한 정제 작업에 직면하게 될 수 있어서다. ⟪참고⟫ - GitHub Int, https://copilot.github.com - 김기훈, "페어 프로그래밍이란 무엇일까?", 2018.1.1. https://kihoonkim.github.io/2018/01/01/Agile/pair-programming/ - Pietro Invernizzi, "Decoding the no-code / low-code startup universe and its players", 2021.3.12. https://pinver.medium.com/decoding-the-no-code-low-code-startup-universe-and-its-players-4b5e0221d58b - Disquiet, "노코드로 2주만에 DISQUIET* 아이디어 검증하기", 2020.10.26. https://www.disquiet.tech/post/validation-in-two-weeks

사용자가 공유한 콘텐츠

-

2021년 7월 4일 오후 3:40

댓글 0

함께 보면 더 좋은

# 카카오페이지 사례로 알아보는 Backend For Frontend(BFF) 📑 테오님이 잘 정리해주신 것처럼, 프론트엔드의 업무는 크게 ⑴데이터 보여주기, ⑵데이터(화면) 조작하기, ⑶서버로 데이터 보내기, ⑷서버에서 받은 데이터를 다루기로 나눌 수 있습니다. '⑷서버에서 받은 데이터를 다루기'를 잘하기 위해서, 데이터를 보내주는 서버팀과 지속적인 협업이 필요합니다. 이 협업과 업무를 더 잘하기 위한 방법으로 Backend For Frontend(BFF)가 있습니다. 개념적으로만 들었던 BFF를 멋진 동료인 카카오페이지 FE팀에서 사례를 다루어주어 공유합니다. <Backend For Frontend> • 규모가 큰 앱은 여러 마이크로서비스와 여러 플랫폼이 있을 수 있습니다. 여러 플랫폼이 여러 마이크로서비스의 데이터를 사용하게 되면, 프론트엔드는 여러 데이터를 're-format' 해야 합니다. 다른 의미로 데이터를 필터링하고 포맷팅하는 데 추가적인 자원을 쓴다는 것입니다. • BFF는 프론트엔드의 이런 데이터 처리를 대신 해주는 중간 레이어 입니다. 프론트엔드는 API를 직접 호출하지 않고 BFF에게 데이터를 요청합니다. BFF는 응답에 필요한 여러 데이터를 마이크로서비스에게 대신 요청하여 받아옵니다. 그리고 적절한 포맷을 바꾸어 프론트엔드에게 다시 알려줍니다. 결과적으로 프론트엔드는 데이터 요청 로직이 간단해지고, 인터페이스에 더욱 집중할 수 있습니다. • 단일 플랫폼에 하나의 서비스만 제공하는 애플리케이션이라면 BFF는 불필요 합니다. 그러나 여러 서비스를 제공하고, 여러 프론트엔드를 지원한다면 BFF는 적절한 선택입니다. BFF는 브라우저, 모바일 앱, 서드 파티 서비스 등 플랫폼의 종류 별로 두게 됩니다. 각 BFF는 각 플랫폼에 필요한 포맷과 데이터를 제공하는 역할을 합니다. <카카오페이지의 BFF> • 카카오페이지는 여러 플랫폼(Web, Android, iOS)을 지원하고, 여러 서비스의 데이터를 사용하고 있습니다. 그런데 BFF 없이 모든 플랫폼이 API에 다이렉트로 접근하면, API 엔드포인트가 분리되거나 스팩을 맞춰야 할때 큰 비용이 듭니다. 웹 프론트엔드는 생산성을 더욱 높이기 위해 BFF를 적용하였습니다. • Web BFF는 브라우저의 CORS 처리, 인증 처리, 데이터 호출을 담당하여, 프론트엔드 개발자는 화면에 집중할 수 있습니다 . Web BFF는 프론트엔드 플랫폼에 최적화되며 프론트엔드의 요구사항을 충족하기 때문에, 서버가 아니라 프론트엔드 개발자에게 구현과 안정성의 책임이 있습니다. • 여러 API를 호출하는 경우, 일반적으로 응답 값을 받아 상태관리에 저장하게 됩니다. 이 때 프론트엔드에서 필요하지 않은 값들이 올 수도 있고, 필요할 때마다 상태관리에서 연산을 하게 됩니다. GraphQL로 BFF를 적용한 후, API를 POST로 요청하고 브라우저의 캐시 대신 라이브러리의 캐시에 저장하게 되었습니다. 그리고 불필요한 값은 제거하여 프론트엔드에게 전달합니다. <GraphQL에 Redux로 보완> • 그런데 Apollo GraphQL의 Client 캐시는 카카오페이지 웹 적용에 이슈가 있었습니다. Apollo Client는 정규화 캐싱 정책을 따르는데, 쿼리도 기본적으로 CACHE ID를 사용해 모든 데이터를 store에 저장합니다. 따라서 레이아웃만 같고 데이터가 다른 여러 뷰가 동시에 그려진다면, 쿼리 호출 순서에 의해 의도와 다른 저장값이 나오는 이슈가 있었습니다 . • 카카오페이지 프론트엔드는 id 방식으로 캐싱하는 Apollo Client 대신 document 방식으로 캐싱하는 URQL을 사용하게 되었습니다. 또한 redux도 추가하게 되었습니다. GraphQL과 URQL만으로는 사용자의 클릭 이벤트가 발생하거나 스크롤로 데이터가 추가되는 등 비동기 상황의 복잡성까지 줄이지 못했기 때문입니다. URQL은 데이터를 fetch하고, 화면에 사용되는 데이터 저장은 redux에 하게 되었습니다. • 결과적으로 Web BFF를 통해, 비즈니스 로직과 데이터 처리 부분을 분리하여 복잡도를 낮출 수 있었습니다. ⟪참고⟫ - 테오의 프론트엔드. "시니어 개발자가 말하는, 프론트엔드 업무와 잘하는 프론트엔드 개발자란", 2022.1.24, https://yozm.wishket.com/magazine/detail/1294/ - Viduni Wickramarachchi, "The BFF Pattern (Backend for Frontend): An Introduction", 2021.2.24, https://blog.bitsrc.io/bff-pattern-backend-for-frontend-an-introduction-e4fa965128bf

카카오페이지는 BFF(Backend For Frontend)를 어떻게 적용했을까?

Kakaoent

추천 프로필

현직자에게 업계 주요 소식을 받아보세요.

현직자들의 '진짜 인사이트'가 담긴 업계 주요 소식을 받아보세요.

커리어리 | 일잘러들의 커리어 SNS