1. 시작하며

한글도메인이란 www.도메인.com처럼 사이트 이름이 한글이거나,

www.domain.한국처럼 최상위 도메인이 한글인 경우를 말합니다. 

최상위 도메인이 한글인 사이트는 본 적이 없는데 만들 수 있다고 합니다.

이번에 사이드 프로젝트를 진행하다가 사이트 이름에 "정"이라는 글자가 들어가서

jung으로 할까 jeong으로 할까 고민하다가 "그냥 외우기 쉽게 한글로 하면 되겠다!" 라는 생각으로

www.도메인.com 형식의 한글 도메인을 구매하여 사용해 본 경험 기반으로 말씀드리겠습니다. 

 

 

 

2. 구매 방법

한국 도메인 등록 업체뿐만 아니라 일부 해외 도메인 등록 업체에서도 한글 도메인을 판매합니다.

여러 사이트들을 돌아다니면서 가장 저렴한 사이트를 찾아서 구매하면 됩니다.

제가 원하는 한글 도메인은 해외가 더 저렴했고, 한글 도메인과 영어 도메인의 가격은 동일했습니다.

 

 

 

3. 연결 방법

한글 도메인의 경우 AWS나 구글 애널리틱스 같은 외부 사이트에 연결할 때 퓨니코드라는 형식으로 변환해야 연결이 가능합니다.

퓨니코드에 대한 설명과 변환 사이트는 링크에서 확인 가능합니다.

구글링을 통해 원하는 사이트와 연결하는 방법을 검색한 후 다른 부분은 모두 동일하게 진행하고,

사이트 주소를 입력하는 부분만 한글 도메인 대신 퓨니코드를 입력하면 됩니다.

 

 

 

4. 장점

제가 생각하는 장점은 외우기 쉽다 밖에 없는 것 같습니다...

 

 

 

5. 단점

1. AWS, 구글 애널리틱스 등 외부 사이트에 연결할 때마다 퓨니코드를 사용해야 한다.

 

위의 사진은 AWS Route53 설정 페이지인데 도메인 이름을 퓨니코드로 등록해서 알아보기 힘든 것을 알 수 있습니다.

외우기도 힘들어서 필요할 때마다 퓨니코드 변환기를 통해 퓨니코드를 알아내야 했었습니다...

물론 설명 탭에 알아볼 수 있게 표시할 수는 있지만, 한글 도메인을 여러 개 사용하고 있다면 헷갈릴 것 같습니다.

 

2. www.도메인.com 형식의 경우 도메인을 입력하고 com을 입력할 때 한영 변환을 해야 한다.

테스트하느라 들어갈 때마다 한영키를 제대로 안 눌러서 www.도메인.채ㅡ 으로 접속한 적이 많습니다.

별거 아닌 것 같지만 어떻게 보면 이것도 UX적으로 좋지 않은 케이스라고 볼 수 있을 것 같습니다.

 

3. 한글을 모르면 사용할 수 없다.

제가 만든 서비스는 재학 중인 대학교 학생들을 대상으로 만든 사이트라서 해외 진출의 가능성이 없어서 상관없지만,

추후 서비스가 잘 돼서 해외 진출하게 된다면 키보드로 한글 입력을 할 수 없는 외국인들에게는 커다란 진입장벽이 될 것입니다.

이 문제는 추후 영문 도메인으로 변경하거나, 추가하는 방식으로 해결이 가능하지만 추가 비용이 소요될 것입니다.

 

4. HTTP를 제외한 다른 인터넷 프로토콜과의 연동 지원이 미비하다. (ex. 이메일)

사이트 주소를 이용해서 자체 이메일을 만들 때 한글 이메일 주소를 사용하는 것이 어렵다고 합니다.

저는 자체 이메일이 필요 없어서 상관없었는데, 필요하신 분들은 자세히 알아보고 한글 도메인을 구입하는 게 좋을 것 같습니다.

 

5. 일부 사이트에서 링크 기능이 제대로 작동하지 않는다.

학교 학생들을 대상으로 만든 서비스라서 홍보글을 대학생 커뮤니티에 올렸었습니다.

당연히 링크가 걸릴 줄 알았는데 www. 까지만 링크가 걸려서 한글 주소로는 바로 접속이 불가능했었습니다.

사용자 입장에서 홍보글을 보고 링크를 통해 바로 클릭해서 들어갈 수 없고,

따로 창을 켜고 주소를 입력해서 들어가야 한다면 귀찮다는 생각이 들 것입니다.

어쩔 수 없이 구구절절하게 이유를 설명하며 퓨니코드 링크도 추가할 수밖에 없었습니다.

다행히 해당 커뮤니티는 학생증 인증을 통해서만 가입이 가능하므로 많은 학생들이 믿고 클릭해서 접속해 줬지만, 

제가 인터넷을 사용하다 퓨니코드 링크를 올리며 접속해 달라는 글을 본다면, 해킹당할 것 같이 생겨서 절대 클릭하지 않을 것 같습니다.

 

광고 등 본인이 직접 링크를 수정할 수 있거나, html 에디터를 지원하는 경우에는 직접 입력하면 되니 상관없을 것 같습니다.

주소창에 실제 주소를 입력하거나 즐겨찾기를 통해 접속하는 사용자가 많을 것으로 예상되는 경우에도 상관없을 것 같습니다.

하지만 제 경우에는 해당 커뮤니티 외에는 홍보할 방법을 찾지 못해서 이 부분이 가장 크리티컬 했습니다.

그러니 여러 사이트에 홍보글을 올리는 방식으로 홍보를 할 계획이라면,

