오늘은 코드를 ‘다시 세운’ 날이었습니다.
어제와 똑같이 LED는 깜빡이고 LCD는 글자를 띄우지만, 그 이면의 코드는 전혀 다른 모양이 되었습니다.
단순히 돌아가는 코드를 넘어, '책임'을 나누고 '구조'를 잡는 일에 몰두한 밤이었습니다.
책임의 분리: 자판기(VendingMachine)와 제품(Product)
기존에 전역 변수로 흩어져 있던 제품 정보들을 VendingMachine이라는 관리자 클래스 안으로 모았습니다.
- 의존성 주입: 제품은 외부에서 생성되고, 자판기는 그 **주소(Pointer)**를 전달받아 목록에 보관합니다.
- 포인터 배열의 활용: Product* products[MAX_PRODUCTS] 배열을 통해 자판기는 제품의 실체를 복사하지 않고, 주소만으로 스마트하게 접근합니다.
- Null Check의 안정성: 배열의 빈 공간을 건드리지 않도록 nullptr 체크 로직을 추가하며 코드의 단단함을 더했습니다.
보이는 것과 숨기는 것: 캡슐화(Encapsulation)의 고민
코드를 짜다 보니 public 선언을 줄이고 싶은 마음이 굴뚝같았습니다.
하지만 loop() 함수에서의 접근성 때문에 일단은 문을 열어 두었죠.
어디까지 드러내고 어디까지 숨길지(Information Hiding) 고민하는 과정은 즐거웠습니다.
지금은 열려 있지만, 구조가 더 정교해지면 언젠가 이 문도 우아하게 닫을 수 있을 것입니다.
마무리하며: 코드를 정리하는 것은 선을 고르는 일
버튼 제어까지 진도를 나가지 못한 아쉬움은 남지만, 엉킨 실타래 같던 구조를 시원하게 풀어냈다는 만족감이 더 큽니다.
코드를 정리하는 일은 눈에 보이지 않는 선을 고르는 일 같습니다.
어떤 선은 연결하고, 어떤 선은 과감히 끊어내고 말이죠.
늦은 시간, 조용한 집, LCD에 남은 작은 글자들을 뒤로하고 오늘 하루를 닫습니다.
저장하고, 덮고, 쉽니다.
내일의 코드는 오늘보다 조금 더 단단할 테니까요.
#아두이노 #C++공부 #객체지향프로그래밍 #클래스설계 #포인터배열 #자판기프로젝트 #임베디드개발 #코딩일기 #육아맘코딩 #개발자성장기
'엄마의 성장일기🌱' 카테고리의 다른 글
| 🌱 엄마의 코딩성장기록 Day 103 - [아두이노 프로젝트] 자판기 키패드 입력 구현: 핀 배치와 구조 설계의 중요성 (0) | 2026.02.18 |
|---|---|
| 🌱 엄마의 코딩성장기록 Day 102 - [아두이노 프로젝트] 객체가 스스로 말하기 시작하는 순간 (0) | 2026.02.17 |
| 🌱 엄마의 코딩성장기록 Day 100 - [아두이노 프로젝트] 육퇴 후 코딩 한 줄, 클래스와 배열로 자판기 객체지향 설계하기 (0) | 2026.02.15 |
| 🌱 엄마의 코딩성장기록 Day 99 - 자판기 프로젝트의 시작: 아이들의 웃음에서 찾은 코딩의 로직 (0) | 2026.02.14 |
| 🌱 엄마의 코딩성장기록 Day 98 - C 개발자를 위한 최소한의 C++ 완강: 포인터의 늪에서 연결 리스트의 꽃을 피우기까지 (0) | 2026.02.13 |