한글 URL이 한국인에게는 더 RESTful한 디자인인가?

2014-02-04 20:00

얼마전 다음과 같은 질문이 올라왔습니다. http://slipp.net/questions/254

이 글의 의도는 자바의 한글과 관련된 이슈에 관한 의견 교류였으나, 과연 "한글 url이 한국인에게는 더 RESTful한 디자인인가"에 관한 토론거리가 생겨 글을 분리시켰습니다.

이에 대한 진행 상황은 다음과 같습니다.

@한석봉

현재 Spring + Mybatis 프레임워크와 Tomcat, MySql을 이용한 프로젝트를 진행하고 있습니다. 프로젝트 초창기부터 한글데이터를 기준으로 설계하였습니다. 때문에 디렉토리나 파일구조도 한글에 맞추는 방향으로 프로그래밍을 진행하였구요. 하지만 프로젝트를 진행하는 내내 한글문제가 발생합니다. 그것에 대한 리서치에도 굉장한 시간을 투자하게 되고요.

혹자는 글로벌사회에 '굳이 한글을 써야하나'..라고 할 수도 있지만 반대로 '굳이 쓰지 말아야할 이유가 있을까..?'라는 생각이 들었습니다. 만약 사용자가 모두 한국인이라고 가정한다면 한글을 사용하는편이 오히려 restful하지 않을까??라는 생각에서였지요. 그리고 지금 (첫프로젝트입니다) '한글문제를 피하게 되면 평생 프로그래밍할때마다 피하지 않을까?'라는 생각을 하니까 오기가 더욱 생긴거 같구요..

이 글을 통해서 짧은 시간동안에 제가 겪은 한글문제들을 공유해보고자 하며, 더불어 현재 맞닥트린 문제를 여쭙고자 이렇게 글을 씁니다. 저와 비슷한 문제를 겪을 사람들이 조금이나마 수고을 덜었으면 하는 바람입니다.

... 이하 생략 ...

@dongkuk

@한석봉 님 좋은 의견 감사합니다. 덕분에 저도 한글 URL에 대해서 생각해보는 계기가 되었습니다.

저는 질문 의도와는 관련없이, 과연 한글 url이 한국인에게는 더 RESTful한 디자인인가에 대해 의견을 나누고 싶습니다.

  1. "localhost:8080/2013/자바지기"는 RESTful한가? 저는 위 URL은 RESTful하지 않다고 생각합니다. 왜냐하면 2013이 어떤 자원에 대한건지, 자바지기가 어떤 자원에 대한 건지 알기 어렵기 때문입니다. 심지어 저는 2013이 year을 뜻하는지 알았는데, class를 뜻하는 거였군요.("/{class1}/{professor}")

좀더 RESTful한 디자인이라면, "localhost:8080/classes/2013/professors/자바지기"가 되야 좋을 것 같습니다. (물론 Class가 자원이 될 수 없지만요. 이것은 논외로 하지요 ^^)

  1. "localhost:8080/classes/2013/professors/자바지기" 와 "localhost:8080/classes/2013/professors/javajigi" 중 어느것이 더 RESTful한가?

이 문제는 사실 RESTful과는 상관없는 것 같습니다. professor 자원의 상태가 '자바지기'인지 'javajigi'인지에 따라 달리되는 문제이니까요.

  1. "localhost:8080/classes/2013/professors/자바지기" 와 "localhost:8080/수업/2013/교수/자바지기" 중 어느것이 더 RESTful한가?

2번과의 차이는 2번은 '자원의 상태'가 한글이냐 영어이냐의 문제였지만, 3번은 '자원의 표현'이 한글이냐 영어이냐의 문제라는 것입니다.

놀라운건, 한글로 표현된 url이 훨씬 이해가 잘된다는 겁니다. 그렇다면 자원의 표현이 한글인게 더 RESTful한 걸 까요?

다시 생각해보니 그것도 아닌것 같습니다. 우리는 class 교수 {}가 class Professor {} 보다 잘 표현됐다고 말하지 않습니다. class 교수 {}은 불가능하니까요...

따라서 결론 짓자면 저는 한글이라고 해서 RESTful한 디자인이라고 말할 수 없다는 것입니다 :)

@자바지기

@dongkuk 좋은 토론 꺼리네요. 이 글이 원해 자바의 한글 관련된 이슈이니 별도의 글로 빼서 토론을 해보면 어떨까요? 현재 @한석봉 님이 주신 의견과 @dongkuk 의견을 합쳐서 하나의 토론 꺼리를 만들면 재미있을 듯 하네요.

한 가지 첨언하자면 class 교수 {}는 불가능하지는 않아요? 단지, 한글 기반으로 구현하지 않을 뿐이죠? 혹시 모릅니다. 향후 프로그래머들은 한글로 구현하는 것이 소통에 더 낫다고 판단이 되면 한글로 구현할 수도 있겠죠. 어쩌면 유비쿼터스 language를 사용한다는 측면에서는 클래스명과 메서도명을 한글로 사용하는 것이 괜찮을 수도 있겠죠? 뭐 프로그래밍 세상에 정답이 있겠습니까?

