wpf 코드 작성법

안녕하세요 질문좀 드립니다
wpf에서 코드 작성 시 최대한 xaml과 백단 코드를 분리하는게 좋다고 알고 있는데 gpt가 알려준 코드 방식은 백단에서 ui를 조정하는데 이런 방식보다 xaml에서 직접 디자인을 하는게 원칙에 맞는 방법일까요?

3개의 좋아요

음 사실 원칙 같은 것은…없습니다. 그저 유저들이 이렇게 했더니 유지보수가 편하더라…라는 것은 있겠지만…

일단 실행시점이 좀 다른게, xaml에서하면 design time의 혜택을 볼 수 있는데 지금 코드 보여주신 것처럼하면 매번 실행하셔서 화면에 구성된 column을 보셔야할거라 불편하실 겁니다.

그러나 사실 모든걸 attachedproperty나 behavior로 하기엔 작업시간이 부족할 수 있기에 디테일한 view의 제어는 코드비하인드에서 하셔도 전혀 문제가 없고 오히려 그게 강력하고 편리합니다.

xaml 파트를 많이 사용하는 것은 리소스 로드 시점과 테스트를 편하기 위함이 큽니다. (적어도 제 경험에선)

그래서 편하신대로 하셔도 되긴하는데, xaml에서 하시는걸 추천드리긴 합니다.

xaml에서 정말 어지간한 복잡한 제어가 아니라면 거의 되거든요.

4개의 좋아요

XAML을 사용하는 가장 큰 이점은 UI 요소를 일일이 코드로 제어하지 않고, '데이터 바인딩’을 통해 모델 값이나 컬렉션의 변화가 자동으로 UI에 반영되도록 '선언적’으로 구현할 수 있다는 점에 있습니다.

따라서 @Vincent 님께서 말씀하신 것처럼 XAML의 이러한 이점을 최대한 활용하는 것이 WPF의 설계 의도에 가장 부합합니다.

물론, 모든 상황에 정답은 없으며 팀의 개발 문화나 목적에 따라 백단(Code-behind)에서 UI를 제어하는 변형도 가능합니다. 하지만 XAML 기반의 워크로드가 유지보수와 생산성 측면에서 검증된 표준(Standard)이기 때문에, 특별한 이유가 없다면 이를 따르는 것이 가장 권장됩니다.

4개의 좋아요

WPF에서는 화면 요소 XAML에서 정의하고, 동작과 상태는 코드 뒷단(ViewModel 등)에서 처리하는 방식이 기본 원칙이 맞습니다. 그래서 화면의 구조나 스타일 같은 부분은 가능하면 XAML에서 작성하는 것이 자연스럽고 유지보수에도 유리합니다.

제게 WPF와 XAML로 개발하는 이유를 하나만 고르라면, Visual Studio가 제공하는 XAML Hot Reload 기반의 라이브 코딩 환경이라고 생각합니다.

UI를 수정할 때마다 빌드하고 실행하고 특정 화면까지 다시 진입하는 과정 자체가 거의 사라지기 때문에 작은 수정 하나에도 전체 과정을 반복해야 했던 옛날의 개발 방식에 비해 생산성이 크게 향상됩니다.

저 같은 경우에는 어느 정도 개발 틀이 잡히고 난 후에는 이러한 라이브 코딩 방식을 더욱 적극적으로 사용합니다. 새로운 View를 위한 XAML 파일을 추가하는 상황이 아니라면, 디버거를 최대한 유지한 상태에서 XAML Hot Reload로 UI를 바로 수정하고 확인하는 방식으로 대부분의 작업을 처리하고, 로직 변경도 .NET Hot Reload를 함께 활용해 대부분 실행 중에 반영합니다.

런타임 상태와 흐름을 그대로 유지한 채 UI와 기능을 동시에 수정할 수 있어 개발 리듬이 끊기지 않는다는 점이 특히 큰 장점입니다.

아래 데모를 참고해 주세요.

6개의 좋아요

답변 감사합니다.

2개의 좋아요