저작권 안내: 저작권자표시 Yes 상업적이용 No 컨텐츠변경 No

스프링5 입문

JSP 2.3

JPA 입문

DDD Start

인프런 객체 지향 입문 강의

방명록을 남겨주세요!

  1. 문소영 2017.02.01 21:14 신고  수정/삭제  댓글쓰기

    안녕하세요. [객체지향과 디자인 패턴] 책으로 강의를 하고 싶은데 혹시 PPT나 소스코드 같은 자료가 있을지 문의 드립니다.

    • 최범균 madvirus 2017.02.02 22:07 신고  수정/삭제

      따로 강의용 PPT 자료는 존재하지 않습니다. 전체 코드는 아니지만 일부 코드는 https://github.com/madvirus/oodp 에 있습니다.

  2. winddragon 2017.01.31 14:58 신고  수정/삭제  댓글쓰기

    안녕하십니까?
    얼마전 [최범균의 JSP 2.3 웹 프로그래밍 기초부터 중급까지] 책을 구입해서 공부중입니다. 가메출판사 홈페이지에서 소스를 내려받아 실행해보고 있는데요
    게시판소스 board에 게시글작성,게시글수정 소스는 있는데요 게시글삭제 소스는 없네요
    제가 해당소스를 못찾은 건지 문의드립니다.

    • 최범균 madvirus 2017.02.01 14:06 신고  수정/삭제

      아, 그게 삭제는 일종의 숙제 같은 성격으로 비워두긴 했는데, 게시글을 수정하는 기능과 동일한 구조로 만들어보시면 됩니다.

  3. 심요섭 2016.12.29 17:18 신고  수정/삭제  댓글쓰기

    안녕하십니까
    현재 'Spring 4.0 프로그래밍'책을 가지고 공부하고 있는 학생입니다.
    책 본문 660페이지 - 2.5 DispatcherServlet 설정과 스프링 시큐리티를 위한 web.xml설정 에서

    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:/spring-security.xml</param-value>
    </context-param>
    위 코드의 classpath부분에서

    심각: Exception sending context destroyed event to listener instance of class org.springframework.web.context.ContextLoaderListener
    java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
    이하 생략...

    에러가 발생하고 있습니다. 이클립스 메시지에서는 The word 'classpath' is not correctly spelled 라는 내용의 메시지가 뜹니다.

    현재 톰캣 8.5버전, 이클립스 네온2 을 쓰고있는데요

    이러한 에러원인과 해결방안을 메일로 알려주시면 감사하겠습니다.

    제메일 주소는 yoseobshim9695@gmail.com 입니다.

  4. 최영준 2016.12.10 09:50 신고  수정/삭제  댓글쓰기

    안녕하세요? 저는 정보통신을 전공하는 대학생입니다. 다름이 아니라 전공에 관련된 학업을 위해 공부를 하는중에 선생님이 http://javacan.tistory.com/entry/42 여기 사이트에서 가상인터넷 서점을 구축하는 프로그램을 만드신 것을 보았습니다. 프로그램을 보는중에 이프로그램을 제가 직접 돌려서 한번 실행해보고 싶은데 사이트에는 BookMgr과 BookBean등 과 같은 클래스가 나와있지 않아서 직접 돌려보기에는 많은 어려움이 있었습니다. 그래서 초면에 실례를 무릅쓰고 혹시 저에게 프로그램을 돌릴수있는 소스들을 공유해주실수 있는지 궁금해서 여쭤봅니다. 언제든 답변 기다리겠습니다. kjggo0522@naver.com 제 이메일 주소입니다. 항상 행복한 하루 되시길 바랍니다. 감사합니다 -2016.12.10 최영준 씀

    • 최범균 madvirus 2016.12.12 10:02 신고  수정/삭제

      메일로도 드렸는데요, 이게 15년전 글이라 관련 코드를 찾지 못했습니다.

      이 때에 비해 지금은 HTTP 기반 통신 방식이 더 정리되었습니다. 이 글 보다는 REST API, JSON과 같은 주제로 검색을 해 보시면 최근에 맞는 자료를 찾으실 수 있을 겁니다.

  5. Joon Lee 2016.08.29 15:04 신고  수정/삭제  댓글쓰기

    안녕하세요! 덕분에 정말 많은 공부를 하고 있습니다.
    다름이 아니라 면접을 준비하다보니
    LRU 캐쉬를 구현한 부분을 좀 자세히 보고 싶어서요. 데이터를 실제적으로 삽입을 하고 테스트하는 부분도 많이 도움이 될 것 같습니다.
    혹시 깃허브나 코드 공유나 따로 가능할까요?

    제 이메일 주소 입니다. ms0169747@gmail.com

    reference - http://javacan.tistory.com/entry/48

    감사합니다!

  6. Edward.woo 2016.05.30 17:24 신고  수정/삭제  댓글쓰기


    안녕하세요? 스프링4 프로그래밍입문을 보고 공부중인데, 238페이지 sping-mvc.xml을 그대로 입력하고 돌려보면 아래와 같이 <mvc:view-resolvers>에서 오류가 나오고 있습니다. 스프링 4.0 프로그래밍 책에서는 <bean id="viewResolver" class=".... 식으로 되어 있던데요. 이유가 뭘까요..?

    org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 15 in XML document from ServletContext resource [/WEB-INF/spring-mvc.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 15; columnNumber: 22; cvc-complex-type.2.4.c: 일치하는 와일드 카드 문자가 엄격하게 적용되지만 'mvc:view-resolvers' 요소에 대한 선언을 찾을 수 없습니다.
    at

    • 최범균 madvirus 2016.05.30 18:01 신고  수정/삭제

      스프링 4.0 프로그래밍 책은 4.0을 기준으로 코드를 작성했고 스프링 4 입문책은 4.1을 기준으로 작성했습니다.
      말씀하신 mvn:view-resolvers는 4.1부터 지원하고 있습니다.

  7. lae 2016.05.10 11:13 신고  수정/삭제  댓글쓰기

    안녕하세요. 질문이 있어서 글을 남깁니다.
    http://javacan.tistory.com/entry/124
    이 글을 이미지를 품질을 유지하며 크기를 조절해서 저장하게 하는 클래스인데, 개발 초보이다보니 어떤 식으로 가져다 사용해야될지 모르겠어서 원초적인 질문을 드립니다.
    ImageUtil 이라는 클래스를 가져와서 byte 형태의 변수로 저장되어 있는 이미지를 리사이징 하려고 하는데 어떤식으로 사용해야 할지 설명 부탁드립니다..

  8. 백종현 2016.04.11 17:12 신고  수정/삭제  댓글쓰기

    안녕하세요 저는 저자님의 웹 개발자를 위한 Spring 4.0프로그래밍책을 보고 공부하고 있는 학생입니다. chapter07 스프링 MVC 기본기에서 궁금한게 있는데요.
    p356페이지의 팁에서 @ResponseStatus 애노테이션을 이용해서 익셉션의 응답코드를 변경하는 것은 컨트롤러 영역에서만 사용할 것을 권고하고 있는데요 그 이유가
    팁의 중간쯤에 UI를 HTTP에서 소켓을 직접 이용하는 방식으로 변경하면
    서비스/도메인/영속성 코드도 함께 영향을 받을 가능성이 높아지기 때문이라고 되있습니다. 제가 생각하는 여기에서의 UI는 웹에서 익셉션 응답 코드에 따라 클라이언트에게 보여지는 에러페이지라고 생각되어지는데요. 그렇다면 여기서..
    UI를 HTTP에서 소켓을 직접 이용하는 방식으로 변경한다는 뜻은
    본래는 UI(에러페이지)를 HTTP(브라우저 자체의 에러페이지 분류기준에 의하여)가 제어했으나 이것을 스프링 자바코드에 의하여 제어하는 방식으로 변경한다는 뜻일까요? 즉 소켓을 직접 이용하는 방식이라는 것이 스프링 자바코드에 의하여 제어하는 방식을 의미하는 것인지 아니면 다른 의미가 있는건지 또 여기서 소켓은 정확히 어떤것을 의미하는 것인지 궁금합니다.

    • 최범균 madvirus 2016.04.12 12:57 신고  수정/삭제

      소켓이라는 것은 네트워크 프로그래밍에서 나오는 용어입니다.
      HTTP 역시 네트워크에 기반해서 동작하는데, HTTP가 정한 규칙이 아니라 다른 규칙을 이용해서 클라이언트와 통신해야 할 수도 있습니다.
      스프링에서 제어하는 걸 의미하는 것은 아니고, TCP를 이용한 네트워크 프로그래밍을 간단하게라도 학습하시면 문장을 이해하는데 도움이 될 것 같습니다.

  9. 코로나 2016.03.08 15:11 신고  수정/삭제  댓글쓰기

    안녕하세요 "spring4 프로그래밍 입문" 책으로 공부중인 학생입니다.
    스프링을 처음 접하는데 책 따라가니 정말 많이 배우고 좋습니다. 감사합니다.

    AOP파트 공부 중 궁금한 점 있어 문의 드립니다.
    챕터7 - 2. 프록시와 AOP
    ExeTimeCalculator클래스가 프록시 객체에 해당하고
    ImpleCalculator클래스가 프록시의 대상 객체

    챕터7 - 3.스프링 AOP구현
    ExeTimeAspect클래스가 aspect객체이고
    프록시 객체는 빈객체인 ImpeCalculator라고 하셨는데

    ImpeCalculator객체는 프록시의 대상 객체이고

    ExeTimeAspect객체가 aspect객체이자 프록시 객체 아닌가요?

    프록시랑 aspect이랑 차이점이 뭔지 궁금합니다.
    프록시 정의 보면 핵심기능 실행은 다른 객체 위임하고
    부가기능 제공하는 객체라고 하셨고
    aspect은 공통 기능을 구현한 클래스라고 하셨는데

    aspect 클래스 내부에서 ProceedingJoinPoint의 proceed()메소드를 통해 ImpeCal의 factorial()메소드를 호출하는것이 핵심기능 실행 위임 처리하고
    measure()메소드로 공통기능 제공하니 aspect객체이자 프록시 객체라고 생각했는데
    책에 보니 ImpeCalculator가 프록시 객체라고 하여 헷갈립니다.

    두서 없는 글 죄송하고 읽어주셔서 감사합니다.
    답변 부탁드립니다.

    • 최범균 madvirus 2016.03.10 08:39 신고  수정/삭제

      우선, 167p에서 "빈 객체인 impeCal"이 프록시라고 했죠.
      실제 ImpleCalculator 객체는 "빈 객체인 impeCal"이 아닙니다.

      그리고, Aspect는 공통 기능입니다.
      이 공통 기능을 대상 객체에 적용하기 위해 프록시를 사용하구요.

      Around Aspect는 대상 객체의 메서드 실행 전/후에 공통 기능을 구현하므로, 구조상 [그림7.3]과 같은 모양이 됩니다. 이 공통 기능을 실행하는 주체가 프록시이구요.

      단지 프록시에서 대상 객체를 직접 부르는 게 아니고 ExeTimeAspect가 Around Aspect를 구현하는 과정에서 대상 객체를 부르는 것입니다.

      Around가 아닌 Before 같은 Aspect는 Around와 달리 실제 대상 객체를 직접 실행하진 않습니다.

  10. 황현지 2016.02.23 10:45 신고  수정/삭제  댓글쓰기

    안녕하세요 chap12 커넥션 풀을 하던도중에 어제부터 HTTP Status 500 - An exception occurred processing JSP page /viewMemberUsingPool.jsp at line 24

    --------------------------------------------------------------------------------

    type Exception report

    message An exception occurred processing JSP page /viewMemberUsingPool.jsp at line 24

    description The server encountered an internal error that prevented it from fulfilling this request.

    exception

    org.apache.jasper.JasperException: An exception occurred processing JSP page /viewMemberUsingPool.jsp at line 24

    21: try{
    22: String jdbcDriver = "jdbc:apache:commons:dbcp:/pool";
    23: String query = "select * from MEMBER order by MEMBERID";
    24: conn = DriverManager.getConnection(jdbcDriver);
    25: stmt = conn.createStatement();
    26: rs = stmt.executeQuery(query);
    27: while(rs.next()) {


    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:575)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:462)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)


    root cause

    javax.servlet.ServletException: java.sql.SQLException: No suitable driver found for jdbc:apache:commons:dbcp:/pool
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:916)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:845)
    org.apache.jsp.viewMemberUsingPool_jsp._jspService(viewMemberUsingPool_jsp.java:151)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)


    root cause

    java.sql.SQLException: No suitable driver found for jdbc:apache:commons:dbcp:/pool
    java.sql.DriverManager.getConnection(DriverManager.java:602)
    java.sql.DriverManager.getConnection(DriverManager.java:207)
    org.apache.jsp.viewMemberUsingPool_jsp._jspService(viewMemberUsingPool_jsp.java:110)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)


    note The full stack trace of the root cause is available in the Apache Tomcat/7.0.67 logs.

    이러한 오류가 계속 반복되는데 분명 이클립스 내에서는 오류도 뜨지 않는데 실행만하면 이런 오류가 뜹니다. 대체 뭐가 문제인지... 저는 회사에서 하다보니 에디터플러스가 아닌 이클립스로 하고 있습니다.

    • 최범균 madvirus 2016.02.23 23:00 신고  수정/삭제

      에러 메시지를 보면 No suitable driver found for jdbc:apache:commons:dbcp:/pool 이런 내용이 나오는데요,
      DBCP용 JDBC 드라이버를 로딩하지 않아서 발생한 문제입니다.
      DBCPInit 클래스를 이용해서 JDBC 드라이버를 로딩하도록 web.xml에 설정했는지 확인해보세요.