@한석봉

아.. @dongkuk님 좋은의견 고맙습니다~^^ 사실 저 부분은 예시를 위해서 저렇게 표기한것이구요~ 실제로는 말씀하신것처럼 "/2013년/1학기/휴먼디자인프로젝트/자바지기"과 같이 의미단위로 표기됩니다 ^^; class는 분류를 뜻하는것이구요;;ㅎ (대분류/소분류) 제가 생각한 RESTful이라는 의미는 다음과 같았습니다~ 우리는 한국인이기 때문에 한글로 소통합니다. 하지만 url상에 소통하는 데이터로서 의미를 부여하자면 아이디 혹은 영문으로 처리되지요. 즉, 우리가 만약 교수님 1명을 업데이트하자고 해도 영문url을 사용하면 데이터베이스 상에서 한글이외에 영문필드를 가져야하고, 영문필드를 사용하지 않는다면 "아이디값" 혹은 "순번"과 같은 숫자값을 사용하게 되지요..^^ 이런 부분들을 한글로 처리하는게 RESTful한 홈페이지의 시작이 아닐까 생각이 들었습니다 ^^

BEST 의견 원본위치로↓
2014-02-05 10:45

더 RESTful하다는게 어떤 뜻인가는 제쳐두고라도... 글을 읽다보면 여기서 RESTful보다는 URL이 시맨틱한가에 대한 얘기로 생각됩니다.

그런의미로 봤을 때 URL 정의가 제대로 되었냐와 상관없이 같은 URL에서 한글 사용여부의 장점이 있느냐가 화두인것 같은데 결론적으론 저도 한글 URL은 반대하는 편입니다.

  1. @dongkuk님 의견처럼 질문들이란 말이 모호하기 때문은 아닙니다. 한글은 영어보다 복수개념이 약한 언어입니다. 영어는 단수와 복수를 꼭 구분하지만 저희는 그렇게 얘기하지 않습니다. 질문을 하나만 받으면 "질문 하세요"이라고 하고 2개이상 받을때는 "질문들 하세요"라고 구분짓지 않습니다. 오히려 질문들이라는 표현은 자칫 영어식 번역투가 될 여지가 높기 때문에 URL에서 복수라고 "질문들", "물건들"이라고 사용해야 한다고는 보지 않고 그런 면에서는 당연히 한글로 쓰면 한국인에게는 의미가 명확합니다.

  2. 제가 한글 URL을 반대하는 이유는 시맨틱한 URL의 목적을 달성하기 어렵기 때문입니다. 시맨틱 URL은 사용자가 URL만 보고 그 URL에 표시될 내용을 직관적으로 알 수 있게 하겠다는데 의미가 있습니다. 그래서 "질문들/256" 같은 URL은 시맨틱해 보이지만 이 URL을 다른 사람한테 보내주면 "/%EC%A7%88%EB%AC%B8%EB%93%A4/256" 이렇게 바뀌어져버립니다.(프로그램에 따라 처리해주긴 하지만 대부분은 인코딩이 됩니다.) 이는 컴퓨터의 구조에 관련된 문제이지만 결과적으로 시맨틱하게 하려던 의도가 깨져버립니다.

저도 개발중 한영변환을 하기 싫은 이유도 있긴 하지만 시맨틱 URL은 개발자보다는 사용자에게 더 중점이 있어보입니다.

4개의 의견 from SLiPP

2014-02-04 21:07

저도 @자바지기님의 의견처럼 이 주제에 대해 의견을 나누면 새로운 인사이트를 얻을 수 있을 것 같아 의견을 더 나누고자 합니다 :)

@자바지기님 말씀처럼 클래스를 한글로 사용할 수 있게 되었을 경우, 과연 그때는 한글로 표현하는 것이 더 좋을지에 대해 생각해봤습니다. 우선 위에서 언급했듯이 영어보다는 한글이 더 익숙하니 한글 표현이 확실히 더 명확합니다.

하지만 저는 여기서 한글 특성상의 문제점을 지적하고 싶습니다. SLiPP의 예를 들자면 현재 이 질문의 url은 "http://slipp.net/questions/256" 입니다. 만약 한글로 표현한다면 이 질문의 url은 "http://slipp.net/질문들/256"이 될 것입니다. 확~ 어색하지 않나요??(궁금)

왜 우리들은 '질문들'이라는 표현에 거리감을 느낄까요? 저도 궁금해서 검색을 해본 결과, 제가 내린 잠정적 결론은 '-들'은 접미사 또는 조사이기 때문입니다.

접미사가 되면 '질문들'이라는 명사가 되지만 조사가 되면 '질문들 없니?'에서 주어가 되어버립니다.

따라서 '질문들'이라는 단어를 들으면 무언가 더 있을 거라는 생각을 하게 되고 불완전함을 느낍니다. 반면에 '질문'은 명사이므로 그 자체로 안정감이 느껴져 완전한 단어로 생각하게 됩니다.

