디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

언제 코드를 다시 써야 하는가.

Dunkirka갤로그로 이동합니다. 2021.07.02 10:44:03
조회 272 추천 0 댓글 0
														

https://gamasutra.com/blogs/MasonRemaley/20210628/384189/When_To_Rewrite.php



다시 쓰는 시기

text message quote: damn this is a great rant, IMO you could make an entire blog post out of this

좋아, 왜 안돼? :)

백스토리

그래서 프로밋 로이의 이 트윗은 최근에 많은 관심을 받았고, 정말 훌륭한 조언이라고 생각한다.




결국 많은 건축과 인프라 코드를 구축하게 되는 사람으로서, 내가 충분히 강조할 수 없는 한 가지가 있는데, 바로 가장 간단한 일을 한다는 것이다. 미래의 요구 사항을 상상하거나 잘못 정의된 잠재적 사용 사례를 지원하려고 하지 마십시오. 그것은 항상 나중에 바뀔 것이다.

— Promit Roy ⚡ (@promit_roy) 2021년 6월 18일


초심자들은 이 충고를 듣는 데 어려움을 겪는 경향이 있다. 나는 이것이 부분적으로 많은 학교들이 여전히 반대되는 접근법을 가르치기 때문이기도 하지만 계획 자체가 매력적이기 때문이라고 생각한다. "물론, 이번에는 내 계획이 무산되지 않았지만, 다음 번에는 달라질 거야!"

이것이 좋은 조언인지 확실하지 않은 경우, 응답에 동의하는 이 주제에 대해 신뢰해야 할 몇 가지 사용자:




경험이 적은 개발자들이 미래의 요구사항/애플리케이션에 대한 설계가 순포지티브로 얼마나 드물게 나타나는지를 이해하기는 어렵다. https://t.co/lusGdzkfd3

— John Carmack (@ID_AA_Carmack) 2021년 6월 18일


나는 많은 계획을 세웠고, 그것은 항상 시간 낭비였고, 어쨌든 나는 큰 덩어리를 다시 써야 했다. 왜냐하면 요구사항이 바뀌었거나, 아니면 내가 코드를 쓰기 전까지 그 문제를 이해하지 못했기 때문이다.

— 톰 포사이스 (@tom_forsyth) 2021년 6월 18일



좋아, 그럼 이제 결정됐어?

좋아

내 소릴 들어보자.


문제


그래서, 당신은 확신하고 있었군. 당신은 이 충고를 마음에 새기고, 가능한 한 단순하게 유지하는 방법의 각 단계마다 거대한 소프트웨어를 만들기 위해 떠나게 된다. 언젠가는 피할 수 없는 일이 일어날 것이다.

너는 비종교적인 변화를 만들어야 한다.

괜찮아! 결국 이런 날이 올 줄 알았잖아! 사실, 네가 계획했잖아! 하지만… 이 시나리오를 처리하는 가장 생산적인 방법은 무엇일까?

때때로, 새로운 니즈를 지원하기 위해 이미 구축한 것을 어떻게 수정할 수 있는지 쉽게 알 수 있다. 어떤 때는, 당신이 만든 것이 현재의 니즈와 너무 상충해서 처음부터 다시 쓰는 것이 더 나은 접근법처럼 보일 때도 있다.

물론 그것은 트레이드오프지만, 이 포스트에서 나는 어떤 상당한 규모의 시스템에서도 다시 시작할 가치가 있는 것은 매우 드물다고 주장하고 싶다.

여기서 문제는 몇 줄의 코드를 교체하느냐가 아니라, 어떤 방법으로 교체하느냐 하는 것이다. 원래 코드가 남아 있지 않을 때까지 시스템을 점진적으로 변경할 수 있으며, 그것은 유효한 옵션으로, 이 주장의 목적상 나는 다시 쓰기를 고려하지 않는다.

보통 처음부터 다시 쓰고 싶은 유혹은 두 가지다.


  1. 이미 한 번 썼는데, 지금 가지고 있는 지식으로 다시 쓰려면 얼마나 걸릴까?
  2. 네가 지금 하려고 하는 것은 네가 이미 지었던 것과 상충하고 있어, 점진적으로 변화를 만드는 것은 너무 어려울 거야!

문제는, 이 두 가지 믿음이 서로 모순된다는 거야!

당신이 짓고 있는 것이 이미 지은 것과 너무 비슷해서 다시 쓰기가 쉬울 것이라는 것이 사실이라면, 그것을 다시 쓰는 것은 의미가 없다. 만약 그것이 너무 달라서 점진적으로 그것을 수정하는 것이 까다롭다면, 다시 쓰는 것 또한 엄청난 투자가 될 것이다- 그것은 분명한 승리가 아니다.


