달력

12022  이전 다음

  •  
  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  
  •  

vi, 어렵지 않아요.

java/jsp 2008. 6. 27. 07:18

오래된 에디터 중에 MS-DOS시절의 edit로 불러낸 텍스트 편집기가 있습니다.

사용자 삽입 이미지


마우스가 일반에게 선보이기 직전의 편집기로 기억을 하는데, 윈도우가 나온 후 메모장(notepad)에 자리를 빼았기게 되었죠. 아직도 윈도우XP에서 edit 명령으로 위 화면을 볼 수 있습니다.

리눅스/유닉스에서는 vi와 emacs가 가장 많이 쓰이는 에디터일 것입니다. 물론 pico라는 에디터도 있습니다. vi는 vim으로 확장판이 나오기도 했지요. 윈도우버전도 지원합니다.
http://www.vim.org/

디벨로퍼웍스에 vi에 관한 좋은 컨닝페이퍼가 있습니다.

물론 저는 vi에서 꼭 익혀야 할 필수기능만 주로 쓰고 있습니다.
hjkl ; 좌하상우
:1 ; 문서 맨 처음
:$ ; 문서 맨 끝
:숫자 ; 라인번호로 이동
/패턴 ; 패턴 이동
^b, ^f ; 페이지 back, forward

x ; 삭제
i ; 삽입

^^; TV리모콘 기능보다 많군요. 전원on/off, 채널up/down, 볼륨up/down만 알면 TV를 볼 수 있는데 말이죠.
역시 편집은 어려운 것 같습니다. 편집기를 다른 것으로 갈아타는 것도 따라서 쉬운 일은 아니겠죠.

아마도 자꾸 쓰면 늘겠죠.

related: http://www.ibm.com/developerworks/kr/library/tutorial/l-vi/


Posted by kenu허광남

댓글을 달아 주세요

  1. 구차니  댓글주소 수정/삭제 댓글쓰기 2008.06.27 09:52

    얼마전에 리눅스 설치 하면서 천리안 시절 메일 보낼때 pico로 작성하던게 편해서 vi 대신
    pico를 설치 하려니 패키지에 존재를 하지 않더라구요. 그래서 찾아 봤더니 pico에서 nano로 업그레이드가 되었더라구요 OTL

    그러고 보니 추억의 edit 화면을 다시 보게 되네요 ㅎ
    한번 실행해봤더니 예전 도스 시절로 돌아간듯한 느낌이 마구 드네요

  2. exedra  댓글주소 수정/삭제 댓글쓰기 2008.06.27 11:31

    문서 맨 처음과 맨 끝으로 이동하는 경우에는 다음 키 명령을 추천합니다.

    gg 문서 맨 처음
    G(shift+g) 문서 맨 끝

    hjkl처럼 그냥 이동 명령어입니다.
    그리고 vi cheat sheet라는 한장짜리 pdf문서도 있어요~

    http://oosoom.org/67

    도움이 되셨길 바랍니다.^^

  3. 용용  댓글주소 수정/삭제 댓글쓰기 2008.06.27 11:40

    ms-dos에서는
    간단한 파일 제작은
    >copy con 파일이름
    입력후 빠져나가는것은 CTRL-Z
    파일 확인은 >type 파일이름
    vi같은 편집기는 edlin 으로 할수있죠.
    edit편집기는 좀 무거워서 잘 안쓰더군요.

simple is the best라는 철학으로 공사들어갔습니다.

위험요소가 많이 있지만 해보는 게 좋을 것 같아서요.


그간은 구글이나 네뇬의 저장된 페이지를 이용해주시기 바랍니다.


조금 죄송합니다. (__)

Posted by kenu허광남

댓글을 달아 주세요

  1. 창천  댓글주소 수정/삭제 댓글쓰기 2008.05.16 13:21

    안 그래도 왜 안 들어가지나 했는데 공사중이셨군요. 새 모습 기대하겠습니다. ^^

  2. 박기원  댓글주소 수정/삭제 댓글쓰기 2008.05.16 15:28

    안녕하세요? 케누님
    안되서 여기로 와봤습니다.^^
    힘내시고요.. 감사합니다.

  3. 재롱이  댓글주소 수정/삭제 댓글쓰기 2008.05.16 17:54

    흐미..괜히 하루종일 문만 두드려댔네요..^^;;
    혹시나 2mb 욕 많이 있어서 폐쇄된건가하는 생각까지...ㅋㅋ
    멋진모습 기대하겠습니다^^

