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

2025 academicConference first sprint - jintaeyeong #449

Merged

Conversation

jintaeyeong
Copy link
Member

프로그램 내부에서 기본 부품, 복합 부품이라는 용어로 타입 검사에 대한 원리를 읽고나서
항상 사용하고 있던 IDE 내부에서 어떻게 컴파일 하고 타입을 검사하는지 알게되서 재밌게 읽었습니다.

다양한 언어로 예시를 보여준 점이 좋았습니다.

Copy link

github-actions bot commented Jan 9, 2025

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

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.

👍

@@ -0,0 +1,11 @@
1. 타입 검사에 대한 내부 프로세스가 어떻게 돌아가는지 알게되었고, 타입 검사를 위해 동적 언어들도 변화되고 있다는 것이 신기했습니다. 타입 검사가 정확성과 오류를 잡는 것에 도움을 주는 것을 이미 알고 있을 텐데도 왜 나중에서야 타입 검사 기능을 추가했는지 궁금하기도 합니다.
Copy link
Member

Choose a reason for hiding this comment

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

질문이 잘 이해가 안되는데
제가 알기로는 컴파일 하는 언어는 타입 검사 기능이 추가되어 있는 건 맞습니다.
실행 전에 미리 문법 오류를 알려주니까요.
컴파일 언어인데도 타입 검사가 나중에 추가된 언어는 없는 걸로 알고 있는데,
어떤 궁금증을 얘기하고 싶은지 더 자세한 설명이 필요할 것 같네요.

Copy link
Collaborator

Choose a reason for hiding this comment

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

동적 타이핑 언어 가운데 말씀 주신대로, 나중에서 타입 검사 기능이 추가된 사례가 있습니다 python, js 도 거기에 해당되고요

python의 경우 애초에 태생이 scripting을 하기위해서 만들어진 언어다보니, 엔터프라이즈 환경에서 사용될 것을 고려되지 않았고, 자연스레 동적타이핑의 장점을 최대화 하는 방향으로 언어가 발전되었던 것 같습니다

그러다가 python 언어의 사용층이 많아지고, 엔터프라이즈 환경에서 사용하는 경우가 생기면서, 정적 타이핑을 사용할 때 누릴 수 있는 타입을 도입하고 싶다는 니즈가 생겼고, 실제로 이를 도입하는 과정에서 파이썬 커뮤니티 내에서는 갑론을박이 있었다고 들었습니다 그래서 타협을 본게 runtime에서는 영향을 주지 않는 type hint를 도입하기로 한것이고요

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 +4 to +11
2. 경험했던 프로젝트의 언어들은 Java, C#, 파이썬, js가 있습니다.
개인적으로 동적 언어와 정적 언어를 비교하자면 저는 정적 언어로 개발하는 것이 좋았습니다. 동적언어로 개발 할 때는 하나의 변수가 값에 따라 타입이 변화되는 것이 불편했고 가독성이 좋지 않다고 느껴왔습니다.

책을 읽고 최근 파이썬에서는 타입 검사를 어떻게 하는지 찾아보았고 mypy라는 파이썬 패키지를 이용해서 정적 언어의 장점을 살려서 사용할 수 있다는 것을 새롭게 알게 된 것 같습니다.

파이썬을 개발하시는 분이 계시다면 mypy를 쓰시는지 궁금합니다.

동적 언어와 정적 언어를 경험했던 것도 어떤 단점과 장점들을 경험해왔는지 논의하는 것도 좋을 것 같습니다.
Copy link
Member

Choose a reason for hiding this comment

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

저는 mypy를 써보진 않았는데 타입 검사 기능을 지원한다면 적극적으로 써 볼 것 같습니다.

Copy link
Collaborator

Choose a reason for hiding this comment

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

파이썬으로 제품을 만드는 회사라면, 필수적으로 mypy는 모두 사용할 것입니다 사실상 python3를 쓴다면 mypy를 사용하는게 표준이라서요

저희 회사도 필수로 사용합니다



