# XP

7개의 포스트
post-thumbnail

Chapter02. 리팩터링 원칙

리팩터링 정의 > 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 기법 누군가 리팩터링하다가 코드가 깨져서 며칠이나 고생했다 라고 한다면, 십중팔구 리팩터링한 것이 아니다. 두개의 모자 🧢 소프트웨어를 개발할 때 목적이 기능 추가 냐 리팩터링이냐를 명확히 구분해야 한다. 기능을 추가할 때는 기존 코드는 절대 건드리지 않고, 오로지 새 기능만 추가한다. 리팩터링할 때는 기능 추가는 절대로 하지 않고, 오로지 코드 재구성에만 전념한다. > 하지만 보통 소프트웨어를 개발하는 동안 두 모자를 자주 바꿔 쓴다…. > 리팩토링하는 이유 소프트웨어 설계가 좋아진다. 소프트웨어를 이해하기 쉬어진다. 버그를 쉽게 찾을 수 있다. 프로그래밍 속도를 높일 수 있다. 언제 리팩터링해야 할까? 3의 법칙 3️⃣ 처음에는 그냥 한다.

2023년 7월 8일
·
0개의 댓글
·
post-thumbnail

CI/CD

CI CI는 Continuous Integration의 약어로, 지속적인 통합을 의미한다. 소프트웨어 개발 과정에서 개발된 코드를 지속적으로 통합하고 빌드하면서 코드 품질을 유지하고 향상시키는 프로세스이다. 이를 통해 버그나 오류를 최대한 빨리 발견하고 수정할 수 있어 개발 생산성을 높이는 데에 큰 도움이 된다. CI 유래 CI의 개념은 1990년대 후반에 등장한 개념으로, 익스트림 프로그래밍(XP)의 창시자 중 한 명인 Martin Fowler가 처음 제시된 개념이다. CI 개념 이전에는 개발자들은 머지데이를 따로 정해, 지금까지 해온 개발작업들을 모두 병합하는 과정을 거쳤다. 어느정도 규모를 가진 코드의 양끼리 결합하다 보니, 병합시 문제가 발생하는 경우 디버깅도 어렵고, 시간도 많이 필요했다. 또한 병합 이전 빌드와 테스트 과정을 매번 반복해야 한다는 점에서 비효율적인 업무 운영이 이루어지기도 했다. CI 가 실제 개발에서 중요하다고 판단되기 시작한 것은 20

2023년 5월 12일
·
0개의 댓글
·

애자일 방법론, XP

애자일 방법론 스크럼 scrum 적응형 소프트웨어 개발방법론 ASD 기능 주도 개발방법론 FDD 동적 시스템 개발방법론 DSDM 크리스탈 패밀리 익스트림 프로그래밍 XP 린 소프트웨어 개발방법론 Lean 애자일 UP AUP XP의 기본원리 Planning Game 개발계획 수립 고객과 다양한 스토리카드를 통한 개발계획 작성 Small Release 짧은 배포 주기 짧은 주기로 계속해서 제품을 업데이트 해나감 Metaphor 문장 형태로 시스템 아키텍처 기술 공통의 naming system 개발 고객과 개발자 간 의사소통 언어 Pair Programming 개발자 2명의 공동작업 Continous Intergation 지속적인 통합 작업이 끝날때마다 지속해서 통합 및 테스트 Simple Design 단순 설계 비즈니스 가치에 집중하고 내일을 고려하는 디자인은 최대한 배체 리펙토링을 통해 개선 Test 항상

2022년 12월 7일
·
0개의 댓글
·

제목

테스트 테스트 테스트 테스트 테스트 테스트 > ㄴㄹㄴㄹㄴㄹ 링크텍스트

2022년 11월 2일
·
0개의 댓글
·

XP(eXtreme Programming) 기법

XP란 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법 쉽게 말해 몇 개의 요구사항이 적용된 일부 기능이 완성될 때마다 고객에게 보여주고 반응을 확인하는 과정을 최종 제품이 완성될 때 까지 반복하는 것 짧고 반복적인 개발 주기, 단순한 설계, 고객의 적극 참여를 통한 소프트웨어를 빠르게 개발하는 것이 목적 릴리즈 테스트마다 고객을 참여 시킴 소규모 인원의 개발 프로젝트에 효과적 XP 핵심 가치 5가지 의사소통 단순성 존중 용기 피드백 XP 개발 프로세스 1. 사용자 스토리 고객의 요구사항을 간단한 시나리오로 표현한 것 2. 릴리즈 계획 수립 몇 개의 스토리가 적용되어 부분적으로 기능이 완료된 제품을 제공하는 것을 릴리즈라 한다. 부분 혹은 전체 개발 완료 시점에 대한 일정을 수립 3. 스파이크

2022년 1월 26일
·
0개의 댓글
·
post-thumbnail

[정보처리기사] XP (eXtreme Programming)

2020년 4회차에 나온 문제 - XP 개념 Agile 방법론의 기법 중 하나입니다. 개발자 - 관리자 - 클라이언트 가 한 팀이 된 것처럼 움직이는 것이 특징이다. 고객의 요구사항을 잘 받아들인다.(…) XP을 도입해야하는 배경 현대에 신속한 개발이 요구된다 Time To Market (적시에 배포하는 것) 이 시장에 대응성이 중요하다. (시장 선점효과도 있을 것이고, 앱개발이라면 버그로 인해 앱 이탈률을 막을 수 있을 것입니다.) 유연한 대처가 중요하다. (비슷한 맥락이죠) XP Practice (실천방안) Pair Programming (짝프로그래밍) “Pair” 단어에서도 알 수 있듯이 “함께” 수행하는 프로그래밍을 의미합니다. 추가로 책임도 나누는 것도 포함된 개념입니다. Test-Driven-Developement (테스트 주도 개발) TDD 라고 줄여 부르기도 합니다. 구현하기 전에 테스트 케이스를 먼

2021년 4월 28일
·
0개의 댓글
·
post-thumbnail

처음 맡은 프로젝트 설계 : 어떻게 시작하지?

📕 개요 >어느날 갑자기 회사에서 제품 설계를 나에게 지시한다면? 어느날 갑자기 팀 리더가 퇴사하면서 내가 프로젝트의 설계를 담당하게 됐다면? 이런 일은 개발자라면 언젠가 있을수도 있는 일인 것 같습니다. 저는 최근에 처음으로 회사의 새로운 프로젝트의 설계를 담당하게 되었습니다. 처음 든 생각은 >어디서부터 시작해야 하지? 무엇을 해야하지? 내가 잘 할 수 있을까? 팀의 협업을 잘 작동하게 하려면 어떻게 설계해야하지? 등등 이었습니다. 이 글은 제가 설계를 담당하게 된 처음, 참고한 서적과 조언들에 대한 글입니다. 📗 본문 📚 처음엔 무슨 책을 읽기 시작했는가 우선 가장 먼저 한 것은 왠지 도움될 것 같은 책들을 마구잡이로 읽기 시작했습니다. 클린아키텍쳐 : "설계는 아키텍쳐지! 이걸 읽어보자!" DDD : "예전에 어디서 들어봤는데 좋다던데 읽어보자!" TDD : "TDD워크숍도 좋았고 실제로 해보니 좋던데! 제대로 읽어보자

2020년 4월 17일
·
6개의 댓글
·