🚀 성공의 기쁨: "어... 된다..."
오늘은 기존의 C 스타일 연결 리스트를 C++ 객체 지향 구조로 변환하는 실습을 진행했습니다.
클래스를 MyList, UserData, UserInterface로 나누고, 서로 참조로 연결하여 마침내 프로그램이 돌아가는 순간을 마주했습니다.
단순히 F5를 눌러 실행에 성공한 것이 아니라, 절차지향적인 사고를 객체의 역할 중심으로 옮겨온 첫 시도였기에 그 감동은 더 컸습니다. "어... 된다..."라는 짧은 한마디가 오늘 하루의 모든 수고를 보상해 주는 것 같았습니다.
🌱 새로운 도전: ADT(추상 자료형)와 Key 개념
하지만 기쁨도 잠시, 더 큰 산이 기다리고 있었습니다.
강사님의 미션은 '관리 대상 자료의 ADT화'와 '컨테이너 구현'이었습니다.
- 관리 대상 자료에 대한 ADT 클래스 선언
- Key 개념을 적용한 검색 구조
- 자료구조 클래스가 ADT에만 접근하도록 의존성 분리
이미 돌아가는 코드를 다시 뜯어내는 과정은 생각보다 훨씬 고통스러웠습니다.
상속과 소유 관계가 뒤섞이고, MyList와 MyNode 사이에서 역할이 모호해지는 혼란을 겪으며 코드가 얽히고 마음도 조금 얽혔던 시간이었습니다.
🧠 오늘 배운 것: 작동하는 코드 vs 설계된 코드
오늘의 사투를 통해 뼈저리게 느낀 점은 "작동하는 코드와 잘 설계된 코드는 완전히 다르다"는 사실입니다.
- 책임의 분리: 지금까지 "어떻게 동작하게 할까"만 고민했다면, 이제는 "누가 무엇을 책임져야 하는가"를 고민해야 하는 단계에 들어섰습니다.
- 추상화의 힘: MyList가 구체적인 데이터(UserData)를 몰라도 동작하게 만드는 것이 왜 중요한지, 그 추상화의 경계선이 얼마나 낯설고 어려운지 실감했습니다.
🌼 내일의 나에게: 다시 세우는 이정표
비록 오늘 ADT화를 완벽히 끝내지는 못했지만, 도망치거나 답을 베끼고 싶지는 않았습니다.
스스로 이해하고 납득하는 과정을 거치고 싶었기에, 오늘의 답답함조차 성장의 밑거름이라 믿습니다.
내일의 나를 위한 세 줄 정리:
- MyList: 연결(Link)만을 관리하는 순수한 기계.
- MyNode: 연결을 위한 최소한의 인터페이스(GetKey).
- UserData: 실제 데이터를 품고 부모의 약속을 이행하는 객체.
'엄마의 성장일기🌱' 카테고리의 다른 글
| 🌱 엄마의 코딩성장기록 Day 99 - 자판기 프로젝트의 시작: 아이들의 웃음에서 찾은 코딩의 로직 (0) | 2026.02.14 |
|---|---|
| 🌱 엄마의 코딩성장기록 Day 98 - C 개발자를 위한 최소한의 C++ 완강: 포인터의 늪에서 연결 리스트의 꽃을 피우기까지 (0) | 2026.02.13 |
| 🌱 엄마의 코딩성장기록 Day 96 - [C++ 독학] 빨간 줄과 씨름한 한 시간, 멈춰 서 있어도 돌아서지는 않기 (0) | 2026.02.11 |
| 🌱 엄마의 코딩성장기록 Day 95 - [C++ 독학] C언어 주소록을 클래스로 바꾸는 밤, 엉킨 코드 속에서 길 찾기 (0) | 2026.02.10 |
| 🌱 엄마의 코딩성장기록 Day 94 - [C++ 독학] 완강까지 7강, 실습이라는 마지막 관문을 마주하며 (0) | 2026.02.09 |