v1.12.0
오랫만에 식탁보의 새 버전을 출시합니다. 그간 많은 관심과 성원을 보내주신 덕분에 식탁보에 그 어느때보다도 많은 시간을 투자하여 한층 더 단단한 기반을 만들 수 있었습니다.
다시 한 번 감사드립니다! 🙇
주요 개선 사항
- 이번 버전에서는 새로운 기능 개발보다는 더 오랫동안 프로젝트가 유지 보수될 수 있도록 대대적인 코드 개선, 문제점 수정에 집중했습니다.
- 불필요한 중복 동작, 대기 시간 발생 요인을 최대한 제거하여 개별 동작의 실행 속도를 높였습니다. (#154)
- 오픈 소스 프로젝트이기 때문에 중요한 부분인 코드 유지 보수 편의성을 디자인 패턴 전면 개선을 통해 크게 개선했습니다.
- 또한 여러 사용자 인터페이스 개선 작업을 진행했습니다.
- 사용자 인터페이스 언어로 한국어 외에 영어를 추가했습니다. 시스템 기본 표시 언어 설정에 따라 영어로 사용자 인터페이스 언어가 나타납니다.
- 모던 UI (v2)의 검색 키워드 입력 창이 입력 내용을 곧바로 반영하여 검색될 수 있게 동작을 수정했습니다.
- 공동 인증서 검색 창에서 인증서의 상세 정보, 만료 여부 등을 알 수 있도록 기능을 개선했습니다.
- 각종 안내 문구를 보여주는 창에서 웹 페이지 주소 부분을 클릭하면 시스템의 기본 브라우저 창으로 열 수 있도록 기능을 개선했습니다.
- 잘못 기재된 문구나 일관성없게 기재된 문구들을 수정했습니다.
문제 수정 사항
- 많은 불편함이 있었던 AhnLab Safe Transaction 설정과 관련된 동작을 개선했습니다.
- Windows Sandbox 내에 AhnLab Safe Transaction 설치 여부를 확인하여, 설치되어 있을 경우 본 서비스에 접속하기 전 원격 접속 차단을 끌 수 있도록 설정 창을 띄우도록 기능을 추가했습니다.
- 설정 창에서 설정을 마친 후 확인 버튼을 눌러 계속 진행할 수 있도록 만들어 사용자 편의를 더 강화하였습니다.
- 애플리케이션 시작 시 '응답 없음' 상태로 전환되지 않도록, 초기 데이터 불러오기 작업 시 진행률 화면을 띄우도록 수정했습니다.
- 시스템의 비 유니코드 애플리케이션 언어 설정이 '한국어'가 아닌 경우 바로 가기 만들기가 실패하는 문제를 수정했습니다.
- 창을 띄울 때 메시지 박스가 바로 직전에 뜬 창과 연결되지 않아서 창이 반응하지 않는 것처럼 보이는 문제를 수정했습니다.
- 클래식 UI (v1)와 모던 UI (v2) 사이를 전환할 때, "이미 프로그램이 실행 중입니다" 라는 메시지가 나타나는 문제를 수정했습니다.
- 공지 창이 나타난 다음 설치가 자동으로 시작되지 않아 설치 버튼을 따로 눌러야 하던 동작을 수정했습니다.
- 애플리케이션 안정성과 성능을 더 강화할 수 있는 부분들을 찾아 보완을 진행했습니다.
주요 변경 사항
- Microsoft Store 버전으로 배포되는 식탁보와 GitHub에서 배포되는 식탁보의 업데이트 동작을 다르게 구현했습니다.
- 클래식 UI의 경우 여러 사이트를 동시에 선택해서 띄울 수 있는 기능을 제공하지만, 바로 가기에 지정할 수 있는 문자열의 최대 길이 지정이 260자로 제한되어있습니다. 이에 따라 바로 가기를 만들 때는 처음 선택한 사이트의 바로 가기만 만들어지도록 동작을 변경했습니다.
- 추후 이 부분은 Loom CLI가 본격적으로 개발이 완료되어 도입되면 해결될 수 있는 문제로 보고 있습니다.
- WSB 파일이 Windows 파일 형식으로 등록되지 않아서 열리지 않는 문제를 우회하기 위해, WindowsSandbox.exe를 이용하여 실행하도록 동작을 변경했습니다.
소스 컨트리뷰터 분들을 위한 변경 사항
- Microsoft Store (AppContainer) 환경을 위한 기능을 보강했습니다.
- AppContainer 모드에서 실행되는 경우와 그렇지 않은 경우를 식별할 수 있도록 구현했습니다.
- MSIX Bundle 패키지를 GitHub Action을 통해서 Nightly Build로 받아볼 수 있도록 CI/CD를 구성했습니다.
- 애플리케이션의 거의 모든 부분을 MVVM, DI/IoC로 전면 리팩토링했습니다.
- 클래식 UI (v1)와 모던 UI (v2)가 기능을 공유하도록 하여 기능 일관성을 대폭 개선했습니다.
- 대부분의 비즈니스 로직을 뷰 모델, 윈도우, 페이지와 분리하여 코드 유지 보수를 쉽게 할 수 있도록 만들었습니다.
- 단위 테스트 코드 작성이 용이하도록 Mocking을 지원하면서도 Service Building이 가능하도록 코드를 수정했습니다.
- 디버거를 사용하지 않더라도 프로그램을 진단할 수 있는 기능을 도입했습니다.
- 디버그 빌드의 경우, "디버그" 버튼을 통해 TableCloth와 Hostess 간에 주고 받은 매개 변수 내역을 살필 수 있게 했습니다.
- Hostess의 경우 Dry Run 모드 (
--dry-run
)와 실패 시뮬레이션 기능 (--simulate-failure
) 스위치를 추가하여 샌드박스 내부가 아닌 외부에서 Hostess 프로그램의 동작을 재연해볼 수 있도록 만들었습니다. - 프로그램을 직접 실행하지 않더라도 Visual Studio의 디자인 타임에서 화면에 데이터가 어떻게 그려질지 미리 볼 수 있도록 디자인 타임 코드를 추가했습니다.
현재 등록되어있는 이슈, 그리고 Sentry를 통하여 집계되는 다양한 오류 정보들을 계속해서 모니터링 중입니다. 빠른 속도를 보장하지는 못하지만, 하나씩 해결해 나아가며 더 많은 분들에게 식탁보 프로젝트의 가치를 전할 수 있도록 노력하겠습니다.
고맙습니다!