URL 함수

URL 함수 (URL Functions)

이 문서는 스칼라 함수로 제공되는 URL 유틸리티 함수를 설명해요. 이 함수들은 프로토콜, 도메인, 포트, 경로, 쿼리 파라미터 등 URL의 다양한 구성 요소를 추출·변환·조작할 수 있게 해줍니다.

출처: 문서

본문

urlProtocol

설명: URL에서 프로토콜(스킴)을 추출해요.

문법:

urlProtocol(url: String) → String

파라미터:

• url: URL 문자열.

반환:

프로토콜(예: "http", "https") 또는 URL이 유효하지 않으면 null.

예시:

SELECT urlProtocol('https://example.com/path');
// Returns: "https"

urlDomain

설명: URL에서 도메인을 추출해요.

문법:

urlDomain(url: String) → String

파라미터:

• url: URL 문자열.

반환:

전체 도메인(예: "www.example.com") 또는 URL이 유효하지 않으면 null.

예시:

SELECT urlDomain('https://www.example.com/path');
// Returns: "www.example.com"

urlDomainWithoutWWW

설명: 존재하는 경우 선행 "www."를 제거하며 URL에서 도메인을 추출해요.

문법:

urlDomainWithoutWWW(url: String) → String

파라미터:

• url: URL 문자열.

반환:

"www." 접두사가 없는 도메인(예: "example.com") 또는 유효하지 않으면 null.

예시:

SELECT urlDomainWithoutWWW('https://www.example.com/path');
// Returns: "example.com"

urlTopLevelDomain

설명: URL에서 최상위 도메인(TLD)을 추출해요.

문법:

urlTopLevelDomain(url: String) → String

파라미터:

• url: URL 문자열.

반환:

최상위 도메인(예: "com", "org") 또는 유효하지 않으면 null.

예시:

SELECT urlTopLevelDomain('https://example.com/path');
// Returns: "com"

urlFirstSignificantSubdomain

설명: 표준 TLD 규칙에 따라 URL에서 첫 번째 유의미한 서브도메인을 추출해요.

문법:

urlFirstSignificantSubdomain(url: String) → String

파라미터:

• url: URL 문자열.

반환:

첫 번째 유의미한 서브도메인(예: "blog.example.com"에 대해 "example" 반환) 또는 유효하지 않으면 null.

예시:

SELECT urlFirstSignificantSubdomain('https://blog.example.com');
// Returns: "example"

참고: 이 로직은 "com", "net", "org", "co" 같은 일반 TLD를 고려합니다.

cutToFirstSignificantSubdomain

설명: URL의 도메인을 첫 번째 유의미한 서브도메인과 최상위 도메인만 포함하도록 잘라요.

문법:

cutToFirstSignificantSubdomain(url: String) → String

파라미터:

• url: URL 문자열.

반환:

"example.com" 같은 잘린 도메인(비표준 TLD의 경우 더 깊은 계층) 또는 유효하지 않으면 null.

예시:

SELECT cutToFirstSignificantSubdomain('https://blog.example.com');
// Returns: "example.com"

cutToFirstSignificantSubdomainWithWWW

설명: cutToFirstSignificantSubdomain와 유사하지만 URL의 일부인 경우 선행 "www."를 보존해요.

문법:

cutToFirstSignificantSubdomainWithWWW(url: String) → String

파라미터:

• url: URL 문자열.

반환:

"www."를 보존한 잘린 도메인(해당하는 경우) 또는 유효하지 않으면 null.

예시:

SELECT cutToFirstSignificantSubdomainWithWWW('https://www.blog.example.com');
// Returns: "www.example.com"

urlPort

설명: URL에서 포트 번호를 추출해요.

문법:

urlPort(url: String) → int

파라미터:

• url: URL 문자열.

반환:

포트 번호, 또는 포트가 지정되지 않았거나 URL이 유효하지 않으면 -1.

예시:

SELECT urlPort('https://example.com:8080/path');
// Returns: 8080

urlPath

설명: URL에서 경로 구성 요소를 추출해요(쿼리 문자열 제외).

문법:

urlPath(url: String) → String

파라미터:

• url: URL 문자열.

반환:

URL 경로(예: "/path/to/resource") 또는 유효하지 않으면 null.

예시:

SELECT urlPath('https://example.com/path?query=1');
// Returns: "/path"

urlPathWithQuery

설명: URL에서 경로 구성 요소를 추출해요. (URI 파서가 반환한 raw 경로를 사용합니다.)

문법:

urlPathWithQuery(url: String) → String

파라미터:

• url: URL 문자열.

반환:

쿼리 인코딩 세부 사항을 포함할 수 있는 URL 경로 또는 유효하지 않으면 null.

예시:

SELECT urlPathWithQuery('https://example.com/path?query=1');
// Returns: "/path"

urlQueryString

설명: URL에서 선행 ? 및 fragment를 제외한 쿼리 문자열을 추출해요.