오늘 코드 리뷰 중에 프로젝트 팀원의 노트북에서 찾아낸 정보입니다.

사용자 삽입 이미지


생명연장의 꿈입니다.
Posted by kenu허광남

댓글을 달아 주세요

C/C++ 프로그래머가 자기 주장이 강하다면 용팔이들은 시키는 가격을 잘 준수합니다. 뜨는날은 세상이 자기 소프트웨어를 사랑하는 순간입니다.

Posted by kenu허광남

댓글을 달아 주세요

  1. Max  댓글주소 수정/삭제 댓글쓰기 2008.03.17 09:12

    해독불가....

http://www.okjsp.pe.kr:8080/
이슈 진행사항 관리(추적, Tracking) 하는 툴입니다.
아파치 오픈소스의 새 기능(New Feature), 버그 등을 관리하는 시스템이죠.
등록 -> 오픈 -> 할당 -> 작업 -> 테스트 -> 완료 등의 프로세스를 관리하고,
작업별, 작업자별 진행사항도 확인 가능합니다.
Posted by kenu허광남

댓글을 달아 주세요

  1. lovedev  댓글주소 수정/삭제 댓글쓰기 2008.03.04 23:56 신고

    왜 난 저 지라만 보면...질R...이 생각나는걸까요?ㅋㅋㅋ
    화이링~

servlet 만들기

java/jsp 2008. 2. 27. 19:11

서블릿, 자바로 웹 애플리케이션을 만들기 위해 최초로 나온 기술입니다. 이후 JSP로 서블릿의 약점을 보완했지만, 스트럿츠, 스프링 등의 프레임워크가 득세하면서 다시 관심을 받게 됩니다. 하지만 예전처럼 순수 서블릿의 활용은 많이 없어졌습니다. 프레임워크에 종속된 개발을 많이 하게 되죠.

일단 가장 간단한 서블릿을 만들어보겠습니다. servlet이라는 Dynamic Web Project를 만들고 프로젝트 이름에서 New > Servlet 을 선택합니다. src 아래서는 Servlet 항목이 나오지 않습니다.

사용자 삽입 이미지

net.okjsp 패키지에 HelloServlet 이라고 이름을 주었습니다. *Servlet과 같이 서블릿 클래스의 명명규칙을 가져가는 것이 좋습니다.
사용자 삽입 이미지

URL mapping 이라는 것이 있습니다. 스트럿츠 이후 *.do 라는 매핑이 유명해졌는데, 서블릿 컨테이너에서 들어온 request URL의 패턴에 따라서 매칭되는 서블릿을 호출하게 됩니다. /hello 라는 URL mapping을 추가합니다.
사용자 삽입 이미지

패키지 익스플로러에 HelloServlet.java 파일이 생겼습니다.
사용자 삽입 이미지

함께 생성된 소스입니다. 일반적으로 주소를 치고 들어가는 것은 GET방식으로 호출합니다. 때문에 doGet() 이라는 메소드가 호출이 됩니다. doPost() 메소드는 form 태그에서 method="post" 와 같이 호출할 때 실행이 됩니다. POST방식의 호출이죠.
사용자 삽입 이미지

doGet() 내용을 다음과 같이 적어줍니다.

  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  out.println("<h1>Hello World</h1>");
  out.close();


실행은 JSP와 동일합니다. HelloServlet 파일을 선택하고 Run As > Run on Server 로 실행합니다.

사용자 삽입 이미지

기본 매핑에 따라서 http://localhost:8080/servlet/HelloServlet 주소로 실행이 됩니다.
사용자 삽입 이미지


http://localhost:8080/servlet/hello 로 다시 접속을 해도 같은 서블릿이 실행됩니다.
사용자 삽입 이미지


서블릿의 단점이라 한다면 태그가 문자열 안에 들어가기 때문에 " 는 \" 로 표기해야하고 번잡스러워집니다. html 소스가 바뀌면 일이 커지죠. 때문에 JSP 기술이 나오게 된 것이구요.

