-
Notifications
You must be signed in to change notification settings - Fork 5
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주차 - 김영명 #445
Conversation
우측에 있는 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
첫 pull request 축하드리고
처음 인데도 마치 예전 부터 해주셨던 분 처럼 잘 해주신 것 같습니다.
👍
* 오버로딩에 의한 다형성 | ||
|
||
## [논의 내용] | ||
* 현실적인 타입 검사기는 타입 오류가 없음에도 오류 및 거부를 출력하는 경우가 있다는데, 실제로 이것 때문에 코드를 수정해야 했던 경험을 겪어보신 분이 계신가요? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
책에 설명한대로라면 null 값 참조가 가장 흔한 케이스일 것 같습니다.
컴파일 할 때는 문제 없지만
실제 런타임에서 null 이면 반드시 예외를 던지니까요.
이런 경험을 몇 번 하다 보면 항상 다음과 같은 코드가 장황하게 작성된다고 봅니다.
if (service == null)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
생각해보니 그렇네요! 어제만해도 이것 때문에 보다 더 깔끔한 방법을 찾고 싶었고, 그나마 생각해서 적용한게 'Objects.requireNonNull()'입니다ㅎㅎ
|
||
## [논의 내용] | ||
* 현실적인 타입 검사기는 타입 오류가 없음에도 오류 및 거부를 출력하는 경우가 있다는데, 실제로 이것 때문에 코드를 수정해야 했던 경험을 겪어보신 분이 계신가요? | ||
* 정적 타입 언어인 Java를 주로 쓰다보니, 이전에 Javascript로 한 회사의 과제를 진행하면서 타입 검사가 없는 것에 큰 불편함을 느꼈던 적이 있습니다. Typescript를 적용하면서 어느 정도 보완 되었지만 그래도 Java보다는 한참 약하다고 생각했습니다. 저는 정적 타입 검사기로 인해 타입 오류에 대한 버그가 온전히 사라진다는 보장을 가짐으로써, 코드 작성 중 로직에 의해 발생하는 버그에 더 신경 쓸 수 있다고 생각합니다. 그럼에도 전세계적으로 동적 타입 언어가 강세인 이유가 무엇일까요? 또한, 많은 스타트업의 초기 언어로 사용 되는데, 생산성 외에 다른 이유도 있는지 궁금합니다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
저도 생산성이라고 생각해 보지만
현실에서는 어떤 테크 리더나 팀장이 선호하는 방향으로 가는 걸 많이 봤습니다.
제가 실제로 그러기도 했고요.
처음부터 정적 타입 언어를 썼던 사람이라면 동적 타입 언어를 선호하지 않을 것이고
반대도 마찬가지라고 봅니다.
그렇다면, 이건 언어의 특징이나 장단점으로 따져 볼 것이 아니라
회사와 조직이 가져가려고 하는 비즈니스에 맞게 기술이 정해져야 하고 그게 타당성이 있어야 한다고 보는게 제 의견입니다.
여러 책을 섭렵하다 보니 이런 프로세스를 ADR이라고 부르는 것 같습니다.
물론 우리나라에서 ADR를 겪어보지도 해보지도 못했지만요.
ADR은 Architecture Decision Record의 약자로
아키텍처 설계시 결정 이유와 대안에 대한 기록 문서를 뜻합니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
저는 회사에서 백엔드 개발에 파이썬을 사용하고 있기 때문에 백엔드 개발을 위한 파이썬에 한정지어서 말씀드리자면, 현 시점에 엔터프라이즈 환경에서는 사실상 파이썬을 동적언어가 아닌, 정적언어 처럼 사용하고 있는 것(type hint와 mypy라는 타입체커를 같이 사용함)이 현실이고, 동적언어의 장점 때문에 사용하는 경우는 별로 없는 것 같습니다 말씀주신대로 타입을 쓰고 안쓰고의 유지보수성의 차이가 너무 심하기 때문 입니다.
제가 생각하기에 파이썬이 아직도 많은 분야에서 사용되고 인기가 많은 이유는, AI 산업 등이 발전하고, 관련된 라이브러리와 프레임워크 생태계가 커진것도 주된 이유겠지만, 그것과 더불어서 타입을 유연하게 사용할 수 있게 허용하고 있는 것(type hint의 도입과 mypy를 통한 타입체크, pydantic를 통한 타입을 기준으로 데이터 유효성 검사 까지..)이 기존부터 파이썬을 쓰고 있던 사람들이 엔터프라이즈 환경에서도 계속 사용하게 만드는 이유이지 않을까 생각 합니다
스타트업 초기언어로 동적언어라고 일컬어지는 파이썬과 자바스크립트 등이 많이 사용되는 이유는 제 생각엔, 일단은 파이썬이나 자바스크립트로 이뤄진 웹 프레임워크들이 개발하기 쉽다는 편견(?)이 업계에 전반적으로 퍼져있기 때문이라고 생각합니다(저는 이게 큰 착각이라고 생각합니다) 개인적으로 생각하기로는 스타트업 초기언어는 뭘로 개발하든 상관없다고 생각합니다(그냥 백엔드개발자 본인이 젤 익숙하고 잘하는거 하면 머든 상관없다고 생각)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
현실에서는 어떤 테크 리더나 팀장이 선호하는 방향으로 가는 걸 많이 봤습니다.
저도 많이 봤습니다.. 팀장의 선호는 무적논리죠 ㅎㅎ
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
확실히 현실적으로는 리더의 방향을 다소 많이 따라가는 것 같습니다.
또한 많이들 말하는 _개발하기 쉽고 빠르다_라는 말이 잘 와닿지 않았는데, 말씀하신 것 처럼 편견이라는 것을 보니 궁금증이 해소 되었습니다ㅎㅎ 물론 이건 개개인이 어떤 타입으로 주로 개발 해왔느냐에 따라 다르겠지만요!
안녕하세요! 잘 읽었습니다. 현실적인 타입 검사기는 타입 오류가 없음에도 오류 및 거부를 출력하는 경우가 있다는데, 실제로 이것 때문에 코드를 수정해야 했던 경험을 겪어보신 분이 계신가요?
정적 타입 언어인 Java를 주로 쓰다보니, 이전에 Javascript로 한 회사의 과제를 진행하면서 타입 검사가 없는 것에 큰 불편함을 느꼈던 적이 있습니다. Typescript를 적용하면서 어느 정도 보완 되었지만 그래도 Java보다는 한참 약하다고 생각했습니다. 저는 정적 타입 검사기로 인해 타입 오류에 대한 버그가 온전히 사라진다는 보장을 가짐으로써, 코드 작성 중 로직에 의해 발생하는 버그에 더 신경 쓸 수 있다고 생각합니다. 그럼에도 전세계적으로 동적 타입 언어가 강세인 이유가 무엇일까요? 또한, 많은 스타트업의 초기 언어로 사용 되는데, 생산성 외에 다른 이유도 있는지 궁금합니다.
|
|
||
## [논의 내용] | ||
* 현실적인 타입 검사기는 타입 오류가 없음에도 오류 및 거부를 출력하는 경우가 있다는데, 실제로 이것 때문에 코드를 수정해야 했던 경험을 겪어보신 분이 계신가요? | ||
* 정적 타입 언어인 Java를 주로 쓰다보니, 이전에 Javascript로 한 회사의 과제를 진행하면서 타입 검사가 없는 것에 큰 불편함을 느꼈던 적이 있습니다. Typescript를 적용하면서 어느 정도 보완 되었지만 그래도 Java보다는 한참 약하다고 생각했습니다. 저는 정적 타입 검사기로 인해 타입 오류에 대한 버그가 온전히 사라진다는 보장을 가짐으로써, 코드 작성 중 로직에 의해 발생하는 버그에 더 신경 쓸 수 있다고 생각합니다. 그럼에도 전세계적으로 동적 타입 언어가 강세인 이유가 무엇일까요? 또한, 많은 스타트업의 초기 언어로 사용 되는데, 생산성 외에 다른 이유도 있는지 궁금합니다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
정적타입 언어만 사용해보다가 동적타입언어를 접할 기회가 있었는데
로직을 짜는 쪽에 포커스를 맞출 수 있어서 그러지 않을까 합니다.
다른곳에 신경쓸 필요가 없다는 느낌을 강하게 받았습니다.
|
||
## [논의 내용] | ||
* 현실적인 타입 검사기는 타입 오류가 없음에도 오류 및 거부를 출력하는 경우가 있다는데, 실제로 이것 때문에 코드를 수정해야 했던 경험을 겪어보신 분이 계신가요? | ||
* 정적 타입 언어인 Java를 주로 쓰다보니, 이전에 Javascript로 한 회사의 과제를 진행하면서 타입 검사가 없는 것에 큰 불편함을 느꼈던 적이 있습니다. Typescript를 적용하면서 어느 정도 보완 되었지만 그래도 Java보다는 한참 약하다고 생각했습니다. 저는 정적 타입 검사기로 인해 타입 오류에 대한 버그가 온전히 사라진다는 보장을 가짐으로써, 코드 작성 중 로직에 의해 발생하는 버그에 더 신경 쓸 수 있다고 생각합니다. 그럼에도 전세계적으로 동적 타입 언어가 강세인 이유가 무엇일까요? 또한, 많은 스타트업의 초기 언어로 사용 되는데, 생산성 외에 다른 이유도 있는지 궁금합니다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
동의합니다. 다른 이유로는 생산성과 생태계를 꼽을 수 있겠네요. 생산성을 다시 강조하는 이유는, 빠르게 가치 있는 코드를 작성하는 능력이 매우 중요하기 때문입니다. 생태계를 두 번째로 꼽은 이유는, 생산성이 높아지면 작은 코드를 작성하며 쉽게 학습할 수 있고, 많은 사람들이 사용하게 되면서 관련 라이브러리와 프레임워크가 함께 성장하는 선순환 구조가 만들어지기 때문입니다.
타입으로 견고하게 다형성으로 유연하게 1주차 - Chapter 1