compsoite
652
2014-10-10 09:44:12
9
25502

초보자를 위한 .do 확장자의 역사


계정 짤릴 각오로 올립니다. 이유는 아래에 설명하겠습니다.

초보자분들이 자바웹(스프링/정부표준 등)에 입문하실 때
강사나 선배 개발자분들이 표준을 가르칩니다.
그때 가장 질리게 들을 확장자가 .do 이고, 항상 .do 로 끝나야 한다고 하죠.
몇번 프로젝트할 때 이게 업무표준일 줄 알았지만,
스트럿츠 하면서 저도 의문점을 가지게 됐습니다.
왜 확장자를 반드시 .do 로 해야 하는가.

StackOverflow 에 해답이 있었습니다.

여기서 채택된 답변을 보시면,
스트럿츠 1 사용자 가이드가 있었습니다. 스트럿츠 1은 나온지 10년이 넘었고, 그때 당시에는 자바 웹 개발자들에게는 정말 단비같은 프레임워크였죠.
지금은 스프링만의 Resolver가 강력해지고 다른 강력한 템플릿 엔진이 있어서 잘 안쓰긴 하지만, 스트럿츠에 한번 빠진 선배 개발자라면 계속 스트럿츠 씁니다. 심지엇 2가 나온지도 오래됐는데도 1 고집하는 분도 봤습니다.

어쨌든, 이 스트럿츠에서는 확장자를 do로 하라고 (주:do something - 뭔가 수행해라) 가이드에서 가르치고 있습니다.
<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>
그렇다면 왜 이렇게 가이드를 냈을까요?
정답은 바로 "다른 서블릿과 URL 충돌을 막기 위해"서 그렇습니다.
JSP 서블렛을 배우면 특정 URL에 서블릿 매핑을 실습해봤을 겁니다.
스프링이 재대로 정착되지 않았을 때, 스프링이 있어도 스트럿츠와 같이 써야 했던 시절이 있었는데, 다른 서블릿을 쓰는데 이와 충돌하지 않기 위해서 .do 로 끝나는 매핑을 가이드했죠.
하지만 요즘은 스프링이 워낙 강력해서 스프링 외 별도 서블렛 매핑을 할 필요가 없어졌으니 다른 별도의 서블릿이 굳이 필요가 없게 되고, JSP 자체에서도 3.0 에 어노테이션 매핑이 지원되면서 의미가 상당히 퇴색됐습니다.

즉, 2000년대 초창기 자바 웹 개발자들에게 .do 는 역사적인 확장자라 봐도 과언이 아니죠.

하지면 WAS도 이제 매핑에 강력해지고, 요즘 서블릿 따로 안쓰고 Spring으로 통일하거나 Play! 라는 다른 웹 프레임워크도 나온 상황입니다.

하지만 여기에 익숙했던 개발자나 강사는 확장자를 .do 로 하라고 가르치죠.
스프링을 가르치거나, 정부표준을 가르치거나.

정부표준 기본 세팅에서 URL 확장자가 항상 .do 로 끝나도록 매핑한 이유 또한 이 역사 때문입니다.

한마디로 관행이고, 이게 한국에서는 "표준"인양 취급을 하고 있죠.
요즘은 검색과 경량화 두마리 토끼를 잡는 REST URL이 대세이긴 하지만,
아직도 do를 고집하고 있는 개발자들이 상당히 많습니다.
그래서 왠만한 정부 사이트들이 모두 이 관행이 반영되어 .do 로 끝나는 URL을 흔히 볼 수 있을 겁니다.