그렇다면 왜 "http://slipp.net/질문/256"이 아니라 "http://slipp.net/질문들/256"이 되야할까요? 그 이유는 사람들의 사고방식에 있습니다. 우리는 데스크탑 파일들을 정리할 때 폴더 별로 묶는 습관이 있습니다. "여러" 질문들이 있으면 폴더로 묶고, 그렇지 않고 "낱개"는 파일로 정리하는데 익숙해져있습니다.

만약 '질문들'이 아니라 '질문'이 되야 한다면, "http://slipp.net/질문"까지 일 겁니다. 질문은 1개뿐이며 폴더는 없습니다. 질문 자체가 단일 파일일 겁니다.

따라서 '질문들'로 자원을 표현해야 하지만 우리는 이 단어로 자원을 표현하는데 익숙하지 않습니다. 한글은 자원을 효과적으로 표현하는데 불리한 언어인 것 같습니다. 그러므로, 한국인이지만 자원을 표현함에 있어서 영어를 사용함이 더 RESTful한 디자인이라고 생각합니다.

2014-02-05 07:34

이런말하면 그렇지만... 한영변환 하면서 작성하기가 귀... 귀찮아요. Orz... 맥처럼 한글의 마지막 글자를 떼어먹는 환경에서 개발해야 한다면...

한글URI를 이용하는 게 한글을 아는 사람한테는 좋은 접근방법이라 생각합니다.

그런데, 먼저 고려되어야할건,

그 한글URI를 사용할 서비스의 대상고객과 제공지역을 어디까지 하느냐하는거죠. ㅡㅅ-)a

해외진출을 도모하겠다는 목표를 가지고 있는 서비스라면, 국내 한정의 서비스라면 큰 무리가 없겠지만, 점진적인 개발을 한다해도... 한글URI를 영어로 전환하는 비용은 큰 문제라고 생각합니다. 그 URI와 데이터를 참조하는 클라이언트들까지 영향을 미치게 되죠.

2014-02-05 10:31

RESTful한가에 대한 이야긴 아닌거 같지만 좋은 주제네요. 개인적으로는 웹서비스의 url설계에서 자원을 표현하는 명사로 한글을 사용하는건 좋은 아이디어는 아닌것 같습니다. 'questions'를 '질문들'로 바꾸었을 때 어떤 장점이 있을지 와닿지 않네요. 저에게는 마치 한글.kr 같은 느낌이 듭니다. 굳이 한글을 써서 한글을 쓰지 않는 사람들에게 장벽을 쳐버린 느낌이랄까요. 그래도 엔드포인트에 포스트 제목 정도는 주요 타겟을 대상으로 적절한 언어로 매핑해주면 좋을것 같기는 합니다.

2014-02-05 10:45

더 RESTful하다는게 어떤 뜻인가는 제쳐두고라도... 글을 읽다보면 여기서 RESTful보다는 URL이 시맨틱한가에 대한 얘기로 생각됩니다.

그런의미로 봤을 때 URL 정의가 제대로 되었냐와 상관없이 같은 URL에서 한글 사용여부의 장점이 있느냐가 화두인것 같은데 결론적으론 저도 한글 URL은 반대하는 편입니다.

  1. @dongkuk님 의견처럼 질문들이란 말이 모호하기 때문은 아닙니다. 한글은 영어보다 복수개념이 약한 언어입니다. 영어는 단수와 복수를 꼭 구분하지만 저희는 그렇게 얘기하지 않습니다. 질문을 하나만 받으면 "질문 하세요"이라고 하고 2개이상 받을때는 "질문들 하세요"라고 구분짓지 않습니다. 오히려 질문들이라는 표현은 자칫 영어식 번역투가 될 여지가 높기 때문에 URL에서 복수라고 "질문들", "물건들"이라고 사용해야 한다고는 보지 않고 그런 면에서는 당연히 한글로 쓰면 한국인에게는 의미가 명확합니다.

  2. 제가 한글 URL을 반대하는 이유는 시맨틱한 URL의 목적을 달성하기 어렵기 때문입니다. 시맨틱 URL은 사용자가 URL만 보고 그 URL에 표시될 내용을 직관적으로 알 수 있게 하겠다는데 의미가 있습니다. 그래서 "질문들/256" 같은 URL은 시맨틱해 보이지만 이 URL을 다른 사람한테 보내주면 "/%EC%A7%88%EB%AC%B8%EB%93%A4/256" 이렇게 바뀌어져버립니다.(프로그램에 따라 처리해주긴 하지만 대부분은 인코딩이 됩니다.) 이는 컴퓨터의 구조에 관련된 문제이지만 결과적으로 시맨틱하게 하려던 의도가 깨져버립니다.

저도 개발중 한영변환을 하기 싫은 이유도 있긴 하지만 시맨틱 URL은 개발자보다는 사용자에게 더 중점이 있어보입니다.

의견 추가하기

연관태그

← 목록으로