read: fail

생성된 HTML의 동작 테스트하기

이 기사는 서버 측에서 렌더링된 HTML의 부상과 이를 테스트하는 방법에 대해 설명합니다. HTML 구조와 동작을 테스트하기 위한 다양한 단계를 소개하며, Playwright와 같은 헤드리스 브라우저의 사용을 포함합니다. 또한, 사용자 상호작용을 테스트하기 위한 고유 식별자 추가의 중요성을 강조합니다.

HTML 템플릿 테스트의 파라미터화

HTML 템플릿을 테스트하는 방법에 대해 알아보세요. 잘 구성된 HTML 확인부터 파라미터화된 테스트 접근법까지, 템플릿의 HTML 출력을 철저히 테스트하는 것의 중요성과 테스트 인프라에 투자하여 테스트 코드를 명확하고 표현력 있게 유지하는 방법을 배울 수 있습니다.

싱글 페이지 애플리케이션에서의 프리페칭

이 기사는 React를 예로 들며 프론트엔드 애플리케이션에서 데이터를 가져오는 공통 문제와 패턴을 다룹니다. 주요 내용으로는 비동기 상태 핸들러, 폴백 마크업, 병렬 데이터 패칭, 코드 분할, 그리고 프리페칭이 있습니다. 이러한 패턴들은 React뿐만 아니라 다양한 프론트엔드 프레임워크에 적용 가능합니다.

싱글 페이지 애플리케이션에서의 코드 분할

이 글에서는 비동기 상태 처리, 병렬 데이터 패칭, 폴백 마크업, 그리고 코드 분할을 통해 애플리케이션의 성능을 개선하는 방법을 소개합니다. 특히, 대규모 애플리케이션의 초기 로드 시간과 성능 향상에 초점을 맞추며, 사용자 경험을 고려하는 것의 중요성을 강조합니다.

발자국 사용법에 대한 짧은 노트

발자국을 사용하는 것을 꺼려했던 저자는 오바마의 2008년 캠페인 기술 작업에 대한 기사를 작성하면서 발자국을 사용하면 본문을 더 일관성 있게 만들 수 있다는 것을 발견했습니다. 이제 저자는 기사의 끝으로 스크롤할 필요 없이 해당 단락 아래에 발자국 텍스트를 유지하는 새로운 방식을 선호합니다.

HTML 템플릿 테스트 방법

HTML 템플릿을 테스트하는 것은 UI 로직의 정확성을 보장하는 효과적인 방법입니다. 이를 위해 HTML 파서를 사용하여 잘 구성된 HTML을 생성하는지 확인하고, CSS 선택자를 사용하여 HTML 구조를 테스트합니다. Go와 Java 예제를 통해 구체적인 테스트 방법을 설명합니다.

프론트엔드 애플리케이션에서 효과적인 데이터 가져오기 패턴

이 기사에서는 비동기 상태 핸들러, 병렬 데이터 가져오기, 폴백 마크업, 그리고 코드 분할 및 프리페칭과 같은 데이터 가져오기 전략을 소개합니다. 이러한 패턴들은 UI와 데이터 페칭을 분리하여 애플리케이션의 구조를 간소화하고, 사용자 경험을 향상시키는 데 도움을 줍니다.

HTML 템플릿 테스트 주행

HTML 템플릿을 테스트하는 것은 수동 테스트만으로는 발견하기 어려운 문제들을 잡아내는 데 중요합니다. 이 글에서는 Go와 Java에서 생성된 HTML이 문법적으로 유효한지 확인하는 방법을 소개하며, 테스트를 보다 읽기 쉽고 유지보수하기 쉽게 만드는 방법도 다룹니다.

병렬 데이터 패칭

비동기 상태 핸들러병렬 데이터 패칭은 성능과 유지보수를 향상시키기 위해 사용됩니다. 비동기 쿼리를 메타 쿼리로 감싸 UI 렌더링과 데이터 패칭을 분리하고, Promise.all을 사용하여 독립적인 요청을 동시에 실행합니다. 이 기법들은 애플리케이션의 규모가 커질 때 특히 유용합니다.

싱글 페이지 애플리케이션에서의 데이터 가져오기 패턴

현대 웹 애플리케이션은 성능사용자 경험을 개선하기 위해 수많은 요청을 보냅니다. 이 글에서는 React를 예로 들어 비동기 데이터 가져오기의 도전과 이를 효율적으로 처리하는 패턴을 설명합니다. 커스텀 훅을 사용한 비동기 상태 관리와 향후 다룰 주제들도 소개합니다. 구독하고 소셜 미디어를 통해 다음 글을 놓치지 마세요!

레거시 시스템 교체를 위한 데이터 복제 활용

클라우드로의 점진적 이전을 선택한 한 기업은 데이터 복제전환 아키텍처를 활용하여 레거시 메인프레임과 새로운 클라우드 제품 간의 원활한 연동을 달성했습니다. 이 방법은 비즈니스 요구에 빠르게 대응하면서도 기존 시스템의 운영을 유지할 수 있게 해주는 중요한 전략입니다.

메인프레임 외부 인터페이스의 틈새 발견

