| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
Tags
- CDN
- Matrix
- PROPS
- toggle
- localStorage
- go
- graceful shutdown
- map
- todo-list
- golang
- URL
- TODO
- Vue
- 행렬
- goroutines
- websocket
- container
- cli
- Server
- Dictionary
- channel
- component
- Refactoring
- method
- reactivity
- App.vue
- goroutine
- Vue.js
- emit
- SFC
Archives
- Today
- Total
ksundev 님의 블로그
[예제] Bank Project - 1 본문
# 계좌 예제
type Account struct {
// private members
owner string
balance int
}
계좌의 구성요소가 <소유주>, <잔액> 로 이루어져 있고 이를 private 하게 관리하고 싶다고 하자.
이제 이것을 간접적으로 접근할 수 있게 하는 이른바 getter/setter를 만들어보자.
# NewAccount()
func NewAccount(owner string) *Account {
return &Account{
owner: owner,
balance: 0,
}
}
여기서 보이는 *과 &은 이전에 다뤘던 pointer의 개념이다. 조금 헷갈릴 수도 있는데 차근차근 살펴보자.
- Account{...}는 새로운 Account 구조체를 메모리에 생성한다.
- 예를 들어 0x1040a123 에 구조체가 만들어진다.
- &Account에서 &가 그 구조체의 메모리 주소를 가져온다.
- *Account라는 return type을 명시해주는 부분은 포인터 타입임을 의미한다.
- 왜 &Account 가 반환타입이 아니고 *Account인지는 명확히 구분할 수 있어야 한다.
- &Account는 실제 주소값을 의미.
- *Account는 포인터 타입을 의미하며, Account구조체의 주소를 담는 변수를 반환한다는 뜻이다.
왜 포인터를 사용할까? 답은 스스로 생각해보자. (대학교 교재식...ㅋㅋ)
여기까지의 내용을 코드로 살펴보자.


'[개발] Go > 초급 프로젝트' 카테고리의 다른 글
| Dictionary 예제 - Update, Delete (0) | 2025.06.26 |
|---|---|
| Dictionary 예제 - Search, Add (0) | 2025.06.25 |
| [예제] Bank Project - 3 (0) | 2025.06.14 |
| [예제] Bank Project - 2 (Method) (0) | 2025.06.10 |