소개
SKYDIV 데스크탑 클라이언트의 초기 버전은 많은 사람들에 의해 개발되었습니다 참여 멤버는 베테랑부터 초보자까지 다양했으며, 개발 테마 중 하나는 균일한 품질과 가독성을 보장하는 것이었습니다
- 누가 작성하든 상관없이 구현을 동일하게 만드세요
- 누가 작성하든 상관없이 구현을 안전하게 만드세요
애플리케이션(UI) 개발을 위해 우리는 프레임워크를 준비하고 팀원들에게 구현 규칙과 제약 사항을 주입했습니다 우리는 이러한 아이디어와 계획 중 일부를 소개하고 싶습니다
이니셔티브 세부정보
Step1 토토 사이트 순위자 작업(토토 사이트 순위자 인터페이스)과 데이터 작업(비즈니스 로직)의 완전한 분리
토토 사이트 순위자 경험을 방해하지 않기 위해 메인 스레드는 토토 사이트 순위자 작업과 화면 업데이트에만 토토 사이트 순위되며 모든 데이터 작업(검색, 업데이트 등)은 작업자 스레드에서 수행됩니다 우리는 소위 MVC 모델이라는 개념을 기반으로 한 프레임워크를 토토 사이트 순위했습니다
그때까지 애플리케이션 개발과 관련된 문제 중 하나는 메인 스레드에서 시간이 많이 걸리는 처리로 인해 화면이 정지되는 것이었습니다 베테랑 개발자라면 작업자 스레드를 토토 사이트 순위하여 시간이 많이 걸리는 프로세스를 실행하는 것이 당연하지만, 초보자가 결정을 내리지 못하는 경우도 있습니다 시간이 많이 걸리는 조건 등 상황에 따라 달라지는 조건을 생략하고, 처리 내용에 따라 프로세스를 구분하는 규칙을 만들었습니다

Step2 파일 수준에서 분리
우리는 토토 사이트 순위자 작업 레이어와 데이터 작업 레이어의 코드 파일을 완전히 분리하는 것을 목표로 했습니다 프로세스를 보고 토토 사이트 순위자 작업인지 데이터 작업인지 구분할 수 있지만 프로세스가 어떤 스레드에서 실행되고 있는지 즉시 확인하지 못할 수도 있습니다 파일을 분리하면 구현이 어떤 스레드에서 실행되는지 한눈에 알 수 있습니다

Step3 프레임워크 지원
정책을 결정한 후 토토 사이트 순위자 작업 계층을 위한 기본 클래스와 데이터 작업 계층을 위한 기본 클래스를 준비하고 각각에서 파생된 클래스 세트를 생성했습니다 SampleView 및 SampleModel과 같은 파일 이름(클래스 이름)을 통해 프로세스가 어떤 스레드에서 실행되는지 명확하게 알 수 있습니다 또한 작업자 스레드의 처리 단위인 작업의 기본 클래스와 작업 관리 클래스에 대한 프레임워크를 제공합니다
데이터 조작 레이어에서 함수를 호출하면 작업이 생성되고 작업 관리 클래스에 작업을 등록하면 작업자 스레드에서 프로세스가 실행됩니다 처리 결과가 토토 사이트 순위자 작업 계층에 통보되면 수신 부분이 메인 스레드에서 호출됩니다

이런 방식으로 각 구현자는 스레드 전환을 구현하지 않고도 (태스크 등록 부분은 회원이 작성해야 했지만) 적절한 스레드에서 작업이 자동으로 실행되는 시스템을 만들 수 있었습니다
Step4 세부 아이디어
작업자 스레드 수는 기본적으로 1개입니다 어플리케이션에 따라 다르다고 생각합니다만, 이번에 개발한 것에서는 멀티스레드 처리가 필요한 장면이 거의 없었기 때문에 하나의 워커 스레드를 토토 사이트 순위하기로 했습니다 멀티스레딩의 이점을 살펴보기보다는 멀티스레딩으로 인해 발생하는 예상치 못한 문제를 제거하고 싶었습니다*일부 프로세스는 다중 스레드를 토토 사이트 순위합니다
작업자 스레드에서 실행되는 작업의 알림에 관찰자 패턴을 토토 사이트 순위했지만 약한 참조를 토토 사이트 순위하여 알림 대상 객체(토토 사이트 순위자 작업 레이어 클래스)를 등록했습니다 약한 참조로 만듦으로써 생활주기가 독립화되고 고립도가 향상된다
Step5 구성원의 계몽
물론 정책이나 틀을 준비하더라도 회원들을 교육하지 않으면 회원들이 의도한 대로 토토 사이트 순위하지 않을 수도 있습니다 개발 초기에는 샘플로 토토 사이트 순위할 코드가 거의 없었기 때문에 시퀀스 다이어그램을 활용해 설명을 하고, 주요 메소드 토토 사이트 순위법에 대한 교육 활동을 적극적으로 진행했습니다
요약
SKYDIV 데스크톱 클라이언트 개발에서 구현한 대규모 개발의 품질과 가독성을 보장하기 위한 노력을 소개했습니다
위의 노력으로 우리는 초기 목표를 달성할 수 있었습니다 요즘은 샘플 구현이 많아져서 기능을 추가할 때 효율적인 구현이 가능해지고, 기능 확장이나 버그 수정을 위해 모르는 코드를 읽어도 구현이 동일하기 때문에 흐름을 빠르게 이해할 수 있습니다
이러한 노력을 통해 우리는 SKYDIV 데스크톱 클라이언트 개발을 효율적으로 진행할 수 있었고 품질 개선에도 도움이 되었다고 믿습니다
우리는 품질과 효율성을 더욱 향상시키는 것을 목표로 앞으로도 이러한 노력을 계속할 것입니다

