250809

凡愚·2025년 8월 9일

개발 일지

목록 보기
258/350

✅ 한 것들


  • 백준
  • 클린 아키텍처
  • Frog on Lotus


⚔️ 백준


9376 탈옥

원하는대로 코드를 구현은 했지만, 틀린 풀이였다.
답을 검색해보니 모르는 유형이었다. 내일 마저.



📖 클린 아키텍처


1부 소개


1장 설계와 아키텍처란?

대충 짜면 단기적이어도 빠른게 아니라 느리게 개발하게 된다.
제대로 개발하는게 무조건 옳다.

2장 두 가지 가치에 대한 이야기

행위 : 프로구램에 대한 요구사항
아키텍처 : 얼마나 변화에 부드러운지

아이젠하워 매트릭스 기준으로 아키텍처는 중요하기 때문에 행위보다 우선순위가 높은데, 이를 거꾸로 생각하면 안된다.

2부 벽돌부터 시작하기 : 프로그래밍 패러다임


3장 패러다임 개요

구조적 프로그래밍은 goto문을 앗아가고,
객체 지향 프로그래밍은 함수 포인터를 앗아가고,
함수형 프로그래밍은 할당문을 앗아간다

4장 구조적 프로그래밍

프로그램은 반증은 가능하지만 증명은 불가능하다
goto문 없앤 이유 : 작게 쪼개서 디버깅(반증) 쉽게 하려고

5장 객체 지향 프로그래밍

객체 지향은 무엇인가?
데이터와 함슈의 조합? 아님
현실 세계를 모델링? 아님
캡슐화, 상속, 다형성?

  • 캡슐화는 c가 더 완벽하게 함
  • 상속도 c로도 가능하긴 함
  • 다형성은 완전 편해짐.
    고로 객체 지향은 "제어 흐름의 간접적 전환을 가능하게 한다"

다형성 편하게 못 썼을 땐 제어 흐름과 의존성 방향이 동일
다형성 쓰면 인터페이스로 의존성 역전 가능.

소스 코드 의존성을 역전하여, 저수준의 UI와 데이터베이스가 고수준의 업무 규칙에 의존하도록 만들 수 있다.

고로 객체 지향은 모든 소스 코드 의존성에 대한 제어 권한을 획득하는 능력이다.



🎮 Frog on Lotus


생각해보니 굳이 TimeManager를 따로 떼놓을 이유가 없었다.
StageManager에 합치는 식으로 순환 참조 해결.
StageManager 말고 GameManager로 이름도 변경.



0개의 댓글