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

타입으로 견고하게 다형성으로 유연하게 2주차 - 권태형 #456

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

TaeHyoungKwon
Copy link
Collaborator

2주차 완료 했습니다 Close #453

Copy link

우측에 있는 Projects, Milestone, Development를 확인 후 할당 해주세요~! 🙇

@TaeHyoungKwon TaeHyoungKwon changed the title 타입으로 견고하게 다형성으로 유연하2주 권태형 타입으로 견고하게 다형성으로 유연하게 2주차 - 권태형 Jan 17, 2025
Copy link
Member

@jongfeel jongfeel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Comment on lines +7 to +10
- 성공적이였다면,
- 어떤 장점이 있었는지
- 문제가 있었다면,
- 어떤 문제점이 있었고, 어떻게 개선 했는지 혹은 어떻게 개선했으면 좋을지
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

서브타입의 다형성으로 책의 설명으로는 추상메소드(제가 쓰는 언어는 인터페이스)를 적극적으로 활용해서
인터페이스 분리 원칙, 단일 책임 원칙 등을 통해 의존성 주입 방식을 고수해 설계해 나갔던 프로젝트가 메인이었습니다.
장점은 문제 단위 별로 코드 수정하고 테스트하기가 상당히 용이한 점이 있고
단점으로는 파일의 수가 많아지고, 패키지 관리가 어려워지는 점
그리고 이 방식에 익숙하지 않다면 학습 시간이 조금 필요하다 정도입니다.

조금 더 개선 점을 찾아보자면
릴리스 시점이 임박해도 정해진 규칙을 잘 지키면 좋은데
그 설계 규칙을 깨고 메서드, 클래스 단위로 코드 양이 방대해지는 점 등에 대해 더 리뷰를 잘 해야 할 필요성을 많이 느낍니다.

- 어떤 장점이 있었는지
- 문제가 있었다면,
- 어떤 문제점이 있었고, 어떻게 개선 했는지 혹은 어떻게 개선했으면 좋을지
- Union 타입과 Intersection 타입(다중 상속)을 활용하여 다형성을 극대화하는 전략에 대해 어떻게 생각하시나요?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저는 TypeScript와 Scala 예제 코드를 보고 일부러 이런 타입을 설명하기 위해서 내용을 할애한 게 아닌가? 라는 생각도 했었습니다.
주로 많이 쓰는 언어에서는 보이지 않는 문법이고
태형님 의견대로 약간 우회해서 구현할 수 있는 방법이 언어별로 다 있긴 할거라는 생각도 들었습니다.

그럼에도 불구하고 문법적으로 지원하는 OR, AND가 (TypeScript는 |, & 키워드 사용) 있다 보니
해당 언어를 사용하는 분들은 가끔 유용하게 쓸 일이 있지 않을까 라는 생각도 해 봅니다.

- 문제가 있었다면,
- 어떤 문제점이 있었고, 어떻게 개선 했는지 혹은 어떻게 개선했으면 좋을지
- Union 타입과 Intersection 타입(다중 상속)을 활용하여 다형성을 극대화하는 전략에 대해 어떻게 생각하시나요?
- 개인적으로 Union 타입은 필요에 따라서, 사용할 때도 있었지만, 책의 코드는 함수 오버로딩으로 구현하는게 훨씬 낫지 않을까 생각되고, 다중 상속의 경우, 다중 상속이 가능한 파이썬에서도 가능하면 피하고, 꼭 필요하다면, Mixin 클래스로 다중상속을 사용했습니다 책의 예제를 봤을 때도, 전혀 사용해서 도움이 될만한 예제는 아닌걸로 보여서 다른 분들의견도 궁금합니다
Copy link
Collaborator Author

@TaeHyoungKwon TaeHyoungKwon Jan 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[참고 및 정정]

여기서, 뜬금없이 다중상속 얘기가 나오는데, 요거는 제가 Intersection 부분을 읽다가 졸면서 쓴거 같네요

책을 다시 읽어보니, 이 내용은 별관계가 없는 내용이고(다중상속은 Intersection을 언제 사용하면 좋을지를 설명하기위한 예제인데, 다중상속이 곧 Intersection으로 착각했습니다), python 기준으로 Union은 지원하나, Intersection은 지원하지 않고 있다보니 저는 실제로 사용해본적이 없습니다 🙇🏻

- 어떤 장점이 있었는지
- 문제가 있었다면,
- 어떤 문제점이 있었고, 어떻게 개선 했는지 혹은 어떻게 개선했으면 좋을지
- Union 타입과 Intersection 타입(다중 상속)을 활용하여 다형성을 극대화하는 전략에 대해 어떻게 생각하시나요?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

혼자 사용하는 용도로는 빠르게 만들어도 괜찮지만, 여러 사람이 유지보수해야 하는 코드라면 부담스럽게 느껴질 때가 있는 것 같습니다.

- 문제가 있었다면,
- 어떤 문제점이 있었고, 어떻게 개선 했는지 혹은 어떻게 개선했으면 좋을지
- Union 타입과 Intersection 타입(다중 상속)을 활용하여 다형성을 극대화하는 전략에 대해 어떻게 생각하시나요?
- 개인적으로 Union 타입은 필요에 따라서, 사용할 때도 있었지만, 책의 코드는 함수 오버로딩으로 구현하는게 훨씬 낫지 않을까 생각되고, 다중 상속의 경우, 다중 상속이 가능한 파이썬에서도 가능하면 피하고, 꼭 필요하다면, Mixin 클래스로 다중상속을 사용했습니다 책의 예제를 봤을 때도, 전혀 사용해서 도움이 될만한 예제는 아닌걸로 보여서 다른 분들의견도 궁금합니다
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

경험이 별로 없어서.. ㅜㅜ

- 성공적이였다면,
- 어떤 장점이 있었는지
- 문제가 있었다면,
- 어떤 문제점이 있었고, 어떻게 개선 했는지 혹은 어떻게 개선했으면 좋을지
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

인터페이스를 활용해 구현에 의존적인 구조를 만드는 것이 테스트할 때도 유용해서, 추상 클래스나 메서드를 꽤 자주 활용하게 되는 것 같습니다.

Comment on lines +5 to +10
- 참여했던 프로젝트에서 서브타입 다형성(상속, 추상클래스와 추상메소드, 구조에 의한 서브타입)을 적극 활용해 설계한 경험에 대해서 얘기해보면 좋을 것 같습니다
- 설계가
- 성공적이였다면,
- 어떤 장점이 있었는지
- 문제가 있었다면,
- 어떤 문제점이 있었고, 어떻게 개선 했는지 혹은 어떻게 개선했으면 좋을지
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저는 쿡앱스라는 회사 인턴십 과정 지원을 할 때 위와 같이 서브타입 다형성에 맞추어 해보려고 노력 했던 경험이 있습니다. 장점으로는 구조적으로 파악할 때 용이했지만 단점으로는 해당 방식이 익숙치 않아 점점 버거움을 느꼈습니다. 진행하면서 상속 관계를 남용하면 안되고 합성으로 대체하여 결합도를 낮추는 방법도 존재하는구나 라는 점을 배웠습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2025 타입으로 견고하게 다형성으로 유연하게 탄탄한 개발을 위한 씨줄과 날줄
Projects
Status: In review
Development

Successfully merging this pull request may close these issues.

<타입으로 견고하게 다형성으로 유연하게> 2장, 총 79페이지, 2025-01-24
5 participants