하지만 JSP가 Javascript를 비롯해 비즈니스 로직과 프리젠테이션 코드들의 스파게티 소스로 변해가자 로직은 Servlet에서 처리하고 결과값을 JSP에서 보여주는 형식으로 즉 MVC(Model View Controller) 형태의 코드로 관리되는 쪽으로 변해왔습니다. MVC 프레임워크들의 탄생 배경이죠.
Posted by kenu허광남

댓글을 달아 주세요

  1. 흰둥이  댓글주소 수정/삭제 댓글쓰기 2008.02.27 22:39

    저녁식사는 하셨는지요...?

    아.. 아까 얼핏 빵드시던 생각이 나긴하네요..

    ^^;; 밥 드세요...

  2. lovedev  댓글주소 수정/삭제 댓글쓰기 2008.02.28 21:16 신고

    정말 바쁘게 사시는거 같아요 ^^ 몸관리좀 하세요!@

  3. okclick  댓글주소 수정/삭제 댓글쓰기 2008.03.03 10:08

    꾸준히 post하시네요~ ^^;
    okjsp나 여기블로그나 많은 도움 얻어갑니다.
    도움도 도움이지만 꾸준히 열심히 하시는것을 보면 저도 분발해야겠다는 생각이... ㅋㅋ

  4. ㅠㅠ  댓글주소 수정/삭제 댓글쓰기 2008.07.15 15:23

    검색하다 들어오게 됐습니다. URL mapping을 어디서 해줘야 되는건지 모르겠어요..ㅠㅠ
    지금 서블릿실행못해서 지금 3시간동안 삽질중...ㅠㅠ아...url mapping어디서 하는건가요?ㅠㅠ

  5. ㅠㅠ  댓글주소 수정/삭제 댓글쓰기 2008.07.15 18:02

    아 next를 누르면 되는거였군요-0-감사합니다!!

이클립스를 사용해서 개발을 하는 것은 기존 텍스트 에디터를 이용해서 작업하는 것과 많은 차이를 갖고 있다. 특히 웹 애플리케이션 개발에서는 더 많은 차이가 있게 되는데, 우선 언급해 볼 것이 서비스에 구성된 디렉토리와 개발에 사용되는 디렉토리의 차이점이다.

웹 애플리케이션은 서블릿 스펙에 따라서 디렉토리가 정해진 규칙을 갖고 있다.

/WEB-INF/ 브라우저를 통해서 접근이 불가능한 웹 애플리케이션 핵심정보들을 포함하고 있는 디렉토리
/WEB-INF/classes/ 패키지에 따른 디렉토리별 class파일과 properties 파일이 위치하는 곳
/WEB-INF/lib/ 웹 애플리케이션에서 사용되는 jar 파일이 존재하는 곳
/META-INF/context.xml 톰캣에서 사용되는 manager를 통한 배포용 웹 애플리케이션 Context정보 파일
브라우저를 통해서 접근 가능한 리소스들은 그 외의 디렉토리에 놓으면 된다.
특히 브라우저의 JVM 위에서 돌아가는 애플릿 class와 관련 jar 들은 /WEB-INF/ 밖에 위치해야 한다.
이 디렉토리들을 묶어서 Context 라고 얘기한다.

서비스와 관련된 디렉토리 구조가 위와 같고, 개발용 디렉토리 구조는 java 파일이라는 특징 때문에 다음과 같이 구성한다.

/src 패키지에 따른 디렉토리별 java 파일과 properties 파일이 존재하는 곳
/WebContent/ 앞에 언급한 브라우저를 통해서 접근 가능한 리소스들. 웹 애플리케이션의 컨텍스트 루트 디렉토리에 해당.
/WebContent/WEB-INF/ 앞에 언급했던 /WEB-INF/ 디렉토리와 같은 성격
/build/classes  /src 하위 자바파일의 컴파일된 class 들이 놓이는 곳. properties 파일은 자동 복사되는 곳.


개발 디렉토리와 WAS의 서비스되는 디렉토리의 매핑 즉 자연스런 연결은 빌드 툴인 ant를 통하거나 Eclipse같은 IDE에서 자동으로 해준다.