초보자분들은 이 .do를 왜 쓰는지 궁금하다면 제 글을 보시면 됩니다.
저도 왜 궁금했는지 OKJSP에 올린 적 있었지만 아무도 시원한 답변을 주지 못해 제가 직접 구글링 하고 물어보고 해서 나온 허무한 결과입니다.
그냥 그렇게 아세요. 그저 전통적인 관행일 뿐입니다.
0
4
  • 댓글 9

  • 제타건담
    6k
    2014-10-10 09:49:40
    이런 내용이 계정이 짤릴만한 내용은 아니라고 생각하는데요..^^..
    사실 하신 말이 맞다고 보입니다..저는 struts가 대세일때도 model1 방식으로만 하다가..
    나름 충격먹은 사건을 계기로 스프링을 스터디해서 아예 거기로 넘어왔는데요..
    그땐 혼자서 공부하다보니..머 강사가 있었던건 아니지만 인터넷에서 구한 샘플들을 보면 다 do..이더군요..
    그러나 한편으로는 설정쪽을 보면서 do로 반드시 할 필요가 없다는것도 알게 되었습니다..
    그냥 하기 쉽고 남들과 이런 문제로 언쟁(?)하기 싫어서 do를 쓰는 것일뿐..
    꼭 기술적인 이유가 있어서 do를 고집하진 않구요..
    머..프로젝트쪽에서 확장자를 정하면 그걸로 하면 되는거구요..
    크게 확장자에 의미를 두진 않고 삽니다..
    0
  • holykhd
    2k
    2014-10-10 10:01:25
    저는 처음 배울 때 .do를 일반적으로 사용을 하지만 이것은 언제든지 바뀔 수 있다고 배웠습니다.
    즉 개발자가 원하는 확장자를 가진 주소로 바꿔서 사용할 수 있다고 배웠습니다.
    0
  • 카트맨
    2k
    2014-10-10 10:18:36
    확장자를 .do로 하라고 가르치는 사람이 있나요....

    요즘 신규 프로젝트는 확장자 없는 rest로 하는데가 많은거 같더군요
    0
  • 어쩌다
    5k
    2014-10-10 12:12:43
    계정이 짤리실 내용은 아니신거 같습니다만...ㅎ
    그런데 어디서 요즘 do를 사용해야 한다고 하나요..?
    전 스트럿츠 처음 시작했을&#46468;도 do확장자 사이트명으로 바꿔서 적용했었는대...
    도대체 어떤 개발자가 do만 사용해야 한다고 하나요...?
    전 9년동안 그런개발자를 단한명도 본적이 없는데..ㅡㅡ
    do를 사용하는경우는 그냥 다른걸로 바꾸기 싫고 귀찮아서인 개발자가 많을듯...
    0
  • compsoite
    652
    2014-10-10 13:49:09
    @어쩌다
    제가 정말 다른거 바꾸기 싫고 귀찮아서인 개발자와 아키 만난 듯 합니다.
    그것도 대기업이... 공기관은 .do 확장자 아닌 곳이 드물 정도지요 -_-
    0
  • 어쩌다
    5k
    2014-10-10 16:24:55
    @컴포지트
    ㅎㅎ 그렇죠 공공은 무슨 전자정부를 맹신하니.. 공공기관인데도 전부 do확장자입니다...
    사람마다 느끼는 차이는 다르겠지만 우낀건 확장자를 변경할수 없게 모든 컴포넌트 매핑에 .do 까지 친절하게 하느코딩을 해놓았더군요... 그러니 바꿀려고 해도 못바꿉니다..
    이것런것을 표준이라고 그냥 쓰라니..ㅠㅠ
    0
  • kenu
    48k
    2014-10-10 18:43:44
    http://www.gsshop.com/event/main.gs
    http://search.naver.com/search.naver?sm=top_tsi&where=nexearch&query=%EA%B8%88%EC%9A%94+%EC%98%88%EB%8A%A5
    -1
  • ssamzie101
    401
    2014-12-30 10:41:31
    http://www.ebsi.co.kr/ebs/pot/potn/retrieveLmsSubMain.ebs?targetCode=D100&Clickz=G001
    -1
  • Maronie
    6
    2019-11-21 08:45:21

    배웠습니다. 그런 이유였군요! 

    0
  • 로그인을 하시면 댓글을 등록할 수 있습니다.