10월 30일 일지
오늘 공부에 투자한 순수한 시간: 1h
학습한 개념:
객체지향 5대 원칙(SOLID)
: 객체지향 코드를 고치기 쉽고 잘 안 깨지게 짜기 위한 다섯 가지 설계 원칙
S (단일 책임 원칙(Single Responsibiltiy)): 한 객체는 한 가지 일만 한다
O (개방-폐쇄 원칙(Open/Closed)): 기능 추가는 쉽게, 기존 코드 수정은 없게
L (리스코프 치환 원칙(Liskov Substitution)): 자식 객체는 부모 자리에 넣어도 문제없어야 한다
I (인터페이스 분리 원칙(Interface Segregation)): 안 쓰는 기능까지 억지로 떠안기지 않는다
*D (의존성 역전 원칙 (Dependency Inversion)): 구체적인 것 말고 '약속'에 기대서 짠다
나오기 전의 불편함: 모든 기능을 객체 하나에 몰아넣는 문제
-> 1) 경직성(하나 바꾸려면 줄줄이 다 바꿔야 함) 2) 취약성(한 곳을 고치면 엉뚱한 곳이 깨짐) 3) 재사용 불가 (다른 데 떼어 쓰기 어려움)
=> 기능을 추가할 때 기존에 잘 돌던 코드를 건드리지 않아도 됨. 버그가 생겨도 어디를 봐야할지 범위가 좁아짐.
바이브코딩할 때 AI에게 명령한다면?
=> [추가할 기능]을 넣고 싶어. [바뀔 수 있는 부분]은 나중에 바뀔 수 있어.
코드 전에 설계부터 보여줘. 어떤 객체·함수가 필요하고 각각 무슨 역할인지 목록으로.
규칙: 한 함수는 한 가지 일만 하게, 기존 코드는 수정하지 말고 추가만, 지금 되는 기능은 그대로 유지, 필요한 만큼만 최소로.
코드 준 다음에는 기존 코드 중 수정한 곳이 있으면 어디인지 알려주고, 기존 기능이 그대로 되는지 확인할 체크리스트도 줘.
AI 대화 내역 링크: https://claude.ai/share/428cfa9c-04f7-4813-a567-3f4fac0ef46d
오늘 잘한 점: 내 상황에서 객체지향프로그래밍을 어떻게 사용하면 좋을지 생각해본 점이 의미있었음
여기에 파일을 드롭하세요
