UriComponents화하여 더 가독성 좋은 코드 작성하기

ZEDY·2023년 12월 20일
0

[백엔드] Spring Boot

목록 보기
23/27

Url이란?

URL은 "Uniform Resource Locator"의 약자로, 인터넷 상의 자원을 가리키는 주소입니다. 이는 웹페이지, 이미지, 동영상 등과 같은 온라인 자원의 위치를 식별합니다.

UriComponentsBuilder란?

UriComponentsBuilder는 Spring 프레임워크에서 제공하는 클래스로, URI(Uniform Resource Identifier)를 구성하는 빌더 패턴을 사용하여 URL을 구성하는 도우미입니다. 이 클래스는 URL을 구성하고 수정하는 데 도움을 줍니다.

UriComponentsBuilder 사용법은?

UriComponentsBuilder의 사용법은 다음과 같습니다:

  1. 기본 URL 생성:

    UriComponentsBuilder builder = UriComponentsBuilder.fromUriString("https://example.com");
  2. 쿼리 파라미터 추가:

    builder.queryParam("param1", "value1")
           .queryParam("param2", "value2");
  3. 경로 파라미터 추가:

    builder.path("/users/{userId}/profile")
           .buildAndExpand("user123");
  4. Fragment 추가:

    builder.fragment("section1");
  5. 최종 URI 얻기:

    UriComponents components = builder.build();
    String uriString = components.toUriString();

UriComponents화?

UriComponents는 구성 요소로, 스프링 프레임워크에서 URI를 나타내는 데 사용됩니다. UriComponentsBuilder를 사용하여 URI를 생성하고, 필요한 구성 요소들을 추가하여 UriComponents 객체를 생성할 수 있습니다.

url은 UriComponentsBuilder를 사용하여 UriComponents화하여 사용하면 더 가독성 좋은 코드를 생산할 수 있습니다.

장점

UriComponents는 URI를 나타내며, toUriString() 메서드를 사용하여 문자열로 변환할 수 있습니다. 이를 통해 URI를 구성하고, 필요한 구성 요소를 추가하여 URL을 생성할 수 있습니다. 이렇게 구성된 URL은 보다 명확하고 유연하며, 가독성이 뛰어납니다.


나의 상황에 적용

나의 상황 : juso API 호출 후, 데이터를 전처리하는 로직에서 코드를 리뷰하면서 알게 되었습니다.

기존 상황 : URL을 문자열 결합으로 구성하고 있어 가독성과 유지보수 측면에서 비효율적이었습니다.

URL을 문자열로 결합할 시 야기할 수 있는 문제

  1. 가독성: 긴 URL을 문자열로 작성하다 보면 코드가 복잡해지고 어떤 부분이 어떤 파라미터인지 파악하기 어려워집니다.

  2. 실수 발생 가능성: 문자열로 URL을 직접 작성하다 보면 오타나 잘못된 형식의 URL을 생성할 가능성이 높아집니다.

  3. 변경 관리의 어려움: URL의 구성이 문자열로 되어 있으면, URL 스키마, 쿼리 파라미터 등을 변경할 때 코드 전체를 찾아 수정해야 합니다.

해결 방법

UriComponentsBuilder를 사용하면 이러한 문제를 해결할 수 있습니다. 이 클래스를 사용하면 URL을 더 명확하게 구성하고 필요한 파라미터를 추가하거나 변경할 수 있습니다. 이전 코드를 UriComponentsBuilder를 사용하여 개선할 수 있습니다.


Suggested change
String apiUrl = "https://business.juso.go.kr/addrlink/addrLinkApi.do?currentPage=" + currentPage + "&countPerPage=" + countPerPage + "&keyword=" + URLEncoder.encode(keyword, "UTF-8") + "&confmKey=" + confmKey + "&resultType=" + "json";

UriComponents apiUri = UriComponentsBuilder.fromUri(URI.create("https://business.juso.go.kr/addrlink/addrLinkApi.do")) .queryParam("currentPage", currentPage) .queryParam("keyword", URLEncoder.encode(keyword, StandardCharsets.UTF_8)) .queryParam("confmKey", confmKey) .queryParam("resultType", "json") .build();


가독성 있는 코드가 좋은 이유

가독성 있는 코드는 소프트웨어 개발에서 매우 중요합니다.

1. 이해와 유지보수

다른 사람이나 여러분 자신이 나중에 코드를 다시 읽거나 유지보수해야 할 때, 가독성이 높은 코드는 이해하기 쉽습니다. 코드를 이해하기 쉬우면 버그를 찾고 수정하는 데 시간을 적게 들일 수 있습니다.

2. 협업

소프트웨어 개발은 팀으로 이루어지는 경우가 많습니다. 가독성이 높은 코드는 여러 명의 개발자가 협업할 때 소통과 이해를 쉽게 만들어줍니다. 다른 사람이 작성한 코드를 더 빠르게 이해하고 수정할 수 있게 됩니다.

3. 버그 및 오류 감소

가독성이 높은 코드는 실수를 줄여줍니다. 의도치 않은 오류를 줄이고 버그를 예방할 수 있습니다. 명확하고 구조화된 코드는 오류를 발견하고 수정하기 쉽습니다.

4. 생산성 향상

가독성이 좋은 코드는 개발 과정에서 생산성을 높여줍니다. 코드를 이해하고 작업하기 쉬우면 개발 시간을 단축시키고 효율적으로 작업할 수 있습니다.

5. 유지보수 비용 절감

가독성이 높은 코드는 장기적으로 유지보수 비용을 줄일 수 있습니다. 코드를 변경하고 개선하는 데 드는 시간과 비용이 줄어들게 됩니다.

요약하면, 가독성이 있는 코드는 개발 생산성과 품질을 높이고, 유지보수를 용이하게 만들어주어 소프트웨어 개발 전반에 매우 중요한 영향을 미칩니다.

profile
Spring Boot 백엔드 주니어 개발자

0개의 댓글