2. 경험했던 프로젝트의 언어들은 Java, C#, 파이썬, js가 있습니다.
개인적으로 동적 언어와 정적 언어를 비교하자면 저는 정적 언어로 개발하는 것이 좋았습니다. 동적언어로 개발 할 때는 하나의 변수가 값에 따라 타입이 변화되는 것이 불편했고 가독성이 좋지 않다고 느껴왔습니다.

Choose a reason for hiding this comment

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

처음에는 불편하고 가독성이 좋지 않다고 느꼈지만,
코딩테스트 준비로 코드를 여러 번 작성하다 보니 변수명을 잘 정하면 충분히 이해할 수 있다는 생각이 들었습니다.
또한, 개발자가 변수에 대해 꼼꼼히 책임을 진다면 괜찮을 것 같다는 결론에 도달했습니다.

Comment on lines +4 to +5
2. 경험했던 프로젝트의 언어들은 Java, C#, 파이썬, js가 있습니다.
개인적으로 동적 언어와 정적 언어를 비교하자면 저는 정적 언어로 개발하는 것이 좋았습니다. 동적언어로 개발 할 때는 하나의 변수가 값에 따라 타입이 변화되는 것이 불편했고 가독성이 좋지 않다고 느껴왔습니다.
Copy link
Contributor

Choose a reason for hiding this comment

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

저도 정적언어만 사용해서 동적언어의 장단점이 전부 단점으로 비춰집니다. 마찬가지로 동적언어만 사용하신 분들이라면 똑같이 느낄 것 같습니다. 동적 언어를 좀 더 사용해보면 유연해지지 않을까.. 생각합니다!

### 책 정리 Link
- https://github.com/jintaeyeong/ActiveGrowth/issues/44

1. 타입 검사에 대한 내부 프로세스가 어떻게 돌아가는지 알게되었고, 타입 검사를 위해 동적 언어들도 변화되고 있다는 것이 신기했습니다. 타입 검사가 정확성과 오류를 잡는 것에 도움을 주는 것을 이미 알고 있을 텐데도 왜 나중에서야 타입 검사 기능을 추가했는지 궁금하기도 합니다.
Copy link
Contributor

Choose a reason for hiding this comment

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

나중에 들어갔다기 보다는 시간의 흐름에 따라 발전한거라 생각합니다.

초기 어셈블리에서는 모든 데이터가 바이트 또는 이진수로 표현되었습니다. 하지만 후기 어셈블리로 발전하면서 문자열, 부호 있는 정수, 부호 없는 정수와 같은 다양한 데이터형을 지원하게 되죠. 그리고 C 언어로 오면서 struct, variable type이 조금 더 세밀해졌고, 점차적으로 클래스, 인터페이스 등의 복잡한 자료형을 갖춘 현대 프로그래밍 언어로 진화했다고 생각합니다.

@jintaeyeong jintaeyeong linked an issue Jan 10, 2025 that may be closed by this pull request
@@ -0,0 +1,11 @@
1. 타입 검사에 대한 내부 프로세스가 어떻게 돌아가는지 알게되었고, 타입 검사를 위해 동적 언어들도 변화되고 있다는 것이 신기했습니다. 타입 검사가 정확성과 오류를 잡는 것에 도움을 주는 것을 이미 알고 있을 텐데도 왜 나중에서야 타입 검사 기능을 추가했는지 궁금하기도 합니다.
Copy link
Contributor

Choose a reason for hiding this comment

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

말씀해주신 것처럼 언어가 사용자의 니즈에 따라 보완되는 형태로 계속해서 발전하는게 흥미로운 것 같다고 느낍니다. 저는 제가 사용하는 언어에 대해서 일부분만 알고 사용을 해왔는데 이렇게 언어가 어떻게 발전에 해왔는지 흐름을 알고 사용하면 확실히 더 좋을 것 같다고 생각됐습니다.

@jintaeyeong jintaeyeong merged commit abdaebb into main Jan 19, 2025
@jintaeyeong jintaeyeong deleted the RobusWithTypeFlexibleWithPolymorphism/jintaeyeong/1.chapter branch January 19, 2025 13:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2025 타입으로 견고하게 다형성으로 유연하게 탄탄한 개발을 위한 씨줄과 날줄
Projects
Status: Done
7 participants