본문 바로가기

728x90

분류 전체보기

(108)
[JAVA 디자인 패턴] 커맨드 패턴 (Command Pattern) 활용 1 연습문제 1. TwoButtonController 클래스를 구현. * 기존코드 class TwoButtonController{ private TV tv; public TwoButtonController(TV tv) { this.tv = tv; } public void button1Pressed() { tv.power(); } public void button2Pressed() { tv.mute(); } } class TV{ private boolean powerOn = false; private boolean muteOn =false; public void power() { powerOn =! powerOn; if(powerOn) { System.out.println("power on"); } else ..
[JAVA 디자인 패턴] 커맨드 패턴 (Command Pattern) * 커맨드 패턴 (Command pattern) 요청을 객체의 형태로 캡슐화하여 사용자가 보낸 요청을 나중에 이용할 수 있도록 매서드 이름, 매개변수 등 요청에 필요한 정보를 저장 또는 로깅, 취소할 수 있게 하는 패턴이다. * 커맨드 패턴이 왜 필요한지에 대해서 알아보자. 눌리면 특정 기능을 수행하는 버튼을 생각해보자. 버튼 눌렸을때 불이 켜지는 프로그램을 개발하려면, 버튼을 눌려졌음을 인식하는 Button 클래스, 불을 켜는 기능을 하는 Lamp 클래스, 버튼을 눌렸을 댸 램프를 켜려면, Button 클래스는 Lamp 객체를 참조 해야 한다. 이 버튼을 만들고자 한다면 이렇게 만들 수 있을 것이다. class Lamp{ public void turnOn() { System.out.println("La..
[Spring Framework] 03_03. 요청 파라미터 처리 방법 1. 컨텍스트 루트 경로가 변경될 경우 처리 방법. 1) 컨텍스트 루트 경로를 변수로 지정함. 요청 파라미터값 테스트!!! 회원 가입 양식 - ID: - PW: - NAME: - HOBBY: 축구 독서 음악 - jstl 사용 - EL 사용 2) 태그를 사용함. 요청 파라미터값 테스트!!! 회원 가입 양식 - ID: - PW: - NAME: - HOBBY: 축구 독서 음악 로 변경 2. 요청 파라미터 처리 방법 * 파라미터 받는 VO 객체 생성 * UserVo.java package com.spring.web.model; import java.util.List; public class UserVO { private String userId; private String userPw; private Strin..
[Spring Framework] 03_02. GET / POST 요청 메서드 매핑 1) GET / POST 따로 받는 방법 * req-ex01.jsp RequestController를 이용한 요청 처리 연습 컨트롤러 테스트 중입니다~ * RequestController.java @Controller @RequestMapping("/request") public class RequestController { public RequestController() { System.out.println("RequestCon 작동!"); } //@RequestMapping(value="/request/basic01", method=RequestMethod.GET) @GetMapping("/request/basic01") public String basicGet() { System.out.printl..
[Spring Framework] 03_01. Spring Framework 설계 모델 스프링 MVC 프레임워크 기반의 웹 프로그래밍 구조를 살펴보면 다음과 같다. DispatcherServlet Class가 브라우저의 요청을 받고, 그 요청을 HandlerMapping에게 넘겨준다. HandlerMapping은 많은 Controller중에 가장 적합한 것(URL, HTTP 메서드 및 정보, 파라미터 참고)을 선택한다. Controller가 결정되었다면, 실제로 해당되는 컨트롤러의 메소드를 호출해야 되는데 호출방법이 타입에 따라 다르므로 아무리 Controller를 결정했다고 하더라도, DispatcherServlet은 알 길이 없기에 컨트롤 타입을 지원하는 HandlerAdapter라는 인터페이스가 적합한 파라미터를 추출해 해당 Controller의 메소드를 호출한다. 다시 Dispatc..
[Spring Framework] 03. Spring 개발환경 구축 Spring Framework를 사용하려면 이클립스에 STS(Spring Tool Suite) 을 설치해야 한다. Java , 이클립스, tomcat에 대한 환경 설정은 모두 완료했다고 가정하겠다. 1. 이클립스에 STS(Spring Tool Suit) 설치 1) 이클립스 상단탭 HELP 클릭 -> Eclipse Marketplace 클릭 2) Marketplace에서 "sts" 를 검색해서 Standalon Edition 3.9.13 을 다운받는다. 3) 모두 confirm 하고 accept하면, 이클립스를 재시작하라고 나오면 클릭하고 재시작한다. 4) 오른쪽 상단에 perspective를 Spring 으로 변경한다. 5) Spring legacy 프로젝트 생성 6) Spring version 변경 -..
[Spring Framework] 02_02 의존객체 자동 주입 * 의존 객체 자동 주입이란? 스프링 설정 파일에서 의존 객체를 주입할 때 또는 태그로 의존 대상 객체를 명시하지 않아도 스프링 컨테이너가 자동으로 필요한 의존 대상 객체를 찾아서 의존 대상 객체가 필요한 객체에 주입해 주는 기능이다. 구현 방법은 @Autowired와 @Resource 어노테이션을 이용해서 쉽게 구현할 수 있다. 1) @Autowired 타입을 기준으로 의존성을 주입, 같은 타입 빈이 두 개 이상 있을 경우 변수이름으로 빈을 찾음 Spring 아노테이션 2) @Qualifier 빈의 이름으로 의존성 주입 @Autowired와 같이 사용 Spring 아노테이션 3) @Resource name을 속성을 이용하여 빈의 이름을 직접 지정 JavaSE의 아노테이션(JDK9에는 포함 안 되어 있음..
[Spring Framework] 02_01. Setter을 이용한 의존성 주입 방법 앞선 글에서는 의존성 주입을 할때, 생성자를 통하여 의존성 주입하는 방법에 대해서 알아보았다. 이번에는 setter을 이용해서 어떻게 의존성을 주입하는지 알아보겠다. 1) 먼저, setter를 xml파일에서 의존성을 주입하지않고 만드는 방법에 대해서 살펴보겠다. DatabaseInfo.java 는 데이터베이스의 url, id, pw를 가지고 있는 객체이고, MemberDAO.java 는 데이터베이스를 연동해주는 객체이다. 예시로 간단하게 만들었다. # DatabaseInfo.java package com.spring.basic.ex02; public class DatabaseInfo { private String url; private String uid; private String upw; public..

728x90