40년 된 복잡한 메인프레임 시스템을 현대화하는 여정에서, 점진적 유산 대체 방식을 통해 클라우드로 기능을 이전하는 과정을 다룹니다. 외부 인터페이스내부 인터페이스에서 식별된 '틈새'를 통해 최소한의 변경으로 새로운 동작을 삽입하는 방법에 초점을 맞춥니다. 이는 흥미로운 접근 방식으로, 메인프레임의 현대화 과정에 대한 깊은 통찰을 제공합니다.

트위터에서 링크드인으로 전환: 전문적인 업데이트를 위한 새로운 플랫폼

트위터의 변화로 인해, 많은 사람들이 전문적인 콘텐츠를 위해 링크드인을 사용하는 추세입니다. 마틴 파울러도 최근 이 플랫폼에 계정을 만들어 업데이트를 공유하기 시작했습니다. 특히, 링크드인의 '크리에이터 모드' 덕분에 더 개방적으로 사용하게 되었다고 합니다. 파울러는 트위터 대신 링크드인으로 전문적인 업데이트를 공유하는 데 초점을 맞추고 있습니다.

존 코디백과의 작별

존 코디백은 64세에 세상을 떠난 소중한 동료이자 친구였습니다. 그는 레거시 메인프레임 시스템에 애자일 기법을 적용하는 데 능숙한 경험 많은 소프트웨어 개발자였죠. 존은 그의 친절함, 유머, 그리고 사람들의 최고를 이끌어내는 능력으로 알려져 있었습니다. 그는 기술적 실천뿐만 아니라 인간 협력에 대해서도 애자일을 이해했으며, 동료들에게 긍정적인 영향을 끼쳤습니다. 그의 기술 전문성을 넘어서, 존은 공감, 취약성, 그리고 개인적 수준에서 사람들과의 연결 능력으로 기억됩니다.

메인프레임 외부 인터페이스의 틈새 발견

40년 된 복잡한 메인프레임 시스템을 클라우드 기반 애플리케이션으로 교체하는 과정에서, 팀은 점진적 유산 대체 방식을 채택하여 메인프레임의 기능을 단계적으로 클라우드로 이전했습니다. 이 과정에서 외부 및 내부 '틈새'를 찾아 최소한의 변경으로 새로운 동작을 삽입하는 전략을 사용했습니다. 이야기는 계속될 예정이니 업데이트를 기대해주세요!

메인프레임의 접합부를 파헤쳐 점진적 현대화를 이루다

40년 동안 구축된 복잡한 메인프레임 시스템을 클라우드 기반 애플리케이션으로 교체하려는 고객의 여정에서, 점진적 유산 대체 접근 방식을 채택하여 리스크를 줄이고, 초기 가치를 제공하며, 점진적으로 마이그레이션을 가능하게 하는 '접합부'를 식별하는 것이 핵심이었습니다.

메인프레임의 접합부를 파헤쳐 점진적 현대화를 이루다

40년 동안 구축된 복잡한 메인프레임 시스템에서 점진적 유산 대체 방식을 통해 클라우드로의 기능 이전을 단계적으로 진행한 사례입니다. 이 접근법은 초기 위험 감소, 조기 가치 제공, 그리고 기존 시스템과의 결과 동등성 유지를 중요 원칙으로 삼았습니다. 흥미로운 점은, '이중 실행' 접근법을 사용하여 새로운 클라우드 기반 시스템을 메인프레임과 병행하여 실행하며 동작을 검증했다는 것입니다.

질적 지표 측정 방법

이 기사는 개발자 생산성을 측정할 때 양적 지표만 사용하는 것의 한계를 지적하고, 개발자로부터 직접 통찰력을 얻는 '질적 측정' 접근법을 주장합니다. 질적 지표는 인간 데이터에서 파생된 측정치로, 태도 지표(주관적 감정/의견)행동 지표(객관적 사실/사건)의 두 가지 주요 유형을 정의합니다. 이러한 지표는 개발자 경험의 무형적 측면을 측정하고, 팀 및 시스템 전반에 걸쳐 가시성을 제공하며, 양적 데이터에 중요한 맥락을 추가하는 데 도움이 됩니다.

리팩토링 첫 장을 위한 코드 샘플

사람들이 종종 리팩토링의 첫 장에서 사용된 코드를 요청합니다. Emily Bache가 Theatrical Players Refactoring Kata라는 깃허브 저장소를 만들어, C, Java, Rust, Python 등 다양한 언어로 된 샘플 코드와 리팩토링을 위한 충분한 테스트를 제공했습니다. 그녀의 YouTube 채널에는 좋은 코드 기술에 대한 많은 비디오가 있으며, Patreon을 통해 지원받고 있습니다.

개발자 생산성 측정: 인간 중심 접근법

기술 회사들은 종종 개발자의 생산성을 측정하기 위해 리드 타임, 배포 빈도, 풀 리퀘스트 수와 같은 지표를 사용합니다. 하지만 이러한 접근법은 종종 의문과 논란을 낳습니다. 대신, 개발자들로부터 직접 얻은 질적 측정에 초점을 맞춘 인간 중심의 접근법이 더 나은 이해와 개선을 가져올 수 있습니다. 이는 개발자 경험과 생산성을 극대화하는 데 중요한 역할을 합니다.