프론트엔드 아키텍쳐에 대한 생각
2024. 2. 20.
AWS LLRT 런타임 출시
심윤섭: AWS Lambda가 많은 곳에서 인기를 끌고 있지만 속도와 cold start는 항상 단점으로 따라옵니다(Cloudflare Workers는 V8을 기반으로 한 자체 엔진을 구성함) 이를 위해서 Lambda도 새로운 런타임을 출시하였습니다. 이제 serverless 플랫폼에서 AWS Lambda쪽에 장점이 하나 추가될 수도 있겠다라는 생각이 드네요.
리액트에서 아키텍쳐
심윤섭: 리액트 어플리케이션에서 실제 요구사항을 기반으로 데이터를 어떻게 받아오는 코드, 조건부 렌더링 코드를 효과적으로 보여주는 방식을 자신의 논리를 바탕으로 구현하는 글입니다. 이 글에서도, 다른 글에서도 말하지만 수많은 아키텍쳐 이론이 있지만 프론트엔드에 걸맞고 자신의 상황에 걸맞는 구조를 만들어야 합니다. 글에서는 React-Query로 데이터 Fetching을 구사하지만 다른 Hook을 가진 라이브러리나 Relay(GraphQL 구현체)를 사용할 수 있고 에러 핸들링이나 조건부 렌더링 또한 사용하는 것이 모두 다르기 때문에 자신의 프로젝트에 맞는 구조를 선택해야 합니다. 개인적으로 기능 분할 설계(한국어 번역)도 코드를 폴더로 분할할 때 일정한 규칙이 없는 상황에서 일부 수용할 수도 있으니 이 글도 참고했으면 좋겠습니다!
김대관: 프로덕트를 개발할 때 가장 많이 하는 고민이 코드를 어떤 기준으로 분할하는가?를 많이 고민합니다. 글에서 말하는 내용 중 백엔드(서버)에서 내려주는 데이터를 통해 보여주는 화면에서 에러핸들링과 조건부 렌더링을 처리하는 것에 따라서 구조를 커스텀하는게 중요하다는 내용에 많은 공감이 됩니다.
Protobuf로 개발 공수 줄이기
심윤섭: API 문서를 관리하기 보다는 인터페이스 타입(여기서는 Protobuf)을 설계한 이후 이 타입을 프론트엔드와 백엔드에 적용해 type-safety와 문서화를 동시에 챙기는 이점을 소개한 글입니다. 문서화 유지와 프론트엔드-백엔드 동시 개발의 어려움을 해결하는 문제 중 하나로 알고 계시면 좋겠습니다! 이외에도 MSW로 모킹을 하는 방법(블로그), 같은 언어를 사용하는 방법(trpc, PHP, …)도 있으니 여러 방법 중 적합한 하나를 찾는 것이 중요하겠네요.
Git 명령어 팁
GitBulter 팀의 여러가지 알면 좋을만한 명령어와 기능을 알려줍니다. 물론 Git GUI Client들이 훌륭한 역할을 해주지만 이런 기능도 있다를 알아두시면 좋습니다.
Express팀 일한다.
https://github.com/expressjs/discussions/issues/160
5.0 계획을 2020년도에 냈는데 진행이 안 되고 있었는데 다시 시작한다는 이슈가 생성되었습니다. 아직 갈 길은 멀어보이네요.