실습: 후보자 등록 기능 구현
설계를 마쳤으니 코드로 옮길 차례입니다. 전체 투표 시스템을 한 번에 만들면 어디서 틀렸는지 찾기 어려우므로 가장 기초가 되는 기능부터 하나씩 쌓아 올립니다. 그 첫 번째가 후보자 등록 입니다. 후보자가 있어야 투표할 대상이 생기고 득표 수를 셀 자리도 마련됩니다.
앞 강의에서 설계한 Candidate 구조체와 candidates 배열을 실제로 선언하고, 거기에 새 후보자를
추가하는 함수를 작성합니다. 새 후보자는 등록 시점에 아직 표가 없으므로 득표 수를 0 으로 시작합니다.
함수 매개변수의 string 은 참조 타입이라 데이터 위치를 명시해야 하므로 string memory name 으로 받습니다.
배열에 구조체 추가하기
동적 배열의 끝에 새 요소를 붙일 때는 .push() 를 씁니다. 구조체 인스턴스는 필드 순서대로 값을 넘겨
Candidate(name, 0) 처럼 만들 수 있습니다. 이렇게 하면 name 은 입력받은 이름, voteCount 는
0 인 후보자 하나가 배열 끝에 추가됩니다. 넘기는 값의 순서는 구조체에 선언한 순서(name →
voteCount)와 같아야 합니다.
candidates.push(Candidate(name, 0));해야 할 일:
Voting컨트랙트 안에Candidate구조체를 선언하세요. 필드는string name과uint256 voteCount입니다.Candidate[] public candidates동적 배열을 선언하세요.addCandidate(string memory name)함수를 만들어, 득표 수0인 새 후보자를candidates에 추가하세요.
지금은 누구나 후보자를 등록할 수 있습니다. "소유자만 등록 가능" 같은 접근 제어는 뒤쪽 리팩터링 강의에서 추가합니다.
완성 후 Run 을 눌러 모든 조건을 통과하는지 확인하세요.