Refactoring/Refactoring Skill6 [Refactoring 기법 #05] 메서드 정리 - 알고리즘 전환 ※ 오늘의 명언 코드 수를 기준으로 프로그램의 진도를 측정하는 것은 비행기 제작 진도를 무게로 측정하는 것과 같다. - Bill Gates 서론 이번 글에서는 메서드 안에 있는 알고리즘을 전환하는 방법에 대해 기술해볼 것이다. 목적 알고리즘을 더 분명한 것으로 교체해야 할 땐 해당 메서드의 내용을 새 알고리즘으로 바꿔보자. 작성 소스 String foundPerson(String[] people) { for(int i=0; i Refactoring/Refactoring Skill 2022. 1. 16. [Refactoring 기법 #04] 메서드 정리 - 임시변수를 메서드 호출로 전환 ※ 오늘의 명언 만일 디버깅이 벌레를 잡는 과정이라면, 프로그래밍은 그걸 집어넣는 과정이다. - Edsger W. Dijkstra, 구조적 프로그래밍, 세마포어로 유명한 컴퓨터 과학자 서론 이번에 공부할 내용은 메서드 정리 파트에서 임시변수를 메서드 호출로 전환하는 방법에 대해 서술해 볼 것이다. 작성소스 double basePrice = _quantity * _itemPrice; if(basePrice > 1000) return basePrice * 0.95; else return basePrice * 0.98; 위의 소스에서 어떤 것을 리팩토링 할 수 있을까? 책에서 제안하는 내용은 이렇다. "수식의 결과를 저장하는 임시변수가 있을 땐 그 수식을 빼내어 메서드로 만든 후, 임시변수 참조 부분을 전부 .. Refactoring/Refactoring Skill 2022. 1. 11. [Refactoring 기법 #03] 메서드 정리 - 임시변수 내용 직접 삽입 ※ 오늘의 명언 훌륭한 코드는 훌륭한 문서보다 낫다. - Steve McConnell, 개발자 서론 이번에 공부할 내용은 메서드 정리 파트에서 임시변수 내용 직접 삽입이다. 바로 시작해보자. 작성소스 private bool compareSumValue() { int temp_val = Calculator.Sum(1,2); return (temp_val > 2) } 위의 소스에서 temp_val은 Sum()이라는 함수에서 나온 결과물을 담아놓는 임시 변수이다. 리팩토링 책에서는 이렇게 제안한다. "간단한 수식을 대입받는 임시변수로 인해 다른 리팩토링 기법 적용이 힘들 땐 그 임시변수를 참조하는 부분을 전부 수식으로 치환하자" 위의 내용을 참고하여 리팩토링을 진행해보자. 리펙토링 후 소스 private bo.. Refactoring/Refactoring Skill 2022. 1. 9. [Refactoring 기법 #02] 메서드 정리 - 메서드 내용 직접 삽입 ※ 오늘의 명언 항상 이런 생각으로 개발에 임하라.“내 소스를 유지보수하게 될 개발자는내가 어디 살고 있는지 알고 싶어하는 과격한 사이코패스일 것이다.” - Martin Golding 서론 우리는 보통 어떠한 기능을 갖고 있는 로직들을 함수로 만들어 사용한다. 과연 기능을 갖고 있다해서 모두 함수로 만들어 사용하는 것이 좋은 소스라고 볼 수 있을 것인가? 바로 이 질문에 대해 이번 글에서 다뤄볼려고 한다. 작성 소스 int val = ?; private int getValue() { return compareValueCheck() ? 2 : 1; } boolean compareValueCheck() { return val > 5; } 위의 소스를 보면 int형은 val가 멤버변수로 선언되어있는 상태이고 .. Refactoring/Refactoring Skill 2022. 1. 9. [Refactoring 기법 #01] 메서드 정리 - 메서드 추출 ※ 오늘의 명언 아무리 구조가 잘 되어 있더라도, 프로그래머가 나쁜 프로그램을 만드는 걸 막아주는 프로그래밍 언어는 없다. - Larry Flon, 구조적 프로그래밍에 대한 연구 저자 서론 이번 글에서 공부할 내용은 메서드 정리 파트에서 메소드 추출 부분의 내용을 정리할려고 한다. 해당 내용은 간단한 내용이니 부담없이 봐도 좋을 것 같다. 작성 소스 private string _blog = ""; private string _owner = ""; praivte void printBlogOwner() { //블로그 정보를 불러오는 함수 호출 inputVal(); //세부 정보 출력하기 System.out.println("blog" : + _blog); System.out.println("owner" : +.. Refactoring/Refactoring Skill 2022. 1. 4. [Refactoring] 리팩토링(Refactoring)이란? (리팩토링 효과 / 해야 하는 이유) ※ 오늘의 명언 올바로 작동하지 않는다고 걱정하지 마라. 모든 게 잘 되었다면, 내가 할 일이 없어진다. - Mosher’s Law of Software Engineering 서론 클린 코드가 필요한 개발자에게 필요한 기술은 리팩토링이다. 위의 이미지에 있는 교재로 스터디를 진행할 예정이며 지금처럼 여유있을 때마다 하나씩 정리할 예정이다. 개발에 대한 공부는 끝이없지만 이 리팩토링에 대한 개념을 정리하여 한줄을 적더라도 누구에게 보여줘도 이해하기 쉬운 소스를 짜보자. 우선 기술들을 익히기 앞서 리팩토링 기술들에 대해 리펙토링에 대해 먼저 알아보자 리팩토링이란? ( What is Refactoring ? ) 위키백과에서 정의 된 내용부터 알아보자. 리팩토링(Refactoring)이란 "'결과의 변경 없이 .. Refactoring/Refactoring Skill 2022. 1. 3. 이전 1 다음 💲 많이 본 글