이클립스의 경우 Servers 라는 프로젝트가 웹 프로젝트와 별개로 생성이 된다. 여기에서 설정되는 서버의 세팅은 기본적으로 설치된 세팅과 별도로 운영된다. 즉 톰캣이 설치된 디렉토리의 conf 에 있는 설정과는 별개로 Servers하위의 서버별 server.xml 의 파일에 설정된 내용으로 동작이 된다는 뜻이다.
<%= request.getRealPath("/") %> 를 통해서 확인해 보면 이클립스에서 운영하는 디렉토리가 완전히 엉뚱한 곳에 존재함을 알 수 있다. 웹 프로젝트에서 파일을 변경하면 자동으로 파일이 해당 위치로 복사된다.


관련자료:
http://tomcat.apache.org/tomcat-4.1-doc/appdev/index.html 영문
http://www.apache-korea.org/tomcat/tomcat-4.1-doc/appdev/index.html 번역문

Posted by kenu허광남

댓글을 달아 주세요

  1. SGcom  댓글주소 수정/삭제 댓글쓰기 2008.01.21 17:34

    표준에 맞지 않지만 개발용 디렉토리를 자신의 환경에 맞게 수정할 수 있습니다.
    ^_^ㅋ

  2. 수아기  댓글주소 수정/삭제 댓글쓰기 2008.01.21 23:06

    음 잘 몰라서 뭐라고 말하긴 그렇지만 복잡해요.ㅠ.ㅠ

  3. 어딜털까  댓글주소 수정/삭제 댓글쓰기 2008.05.14 18:47

    슬쩍 털어갑니다

