저번에 이어서 솔리디티에서 사용되는 데이터 타입에 대해 알아보겠습니다.
1. string 변수
- string은 문자열을 저장하는 자료형.
- private 접근제한 → 외부에서 직접 접근 불가 (getter 필요)
- 상태 변수는 기본적으로 블록체인에 영구 저장됨.
2. 솔리디티 배열
- uint256 []: 부호 없는 정수 배열
- string []: 문자열 배열
| 기능 | 설명 |
| push | 배열 끝에 요소 추가 |
| pop | 배열 끝 요소 삭제 |
| 인덱스 접근 | 배열[index]로 접근 |
| length | 배열 길이 조회 |
| delete 배열[index] | 특정 인덱스 값 삭제 (자리 유지, 값 초기화) |
3. struct & mapping
- struct: 구조체 (사용자 정의 타입)
- mapping: 키-값 저장소, 주로 주소와 연결
| 기능 | 설명 | 가능여부 |
| 개별 값 저장 | users[주소] = User | 가능 |
| 개별 값 조회 | users[주소] 조회 | 가능 |
| CRUD | users[주소].name = "New" | 가능 |
| 반복 | 키 목록 없음 → 불가 | 불가능 |
| push/pop | mapping에 불가능 | 불가능 |
| length | 없음 | 불가능 |
4. 매핑과 배열의 장단점
(1) 장점
매핑: 빠은 검색
배열: 순서 보장, 전체 데이터 접근 쉬움
(2) 단점
매핑 : 순회 불가, 저장 키 추적 불가
배열 : 검색 느림 , 가스 비용 많음
5. 마무리
배열과 매핑은 많은 데이터를 다루는 데에 쓰이는 필수 기능입니다. 다만, 둘의 장단점이 확연하기에 어떤 걸 선택해야 하는지 고민이 많이 되실 겁니다.
하지만, 배열과 매핑을 같이 쓰면 서로의 단점을 보완하여 사용 할 수 있게 됩니다.

이런 식으로 하나의 자료를 두 개의 자료구조로 만들어두면, 각각의 구조가 가진 장점만 필요할 때 사용할 수 있게 됩니다.
'공부 내용 정리' 카테고리의 다른 글
| Soliduty 문법 4 - Vault와 Bank 개발하기 (0) | 2025.06.30 |
|---|---|
| Solidity 에 대해 알아보자 3 (0) | 2025.06.27 |
| Solidity DataType 에 대해 알아보자 (0) | 2025.06.26 |
| 솔리디티 문법에 대해 배워보자! (0) | 2025.06.20 |
| React + Web3로 만든 나만의 블록체인 지갑 만들기 (2) | 2025.06.11 |