본문 바로가기
반응형

전체 글22

[리팩토링] 메소드 추출 메소드 추출(Extract Method) 리팩토링 코드 중복을 줄이고 가독성을 향상시킬 수 있다. 긴 메소드를 여러 개의 작은 메소드로 분리하고 각 메서드가 특정한 한 작업을 수행하도록 만드는 것이다. 메소드 추출이 필요한 상황은? 메소드 하나가 너무 길고, 한 가지 동작만 하지 않을 때 해법은? 기존 메소드에서 묶을 수 있는 코드를 추출하고 새로운 메소드를 만든다. 결과는? 메소드가 짧아진다. 메소드의 개수가 늘어난다. 방법은? 1. private의 새로운 메서드를 생성하고 적절한 이름을 붙인다. - 메소드가 무엇을 하는지 잘 알 수 있는 이름으로 만든다. - 메소드에서 어떻게 처리하는지를 뜻하는 이름은 붙이지 않는다. - 적당한 이름을 붙일 수 없다면 추출하지 않아야 할 메소드일 수 있다. 2. 기존.. 2023. 11. 6.
[리팩토링] 매직 넘버를 기호 상수로 치환 소스 코드에 특정한 숫자(매직 넘버)를 직접 적는 건 좋지 않다. 프로그램에 "입력 가능한 문자열의 길이는 100 문자 이하"라는 제한이 있다고 가정하자. 이때, 문자열 길이 한계인 100이라는 숫자를 조건 판단 부분에 직접 적는 것은 좋지 않다. 여기서 100이 매직 넘버이다. 그 이유는 아래와 같다. 이유 1. 매직 넘버의 의미를 알기 어렵다. 100 대신에 MAX_INPUT_LENGTH 라는 상징이 되는 이름을 사용하면 알기 쉽다. 이유 2. 매직 넘버는 수정하기 쉽다. 코드 작성 당 시 제한이 100이었지만 훗날 사양이 변해 200 문자 이하가 될지도 모른다. 그때 100이라는 매직 넘버가 소스 코드 어느 곳에 있는지 찾기 힘들기 때문이다. 하지만, 기호 상수를 사용하면 한 번에 변경할 수 있다... 2023. 11. 4.
[리팩토링] 리팩토링이란 무엇이고, 어떤 부분에 필요할까? 리팩토링이란? 외부에서 보는 프로그램의 동작은 유지하며 프로그램의 내부 구조를 개선하는 기법이다. 엉망인 코드가 눈앞에 있을 때 버그를 늘리지 않으면서 깔끔한 소스 코드로 바꾸는 것을 말한다. 계획 없이 수정하거나 제대로 살펴보지 않고 기능을 추가하면 프로그램은 점점 더 엉망이 된다. 그러면 읽기도 수정하기도 디버깅하기도 어려워진다. 쓸데없어 보여도 계속 리팩토링을 하다보면 원할한 수정, 확실한 기능 추가가 가능해질 것이다. 리팩토링의 목적? 복잡한 코드는 디버깅하기 어렵고, 디버거로 쫓아가도 파악하기 어려워 버그를 찾기 힘들기 때문에 리팩토링을 하면 버그를 발견하기 쉬워진다. 프로그램에 기능을 추가하다보면 소스 코드는 복잡해 진다. 특히 시간에 쫓겨 급하게 기능을 추가하게 되면 복잡한 코드가 된다. 이.. 2023. 11. 2.
[스프링부트_Spring Boot] 에러 페이지 설정(Custom Error Page) 개발을 하다보면 이런 페이지나, 이런 페이지를 만나는 일이 있다. 전자는 스프링을 사용할 때 나타나며, 후자는 스프링 부트를 사용할 때 나타난다. + 스프링 부트에서 하단 내용을 입력하면 기본 Tomcat 서버 에러 페이지가 노출된다. 이런 예외 처리 화면은 고객 친화적이지 않다. 따라서 고객에게 보여지는 에러 페이지를 직접 선택해 노출시켜주는 것이 필요하다. + Git Hub에서 오류가 발생하거나 잘못된 URL로 진입 시 아래와 같은 화면이 출력된다. 스프링 부트는 기본 오류 메커니즘이 이미 존재하기 때문에 개발자는 오류 페이지만 만들어주면된다. (BasicErrorController에 기본적인 로직이 개발되어 있다. 따라서, BasicErrorController가 제공하는 규칙을 따라 등록하면 된다... 2023. 10. 26.
반응형