발생할 수 있는 일


여기, 현실적으로, 대규모 재작성 중에 일어나는 경향이 있다.

일은 순조롭게 시작된다. 넌 기본적으로 이미 가지고 있던 것을 만들고 있지만, 더 깨끗하고, 기분도 좋아.

그리고 나서 문제가 시작된다. 알고 보니, 원래 하던 대로 일을 처리한 데에는 사실 좋은 이유가 많이 있었다. 그리고 당신은 그 이후로 대부분의 것들을 잊어버렸다.

네 새 디자인이 잘 안 되더라. 오, 그래, 괜찮아, 가는 대로 조절해도 돼-오, 그것도 별로 효과가 없어.

등등.

결국, 다시 쓰는데 많은 시간을 소비한 후에, 여러분은 기본적으로 여러분이 이미 가지고 있던 것을 다시 만들어내거나, 새로운 것을 희생하면서 기존의 문제를 해결하는 것을 하게 된다. 때로는 더 나은 시스템으로 귀결되기도 하지만, 대개 이전 구현에 대한 점진적인 변경을 통해 보다 신속하게 구축할 수 있었던 시스템이다.

당신이 결정 시간에 비용을 지불하지 않기 때문에 다시 쓰기로 결정하는 것은 쉽다. 일련의 점진적인 변화를 통해 목표를 달성하기로 결정하는 것은 어렵다. 왜냐하면 어떻게 해야 하는지에 대해 전면적으로 생각해야 하기 때문이다. 가끔은 불가능해 보이기도 하지만, 종종, 당신은 단지 그것에 대해 조금 생각할 필요가 있다.


그렇다면, 언제 다시 써야 할까?

IMO, 코드 조각이 작거나 매우 잘 캡슐화되었을 때만, 다시 쓰기의 비용이 명백해지거나, 점진적으로 변경을 시도했다가 실패한 경우.

일하는 시스템은 귀중한 자산이다. 그건 효과가 있다. 그것은 당신이 새로운 아이디어를 저렴하게 시험할 수 있게 해준다. 그것을 당연하게 여기지 마라.

추천 비추천

0

