컨트랙트 작업이 제공해야 하는 것
빠른 테스트: 각 컨트랙트 함수를 개발자가 아닌 사람도 이해할 수 있는 한 문장으로 설명해보세요. 설명할 수 없다면 규칙이 아직 명확하지 않은 것입니다.
스마트 컨트랙트 개발은 제품의 합의된 규칙을 선택한 블록체인에서 테스트 및 출시 준비가 가능한 코드로 변환합니다. 유용한 결과물은 단순한 코드가 아니라, 예상 동작, 경계 및 인계가 제품 팀에 명확하게 전달되는 구현체입니다.
이 서비스는 토큰 관련 컨트랙트, 베스팅 일정, 스테이킹 플로우 또는 dApp이 호출할 컨트랙트 함수와 같은 맞춤형 온체인 로직이 필요할 때 적합합니다. 컨트랙트가 더 큰 제품의 일부라면 Web3 개발 및 dApp 개발과 계획을 조정하여 인터페이스와 컨트랙트가 입력, 권한 및 사용자 작업에 대해 일치하도록 할 수 있습니다.
구현 전에 다음을 준비하세요:
- 각 사용자 작업과 예상 결과에 대한 일반 언어 설명.
- 사용하려는 블록체인 및 기존 컨트랙트 또는 제품 의존성.
- 접근, 타이밍, 변경 및 예외 사례에 대한 규칙.
- 미해결 제품 질문을 해결할 수 있는 지명된 의사 결정자.
규칙을 아직 명시할 수 없다면 암묵적인 엔지니어링 선택으로 남기지 말고 미결정으로 표시하세요. 미해결 질문을 검토 목록으로 전환한 후 개발을 시작하기 전에 컨트랙트 계획을 확인합니다.
요구사항이 어떻게 테스트된 동작이 되나요?
각 요구사항을 관찰 가능한 컨트랙트 동작 및 테스트에 매핑한 후에야 출시 준비가 된 것으로 간주합니다. 이를 통해 프로젝트 팀은 '스테이킹 지원'과 같은 광범위한 설명에 의존하지 않고 구현이 의도된 규칙과 일치하는지 실질적으로 확인할 수 있습니다.
작업 순서는 간단합니다: 사용자 역할과 허용된 작업을 명확히 하고, 예상 상태 변경을 정의하며, 유효하지 않거나 불완전한 입력을 식별한 후 합의된 사례를 구현하고 테스트합니다. 각 함수에 대해 승인 기준은 유효한 호출이 무엇을 하는지, 누가 호출할 수 있는지, 조건이 충족되지 않을 때 어떤 일이 발생해야 하는지를 답해야 합니다. 이러한 기준을 제품 소유자와 검토하여 개발의 기초가 되도록 합니다.
유용한 계획 구분은 컨트랙트 동작과 제품 경험 사이입니다. 컨트랙트는 할당된 규칙을 처리하고, 연결된 앱은 상태를 설명하거나, 데이터를 표시하거나, 사용자를 트랜잭션으로 안내해야 할 수 있습니다. 둘 다 계획에 포함된 경우 dApp 개발과 해당 경계를 조정합니다. 토큰 생성 및 배포와 맞춤형 로직이 모두 필요한 토큰의 경우 토큰 생성 및 배포와 컨트랙트 요구사항을 조정하세요.
합의된 동작과 해당 테스트의 검토 가능한 기록을 제공받습니다. 이를 통해 나중에 제품 변경을 더 쉽게 평가할 수 있습니다: 팀은 업데이트를 승인하기 전에 영향을 받는 기존 규칙을 식별할 수 있습니다.
컨트랙트 명세 7단계 체크리스트
코드를 작성하기 전에 다음 7가지 항목을 적어두세요. 이 항목들은 모든 테스트가 확인되는 승인 기준이 됩니다. 완료된 목록을 기록으로 보관하세요. 나중에 합의된 내용을 설명하는 가장 빠른 방법입니다.
- 각 컨트랙트와 그 하나의 역할을 나열하세요.
- 각 함수를 호출할 수 있는 사람을 작성하세요.
- 베스팅 및 스테이킹 일정을 정확한 숫자로 정의하세요.
- 컨트랙트를 업그레이드할 수 있는지, 누가 할 수 있는지 결정하세요.
- 실패 사례와 각각에 대한 예상 결과를 나열하세요.
- 체인과 토큰 표준을 선택하세요.
- 출시 전에 독립적인 검토를 계획하세요.
한 줄 용어 설명
베스팅: 고정된 일정에 따라 점진적으로 토큰을 보유자에게 해제하는 것.
업그레이드 가능한 컨트랙트 (일반 용어: 배포 후 로직을 교체할 수 있는 컨트랙트).
베스팅 및 스테이킹 규칙 명시
베스팅 및 스테이킹 컨트랙트는 자격, 타이밍, 사용자 작업 및 제품이 표시하는 결과에 대한 명시적인 규칙이 필요합니다. 기능 이름을 지정하는 것만으로는 충분하지 않습니다. 컨트랙트 계획은 구현이 지원해야 하는 사례와 거부해야 하는 사례를 설명해야 합니다.
베스팅의 경우, 누가 할당을 받는지, 어떤 이벤트가 일정을 시작하는지, 해제가 어떻게 계산되는지, 일정이 설정된 후 변경이 허용되는지 결정하세요. 사용자가 할당을 확인하거나 사용 가능한 해제를 요청할 때 제품이 어떻게 처리해야 하는지 확인하세요. 스테이킹의 경우, 참가자가 취할 수 있는 작업, 진입 및 종료에 적용되는 조건, 컨트랙트가 관련 잔액 또는 상태를 어떻게 나타내는지 정의하세요. 이는 팀과 확인해야 할 요구사항이며, 우리가 자동으로 선택하는 기본 설정이 아닙니다.
다음 준비 체크리스트를 사용하세요:
- 각 컨트랙트 함수를 생성, 관리 또는 사용할 수 있는 역할을 식별하세요.
- 타이밍 규칙과 유효한 작업으로 간주되는 것을 작성하세요.
- 예외 사례를 어떻게 처리하고 전달할지 결정하세요.
- 확인된 제품 규칙과 아직 검토 중인 정책 또는 토큰 결정을 분리하세요.
토큰 공급 또는 배포가 동일한 릴리스의 일부인 경우 토큰 생성 및 배포와 계획을 조정하세요. 사용자가 전용 지갑 경험을 통해 상호작용하는 경우 암호화폐 지갑 개발과의 연결을 조기에 논의하여 컨트랙트 및 인터페이스 요구사항을 함께 검토하세요.
작업에 포함되는 내용
경험 법칙: 테스트는 당신이 생각한 것을 보여줍니다. 독립적인 검토는 당신이 생각하지 못한 것을 보여줍니다.
작업에는 합의된 컨트랙트 계획과 팀이 해당 작업을 검토, 테스트 및 출시 준비하는 데 필요한 자료가 포함됩니다. 착수 시점에 제공받을 내용을 확인하여 완료에 대한 공동 정의를 갖추며, 팀 또는 외부 감사자에 의존하는 작업도 포함합니다.
승인된 계획에 따라 제공받을 수 있는 내용은 다음과 같습니다:
- 컨트랙트 요구사항 및 승인 기준에 대한 서면 요약.
- 선택한 블록체인 및 합의된 기능에 대한 맞춤형 컨트랙트 구현.
- 계획 중 정의된 동작 및 경계 사례를 다루는 테스트.
- 검토 준비가 된 내용과 미해결 사항을 설명하는 빌드 및 릴리스 노트.
- 독립적인 감사 조정: 합의된 자료 준비 및 피드백을 코드 변경으로 구성.
감사 조정은 팀이 명확한 검토 인계를 준비하고 피드백을 코드 변경으로 추적하도록 돕는 것입니다. 이는 감사가 수행되었거나 감사자가 코드를 승인했음을 나타내는 것과는 다릅니다. 제품에 컨트랙트 동작을 설명하는 웹사이트나 랜딩 페이지가 필요한 경우 Web3 웹사이트 및 랜딩 개발과 기술 계획을 조정할 수 있습니다.
강력한 인계를 통해 내부 팀이 무엇이 구축되었는지, 무엇이 테스트되었는지, 어떤 결정이 팀에 남아 있는지 이해할 수 있습니다. 제공받은 내용을 프로젝트 소유자와 검토하고, 승인된 변경 사항을 기록하며, 작업이 완료된 것으로 간주되기 전에 릴리스 상태를 명확히 합니다.
프로젝트는 어떻게 계획되고 검토되나요?
프로젝트는 요구사항에서 구현으로 명명된 검토 지점을 통해 진행되며, 일정은 확인된 계획에 따라 설정됩니다. 작고 잘 정의된 컨트랙트와 여러 기능을 가진 시스템은 동일한 계획이 필요하지 않으므로, 먼저 무엇을 구축할지와 누가 결정을 내릴지를 확립합니다.
착수 시점에 선택한 블록체인, 컨트랙트 의존성, 제품 규칙, 기존 코드 및 승인 책임자를 확인합니다. 개발 중에는 합의된 요구사항에 대한 진행 상황을 공유하고, 동작을 변경할 수 있는 질문을 막판 surprises가 되기 전에 제기합니다. 팀은 승인 기준에 따라 구현을 검토하고, 요청된 변경 사항을 확인을 위한 특정 항목으로 캡처합니다.
일정은 요청된 경우 외부 검토도 고려합니다. 자료가 준비되면 조정하고, 감사자 피드백을 관련 요구사항에 연결하며, 어떤 변경 사항이 합의된 계획에 포함되는지 확인합니다. 팀은 제품 및 접근 관련 질문에 신속한 답변을 제공할 계획을 세워야 합니다. 미해결 결정은 구현 또는 출시 준비를 지연시킬 수 있습니다.
작업을 쉽게 평가할 수 있도록 완료된 항목, 미결정 사항, 테스트 상태 및 다음 조치를 구분한 진행 업데이트를 요청하세요. MarketingExtra는 엔지니어가 클라이언트와 직접 승인 기준 및 테스트 범위를 검토하여 제품 동작을 승인하는 사람이 각 테스트가 무엇을 확립하려는지 볼 수 있도록 합니다. 결과적인 납품 계획은 빌드 진행 전에 확인됩니다.
코드를 출시하기 전에 알아야 할 사항
신중한 개발 과정은 검토 가능성을 향상시키지만, 테스트와 감사 조정이 모든 출시 위험을 제거하지는 않습니다. 테스트는 다루는 사례만 확인할 수 있으며, 독립적인 감사자는 문재를 식별하거나 변경을 요청할 수 있습니다. 배포는 팀이 정확한 출시 및 대상 네트워크를 승인할 때까지 기다려야 합니다.
책임 있는 인계를 위해 배포된 버전이 팀이 검토한 버전과 일치하는지, 출시 권한이 이해되었는지, 출시 후 질문에 대한 담당자가 있는지 확인하세요. 승인된 요구사항, 테스트 결과, 해당되는 경우 감사자 피드백 및 최종 출시 결정의 기록을 보관하세요. 이러한 자료는 팀이 검증된 작업과 개발 계획 외부에 남아 있는 결정 또는 운영 책임을 구분하는 데 도움이 됩니다.
컨트랙트 개발이 더 큰 빌드의 일부인 경우, 컨트랙트를 별도의 완료선으로 취급하지 말고 더 넓은 Web3 개발 계획과 출시 계획을 조정하세요. 대상 블록체인, 컨트랙트의 목적에 대한 간략한 설명 및 기존 명세 또는 코드를 MarketingExtra와 공유하세요. 우리는 자료를 검토하고, 답답되지 않은 제품 결정을 식별하며, 작업에 대한 서면 계획을 반환합니다.
3가지를 보내주세요: 제품 규칙, 대상 체인 및 검토 일정.
이용 방법
- 제품 규칙 공유의도된 컨트랙트 동작, 대상 블록체인, 기존 코드 또는 명세, 알려진 의존성을 보내주세요. 미해결 결정을 명확히 표시하세요.
- 계획 및 승인 기준 확인역할, 작업, 예외 사례 및 제공받을 내용을 의사 결정자와 검토합니다. 합의된 기준은 개발 및 테스트가 다룰 내용을 확립합니다.
- 합의된 동작 구축 및 테스트엔지니어가 계획된 컨트랙트를 구현하고 승인된 테스트 사례에 대해 확인합니다. 동작에 영향을 미치는 질문은 결정을 위해 다시 제기됩니다.
- 독립적인 검토 조정감사 조정이 포함된 경우, 합의된 자료를 준비하고 피드백을 구성하며 요청된 변경 사항을 팀과 추적합니다.
- 출시 인계 검토최종 제공받을 내용, 테스트 기록 및 미해결 항목을 검토한 후 선택한 네트워크에 대한 출시 계획을 승인합니다.
자주 묻는 질문
시작하려면 어떤 세부 사항이 필요한가요?
컨트랙트의 목적, 대상 블록체인, 사용자 역할 및 각 예상 작업에 대한 설명으로 시작하세요. 기존 명세, 코드 또는 제품 의존성이 있다면 포함하세요. 함께 누락된 결정을 식별하고 구현 전에 승인 기준을 확인합니다.
맞춤형 베스팅 또는 스테이킹 컨트랙트를 작성할 수 있나요?
네. 제품 규칙에 맞게 맞춤형 베스팅 또는 스테이킹 동작을 계획할 수 있으며, 역할, 타이밍, 허용된 작업 및 예외 사례를 포함합니다. 팀은 해당 규칙이 구현되기 전에 확인해야 합니다. 우리는 프로젝트에 대한 기본 조건을 가정하지 않습니다.
감사가 서비스에 포함되나요?
서비스에는 독립적인 감사자와의 조정이 포함될 수 있습니다. 예를 들어 합의된 검토 자료를 준비하고 피드백을 코데 변경으로 구성하는 것입니다. 감사 조정은 독립적인 감사를 수행하거나 감사자의 승인을 발행하는 것과는 다릅니다. 작업 시작 전에 정확한 검토 계획을 명확히 합니다.
컨트랙트 작업은 몇 주가 소요되나요?
일정은 대상 블록체인, 컨트랙트 동작, 의존성 및 요청된 감사 조정을 검토한 후 확정됩니다. 계획은 팀이 제품 질문을 해결하고 제공받을 내용을 검토하는 속도도 반영합니다. 이러한 입력이 명확해진 후 계획된 일정을 제공합니다.
출시 후 컨트랙트를 변경할 수 있나요?
변경 사항은 합의된 요구사항 및 출시 계획에 대 해 평할 수 있습니다. 먼저 어떤 동작이 변경되어야 하는지, 왜 변경되는지, 요청된 작업이 연결된 제품 구성 요소에 영향을 미치는지 식별하세요. 영향을 검토하고 진행 전에 추가 계획을 확인합니다.
테스트 통과가 컨트랙트에 위험이 없음을 의미하나요?
아니요. 테스트는 다루는 사례에 대한 구현 동작을 보여줄 뿐, 모든 가능한 문제가 배제되었음을 의미하지는 않습니다. 독립적인 감사자는 여전히 문제를 식별하거나 변경을 요청할 수 있으므로, 팀은 최종 코드를 검토하고 선택한 네트워크에 대한 출시 결정을 승인해야 합니다.
프로젝트를 알려주세요
네 가지 질문에 답하면 담당자가 1시간 내로 계획, 일정, 가격대를 보내드립니다. 모든 정보는 비밀로 유지됩니다.
양식 로딩 중…