모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    컴포지트님의
    개인페이지입니다
    가입 : 14-01-16
    방문 : 461회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_5871
    작성자 : 컴포지트
    추천 : 5
    조회수 : 16786
    IP : 1.221.***.162
    댓글 : 10개
    등록시간 : 2014/10/10 09:45:19
    http://todayhumor.com/?programmer_5871 모바일
    [Java/Servlet] 자바웹 초보를 위한 .do 확장자의 역사
    <span style="font-size:medium;line-height:normal;">OKJSP에 이 글을 올리면 짤리는 글입니다. 이유는 아래에 설명합니다.</span> <div style="font-size:medium;line-height:normal;"><br></div> <div style="font-size:medium;line-height:normal;">초보자분들이 자바웹(스프링/정부표준 등)에 입문하실 때</div> <div style="font-size:medium;line-height:normal;">강사나 선배 개발자분들이 표준을 가르칩니다.</div> <div style="font-size:medium;line-height:normal;">그때 가장 질리게 들을 확장자가 .do 이고, 항상 .do 로 끝나야 한다고 하죠.</div> <div style="font-size:medium;line-height:normal;">몇번 프로젝트할 때 이게 업무표준일 줄 알았지만,</div> <div style="font-size:medium;line-height:normal;">스트럿츠 하면서 저도 의문점을 가지게 됐습니다.</div> <div style="font-size:medium;line-height:normal;">왜 확장자를 반드시 .do 로 해야 하는가.</div> <div style="font-size:medium;line-height:normal;"><br></div> <div style="font-size:medium;line-height:normal;">StackOverflow 에 해답이 있었습니다.</div> <div style="font-size:medium;line-height:normal;"><a target="_blank" href="http://stackoverflow.com/questions/3597582/why-do-java-webapps-use-do-extension-where-did-it-come-from" target="_blank">http://stackoverflow.com/questions/3597582/why-do-java-webapps-use-do-extension-where-did-it-come-from</a><br></div> <div style="font-size:medium;line-height:normal;"><br></div> <div style="font-size:medium;line-height:normal;">여기서 채택된 답변을 보시면,</div> <div style="font-size:medium;line-height:normal;">스트럿츠 1 사용자 가이드가 있었습니다. 스트럿츠 1은 나온지 10년이 넘었고, 그때 당시에는 자바 웹 개발자들에게는 정말 단비같은 프레임워크였죠.</div> <div style="font-size:medium;line-height:normal;">지금은 스프링만의 Resolver가 강력해지고 다른 강력한 템플릿 엔진이 있어서 잘 안쓰긴 하지만, 스트럿츠에 한번 빠진 선배 개발자라면 계속 스트럿츠 씁니다. 심지엇 2가 나온지도 오래됐는데도 1 고집하는 분도 봤습니다.</div> <div style="font-size:medium;line-height:normal;"><br></div> <div style="font-size:medium;line-height:normal;">어쨌든, 이 스트럿츠에서는 확장자를 do로 하라고 (주:do something - 뭔가 수행해라) 가이드에서 가르치고 있습니다.</div> <div style="font-size:medium;line-height:normal;"><pre class="lang-java prettyprint prettyprinted" style="margin-top:0px;margin-bottom:10px;padding:5px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;font-family:Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif;overflow:auto;width:auto;max-height:600px;line-height:17.8048000335693px;background:#eeeeee;"><code style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;font-family:Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif;white-space:inherit;"><span class="pun" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;"><</span><span class="pln" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">servlet</span><span class="pun" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">-</span><span class="pln" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">mapping</span><span class="pun" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">></span><span class="pln" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;"> </span><span class="pun" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;"><</span><span class="pln" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">servlet</span><span class="pun" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">-</span><span class="pln" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">name</span><span class="pun" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">></span><span class="pln" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">action</span><span class="pun" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;"></</span><span class="pln" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">servlet</span><span class="pun" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">-</span><span class="pln" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">name</span><span class="pun" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">></span><span class="pln" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;"> </span><span class="pun" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;"><</span><span class="pln" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">url</span><span class="pun" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">-</span><span class="pln" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">pattern</span><span class="pun" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">>*.</span><span class="kwd" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;color:#00008b;background:transparent;">do</span><span class="pun" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;"></</span><span class="pln" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">url</span><span class="pun" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">-</span><span class="pln" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">pattern</span><span class="pun" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">></span><span class="pln" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;"></span><span class="pun" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;"></</span><span class="pln" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">servlet</span><span class="pun" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">-</span><span class="pln" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">mapping</span><span class="pun" style="margin:0px;padding:0px;border:0px;font-size:13.6960000991821px;vertical-align:baseline;background:transparent;">></span></code></pre></div> <div style="font-size:medium;line-height:normal;">그렇다면 왜 이렇게 가이드를 냈을까요?</div> <div style="font-size:medium;line-height:normal;">정답은 바로 "다른 서블릿과 URL 충돌을 막기 위해"서 그렇습니다.</div> <div style="font-size:medium;line-height:normal;">JSP 서블렛을 배우면 특정 URL에 서블릿 매핑을 실습해봤을 겁니다.</div> <div style="font-size:medium;line-height:normal;">스프링이 재대로 정착되지 않았을 때, 스프링이 있어도 스트럿츠와 같이 써야 했던 시절이 있었는데, 다른 서블릿을 쓰는데 이와 충돌하지 않기 위해서 .do 로 끝나는 매핑을 가이드했죠.</div> <div style="font-size:medium;line-height:normal;">하지만 요즘은 스프링이 워낙 강력해서 스프링 외 별도 서블렛 매핑을 할 필요가 없어졌으니 다른 별도의 서블릿이 굳이 필요가 없게 되고, JSP 자체에서도 3.0 에 어노테이션 매핑이 지원되면서 의미가 상당히 퇴색됐습니다.</div> <div style="font-size:medium;line-height:normal;"><br></div> <div style="font-size:medium;line-height:normal;">즉, 2000년대 초창기 자바 웹 개발자들에게 .do 는 역사적인 확장자라 봐도 과언이 아니죠.</div> <div style="font-size:medium;line-height:normal;"><br></div> <div style="font-size:medium;line-height:normal;">하지면 WAS도 이제 매핑에 강력해지고, 요즘 서블릿 따로 안쓰고 Spring으로 통일하거나 Play! 라는 다른 웹 프레임워크도 나온 상황입니다.</div> <div style="font-size:medium;line-height:normal;"><br></div> <div style="font-size:medium;line-height:normal;">하지만 여기에 익숙했던 개발자나 강사는 확장자를 .do 로 하라고 가르치죠.</div> <div style="font-size:medium;line-height:normal;">스프링을 가르치거나, 정부표준을 가르치거나.</div> <div style="font-size:medium;line-height:normal;"><br></div> <div style="font-size:medium;line-height:normal;">정부표준 기본 세팅에서 URL 확장자가 항상 .do 로 끝나도록 매핑한 이유 또한 이 역사 때문입니다.</div> <div style="font-size:medium;line-height:normal;"><br></div> <div style="font-size:medium;line-height:normal;">한마디로 관행이고, 이게 한국에서는 "표준"인양 취급을 하고 있죠.</div> <div style="font-size:medium;line-height:normal;">요즘은 검색과 경량화 두마리 토끼를 잡는 REST URL이 대세이긴 하지만,</div> <div style="font-size:medium;line-height:normal;">아직도 do를 고집하고 있는 개발자들이 상당히 많습니다.</div> <div style="font-size:medium;line-height:normal;">그래서 왠만한 정부 사이트들이 모두 이 관행이 반영되어 .do 로 끝나는 URL을 흔히 볼 수 있을 겁니다.</div> <div style="font-size:medium;line-height:normal;"><br></div> <div style="font-size:medium;line-height:normal;">초보자분들은 이 .do를 왜 쓰는지 궁금하다면 제 글을 보시면 됩니다.</div> <div style="font-size:medium;line-height:normal;">저도 왜 궁금했는지 OKJSP에 올린 적 있었지만 아무도 시원한 답변을 주지 못해 제가 직접 구글링 하고 물어보고 해서 나온 허무한 결과입니다.</div> <div style="font-size:medium;line-height:normal;">그냥 그렇게 아세요. 그저 전통적인 관행일 뿐입니다.</div>

    이 게시물을 추천한 분들의 목록입니다.
    [1] 2014/10/10 09:54:22  220.83.***.160  중학생코더★  552609
    [2] 2014/10/10 10:12:37  175.223.***.238  짜요짜요목장  550040
    [3] 2014/10/10 10:56:15  1.220.***.212  키리사키치토게  379335
    [4] 2014/10/10 13:54:30  1.222.***.27  윤하홀릭  87487
    [5] 2016/07/27 10:48:09  223.62.***.164  송닥스  181927
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    213
    흐음.. 이제 역사는 돈으로 흘러가는 것인가 생각해 봅니다. [6] 컴포지트 14/10/17 17:34 35 3
    212
    요즘 암시장에서 가장 핫한 아이템, 의료 정보 컴포지트 14/10/16 15:09 158 3
    211
    [기사] 정부가 스타트업 삥뜯고 세금 낭비하는 방법 컴포지트 14/10/16 09:23 61 3
    210
    [세금창조] 건보공단, 담배 이어 비만 잡는다…27일 대책위 출범 [7] 컴포지트 14/10/15 15:36 157 10
    209
    회사 과장의 일침.jpg [3] 컴포지트 14/10/14 16:58 684 4
    208
    한국에서 개발자는 "전문직" 이 아닌 "사무보조" 입니다. [9] 컴포지트 14/10/14 10:30 109 5
    207
    정부가 가격올리는데 FTA 논리 아무리 갈겨도 소용이 없는 이유. [1] 컴포지트 14/10/13 15:18 72 9
    206
    예외조항만 1114개 ‘누더기 정보보호법’ [2] 컴포지트 14/10/10 10:56 91 11
    [Java/Servlet] 자바웹 초보를 위한 .do 확장자의 역사 [10] 컴포지트 14/10/10 09:45 57 5
    204
    지금 정부는 아예 즐기고 있습니다. 컴포지트 14/10/08 17:00 142 3
    203
    해킹 통한 '온라인 살인' 공포가 다가온다. 컴포지트 14/10/08 11:13 53 1
    202
    카카오톡 사태, 텔레그램 망명. 국내만의 이슈가 아닙니다. 컴포지트 14/10/08 10:21 207 4
    201
    개발자 푸념 만화를 보니... [1] 컴포지트 14/10/06 17:30 160 2
    200
    [사설] 구글 독점? 국내 IT 역차별이라고? [4] 컴포지트 14/10/06 13:49 60 9
    199
    핀테크(FinTech)를 아십니까? [3] 컴포지트 14/10/06 12:56 118 4
    198
    한국 기술수지 적자 OECD 국가중 ‘최대’ [4] 컴포지트 14/10/06 11:16 77 11
    197
    흐음.. 한국 젊은이들은 홍콩만도 못하는 것입니까? [13] 컴포지트 14/10/02 16:35 250 18
    196
    윈도우가 9를 건너뛴 진짜 이유? [3] 컴포지트 14/10/02 10:25 162 1
    195
    삼성전자, 문서작성 ‘MS워드’로 전환 [2] 컴포지트 14/10/02 09:42 60 0
    194
    [기사] 삼성 '밀크뮤직', 무료 서비스 중단되나? [1] 컴포지트 14/10/01 17:38 41 2
    193
    소프트뱅크 손정의, 드림웍스 인수 추진 [1] 컴포지트 14/09/30 13:50 86 0
    192
    이케아 기대 많이 했는데 그 기대감 와장창 날라가는군요. [8] 컴포지트 14/09/26 13:14 128 10
    191
    다음 중 웹 브라우저가 아닌 것은.jpg2000 [6] 컴포지트 14/09/26 10:49 509 4
    190
    인터넷 실명제가 다시 수면 위로 떠올랐습니다. [1] 컴포지트 14/09/26 09:04 101 2
    189
    다음은 데비앙아트입니다. [5] 컴포지트 14/09/25 14:09 59 0
    188
    [스카이림] 빌리아같이 스토리있는 남성 동료가 있습니까? [2] 컴포지트 14/09/24 14:38 64 0
    187
    내일 아침 9시에 MS TechDays 가실 분 있으십니까? [7] 컴포지트 14/09/23 19:09 26 5
    186
    저는 국내 클라우드를 쓰느니 차라리 중국 클라우드를 쓰겠습니다. [1] 컴포지트 14/09/23 10:05 50 0
    185
    일베 등의 수꼴 사이트에서 실명제 찬성바람이 불고 있습니다. [4] 컴포지트 14/09/23 09:34 235 9/2
    184
    철벽녀와 오유남 [5] 컴포지트 14/09/23 09:27 121 5
    [◀이전10개] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