-
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주차 - harry #444
base: main
Are you sure you want to change the base?
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.
👍
다만 너무 생략하여도 코드 가독성이 떨어질 수 있다. | ||
|
||
# 논제 | ||
1. 책에서는 머신러닝, 성능, 안정성 등에 따라서 언어의 특성이 다르고 그만큼 여러 언어가 존재하며 해결하는 문제의 분야가 다르다고 말한다. 조금 더 구체적으로 왜 파이썬은 머시러닝에 강하고, 자바스크립트는 안정성에 강하고, C와 C++은 성능이 좋을까? 모든 장점을 합쳐놓은 언어가 있는가? |
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.
언어별로 특성도 다르고,해결하는 문제의 분야가 다르고 해결방법도 다르다고 생각합니다 그래서, 개발 문제를 해결할 때, 해결책에 맞는 적절한 개발 언어를 잘 선택해서 활용하는 것도 역량이라고 생각합니다
위에서 말씀주신것 중에, 파이썬의 경우는 언어자체가 간결하고, 간편하고, 유연한 인터페이스를 제공하는 덕에, 좀 더 머신러닝 자체의 본질에 더 집중할 수 있기 때문에, 파이썬을 쓰는게 아닌가 싶습니다. 어떤 라이브러리에서 메소드하나 호출하려고하는데, 꼭 컴파일을 할 필요는 없을 수 있으니까요. 또한 파이썬에서 제공하는 머신러닝 관련 라이브러리가 많고, 이를 기반으로 생태계가 다른 언어에 비해서 크게 형성 되었기 때문이라고 생각합니다
위 답변과 별개로, 자바스크립트가 안정성에 강하다는 문구는 어디쯤에 나오는지 알 수 있을까요??
추천사에 자바 스크립트는 웬만하면 프로그램이 실행 중에 비정상적으로 멈추지 않으며 부분을 안정성이 좋다고 생각했습니다!
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.
머신러닝 같은 경우는 다양한 파라미터에 다양한 타입의 값들을 유연하게 넣을 수 있기 때문에 특히 파이썬이 강하다고 생각합니다. 또한 여러 차원의 matrix로 이루어진 값들로 주로 이루어져 있다보니 더더욱 파이썬 만한게 없어 보이기는 합니다.
C, C++ 같은 경우는 직접적으로 메모리에 접근, 효율적으로 관리 등을 할 수 있고, 어셈블리어에 거리?가 가깝기 때문이라고 생각합니다.
저도 어디서인가 자바스크립트가 안정성에 강하다는 것과 비슷한 말을 본 기억이 있지만 이 부분에서는 크게 동의는 하지 않는 편입니다.
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. 책에서는 머신러닝, 성능, 안정성 등에 따라서 언어의 특성이 다르고 그만큼 여러 언어가 존재하며 해결하는 문제의 분야가 다르다고 말한다. 조금 더 구체적으로 왜 파이썬은 머시러닝에 강하고, 자바스크립트는 안정성에 강하고, C와 C++은 성능이 좋을까? 모든 장점을 합쳐놓은 언어가 있는가? | ||
|
||
2. 타입에 문제가 없는데도 타입 검사기에서 거부가 발생한 경우는 어떤 케이스가 있을까? |
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.
암묵적 타입에 대한 캐스팅 시도 (C언어 계열에서 포인터 변수 참조)
아니면 책에서 설명한 대로 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.
자바를 사용하면서는 아직 겪어보진 못했지만, 파이썬으로 mypy를 쓰면서는 mypy 설정을 strict로 맞추면 꽤나 자주 겪었던 것 같습니다 (어떨 때 돌리면, 검사를 통과하고 어떨 때 돌리면 검사를 통과 못하는 현상이 가끔 발생함)
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.
거부인지는 모르겠지만 자바를 쓰면서 List와 제네릭을 사용하는 부분에서 꼭 unchecked나 rawtype에 관한 warning을 가끔 만납니다.
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.
저도 C, C++ 포인터의 경우 암묵적인 캐스팅에 대한 케이스가 떠올랐읍니다
|
||
### 타입 추론 (type inference) | ||
타입을 명시하지 않아도, 리터럴이나 맥락에 따라서 타입을 추론할 수 있는 것 | ||
다만 너무 생략하여도 코드 가독성이 떨어질 수 있다. |
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.
이 말에 동감합니다.
그런데 객체 생성 시에는 생성자의 타입이 명확하게 들어날 때엔 var를 쓰는걸
최근들어 자주 쓰고 있습니다. 예전엔 코드길이가 길어지던짧아지던 앞에도 타입을 꼭 적어주었는데
어느순간 객체생성시에는 var를 선호하게 되더라구요!
다만 너무 생략하여도 코드 가독성이 떨어질 수 있다. | ||
|
||
# 논제 | ||
1. 책에서는 머신러닝, 성능, 안정성 등에 따라서 언어의 특성이 다르고 그만큼 여러 언어가 존재하며 해결하는 문제의 분야가 다르다고 말한다. 조금 더 구체적으로 왜 파이썬은 머시러닝에 강하고, 자바스크립트는 안정성에 강하고, C와 C++은 성능이 좋을까? 모든 장점을 합쳐놓은 언어가 있는가? |
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. 책에서는 머신러닝, 성능, 안정성 등에 따라서 언어의 특성이 다르고 그만큼 여러 언어가 존재하며 해결하는 문제의 분야가 다르다고 말한다. 조금 더 구체적으로 왜 파이썬은 머시러닝에 강하고, 자바스크립트는 안정성에 강하고, C와 C++은 성능이 좋을까? 모든 장점을 합쳐놓은 언어가 있는가? | ||
|
||
2. 타입에 문제가 없는데도 타입 검사기에서 거부가 발생한 경우는 어떤 케이스가 있을까? |
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.
저도 C, C++ 포인터의 경우 암묵적인 캐스팅에 대한 케이스가 떠올랐읍니다
다만 너무 생략하여도 코드 가독성이 떨어질 수 있다. | ||
|
||
# 논제 | ||
1. 책에서는 머신러닝, 성능, 안정성 등에 따라서 언어의 특성이 다르고 그만큼 여러 언어가 존재하며 해결하는 문제의 분야가 다르다고 말한다. 조금 더 구체적으로 왜 파이썬은 머시러닝에 강하고, 자바스크립트는 안정성에 강하고, C와 C++은 성능이 좋을까? 모든 장점을 합쳐놓은 언어가 있는가? |
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. 책에서는 머신러닝, 성능, 안정성 등에 따라서 언어의 특성이 다르고 그만큼 여러 언어가 존재하며 해결하는 문제의 분야가 다르다고 말한다. 조금 더 구체적으로 왜 파이썬은 머시러닝에 강하고, 자바스크립트는 안정성에 강하고, C와 C++은 성능이 좋을까? 모든 장점을 합쳐놓은 언어가 있는가? | ||
|
||
2. 타입에 문제가 없는데도 타입 검사기에서 거부가 발생한 경우는 어떤 케이스가 있을까? |
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.
타입에 문제가 없음에도 불구하고 타입 검사기에서 오류가 발생하는 경우가 종종 있습니다. 예전 Visual Studio C++ 6.0 버전을 사용할 때 재미있는 경험을 했는데요.
List<string>
처럼 타입에 >> 기호가 포함된 경우 컴파일러가 오류를 발생시키는 문제가 있었습니다. 이를 해결하기 위해
List<List<string>>
처럼 일부러 공백을 넣어서 사용해야 했던 기억이 납니다.
다만 너무 생략하여도 코드 가독성이 떨어질 수 있다. | ||
|
||
# 논제 | ||
1. 책에서는 머신러닝, 성능, 안정성 등에 따라서 언어의 특성이 다르고 그만큼 여러 언어가 존재하며 해결하는 문제의 분야가 다르다고 말한다. 조금 더 구체적으로 왜 파이썬은 머시러닝에 강하고, 자바스크립트는 안정성에 강하고, C와 C++은 성능이 좋을까? 모든 장점을 합쳐놓은 언어가 있는가? |
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.
파이썬이 머신러닝 분야에서 널리 사용되는 이유는 강력한 프로토타이핑 능력과 풍부한 생태계 때문이라고 생각합니다. 코드를 빠르게 수정하며 다양한 실험을 편리하게 할 수 있다는 점이 큰 장점인 것 같습니다. 특히 동적 타입 언어이면서 인터프리터 방식으로 동작하여 개발 생산성이 높습니다.
자바스크립트는 잘 알지 못해 안정성에 대한 확신은 없지만, 다른 분들의 의견을 참고해 보겠습니다.
C와 C++은 메모리 관리와 하드웨어 수준의 제어에 특화되어 있어 성능이 뛰어나지만, 파이썬과 같은 높은 수준의 언어만큼 개발 생산성이 높지는 않습니다. 각 프로그래밍 언어는 고유한 특징과 역사, 생태계를 가지고 있으므로, 상황에 맞는 언어를 선택하고 효과적으로 활용하는 능력이 중요하다고 생각합니다.
타입으로 견고하게 다형성으로 유연하게 1주차