A
AB180
September 8, 20211회
Effective Jinja template 리팩토링과 테스트 - 1편 - AB180 엔지니어링 베이스 | 기술블로그

간단 소개
Jinja 템플릿 리팩토링을 통해 코드 응집성을 높이고 유지보수성을 개선하는 과정과 향후 테스트 자동화 계획을 설명합니다.
AI Summary
- Jinja 템플릿 리팩토링 배경
- Airbridge의 에어페이지는 Jinja 템플릿을 사용하여 다양한 요구사항을 처리하지만, 복잡도가 증가하면서 유지보수 어려움이 발생했습니다.
- 템플릿 내 변수 사용 파악의 어려움, 렌더링 데이터 누락 등의 문제가 있었습니다.
- 리팩토링 전략 및 구현
- Macro를 활용하여 템플릿을 기능별로 분리하고, 코드 응집도를 높였습니다.
- dataclass를 사용하여 템플릿에서 사용되는 변수들을 묶어 관리하고, 변수 사용의 명확성을 확보했습니다.
- Managed context와 Unmanaged context를 구분하여 점진적인 리팩토링을 진행했습니다.
- 리팩토링 효과 및 향후 과제
- 코드 가독성 및 유지보수성이 향상되었지만, 리팩토링 과정에서 변수 누락, Unmanaged context 사용 등의 문제가 발생할 수 있습니다.
- 다음 단계로 AST 분석을 활용한 테스트를 통해 이러한 문제점을 방지할 계획입니다.
Next Feeds

WireGuard로 멋진 VPN 서버 구축하기 - 2
WireGuard VPN 서버 구축 2부에서는 인증 강화, eBPF 기반 패킷 필터링, 사용자 편의 기능 구현을 다룬다.
WireGuardVPNeBPFKeycloak SSO패킷 필터링
2021. 9. 3.
데브시스터즈

WireGuard로 멋진 VPN 서버 구축하기 - 1
OpenVPN에서 WireGuard로 전환한 이유와 WireGuard VPN 서버 구축 과정, AWS 네트워킹 스택 활용 방법을 설명합니다.
WireGuardVPNAWS네트워킹Go
2021. 9. 3.
데브시스터즈

AWS Chatbot을 이용한 Slack alert, 근데 이제 PagerDuty와 Terraform을 곁들인 - AB180 엔지니어링 베이스 | 기술블로그
AWS Chatbot, PagerDuty, Terraform을 연동하여 Slack 알림을 개선하고 인프라를 자동화한 경험 공유.
AWS ChatbotPagerDutyTerraformSlackIaC
2021. 9. 1.
AB180

DevOps팀의 Terraform 모험
컬리 DevOps팀의 Terraform 도입 과정과 시행착오, 그리고 앞으로의 과제를 다룬 기술 블로그 글입니다.
TerraformIaCDevOpstfstateAWS
2021. 8. 25.
컬리

마이데이터 맵과 비즈니스 확장성
뱅크샐러드는 마이데이터 맵을 통해 개인 데이터 활용을 극대화하고, 확장 가능한 비즈니스 모델을 구축하고자 한다.
마이데이터뱅크샐러드데이터개인정보플랫폼
2021. 8. 24.
뱅크샐러드
프로젝트에 테스팅 도입하기 - 삽질의 기억
React 프로젝트에 react-testing-library를 도입하고, Side Effect 관리 및 Javascript의 동적 타입 문제를 보완하기 위한 테스팅 전략과 환경 설정 과정을 설명합니다.
테스팅Reactreact-testing-libraryJestMSW
2021. 8. 17.
카카오헤어샵