카테고리388 자바(JAVA) - 객체지향 설계 원칙(SOLID) 보호되어 있는 글 입니다. 2023. 8. 20. 자바(JAVA) - 팩토리 패턴(Factory) 팩토리 패턴이란? 객체를 생성하는 인터페이스는 미리 정의하되, 인스턴스를 만들 클래스의 결정은 서브 클래스 쪽에서 내리는 패턴. 즉, 여러 개의 서브클래스를 가진 슈퍼 클래스가 있을 때 인풋에 따라 하나의 자식 클래스의 인스턴스를 리턴해주는 방식 1. 인터페이스 정의하기 2. 여러 클래스 구현하기 3. 쥬스 공장 클래스 생성하기 4. 메인 클래스에서 쥬스공장 생성후 찍어보기 결과창 장점 유연성과 확장성 - 새 제품을 추가, 변경시 기존 코드 수정하지 않아도됨. 클라이언트 코드 분리 중복코드 제거 - 객체 생성 코드가 여러 곳에서 중복되지 않도록 한다면, 객체 생성에 불필요한 중복코드 제거 단점 복잡성 증가 - 이 패턴은 추가적인 클래스를 도입하므로, 코드의 복잡성이 증가할 수 있다. 추상화 비용 많은 클래스 2023. 8. 20. [Spring] Bean과 Bean Factory , @Configuration과 @Bean Bean이란? 스프링이 제어권을 가지고 직접 만들고 관계를 부여하는 오브젝트임과 동시에 스프링 컨테이너가 생성과 관계설정, 사용 등을 제어해주는 제어의 역전이 적용된 오브젝트 스프링을 사용하는 애플리케이션에서 만들어지는 모든 오브젝트가 다 빈은 아니다. 그 중에서 스프링이 직접 그 생성과 제어를 담당하는 오브젝트만 빈이라고 부른다. Bean Factory 빈의 생성과 관계설정 같은 제어를 담당하는 IoC 오브젝트 보통 빈 팩토리(Bean Factory)를 바로 사용하지 않고, 이를 확장한 애플리케이션 컨텍스트(ApplicationContext)를 사용. BeanFactory라고 붙여쓰면 빈 팩토리가 구현하고 있는 가장 기본적인 인터페이스 이름이 된다. 이 인터페이스에 getBean()과 같은 메소드가 정.. 2023. 8. 19. [JSP] EL (Expression Language) 과 JSTL (Jsp Standard Tag Library) EL이란? EL은 표현을 위한 언어로 JSP 스크립트의 표현식을 대신하여 속성 값을 쉽게 출력하도록 고안된 언어이다. 즉, 표현식 를 대체할 수 있다. EL 표현식에서 도트 연산자 왼쪽은 반드시 java.util.Map 객체 또는 Java Bean 객체여야 한다. EL 표현식에서 도트 연산자 오른쪽은 반드시 맵의 키이거나 Bean 프로퍼티여야 한다. EL 문법 2가지 [ ] 연산자 안의 값이 문자열인 경우, 맵의 키가 될 수도 있고, Bean 프로퍼티나 리스트 및 배열의 인덱스가 될 수 있다. ex) 1 JSTL (JSP Standard Tag library) JSP 페이지 내에서 자바 코드를 바로 사용하지 않고 로직을 내장하는 효율적인 방법을 제공한다. 표준화된 태그 셋을 사용하여 자바 코드가 들락거리.. 2023. 8. 16. [JSP] 자바빈즈 <jsp:useBean>, getProperty 와 setProperty JSP 자바빈즈란? JSP의 표준 액션 태그로 접근할 수 있는 자바 클래스로서 값을 가지는 속성과 값을 설정하는 메소드, 값을 추출하는 메소드로 이루어져 있다. JSP 자바빈즈를 활용할 때 사용하는 표준 액션 태그 이 액션 태그를 활용해 자바빈즈 객체가 올바르게 사용되려면 자바빈즈 객체가 정해진 조건에 따라 만들어져 있어야한다. 자바빈즈 생성시 지켜야 할 규칙을 JSP 자바빈즈 개발 규약이라고 한다. JSP 자바빈즈 개발 규약 1. 패키지화 - JSP에서 자바빈즈를 사용할 때에는 기본 패키지에 있으면 인식이 안된다. 2. 기본 생성자 존재 - 반드시 기본 생성자가 있어야 한다. 3. 멤버변수의 접근자는 private로 선언 - 외부에서 직접 접근할 수 없도록 private로 선언한다. 자바빈즈 객체의 속.. 2023. 8. 13. [JSP] 표준 액션 태그 <jsp : forward >와 <jsp : include > 차이 표준 액션 태그란? 미리 정해진 기능들을 JSP 스펙에 명시함으로써 모든 컨테이너가 동일하게 구현하는 태그 모든 JSP 컨테이너에서 기본적으로 제공하기 때문에 기본 액션 태그라고도 불린다. 서블릿에서 RequestDispatcher 객체의 forward() 메소드 기능을 실행한다. 다른 페이지로 이동할 때 사용하는 태그 다른 JSP 페이지의 '실행' 결과를 현재 위치에 삽입 위와 같이 두개의 jsp가 있다. 이 중 첫번 째 있는 jsp를 실행시키면, 'forward 태그' 문구는 출력되지 않고, '이동 후' 가 출력된다. 왜냐하면 같은 디렉터리에 있는 re2.jsp 페이지로 이동한 후 re2.jsp 실행결과가 클라이언트로 응답해서 앞에 있는 jsp에서 출력한 내용을 클라이언트가 받지 못하기 때문이다. 즉.. 2023. 8. 13. [JSP] 내장 객체 _jspService() 내장 객체란? JSP파일이 자바 소스 파일로 변환되면서 _jspService() 메소드 내에 자동으로 선언 및 초기화되는 변수들 JSP의 내장 객체 변수 이름 객체 이름 설명 request HttpServletRequest 요청정보 처리 객체 response HttpServletResponse 응답정보 처리 객체 session HttpSession 상태정보 유지 객체 application ServletContext 상태정보 유지 객체 config ServletConfig 서블릿정보 추출 객체 out JspWriter 출력 처리 객체 pageContext PageContext JSP 페이지 처리 객체 1. request, response re.jsp에서 위와 같은 form 태그를 만들어 re2.jsp에 i.. 2023. 8. 13. [JSP] 스크립트 기반 태그 5가지 (스크립트릿, 표현식, 선언문, 지시자, 주석문) JSP 스크립트 기반 태그에는 5가지가 있고, 로 끝난다. 주석문 (comment) 지시자(directive) 스크립트 릿(scriptlet) 표현식(expression) 선언문(declaration) 주석문 말그대로 주석을 처리할 때 이렇게 표현한다. JSP에서는 3가지의 주석문이 있다. 첫번째로 말한 JSP 주석은 이고, HTML의 주석은 , 자바 주석은 // , /* */ 이다. 지시자 지시자는 JSP 컨테이너가 JSP 페이지를 파싱하여 자바 소스로 변환하는 데 필요한 정보를 알려주기 위해 사용된다. 스크립트릿 JSP 페이지가 요청될 때마다 수행되어야 하는 자바 코드를 추가하고자 할 때 사용하는 태그 사이의 코드는 자바 소스로 변환 시 _jspService() 메소드 내로 옮겨진다. 즉, 클래스 멤.. 2023. 8. 13. [Servlet] 리스너(Listener) 이벤트 핸들러 사용법 리스너(이벤트 핸들러)란? 어떠한 일 즉, 이벤트가 발생하기를 기다리다가 실제 그 이벤트가 발생했을 때 수행되는 메소드를 가지고 있는 자바 객체 (이벤트 핸들러) 종류 1. ServletContext 2. HttpSession 3. HttpServletRequest 생성 삭제 ServletContext 서버 시작 시 서버 종료 시 HttpSession 클라이언트 접속 시 클라이언트 접속 종료 시 HttpServletRequest 클라이언트 서비스 요청 시 클라이언트 서비스 응답 시 그렇다면 리스너는 어떻게 등록할 수 있을까? 1. Filter (필터) 2. @WebListener (어노테이션) Filter 리스너의 기능을 활용하려면 이벤트가 발생했을 때 실행되기 원하는 내용을 해당 이벤트 핸들러 객체를 .. 2023. 8. 13. [Servlet] 서블릿 전송방식 (Redirect와 Dispatcher) 서블렛을 사용하여 클라이언트의 요청에 응답하며 다양한 기능을 수행할 수 있다. 서블릿에서 redirect와 dispatcher는 서로 다른 두 가지 전송 방식을 나타내며 각각 다른 상황에서 사용된다. Redirect 클라이언트의 요청을 다른 URL로 전송하여 처리한다. 이는 일반적으로 다른 페이지로 이동하거나 완전히 다른 리소스로 이동할 때 사용된다. 클라이언트의 브라우저가 새로운 URL로 요청을 다시 보내고, 새로운 페이지나 리소스가 로드된다. HttpServletResponse 객체를 사용하여 수행된다. 그렇기 때문에 response 객체를 사용한다. 클라이언트에게 새로운 URL로 이동하도록 요청하는 것이기 때문에, 이 요청은 클라이언트에게 응답으로 보내진다. response.sendRedirect(.. 2023. 8. 11. [JSP] 기본객체(Page, Request, Session, Application), 서블릿 스코프(Scope) PAGE 영역 하나의 JSP 페이지를 처리할 때 사용되는 영역 한번의 요청을 처리. 하나의 JSP 페이지 내에서 공유될 값을 저장한다. 페이지 내에서 지역변수처럼 사용된다. REQUEST 영역 하나의 HTTP 요청을 처리할 때 사용되는 영역 한번의 요청을 처리하는 데 사용되는 모든 JSP 페이지에서 공유될 값을 저장한다. http 요청을 WAS가 받아 웹 브라우저에게 응답할 때까지 변수가 유지되는 경우 사용된다. SESSION 영역 하나의 웹 브라우저와 관련된 영역 한 사용자와 관련된 정보를 JSP들이 공유하기 위해 사용된다. 웹 브라우저 별로 변수가 관리되는 경우 사용된다. APPLICATION 영역 하나의 웹 어플리케이션과 관련된 영역 모든 사용자와 관련해서 공유할 정보를 저장한다. 웹 어플리케이션이.. 2023. 8. 9. [Servlet] HttpServlet, GenericServlet, Servlet 각각의 정의 Servlet 인터페이스란? 서블릿 프로그램을 개발할 때 반드시 구현해야 하는 메소드를 선언하고 있는 인터페이스 init( ), service( ), destory( ), getServletConfig( ), getServletInfo( ) 등 5개의 메소드를 선언하는데, 이는 서블릿 프로그램 실행의 생명주기와 연관된 메소드이다. GenericServlet 클래스란? Servlet 인터페이스를 상속하여 클라이언트-서버 환경에서 서버단의 애플리케이션으로서 필요한 기능을 구현한 추상 클래스 service( ) 메소드를 제외한 모든 메소드를 재정의하여 적절한 기능으로 구현하였다. GenericServlet 클래스를 상속하면 애플리케이션의 프로토콜에 따라 메소드 재정의 구문을 적용해야한다. HttpServlet.. 2023. 8. 8. 이전 1 ··· 6 7 8 9 10 11 12 ··· 33 다음