JHB의 프로그래밍 삽질기

로직부분 짜기. 적절한 함수의 최소 단위는..? 본문

PROGRAMMING/Essay

로직부분 짜기. 적절한 함수의 최소 단위는..?

roter 2018.06.25 22:30

특히 GUI 프로그래밍을 할 때 로직 부분과 GUI 부분을 쉽게 분리하기가 힘들다


또 함수를 짜다보면, 하나의 함수는 하나의 일만 하는게 제일 좋지만

코딩이란게 그리 쉽던가, 어쩔때는 데이터를 변경하면서 ui를 바꿔야하는때도 있고

ui가 바뀌는 핸들러에서 무언가 값을 조작해줘야하는 일도 있고..

결국 다 메소드(함수) 로 분리가 잘 돼줘야 중복 코드 짤 일도 없고 적재 적소에 함수를 적절하게 잘 호출해주게 된다.


그럼 함수를 어떨때 나누느냐?


일단 크게 로직 적인 부분을 짤때를 예로 들어보자


나의 경우는 GUI프로그램을 짤 때 기본적으로 CUI 환경을 염두에 두고 함수 설계를 한다. 이렇게 할 경우의 장점은 로직 함수의 처리에 있어 기본적으로 view와의 분리가 완벽하게 된다. (함수 내에서 ui를 처리할 필요가 없어지기 때문에)


예를들어 어떤 과일을 먹을지 고르는 combo박스에서 a, b, c 중 하나를 선택하면 텍스트를 출력하는 메소드를 설계한다고 해보자


제일 바보같은 짓은 무엇일까?

Combo박스의 DataChanged 핸들러에서 바로 if(item=="a") print("a") 하는 것이다.


dos창에서 위의 명령을 입력한다고 해보자

프로그램이름이 eat 이라고 해보자

eat fruit=a

라고 치면 a 를 출력한다고 생각하면, 일단

string procFruit(Fruit fruit)

{
 if(fruit == "a")

  return "a"

...

}

이런 함수를 하나 짜놓는다.

dos prompt로 명령이 들어오건, window의 combobox가 변경되건 위의 함수를 부르면 원하는 결과를 내놓는 것이다


이 처럼 cui기반으로 명령을 처리한다고 생각하면 메소드(함수)의 최소 단위를 어떻게 설계해야하는지 설계하기 용이해진다


하나의 메소드는 하나의 일만 하도록 짜는것이 가장 좋음을 명심하자


p.s1) 임베디드 환경이라 펑션콜을 자주 하기엔 rom과 속도측면의 낭비가 있다면, 우리에겐 inline과 forceinline이 있다!






0 Comments
댓글쓰기 폼