자동화 프로그램의 모든 매개변수를 첫 화면에 보여 주면 고객은 프로그램 내부 구조부터 이해해야 한다. 북극성의 간단 실행은 이번에 바뀌는 콘텐츠와 시각을 먼저 두고 반복되는 대상 설정과 고급 기능을 다른 깊이로 나눴다. 이번 글은 입력을 줄이는 방법보다 입력의 순서를 정한 이유에 가깝다.
기본값과 이번 자료는 수명이 다르다
콘텐츠 예약 화면은 프로젝트 기본값을 details에 두고 설정이 없으면 먼저 펼친다. 작성 탭·계정·카테고리를 저장한 뒤에는 요약으로 읽을 수 있다. 제목·본문·첨부 위치·날짜는 이번 작업의 입력으로 남는다. 모든 값을 하나의 거대한 설정 화면에 넣지 않는다.
이 기본값은 이전 원고를 이번 원고로 자동 재전송하는 장치가 아니다. 대상 설정과 현재 콘텐츠가 다른 수명이라는 것을 화면으로 드러낸 것이다. 처음 쓰는 사람은 설정부터 하고 반복 사용자에게는 이번 자료가 먼저 보인다. 간단하다는 인상을 위해 실행 대상을 숨기는 대신 필요한 때 펼쳐 확인할 수 있게 남겼다. 같은 폼을 쓰더라도 첫 사용과 재사용의 읽는 순서는 달라질 수 있다.
동작에 필요 없는 칸을 같은 비중으로 놓지 않는다
고급 실행도 모든 필드를 무조건 나열하지 않는다. 현재 페이지와 operation에 따라 초안에는 예약 시각을 숨기고 조회에는 조회에 필요한 입력만 남기는 분기가 있다. socialFields와hiddenParameters 같은 메타데이터도 표시할 필드를 고르는 데 사용한다.
필드가 안 보인다는 사실이 그 권한이나 서버 조건을 없앤다는 뜻은 아니다. 실행 경계의 계약은 별도로 유효한 입력을 검사해야 한다. 화면의 조건부 노출은 사용자가 지금 고를 수 있는 결정을 좁혀 주는 역할이다. 반대로 중요한 선택을 숨긴 채 임의 기본값으로 전송하면 간단함이 오작동의 원인이 된다. 어떤 값이 유지되고 어떤 값이 이번에 바뀌는지 읽을 수 있어야 했다.
버튼은 구현 언어보다 업무 결과를 앞세운다
간단 화면의 주 버튼은 예약 실행처럼 사용자가 하려는 일을 말한다. 노트북으로 실행은 같은 업무를 더 자세히 읽을 대안으로 옆에 둔다. 내부 프로그램 ID나 JSON을 사용자가 먼저 입력하도록 만들지 않는다. 고급 실행과 사용법은 details 안에 계속 남는다.
이 배치는 Python과Jupyter의 차이가 중요하지 않다는 뜻은 아니다. 동작을 살펴보고 수정할 때는 실행 방식과 작업 순서를 읽어야 한다. 처음에는 업무 입력, 필요하면 실행 구조로 내려가는 흐름을 만든 것이다. 모든 고객을 초보자로 가정해 기능을 막거나 모든 고객을 개발자로 가정해 내부 계약을 첫 화면에 내미는 두 방식 사이에서 역할을 나눴다.
시작 중 상태도 입력 경험의 일부다
현재 폼은 starting과노트북·작업·프로그램의busy를 보고 실행 버튼과 일부 입력을 잠근다. 고급 start도 이미starting이면 반환한다. 실행 응답이 돌아오기 전 다시 눌러 같은 입력을 중복 시작하는 틈을 줄이는 화면 쪽 조건이다.
이것을 서버의 멱등 처리나 모든 재전달 방지 보장으로 설명하지 않는다. 다른 클라이언트와 연결 단절은 실행기와 요청 영수증의 경계에서 다시 다뤄야 한다. 폼의 비활성화는 현재 화면이 보여 줄 수 있는 상태를 명료하게 하는 일부다. 오류 때starting을 정리하는finally도 결과를 성공으로 바꾸지 않는다. 다시 누를 수 있다는 사실과 다시 보내도 되는지는 다른 판단이다.
간단함은 설명을 없애는 것이 아니라 층을 주는 일이다
현재 프로젝트·로그인 프로필과 기능 설명, 사용법·작업 순서를 같은 폼에서 찾을 수 있다. 고급 항목을 접어도 이 문맥은 사라지지 않는다. 작은 화면의 기본 입력과 상세 읽기를 연결해야 다른 사람이나 다른 대화에서도 같은 프로그램을 사용할 수 있다.
이번에는 폼과 표시 조건을 읽었고 실제 게시나 새 예약을 만들지 않았다. 공유 상태 문구 모듈은 실행 준비와 결과 확인을 구분하는 독립 예제다. 내가 남기려는 설계는 필요한 입력을 앞에 놓고 이유와 더 깊은 조절을 뒤에서 찾을 수 있게 하는 것이다. 기능의 양보다 지금 무엇을 결정해야 하는지가 첫 화면에서 명확해야 했다.