고정닉 0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 주위 눈치 안 보고(어쩌면 눈치 없이) MZ식 '직설 화법' 날릴 것 같은 스타는? 운영자 24/04/29 - -
AD [원신] 신규 5성 아를레키노 등장 운영자 24/04/26 - -
공지 게임 기획 관련 사이트 모음 (2021.5) [7] Dunkirka갤로그로 이동합니다. 18.10.30 1518 1
공지 게임기획 잘하는 방법 Dunkirka갤로그로 이동합니다. 19.08.29 968 3
공지 게임 기획서(GDD) 총정리 (2018.11) [3] Dunkirka갤로그로 이동합니다. 18.10.30 3030 3
공지 게임 디자인 관련 추천 도서 (2018.11) [6] Dunkirka갤로그로 이동합니다. 18.11.12 5720 1
555 게임하면서 컴터 켜놓기만해도 쌀먹 쌉가능?? 필독 ㅇㅇ(146.70) 04.12 21 0
552 제19회 경기게임 오디션 안내 스펙토리갤로그로 이동합니다. 03.26 25 0
551 아우디 로고 디자인 수정 건의. TXT 미노루갤로그로 이동합니다. 03.13 34 0
550 아우디 로고 일케 바꾸면 훨 좋을 듯. TXT 텐구아레스갤로그로 이동합니다. 02.25 32 0
548 김실장 채널 꽤 괜찮네 게갤러(112.156) 23.11.29 151 1
547 게임 기획/개발/디자인 경험을 살려 창업을 할 수 있다면? 함께가자(14.4) 23.11.17 106 0
545 게임 개발 (진지한 글 주의) 부트캠프 후기 아이폰어플개발(125.131) 23.09.25 193 0
544 [취업을 도와줄 PM 템플릿/자료] 개발자갤로그로 이동합니다. 23.09.22 112 0
542 게임 만들기 ㅇㅇ(203.228) 23.08.03 101 0
541 비대면진료,맞춤주치의 닥터루시드를 만들고자 합니다_크로스앱개발자2(RN) 맞춤주치의(39.123) 23.08.01 54 0
540 [정보] 게임 개발에 관심이 있으신 경우 ㅇㅇ(210.103) 23.06.30 359 1
534 게임 기획 갤을 찾아온 뉴비들아 현업 질문 간절하면 연락해라 겜갤러(221.150) 23.02.20 444 2
533 갤에 유용한글 만네 ㅇㅇ(210.95) 22.12.26 218 0
532 해커같은 애미 뒤진 련 빼고 암살자나 쳐 내지 ㅇㅇ(220.122) 22.12.18 154 0
531 야 늬들은 게임잡에 포폴 올리고 스카웃 신청 받은 적 있냐? [1] ㅇㅇ(1.241) 22.11.23 338 0
530 요즘 펄어비스 내부어떠냐 아직도 개씨발이냐? [2] ㅇㅇ(118.235) 22.11.18 438 0
529 uv맵 좀 징그럽지 않음 ? ㅇㅇ(58.141) 22.10.13 163 0
526 기획 관련 질문입니다 [1] ㄱㄱ(128.134) 22.08.20 345 0
525 언리얼엔진5 루멘 라이팅의 퍼포먼스를 보여주는 해외 작품. 슬기로운스캔생활갤로그로 이동합니다. 22.08.13 190 0
522 갤 사람이 거의 없나? [1] 도기갤로그로 이동합니다. 22.06.04 356 0
518 이런 갤이 있었네 [1] ㅇㅇ(49.142) 22.03.18 301 0
517 혹시 만든 겜 홍보해도돼? [6] 엠제이마크갤로그로 이동합니다. 22.03.10 873 7
515 메타버스플랫폼 기획서때문에 예시를 만들어야하는데 사용할만한 툴 있을까요? [1] ㅇㅇ(122.34) 22.02.27 416 0
514 주딱 머함? ㅇㅇ(124.197) 22.01.16 211 0
513 창세기전 > 파판 > 원신 철학이 없는 차이나치 게임 ㅇㅇ(121.160) 22.01.02 239 0
512 보이스 게임 만들어보신 분 ㅠㅠ [1] ㅇㅇ(110.9) 22.01.02 144 0
511 여기 유익한 자료 엄청 많구나 ㅇㅇ(182.213) 21.12.22 306 0
510 이거 뭘까요?? ㅇㅇㅋㅋ(220.70) 21.12.06 307 0
509 여기 게임 디자인 관련 갤러리인가요? 아니면 게임 개발에 관련된 것? [1] 팡팡갤로그로 이동합니다. 21.11.19 616 0
508 혹시 이거 서로 같은 거야? ㅇㅇ(14.33) 21.11.06 201 0
507 이렇게 양질의 정보가 가득한 갤이 있다니 ㅇㅇ(106.102) 21.10.23 296 1
505 번역) 벤 브로드 - 게임 디자이너가 되는 방법 [2] 취업전선갤로그로 이동합니다. 21.08.03 947 7
504 번역) 벤 브로드 - 게임 업계에서 직업을 갖는 방법 취업전선갤로그로 이동합니다. 21.08.03 401 2
503 번역) The Door Problem: 직군별 문에 대한 문제 접근법 취업전선갤로그로 이동합니다. 21.08.02 333 4
502 안녕하세요 간만에 와서 인사글 써봅니다 ㅇㅇ(121.170) 21.07.22 204 2
언제 코드를 다시 써야 하는가. Dunkirka갤로그로 이동합니다. 21.07.02 272 0
500 온라인 게임 개발자가 Aim Lab에 관심을 가지는 이유 Dunkirka갤로그로 이동합니다. 21.07.02 419 0
499 생각한 것보다 까다로운 게임 현지화 Dunkirka갤로그로 이동합니다. 21.06.28 399 0
497 게임 디자인 과학이 중요한 이유 Dunkirka갤로그로 이동합니다. 21.06.14 745 3
496 개발사와 기획서 Dunkirka갤로그로 이동합니다. 21.06.14 366 0
495 게임 순위 차트 살펴보기 Dunkirka갤로그로 이동합니다. 21.06.07 433 0
494 게임 스토어 페이지의 '정보' 섹션을 개선하는 방법 Dunkirka갤로그로 이동합니다. 21.06.04 205 0
493 플레이어 보상하기 Dunkirka갤로그로 이동합니다. 21.05.30 480 0
492 다잉 라이트의 자연적인 이동 시스템 Dunkirka갤로그로 이동합니다. 21.05.30 277 1
491 튜토리얼 이후 플레이어 잡아두기 Dunkirka갤로그로 이동합니다. 21.05.27 265 0
490 마야 vs 블렌더 [1] Dunkirka갤로그로 이동합니다. 21.05.26 6121 1
489 생산성을 높이는 점진적 프로그래밍 Dunkirka갤로그로 이동합니다. 21.05.26 447 0
487 야근 안 하고 라이브 개발하기 Dunkirka갤로그로 이동합니다. 21.05.25 272 0
486 인터페이스와 스토리텔링 Dunkirka갤로그로 이동합니다. 21.05.25 363 0
485 게임 경제 디자인의 기초 Dunkirka갤로그로 이동합니다. 21.05.25 338 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2