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

[SoftwareEngineering] eXtreme Programming 정리 #63

Merged
merged 1 commit into from
Aug 15, 2021

Conversation

Hee-Jae
Copy link
Collaborator

@Hee-Jae Hee-Jae commented Aug 5, 2021

변경 사항

  1. eXtreme Programming 이란?
  2. 다른 애자일 방법론과 구분되는 특징
  3. XP 실천 방법

Issue 참고 : Note Status Check

Point of discussion

분위기 전환겸 애자일로 찾아와 봤습니다ㅎㅎ

Reference

@ggjae
Copy link
Collaborator

ggjae commented Aug 7, 2021

XP에 대한 설명들을 오랜만에 접할 수 있어 좋네요. 이런 다양한 개발방법론들은 정보처리기사에도 많은 도움이 될 것 같아요~

Copy link
Collaborator

@JuseobJang JuseobJang left a comment

Choose a reason for hiding this comment

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

XP~ 오랜만 애자일 방법론 잘봤습니다 ㅎㅎ 이게 실제로 현업에선 어떻게 활용 되는지 궁금 하네요

Copy link
Collaborator

@yoongoing yoongoing left a comment

Choose a reason for hiding this comment

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

에자일에 테스트코드가 없다는게 신기합니다.....
테스트코드가 없는 개발물을 신뢰할 수 있을까요 흠

Copy link
Collaborator

@KimKwon KimKwon left a comment

Choose a reason for hiding this comment

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

처음 접해본 지식인데, 제가 지향하고 있는 개발방법과 비슷한 것 같습니다!
잘 읽었습니다 🎉

@Hee-Jae
Copy link
Collaborator Author

Hee-Jae commented Aug 14, 2021

에자일에 테스트코드가 없다는게 신기합니다.....
테스트코드가 없는 개발물을 신뢰할 수 있을까요 흠

XP에도 테스트 코드는 있습니다. 페어 프로그래밍을 함으로써 개발과 동시에 테스트 코드가 작성되고, 개발과 동시에 테스트가 진행된다는 것이 XP의 특징입니다. 물론 다른 애자일 프로세스에도 테스트 코드를 개발과 동시에 작성할 수 있습니다. 다만 이러한 방식이 XP의 두드러지는 특징이라고 볼 수 있습니다.

Copy link
Owner

@Seogeurim Seogeurim left a comment

Choose a reason for hiding this comment

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

XP 너무 잘 봤습니다. 안 그래도 최근에 애자일 방법론 살펴봤었는데 이해가 새록새록 되네요 !!

Comment on lines +41 to +42
#### Simple Design
개발을 하다 보면 코드가 복잡해진다. 따라서 **코드를 가능한 심플하게 설계를 한다.** (KISS 원칙 : Keep It Small, Simple)
Copy link
Owner

Choose a reason for hiding this comment

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

오 KISS ~~ 💋

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

그... 그런 방 아닙니다..

Comment on lines +44 to +48
#### Test-Driven Development
XP에서 가장 중요한 요소이다. **테스트를 거치면서 코딩한다.**

#### Pair Programming
**두명 혹은 그 이상의 프로그래머가 함께 코딩을 한다.** 코딩 하는 역할, Quality Assurance 역할 등으로 나누어서 개발과 테스트에 모두 집중한다.
Copy link
Owner

Choose a reason for hiding this comment

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

XP에서 코딩을 할 때 테스트도 같이 개발을 한다고 했는데, 테스트와 코딩은 어떤 것이 먼저 이루어지거나가 없이 "동시에" 이루어지나요? 아니면 TDD처럼 테스트 코드를 먼저 작성한 후 개발을 진행하나요?

그리고 페어 프로그래밍에서 코딩 역할과 QA 역할으로 나뉜다고 그랬는데, 코딩과 QA는 각각 한 사람이 맡는건가요? 아니면 한 사람이 코딩과 QA를 모두 맡고, 다른 사람이 그와 관련된 아이디어를 던져주는 방식으로 진행되나요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

우선 첫번째 질문에 대한 답을 드리자면 일반적으로 XP에서는 테스트와 코딩이 "동시에" 이루어집니다. 물론 코딩을 하는 사람과 테스트 코드를 작성하는 사람의 역량 차이에 따라 둘 중 하나가 먼저 마무리되는 경우는 있습니다.
다만 주의해야할 점이 있습니다. "Test-Driven Development 란 테스트와 코딩을 동시에 하는 것이다." 라고 이해하시면 안됩니다. Test-Driven Development 는 말 그대로 테스트 주도 개발입니다. 개발을 하면서 항상 단위 테스트를 거치는 방법인데, 여러 방법이 있겠죠. 테스트 코드 먼저 작성하고 개발하기, 개발 후에 테스트 코드 작성하기, 둘 다 동시에 하기. 전부다 Test-Driven Development 라고 할 수 있습니다. XP에서는 이러한 테스트 주도 개발 메커니즘을 채택했다고 보시면 됩니다.
그런데 제가 왜 첫단에 "동시에" 이루어 진다고 답을 했는가, 그 이유는 밑에 질문하신 페어 프로그래밍과 관련있습니다.

페어 프로그래밍에서는 두 사람이 한 팀이되어 한명은 코딩, 한명은 QA를 위한 테스트 코드를 만듭니다. XP에서는 이런 방식으로 TDD가 진행됩니다. 서로 협력하는 과정에서 당연히 커뮤니케이션이 오고가니 서로 아이디어를 던져줄 수는 있습니다. 그런데 일방적으로 한 사람은 아이디어만 주고 한 사람은 아바타 마냥 코딩만하는건... 그것도 어찌보면 페어니까 페어 프로그래밍이라고 할수도 있겠네요ㅎㅎ 다만 XP에서는 코딩과 QA를 각각 한 사람이 맡는 것을 페어 프로그래밍이라 칭합니다.

Copy link
Owner

Choose a reason for hiding this comment

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

아 덕분에 검색을 해도 모호하게 나오던 개념을 확실하게 잡을 수 있었네요 !! 정말 감사합니다 ㅎㅎㅎㅎ!! 확실히 이해가 되었어요 ㅎㅎ

@Seogeurim Seogeurim merged commit a063237 into main Aug 15, 2021
@Seogeurim Seogeurim deleted the SoftwareEngineering/Heejae branch September 4, 2021 14:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants