Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1차 세미나] 서술형 #3

Open
khyojun opened this issue Oct 8, 2024 · 0 comments
Open

[1차 세미나] 서술형 #3

khyojun opened this issue Oct 8, 2024 · 0 comments
Assignees
Labels
documentation Improvements or additions to documentation

Comments

@khyojun
Copy link
Member

khyojun commented Oct 8, 2024

클래스 다이어그램을 그려주세요. (선택)

image

가이드 코드 클래스간 역할에 대해 설명하고, 이렇게 역할을 분리해서 얻은 장점과 분리하는 이유에 대해 고민해보고 서술해주세요. (필수)

이번 가이드 코드 클래스를 크게 봤을때 Main, Controller, Service, Repository 로 볼 수 있었습니다. 코드를 작성하면서 분석해봤을 때 각 역할은 다음과 같이 구분할 수 있을 거 같습니다.

  • Main : 시작점이자, IO를 관장하는 역할
  • Controller : 입력이 온 친구들에 대해서 입력값이 올바른지 확인하는 역할
  • Service : 넘어온 값에 대하여 추가적인 커스텀 작업 및 연산 작업을 하는 역할
  • Repository : 데이터와 직접적으로 관련한 작업을 수행하는 역할

이렇게 진행하였을 때 얻는 가장 큰 장점은 다음과 같았습니다.

  • 역할에 국한하여 코드를 수정하면 된다.

한 클래스를 고쳤을때 흔히 역할을 분리하지 않고 진행하였을 때 여러 부분에서 수정이 일어나지 않는다! 라는 말과 같았습니다.

현재 코드를 작성하면서 거의 주말에 진행한 이후의 세미나 코드에서 변경되지 않은 코드가 있습니다! 바로 Main, Service 입니다.
예외를 잡기 위해 Controller, Repository에서 처리를 진행한 것 이외에는 필수 과제를 수행하면서 변경이 일어나지 않아도된다는 것을 알게 되었습니다.

이를 통해 이전 세미나에서 언급해주셨던 캡슐화가 사실 숨겨진다는 의미도 있지만 어찌보면 적재 적소에 역할에 맞게 사용할 수 있다는 특징도 나타낼 수 있다는 것도 많이 알게되었던 거 같습니다

@khyojun khyojun added the documentation Improvements or additions to documentation label Oct 8, 2024
@khyojun khyojun self-assigned this Oct 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

1 participant