본문 바로가기
개발 관련/모델 세미나 정리

기능, 역할, 책임

by lazysnack 2022. 7. 14.

회사에서 진행하는 모델에 관한 세미나를 듣고 내용을 정리하고자 함. (1시간 가량 진행)
중간중간 개인 의견 들어갈 수 있음.

1. 기능

기능이란 사용자 <-> 시스템 간의 상호작용

Input -> 기능 -> Output 으로 간단하게 말하면 Input 과 Output 이 키포인트라고 할 수 있음.
Input과 Output 는 각각 2가지가 있을 수 있음.

  • Input
  1. 파라미터
  2. DB 같은 곳에서 들어오는 정보 (이 부분은 이해가 갈 듯하면서 뭔가 파라미터 보다는 개념적인 느낌이 들었기에 확실하게 이해가 되진 않았던 부분)
  • Output
  1. return
  2. 직접적인 return 보다는 한 행위로 인해 실행되는 결과? (예를 들면, 1.의 return 은 성공,실패 등의 상태값이 될 수 있고, 2.는 행위라고 생각됨)

기능은 상황에 따라 다르게 존재 혹은 동작할 수 있음.

2. 역할, 책임

High Cohesion
Low Coupling
(정처기 한창 공부할 때 기억나는 High Chesion, Loose Coupling 의 개념)

저 두 단어면 다 설명이 됨. -> 결과적으로 기능 수정이나, 유지보수가 용이해짐.

기능에는 여러 하위 기능이 있을 수 있으며, 기능에 하위 기능을 도출하는 연습을 많이 해야 함.
물론 처음에는 잘 보이지 않고, 크기가 큰 클래스 혹은 메소드 일 수록 쪼개기가 어렵다. (메소드 추출 방식 등..)
메소드 추출을 하다보면 크기가 오히려 커지고, 구조가 복잡해질 수 있다. (이 부분은 공감하는 부분이고 실제로 경험.. 하면서도 이게 맞는건가 의구심이 든 적도 있음)

역할, 책임에 대해서는 객체지향 원리랄까 그 부분이 생각나는 부분이었음. (단일책임원칙, 캡슐링 - 캡슐링이 맞던가..)
이런 자리를 회사 내부에서 업무 시간에 갖는다는 것은 좋은 것 같다.
잘 응용해서 반푼이가 아닌 멀쩡한 개발자 가 되도록...

'개발 관련 > 모델 세미나 정리' 카테고리의 다른 글

What-How 에 대해 (2)  (0) 2022.07.14
What-How 에 대해 (1)  (0) 2022.07.14
Aggregate, Value  (0) 2022.07.14
모델  (0) 2022.07.14