홍보글을 올릴 사이트에 미리 한글 도메인을 입력해보고 링크 기능을 지원해주는지 확인해 보는 것을 추천드립니다.

포스팅을 작성하면서 티스토리와 카카오톡에서 테스트해보니

한글 도메인도 링크를 잘 연결해 주는 것으로 보아 대형 사이트에서는 문제없을 것 같습니다.

 

 

 

6. 사용 후기

처음 찾아봤을 때 일부 브라우저에서 동작이 되지 않는다, 모바일에서는 되지 않는다는 글들도 있었는데,

제가 만든 웹 사이트는 크롬, 익스플로러, 사파리, 안드로이드, ios에서 모두 정상적으로 동작했습니다.

해당 글들이 몇 년 전 글이었는데, 현재는 모두 업데이트되어 정상적으로 지원하는 것으로 보입니다.

 

단점들이 약간 불편한 정도라서 외우기 쉽다는 장점이 매우 큰 서비스라면 한글 도메인 사용을 굳이 말리고 싶지는 않습니다.

하지만 그냥 저처럼 한 번 써볼까? 하는 분들께는 굳이..? 라는 답변과 함께 영문 도메인을 추천드리고 싶습니다.

1. 시작하며

https://blog.encrypted.gg/731?category=773649

 

[실전 알고리즘] 0x06강 - 재귀_구버전

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 현재 보고있는 강..

blog.encrypted.gg

이 글을 보면서 공부하다가 스택 사이즈 설정하는 부분에서 윈도우와 방법이 달라서 구글링을 통해 해결했습니다.

저는 맥북 + Visual Studio Code + clang을 사용중입니다.

맥 OS에서는 g++을 입력하여 컴파일하면 자동으로 clang으로 컴파일됩니다.

본인이 따로 설정한적이 없다면 g++을 사용하는것처럼 보여도 clang을 사용하고 있는 것이므로 아래 방법으로 설정하시면 됩니다.

 

 

 

2. clang 스택 크기 설정

test.cpp 코드는 위 글에 나오는 코드를 사용했습니다.

위 사진처럼 컴파일할 때 -Wl,-stack_size -Wl,0x20000000 옵션을 추가하면 됩니다.

옵션 없이 컴파일 후 실행했을 때는 segmentation fault가 발생하지만,

옵션을 추가하면 정상적으로 실행되는 것을 확인할 수 있습니다.

0x20000000부분은 다른 숫자로 바꿔도 됩니다.

제가 참고한 글에서 512MB를 사용하고 있어서 저도 512MB로 예를 들었습니다.

 

 

 

3. 참고

https://clang.llvm.org/docs/CommandGuide/clang.html#cmdoption-wl-args

https://stackoverflow.com/questions/18909395/how-do-i-increase-the-stack-size-when-compiling-with-clang-on-os-x

1. locals()함수와 globals()함수

파이썬에서 동적으로 변수를 생성하려면 locals()함수나 globals()함수를 사용해야 합니다.

locals()함수는 현재 local변수들을 딕셔너리형태로 return합니다.

globals()함수는 현재 global 변수들을 딕셔너리 형태로 return합니다.

아래 코드와 결과를 보고 잘 이해가 가지 않으시면 바로 2번으로 넘어가셔도 됩니다.

def localTest():
    localVar1 = "Hi"
    localVar2 = 200
    localVar3 = [40, 50, 60]
    
    print("globals() in function\n", globals(), "\n")
    # 결과 : {생략, 'globalVar1': 'Hello', 'globalVar2': 100, 'globalVar3': [10, 20, 30]}
    
    print("locals() in function\n", locals(), "\n")
    # 결과 : {'localVar1': 'Hi', 'localVar2': 200, 'localVar3': [40, 50, 60]} 

globalVar1 = "Hello"
globalVar2 = 100
globalVar3 = [10, 20, 30]

print("globals() in main\n", globals(), "\n")
# 결과 : {생략, 'globalVar1': 'Hello', 'globalVar2': 100, 'globalVar3': [10, 20, 30]}

print("locals()in main\n", locals(), "\n")
# 결과 : {생략, 'globalVar1': 'Hello', 'globalVar2': 100, 'globalVar3': [10, 20, 30]}

localTest()

 

 

 

2. 파이썬 동적으로 변수 생성하기 (for문으로 변수 생성하기)

사용하려는 목적에 따라 globals()함수와 locals()함수 중 선택하면 됩니다.

예제는 globals() 함수로 작성하였습니다.

globals()['test'] = 100	# {'test': 100} item 추가
print(globals())
# 결과 : {생략, 'test': 100}

globals()함수는 현재 global 변수들을 딕셔너리 형태로 return하므로,

기존 딕셔너리와 같은 방법으로 itme을 추가할 수 있습니다.

위의 예제는 {'test': 100} item을 추가하는 예제입니다.

 

for i in range(1, 4):
	globals()['test' + str(i)] = i * 10
	# globals()['test{}'.format(i)] = i * 10

print(globals())
# 결과 : {생략, 'test1': 10, 'test2': 20, 'test3': 30}

print(test1, test2, test3)
# 결과 : 10 20 30

이를 응용하면 for문으로 변수를 생성할 수 있습니다.

2번 라인에서 문자열 'test'와 변수 i를 str로 바꾼 것을 합쳐서 key로, i * 10을 value로 해서 item을 추가합니다.

2번 라인을 format()함수를 사용하면 3번 라인처럼 표현할 수도 있습니다.

5번 라인의 결과처럼 test1, test2, test3 변수가 생성됐고,

8번 라인의 결과처럼 각각의 값에는 10, 20, 30이 저장됩니다.

 

+ Recent posts