구걸 등의 검색결과에서 저장된 페이지는 유용합니다만 저장된 페이지의 내용이 바뀐 경우 구걸에 구걸하는 골때리는 상황이 연출됩니다.
이럴 때 해당 게시물이 404 (Not Found) 또는 410 (Gone) 으로 표시 되어야 하는데, 컨트롤러에 다음과 같은 코드를 추가했습니다.

  public void doGet(HttpServletRequest req, HttpServletResponse res)
                        throws IOException {
...
    if ("106835".equals(req.getParameter("seq"))) {
     res.sendError(404,"File Not Found");
     return;
    }

굵게 표시한 부분이 404 상태코드를 날리면서 메시지도 File Not Found 라고 표시되게 만들어줍니다. 게시물 죽은척하는 코드입니다.

확인 : http://www.okjsp.pe.kr/seq/106835

역시 웹에는 숨겨진 세상이 많습니다.

Posted by kenu허광남

댓글을 달아 주세요

그런데 참으로 어려운 말을 해버렸네요.
"2007년 12월5일7주년입니다.10주년까지버틸께요.-행복 kenu" 라고 제일 상단에 써놓았습니다.

사용자 삽입 이미지


결혼하고 만1년이 지나고 2000년 12월 5일 JSP/XML 정보공유를 목표로 시작한 사이트입니다. 최초 도메인은 jspstudy.zoa.to 였죠. 아직도 포워딩은 됩니다. 그 당시는 dreamwiz의 5메가 무료 홈페이지 계정부터 시작했죠.

이후 2001년 3월 15일 okjsp.pe.kr 이라는 도메인을 잡고, giveu 호스팅회사에 php호스팅을 하고, jsp 게시판은 당시 다니던 회사 서버를 약간 빌리기도 했었죠. 이후 회사를 나오면서 두루넷을 쓰던 집에서 오라클에 jsp게시판을 잠시 돌렸었고, jsphost 호스팅회사를 거쳐 바람난닭님 소개로 변태대마왕님이 운영하시는 현재의 www.80port.com 호스팅회사에서 지원받게 되었습니다. 무료로 4년간 서버와 회선을 지원받았습니다. 이 회사 잘 되어야 합니다. 팔공포트 만만세.

무엇보다도 고마운 것은 사이트를 애용해주시는 분들입니다. 좋은 정보 올려주시고, 질문에 성실하게 답하는 등 사이트가 사람이 올만한 곳으로 만들어주시는 분들이죠.
광고 올리는 분들도 밉지만, 방문카운트 하나씩 올려주는 만큼만 안 미워하고 있습니다. 그래도 도배는 싫지요.

지금부터 3년 뒤 10주년이 되면 이렇게 조용히 지나가고 싶지는 않습니다.

텍스트로 얼룩진 황량한 디자인의 사이트지만 앞으로 새끈하게 바뀌는 것도 고려해보겠습니다.

행복해야죠. kenu였습니다.
아, 아이디 kenu는 starcraft 배틀넷 등록하다가 만든 id입니다. ^^
Posted by kenu허광남

댓글을 달아 주세요

  1. nama  댓글주소 수정/삭제 댓글쓰기 2007.12.04 09:36

    100 주년 까지... 영원하라~~ 80포트 만만세~~
    추신: 여기가.. irc를 막아놔서 못들어가네요ㅠㅠ

  2. 김민재  댓글주소 수정/삭제 댓글쓰기 2007.12.04 10:34 신고

    뭐 오픈커뮤니티에서 기념이 될만한게 세미나만큼 좋은게 있을까 싶은데.. ㅎㅎ
    세미나 조촐하지만 묵직하게 하나 계획하심이 어떨런지??

    뭐 개인적으로 원하는 주제라면,, Presentation 레이어에서 알아야 할 Stateful과 Stateless 내용들" 뭐 이런거.. ^^

    암튼,, okjsp 역사 축하하고,, 나도 요즘 하나 만들려고 인큐베이팅 중인데.. 좋은 모델이 될듯 하네 그려~~

  3. visharp  댓글주소 수정/삭제 댓글쓰기 2007.12.04 11:31

    축하드립니다~~정말
    저한테도 정말 도움이 많이 되는 사이트였고, 앞으로도 많이 될것만 같은 사이트~
    3대째 물려서 운영하실길!

  4. 탁..  댓글주소 수정/삭제 댓글쓰기 2007.12.04 13:07

    축하드립니다 ^^
    처음 만드실 때 이야기를 접하니
    2001년도가 그렇게 지난 세월이 되어버렸나 싶기도 합니다

    7년 동안, 열심히 달려오시는 모습 참 멋지십니다~

  5. ccjoy  댓글주소 수정/삭제 댓글쓰기 2007.12.04 14:50

    와... 7주년 축하드립니다!!!
    10주년,, 100주년 오래오래 행복하세요~ \^"^"/
    이렇게 장기간 유지한다는데 참 어려운 일인거 같아요

  6. 선인장s  댓글주소 수정/삭제 댓글쓰기 2007.12.04 16:35 신고

    와..7주년이라니..
    검색에서 나오는 2000년도의 글을 볼때마다 깜짝 놀래곤 했지만, 정말 더욱 놀랍습니다^^
    정말 대단하세요~~~
    잠잘시간도 없으신데..^^

    언제나 건겅 조심하시고, okjsp를 만들어주시고 지켜주셔서 감사합니다!

  7. 멋진인생  댓글주소 수정/삭제 댓글쓰기 2007.12.04 22:25

    이야 ^^

    축하 축하

  8. thuja  댓글주소 수정/삭제 댓글쓰기 2007.12.06 11:26

    7주년 축하드립니다.
    okjsp에 들러서 언제나 많은 도움을 받고있습니다.
    kenu님도 언제나 건강하시고, 행복하시길 바랍니다.

처음으로 JSP를 만들어보겠습니다. WebConent 디렉토리를 마우스 오른버튼으로 클릭해서 New > JSP 항목을 선택합니다.

JSP는 WebContent 아래 만듭니다.

JSP는 WebContent 아래 만듭니다.


New JavaServer Page 창이 뜹니다. Java하고 Server하고 찰싹 붙어있네요. 자바서버의 페이지라는 뜻이겠죠. 그래서 확장자는 자동으로 붙여줍니다. simple이라고 입력하면 .jsp는 자동으로 붙여서 파일이 생깁니다. Next 버튼을 클릭해서 다음으로 이동합니다.

확장자는 알아서 만들어 줍니다.

확장자는 알아서 만들어 줍니다.


Posted by kenu허광남

댓글을 달아 주세요