-
Notifications
You must be signed in to change notification settings - Fork 0
Feat/계산기 메인 실행 흐름 구현 #13
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
base: team-1
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,39 @@ | ||
| # main.py | ||
| # 사칙연산 계산기를 실행하는 메인 프로그램 | ||
|
|
||
| # 실행법 : src 파일로 이동 후 python main.py 입력 | ||
|
|
||
| from add import add | ||
| from sub import sub | ||
| from mul import mul | ||
| from div import div | ||
|
|
||
| # 반복 실행을 위한 무한 루프 | ||
| while True: | ||
| # 사용자로부터 첫 번째 숫자, 연산자, 두 번째 숫자 입력받기 | ||
| num1 = input("첫번째 숫자 입력: ") | ||
| op = input("연산 선택 (+ - * /): ") | ||
| num2 = input("두번째 숫자 입력: ") | ||
|
|
||
| # 입력한 연산자에 따라 알맞은 함수 호출 | ||
| if op == "+": | ||
| result = add(num1, num2) | ||
| elif op == "-": | ||
| result = sub(num1, num2) | ||
| elif op == "*": | ||
| result = mul(num1, num2) | ||
| elif op == "/": | ||
| result = div(num1, num2) | ||
| else: | ||
| result = "잘못된 연산자입니다" | ||
|
Comment on lines
+14
to
+28
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. PR에서 변경된 코드를 보면, 각 연산 함수를 그런데 다른 팀원분들이 구현하신 이 부분에서 궁금한 게 생겼는데요. 각 파일의 함수가 어떤 형태로 작성되어 있는지, 팀원분들과 미리 맞춰보셨나요? 브랜치를 나눠서 각자 작업하는 방식은 좋은 접근이에요. 다만 이렇게 나눠서 작업할 때는, 합치기 전에 함수의 입출력 형태를 먼저 합의하는 것이 중요해요. 이걸 인터페이스 정의라고 하는데, 이 부분을 팀 내에서 어떻게 맞추셨는지 궁금합니다 :)
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 팀원들이 각 기능을 따로 구현한 뒤, merge 단계에서 파일이 통합되는 것을 전제로 작업을 진행했습니다. 그래서 함수의 입출력 형태를 사전에 명확하게 맞추기보다는, “최종적으로 합쳐졌을 때 동작하도록 구성하면 된다”, "이렇게 코드를 짜면 나중에 합쳐졌을 때 작동이 될 것이다."라는 가정 하에 구현을 진행하게 된 것이 문제가 된 것 같습니다. "연산 함수들을 “입력을 인자로 받아 결과를 반환하는 형태”로 통일하고, |
||
|
|
||
| # 결과 출력 | ||
| print("결과:", result) | ||
|
|
||
| # 다시 실행 여부 확인 | ||
| again = input("다시 실행하시겠습니까? (y/n): ") | ||
|
|
||
| # y가 아니면 종료 | ||
| if again.lower() != "y": | ||
| print("계산기를 종료합니다.") | ||
| break | ||
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.
PR에서 변경된 파일을 확인하다가 흥미로운 부분을 발견했어요.
현재 이 브랜치에는
add.py,sub.py,mul.py,div.py파일이 존재하지 않는데,코드에서는 이 파일들을
import하고 있더라고요.즉, 지금 이 브랜치만 단독으로 실행하면 코드가 정상적으로 동작하지 않아요.
몇 가지 여쭤봐도 될까요?
이 파일들이 없는 상태에서
import를 작성하신 이유가 있으셨나요?또, 이 코드가 정상적으로 동작하려면 어떤 조건이 갖춰져야 한다고 생각하시나요?
브랜치를 나눠서 작업하는 방식 자체는 좋은 접근이에요.
다만, 이런 상황에서 브랜치 간 의존 관계를
어떻게 관리하면 좋을지에 대해서도 한번 생각해보시면 좋을 것 같습니다.
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.
말씀 주신 부분 확인했습니다!
현재
main.py에서add,sub,mul,div를 import한 이유는해당 연산 모듈들이 팀원분들에 의해 구현될 것을 전제로,
최종적으로 모든 기능이 합쳐졌을 때의 실행 흐름을 기준으로 작성했기 때문입니다.
즉, 저는 이번 작업에서
연산 함수들을 호출하는 메인 로직을 먼저 구성하는 역할이라고 생각하고 구현했습니다.
다만 말씀해주신 것처럼 현재 PR 브랜치만 기준으로 보면
연산 모듈 파일이 포함되어 있지 않아 단독 실행이 불가능한 상태이고,
이 부분은 PR 단위의 독립성과 검증 가능성을 충분히 고려하지 못한 부분이라고 생각합니다.
정상적으로 동작하려면
add.py,sub.py,mul.py,div.py파일이 동일 경로에 함께 존재해야 합니다.이번 피드백을 통해
브랜치 간 의존성이 있는 경우에는 PR 설명에 이를 명확히 작성하거나,
가능하면 PR 단독으로도 실행 가능하도록 작업 단위를 나누는 것이 더 적절하다는 점을 배웠습니다.
말씀 주신 부분 반영해서 구조를 다시 점검해보겠습니다.
좋은 피드백 감사합니다!