드디어 레벨1이 끝났다.
코드를 바라보는 시선이 달라진 것도 크지만,
과연 변화가 있을까? 싶었던 마인드셋이 달라진 것이 더욱 크게 느껴졌다.
레벨1에서의 나는 어떤 변화가 있었을까?
레벨1의 나의 유연성 강화 일지를 보면 거의 비슷하다.
'욕심이 안버려지는데, 비교가 안멈춰지는데 어떡하죠?'
하지만 그 꽉잡고 있던 것들이 어느순간 탁 풀려지게 되었다.
그 과정은 레벨1 글쓰기 미션글로 첨부하고자 한다!
자전거를 배울 때 두렵다가도 막상 넘어지면 그 후에는 어떻게 넘어지는지 알게되는 것처럼,
그냥 한 번 넘어져 보니까 이제는 조금 알겠달까.
넘어져도 세상이 끝나지 않는다는 것도,
넘어졌을 때 바닥에 잠시 엎어져 있어도 된다는 것도.
그래서 이제는 넘어지지 않으려 애쓰며 걷지 않는다.
애쓰지 않으니 앞으로는 이전보다 아마 훨씬 더 넘어지겠지만 그래도 괜찮다.
이젠 넘어지지 않는 것 말고, 넘어지고 구르면서도 계속 걷는게 목표니까!
레벨1 글쓰기 링크
https://github.com/skylar1220/woowa-writing/blob/level1/Level1.md
YAGNI(You Ain't Gonna Need it)
미리 예단해서 코드를 짜지 마라.
KISS(Keep it simple, stupid)
말 그대로 필요한 기술만 적용해서 단순하고 바보같이 짠다.
코드가 복잡하다. 또는 중복이 생긴다.
이 문제를 해결하기 위해 어떤 방법을 적용하면 좋을까?
아하 이 기법을 적용하면 해결되겠구나!
이 흐름으로 나와야한다.
다른 크루들이 쓴다니까 나도 상태 패턴 적용해볼까? 이런 건 적용 시점이 아니다!
기술을 적용할 수록 복잡도는 올라간다.
내가 짜보고 꼭 기술을 적용해야하는 필요성을 느끼고 나서 분리한다면 그 복잡도를 감수할 수 있다. 하지만 그렇지 않은 경우는 복잡도만 올라가는 상황이 생기는 것이다.
우리 조 백호의 말을 빌려서 정리해볼 수 있을 것 같다!
해결하고자 하는 명확한 목적 없이 기술을 적용하는 것은 아무 의미가 없다
크루들, 리뷰어와 이야기를 나누다보면 결국 하나의 결론에 도착한다.
모든 것은 트레이드 오프
하지만 이 말이 아무렇게나 쓰이면 안된다. 뒷받침이 하나 있다.
그것을 뒷받침하는 튼튼한 나만의 근거가 있어야한다는 것!
더불어 이 기준은 여러 상황에서 비슷해야한다. 일관성이 있어야한다는 것.
예를 들어, 도메인, view의 의존을 어느정도 남겨두더라도 좀 더 간단한 구조와 가독성을 우선시한다면,
간단한 구조와 가독성
이라는 기준을 적용해서 코드의 다른 부분도 작성해야한다는 것이다.
그래야 읽는 사람이 혼란스러워하지 않으면서 읽을 수 있다.
내가 어느 기준을 중요시하는 사람인지를 잡아가는 레벨1이었다.
지금까지 나의 기준의 우선순위는 아래와 같다.
앞으로 이 기준들이 어떻게 정교화되고 또 어떤 것들이 더 추가될지 기대된다!
목표가 엄청 빡세네요... 역시 커비는 대단해!