[우테코] 점진적 리팩터링: 달리는 기차의 바퀴를 갈아끼우기

2023. 9. 19. 15:00· 우아한테크코스5기
목차
  1. 💋 인트로
  2. 💋 달리는 기차의 바퀴를 갈아끼울 수 있을까?
  3. 💋 다 뜯어고치자: 원대한 재설계의 꿈
  4. 💋 MSA가 무조건 정답은 아니다!
  5. 💋 참고자료
반응형

 

 

💋 인트로

이 포스팅은 우테코 코치 구구의 강의를 듣고 깃짱이 정리한 글입니다. 

 

💋 달리는 기차의 바퀴를 갈아끼울 수 있을까?

  • 우리는 처음부터 완벽한 설계와 완벽한 코드를 작성할 수 없다.
    • 시장 상황은 계속 바뀌고, 참여하는 개발자들의 역량도 계속 변한다.
    • 기술은 발전하고, 지금 사용하던 기술은 언젠가 레거시가 된다.
  • 달리는 기차(운영중인 서비스)의 바퀴를 바꿀 수 있어야 한다.
    • 점진적인 리팩터링을 통해서!

 

💋 다 뜯어고치자: 원대한 재설계의 꿈

  • 결론부터 말하면, 지금 코드를 다 뜯어고치는건 좋은 방법이 아닐 때가 많다고 한다.
  • 물론 현재 프로젝트의 규모가 작다면, 레거시에 허덕이는 것보다는 그냥 새로 만드는 것이 더 빠를 때도 많을 수 있다.
  • 하지만, 원대한 재설계, 즉 뜯어고치는 것은 아래와 같은 순서로 망하게 될 수 있다.
    • 갑자기 옆 경쟁사에서 쿠폰을 뿌린다거나, 이벤트를 연다면 일단 레거시라도 막 갈겨서라도 우리도 서비스를 제공해야 한다.
    • 레거시에 허덕이다가 팀 내 생산성이 떨어짐.
    • 새로운 개발자가 오면서 이상한 코드를 설명해 줘야 하기 때문에 생산성이 더 떨어짐.
    • 팀 내 불만이 폭발해서, 관리자에게 재설계를 요구하고, 허락을 받음.
    • 기존 돌아가는 서비스를 중단하고 재설계할 수는 없기 때문에 새로운 타이거 팀은 만들고 잘하는 사람들을 다 모음.
    • 레거시 팀은 유지보수를 하고, 타이거팀은 돌아가는 서비스를 전부 새로 만들게 됨.
    • 하지만, 레거시 팀에게도 계속해서 새로운 요구사항이 발생함.
    • 타이거팀은 기존 시스템 기능을 모두 제공하는 새로운 시스템을 개발하는 동시에 레거시 팀에 새롭게 발생하는 요구사항도 반영해야 한다.
    • 초창기 타이거팀 팀원은 너무 지쳐서 모두 퇴사하게 되고, 새 시스템은 새로운 요구사항을 따라가는 동안 또 레거시 코드가 생기게 됨.
    • 새로운 팀원을 뽑았는데, 새로운 팀원이 다시 시스템이 쓰레기라서 다시 만들자고 함.
    • 무한반복

 

💋 MSA가 무조건 정답은 아니다!

  • 모놀리스는 레거시와 동의어가 아니다. 모놀리스는 선택이다.
    • 레거시 역시 나쁜 말이 아니다. 레거시가 있기 때문에, 그 회사가 계속 사업을 유지할 수 있었던 것이다.
    • 처음 시작하는 서비스에서는 모놀리스로 하는 것이 바람직하다.
    • 처음부터 MSA로 시작하는 스타트업이 있다면, 도망가는 것을 추천!
  • 사례
    • 전 GitHub CTO, "지난 10년간 가장 큰 아키텍처 실수는 풀 마이크로서비스로 전환한 것”
    • 쿠팡의 사례
      • 2013년 전환 시작
      • 2015년 전환 종료
    • 배달의민족 마이크로서비스 여행기

 

 

💋 참고자료

  • https://www.youtube.com/watch?v=zNUErq5ESbw
도움이 되었다면, 공감/댓글을 달아주면 깃짱에게 큰 힘이 됩니다!🌟

 

반응형

'우아한테크코스5기' 카테고리의 다른 글

[우테코] 리팩터링 미션 회고 (feat. 우아한 객체지향)  (6) 2023.10.30
[우테코] Domain Driven Development(도메인 주도 개발)이란?  (3) 2023.10.17
[우테코] 톰캣(HTTP Server) 구현하기 미션 회고  (0) 2023.09.15
[우테코] 레벨3 레벨인터뷰: 인터뷰 실제 대화 스크립트, 피드백  (0) 2023.08.29
[우테코] 레벨로그: 레벨3 동안 공부한 내용들을 정리하며  (2) 2023.08.29
  1. 💋 인트로
  2. 💋 달리는 기차의 바퀴를 갈아끼울 수 있을까?
  3. 💋 다 뜯어고치자: 원대한 재설계의 꿈
  4. 💋 MSA가 무조건 정답은 아니다!
  5. 💋 참고자료
'우아한테크코스5기' 카테고리의 다른 글
  • [우테코] 리팩터링 미션 회고 (feat. 우아한 객체지향)
  • [우테코] Domain Driven Development(도메인 주도 개발)이란?
  • [우테코] 톰캣(HTTP Server) 구현하기 미션 회고
  • [우테코] 레벨3 레벨인터뷰: 인터뷰 실제 대화 스크립트, 피드백
깃짱
깃짱
연새데학교 컴퓨터과학과 & 우아한테크코스 5기 백엔드 스타라이토 깃짱
반응형
깃짱
깃짱코딩
깃짱
전체
오늘
어제
  • 분류 전체보기
    • About. 깃짱
    • Weekly Momentum
      • 2024
    • PROJECT
      • AIGOYA LABS
      • Stamp Crush
      • Sunny Braille
    • 우아한테크코스5기
    • 회고+후기
    • Computer Science
      • Operating System
      • Computer Architecture
      • Network
      • Data Structure
      • Database
      • Algorithm
      • Automata
      • Data Privacy
      • Graphics
      • ETC
    • WEB
      • HTTP
      • Application
    • C, C++
    • JAVA
    • Spring
      • JPA
      • MVC
    • AI
    • MySQL
    • PostgreSQL
    • DevOps
      • AWS
      • 대규모 시스템 설계
    • frontend
      • HTML+CSS
    • NextJS
    • TEST
    • Industrial Engineering
    • Soft Skill
    • TIL
      • 2023
      • 2024
    • Linux
    • Git
    • IntelliJ
    • ETC
      • 日本語

블로그 메뉴

  • 홈
  • 깃허브

인기 글

최근 글

태그

  • TDD
  • 레벨로그
  • 람다와스트림
  • 함수형프로그래밍
  • Stream
  • 상속
  • 우아한테크코스5기
  • 조합
  • 예외
  • 람다
  • 우테코5기
  • 스트림
  • 우아한테크코스
  • 우테코
  • OOP
  • Java
  • lamda
  • 상속과조합
  • Composition
  • 컴포지션
hELLO · Designed By 정상우.v4.2.0
깃짱
[우테코] 점진적 리팩터링: 달리는 기차의 바퀴를 갈아끼우기
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.