TIL

20220902 TIL 본질에 집중하자

jiwoosmile 2022. 9. 2. 17:29

https://my-lingo.com/essence-in-korean-%EB%B3%B8%EC%A7%88s-meaning-and-pronunciation/

본질이란 무엇일까?

본질이란 추상적인 단어이고, 설명하기가 쉽지 않은 단어이다.

하지만 객체지향프로그램에서 본질은 코드로 구현되어 있다.

그 말은 나도 프로그래밍을 할 때 객체지향적으로 하려면 본질을 분리해야 한다는 말이다.

본질이 뭔지 명확히 설명을 못해도 괜찮다.

하지만 적어도 분리는 할 수 있어야 한다.

본질을 분리한다는 말은 어떤 뜻일까?

관심사의 분리와도 관련이 있는데, 본질끼리 묶어두면 본질이 분리된다.

먼저 본질이 무엇인지 잘 모르겠다면 본질이 아닌 것을 먼저 알아보자.

프로그램에서 본질이 아닌 것은 클라이언트가 바뀔 때마다 바꿔줘야 되는 부분이다.

클라이언트가 바뀌어도 본질은 그대로일 것이다.

그래서 우리는 그 바뀌지 않는 것을 본질이라고 부르는 것이다.

즉, 버튼을 누르거나, 터미널에서 입력을 받는 행위는 대체될 수 있고, 따라서 본질이 아니다.

본질은 그 입력을 받았을 때 일어나는 것들이라고 볼 수 있다.

이것이 UI와 비즈니스 로직을 분리하는 가장 쉬운 방법인 것 같다.

아직 내가 하고 있는게 비즈니스로직에 해당하는지 UI에 해당하는지 헷갈리고 있다.

하지만 대체될 수 있는지 여부를 생각하면 조금 감이 잡히는 듯하다.

다른 클라이언트로 바꿨을 때 바뀔지 생각해보자.

바뀌지 않는다면 그것이 바로 본질이다.

오랜만에 해본 옥토포스!