본문 바로가기

기타46

리팩토링 스터디 #4 - 기본적인 리팩터링 2주만에 쓰는 리팩토링 포스트입니다. 스터디 자체는 정상적으로 진행했었지만, 시험기간이 겹치다보니 정리 후 업로드하는데 다소 시간이 걸렸네요. 오랜만에 읽는 포스트라 기억이 흐릿할 수 있으니 챕터의 자세한 내용은 리팩토링 스터디 #3.5 - 내용 미리보기를 참고해주세요. 성능 이슈 첫 시간에 올렸던 궁금했던 점 중 하나인 성능 이슈에 대한 이야기가 있었습니다. "우선 리팩토링부터 하고, 개선은 나중에 하면 된다!" 라고 하던 저자의 말이 있었는데 이번 시간에서 그 이유가 어느정도 설명되었습니다. 최적화의 법칙(당신이 전문가가 아니라면 최적화는 하지 마라. 만약 당신이 전문가라면, 그래도 하지 마라.) 에 나와있는 것처럼 생각보다 우리가 만든 프로그램에선 최적화가 필요하지 않다는 의미인데, 함수 한 두 단.. 2020. 11. 3.
리팩토링 스터디 #3.5 - 내용 미리보기 추석 연휴와 한글날로 연휴를 보내고 리팩토링 스터디 시간이 다시 돌아왔습니다. 이번 회차에는 기본적인 리팩토링 기법들을 알아봅니다. 기능에 따라 정-반 구조로 이루어진 기법이 대부분이기 때문에 하나를 이해하면 다른 하나도 자연스럽게 이해가 됩니다. 처음부터 하나씩 살펴보겠습니다. 함수 추출하기 Extract Function 함수 추출하기는 가장 빈번하게 사용되는 리팩토링 기법입니다. 코드 블럭을 찾아 어떤 기능을 하고 있는지 파악한 다음, 독립된 하나의 함수로 추출하고 적절한 이름을 붙여주면 됩니다. 특히 이름을 붙여주는 부분은 아래에 나오는 기법들에 필수적으로 들어간다고 봐도 무방하니 모든 작업마다 염두해 두면 좋을 것 같습니다. 그렇다면 함수 추출하기는 언제 하는 것이 좋을까요? 가장 먼저 눈에 들어.. 2020. 10. 12.
리팩토링 스터디 #3 - 테스트 구축하기 & 리팩토링 카탈로그 보는 법 3주차 리팩토링 스터디에서는 테스트의 중요성과 구축 방법에 대해 알아보았습니다. Mocha.js와 같은 테스트 프레임워크를 통해 어떻게 테스트를 구성하는지, 어느 부분에서 테스트를 추가하는지 등의 주된 내용입니다. 본문에선 책의 내용보단 스터디를 진행하며 나왔던 곁들이면 좋을 내용들을 위주로 포스팅합니다. 책에 실려있던 내용들은 리팩토링 스터디 #2.5 - 내용 미리보기를 참고해주세요. 테스트 코드 챕터의 주제가 테스트인 만큼 어느때보다 테스트 자체에 대한 이야기가 많이 나왔습니다. 필요성에 대해서는 크게 의견이 갈리지는 않았습니다만, TDD(Test-Driven Development, 테스트 주도 개발) 에 대해서는 호불호가 꽤 나뉘었다고 합니다. 필드에서는 책에서의 예들이 완전히 적용되지않는 다양한 .. 2020. 9. 29.
리팩토링 스터디 #2.5 - 내용 미리보기 리팩토링 스터디도 3주차가 다가오고 있습니다. 추석 기간 동안의 휴식을 고려해 이번 주차는 양이 그리 많지 않네요. 챕터 4 - 테스트 구축하기부터 챕터 5 - 리팩터링 카탈로그 보는 법까지 예정되었습니다. 본문의 내용을 정리하는데에도 시간이 많이 걸리지 않았으니, 바로 시작하겠습니다. 테스트 코드 저자는 리팩터링은 가치있는 도구이지만, 그것만으로는 부족하다고 말합니다. 리팩터링을 하는 근본적인 이유는 작업 시간의 단축으로 인한 효율적인 개발이라고 지난 회차에서 정리했었는데요. 이러한 작업 시간 단축을 위해 필요한 것이 바로 견고한 테스트 스위트(test suite)입니다. 단순히 한 번 쓰고 버릴 테스트 코드로 끝나는 것이 아닌 지속 가능한 테스트 스위트를 만들어 내는 것은 중요합니다. 프로그램이 제대.. 2020. 9. 26.
리팩토링 스터디 #2 - 리팩토링 원칙 & 코드에서 나는 악취 2주차 리팩토링 스터디입니다. 이번 스터디의 내용은 챕터 2: 리팩토링 원칙부터 챕터 3: 코드에서 나는 악취까지의 내용입니다. 본 포스팅에서는 스터디를 진행하며 나왔던 이야기 위주로 정리합니다. 모두 곁들여서 들으면 좋을 내용들이고, 챕터에 대한 자세한 내용은 리팩토링 스터디 #1.5 - 내용 미리보기를 참고해주세요. 그럼 시작하겠습니다. 테스트의 중요성 책에서는 테스트의 중요성을 집요하리만큼 역설하고, 저자 스스로도 테스트를 사랑한다고 말합니다. 스터디원들도 테스트의 필요성에 대해서는 대체로 동의하였지만 저자만큼의 빈도로 테스트를 수행하는 사람은 없었습니다. 필요에 의한 테스트를 꾸준히 진행하는 건 훌륭한 습관이지만 자칫 테스트를 위한 테스트가 될 수 있다는 것은 조심해야 할 것 같습니다. 테스트 자.. 2020. 9. 21.
리팩토링 스터디 #1.5 - 내용 미리보기 이전에 올렸던 리팩토링 스터디에 관한 포스팅은 곁들여서 들으면 좋을 이야기들을 위주로 포스팅하기 때문에, 본문의 내용을 따로 정리할만한 글이 필요하다고 느껴졌습니다. 2주차의 범위인 챕터 2~3의 본문 내용을 간략히 요약합니다. 스터디 정리는 리팩토링 스터디 #2 - 리팩토링 원칙 & 코드에서 나는 악취를 참고해주세요. 챕터 2의 제목은 리팩토링 원칙 입니다. 앞 장에서 여러가지 예시를 통해 대략적이나마 리팩토링이 어떤 과정을 거치는지 감을 잡으셨을 것이라 생각합니다. 이번 장에서는 리팩터링 전반에 적용되는 몇 가지 원칙들을 다룹니다. 이번 챕터를 읽고나서 챕터 1을 다시 보신다면 일련의 과정이 눈에 더 잘 들어오실 것 같습니다. 정의 으레 책들이 그렇듯, 용어의 정의부터 시작합니다. 저자는 리팩토링(r.. 2020. 9. 19.