문법:

urlQueryString(url: String) → String

파라미터:

• url: URL 문자열.

반환:

쿼리 문자열(예: "key=value&key2=value2") 또는 없거나 유효하지 않으면 null.

예시:

SELECT urlQueryString('https://example.com/path?key=value#section');
// Returns: "key=value"

urlFragment

설명: URL에서 fragment 식별자를 추출해요(# 기호 제외).

문법:

urlFragment(url: String) → String

파라미터:

• url: URL 문자열.

반환:

fragment(예: "section") 또는 유효하지 않거나 없으면 null.

예시:

SELECT urlFragment('https://example.com/path#section');
// Returns: "section"

urlQueryStringAndFragment

설명: URL의 쿼리 문자열과 fragment 식별자를 단일 문자열로 결합해요.

문법:

urlQueryStringAndFragment(url: String) → String

파라미터:

• url: URL 문자열.

반환:

"key=value#section" 같은 결합 문자열 또는 두 구성 요소가 모두 없으면 null.

예시:

SELECT urlQueryStringAndFragment('https://example.com/path?key=value#section');
// Returns: "key=value#section"

extractURLParameter

설명: URL에서 특정 쿼리 파라미터의 값을 추출해요. 같은 이름의 파라미터가 여러 개 있으면 첫 번째 발생을 반환합니다.

문법:

extractURLParameter(url: String, name: String) → String

파라미터:

• url: URL 문자열.

• name: 추출할 파라미터 이름.

반환:

파라미터 값, 또는 찾지 못했거나 URL이 유효하지 않으면 빈 문자열.

예시:

SELECT extractURLParameter('https://example.com/path?page=1&lr=213', 'page');
// Returns: "1"

extractURLParameters

설명: URL에서 모든 쿼리 파라미터를 name=value 쌍 배열로 추출해요.

문법:

extractURLParameters(url: String) → String[]

파라미터:

• url: URL 문자열.

반환:

쿼리 파라미터 배열(예: ["page=1", "lr=213"]) 또는 파라미터가 없으면 빈 배열.

예시:

SELECT extractURLParameters('https://example.com/path?page=1&lr=213');
// Returns: ["page=1", "lr=213"]

extractURLParameterNames

설명: URL에 있는 모든 쿼리 파라미터의 이름을 추출해요.

문법:

extractURLParameterNames(url: String) → String[]

파라미터:

• url: URL 문자열.

반환:

파라미터 이름 배열(예: ["page", "lr"]) 또는 쿼리 파라미터가 없으면 빈 배열.

예시:

SELECT extractURLParameterNames('https://example.com/path?page=1&lr=213');
// Returns: ["page", "lr"]

urlHierarchy

설명: 경로의 각 수준에서 잘린 URL 계층을 생성해요. 기본 URL(스킴과 호스트)은 항상 포함됩니다.

문법:

urlHierarchy(url: String) → String[]

파라미터:

• url: URL 문자열.

반환:

계층적 수준을 나타내는 URL 배열. 예를 들어 URL "https://example.com/a/b/c"가 주어지면:

[
  "https://example.com",
  "https://example.com/a",
  "https://example.com/a/b",
  "https://example.com/a/b/c"
]

예시:

SELECT urlHierarchy('https://example.com/a/b/c');
// Returns: ["https://example.com", "https://example.com/a", "https://example.com/a/b", "https://example.com/a/b/c"]

urlPathHierarchy

설명: URL에서 경로 세그먼트의 계층을 생성해요. 프로토콜과 호스트는 제외되고 루트("/")는 포함되지 않습니다.

문법:

urlPathHierarchy(url: String) → String[]

파라미터:

• url: URL 문자열.

반환:

계층적 경로 세그먼트 배열. 예를 들어 URL "https://example.com/browse/CONV-6788"의 경우:

["/browse", "/browse/CONV-6788"]

예시:

SELECT urlPathHierarchy('https://example.com/browse/CONV-6788');
// Returns: ["/browse", "/browse/CONV-6788"]

urlEncode

설명: URL 문자열을 URL 안전 형식으로 인코딩해요. 공백은 +로 대체됩니다.

문법:

urlEncode(url: String) → String

파라미터:

• url: 인코딩할 URL 문자열.

반환:

URL 인코딩된 문자열 또는 입력이 유효하지 않으면 null.

예시:

SELECT urlEncode('https://example.com/path with space');
// Returns: "https%3A%2F%2Fexample.com%2Fpath+with+space"

urlDecode

설명: URL 인코딩된 문자열을 디코딩해요.

문법:

urlDecode(url: String) → String

파라미터:

• url: URL 인코딩된 문자열.

반환:

디코딩된 URL 문자열 또는 입력이 유효하지 않으면 null.

예시:

SELECT urlDecode('https%3A%2F%2Fexample.com%2Fpath+with+space');
// Returns: "https://example.com/path with space"

더 알아보기 (Learn more)