Programming 82

Spring 기타(1) - 객체 간 결합도가 낮은 이유

Spring은 IoC를 통해, 객체 간의 결합도를 낮출 수 있다고 한다. 이번 글에서는 그 이유를 더 자세하게 살펴보려고 한다. 객체의 강한 결합부터 Spring에서 사용하는 약한 결합까지 차례로 작성했다. 1. 객체 간 강한 결합 클래스를 직접 호출 한계 결합된 클래스(UserServiceImpl, AdminServiceImpl)가 수정되면, HomeController도 수정해야 한다. public class HomeController{ private UserServiceImpl userService = new UserServiceImpl(); private AdminServiceImpl adminService = new AdminServiceImpl(); public void addUser(User ..

Programming/Spring 2022.04.20

Spring (2) - IoC와 Container

1. IoC(Inversion of Control)이란? 직역하면 '제어의 역행'이라는 뜻으로, 어플리케이션 코드에서 객체를 제어하지 않고 컨테이너가 제어하는 것을 말한다. 우리가 설정만 해주면, 컨테이너가 알아서 객체를 생성, 삭제, 또 의존 관계를 맺어준다는 것이다. 우리가 설정한다는 것은 "이 객체는 컨테이너 너가 관리해!"하고 알려 주는 코드를 작성하는 것을 말한다. 장점 - 객체 간의 결합도를 낮출 수 있다. (= 한 클래스를 수정해서 이와 관련된 다른 클래스도 반드시 수정해야하는 정도가 적다.) 2022.04.20 - [웹프로그래밍/Spring] - Spring 기타(1) - 객체 간 결합도가 낮은 이유 Spring 기타(1) - 객체 간 결합도가 낮은 이유 Spring은 IoC를 통해, 객체..

Programming/Spring 2022.04.20

Spring (1) - Spring Framework란?

1. 등장 배경 웹사이트의 규모와 활용 범위가 커지면서 전보다 많은 서비스를 제공해야 했다. 결론적으로 POJO + 경량 프레임워크가 사용되게 되었다. 1) POJO (Plain Old Java Object) 특정 프레임워크나 기술에 독립적인 자바 객체 ex) 다른 프레임워크로 작동시켜도 되도록 호환성을 높임 2) 경량 프레임워크 Spring은 기존에 사용되던 EJB보다 약 10배 가벼운 프레임워크이다. 2. SpringFramework의 핵심 기능 1. POJO (Plain Old Java Object) 특정 프레임워크나 기술에 독립적인 일반 자바 객체 2. PSA (Portable Service Abstraction) 추상화를 통해 Low Level의 기술 구현 부분과 기술을 사용하는 인터페이스로 분..

Programming/Spring 2022.04.15

Servlet & JSP (5) - Error Page 처리

없는 페이지를 호출할 때 등 나타나는 error페이지를 예쁘게 만들고 싶을 때 쓰인다. 따로 만들지 않으면 아래와 같은 페이지가 뜬다. 없는 페이지를 불렀을 때 발생하는 404 error를 예시로 처리해보았다. 1. 프로젝트 구조 2. error 발생 시, 보여줄 페이지 작성 - e404.jsp - 파일 이름은 원하는 걸로 지어도 된다. 여기는 404에러 페이지 입니다. 3. error 발생 시, 보여줄 페이지 등록 - web.xml 404 /error/e404.jsp 결과

[환경설정] Eclipse의 Web Project와 DB(MySQL) 연결하기2

*기본적인 세팅은 아래 글 참조 2022.03.26 - [웹프로그래밍/Servlet & JSP] - [환경설정] Eclipse의 Web Project와 DB(MySQL) 연결하기 [환경설정] Eclipse의 Web Project와 DB(MySQL) 연결하기 1. DB(MySQL)-connector 설치 및 등록 1. mysql-connector 설치 - mysql에서 각 언어마다 연결해주는 connector를 제공하고 있으니, 가져다 쓰자! https://mvnrepository.com/artifact/mysql/mysql-connector-java.. yerinpy73.tistory.com 위의 글에서 DBUtil.java는 DB의 데이터를 접근할 때마다 새로운 연결을 맺고 끊고를 반복하기 때문에, 시..

JSP (4) - JSTL

1. JSTL(Jsp Standard Tag Library)이란? JSP 표준 태그 라이브러리는 웹 개발을 위한 컴포넌트 모음으로, JSP페이지에서 스크립트릿을 사용하지 않고 간단하게 처리할 수 있는 방법을 제공한다. 2. JSTL core library 사용하기 JSTL은 core, XML, database등 여러 라이브러리가 존재하지만, 지금은 core library에 대해서만 알아볼 것이다. library prefix function URI core c 변수 지원, 흐름제어, URL처리 http://java.sun.com/jsp/jstl/core 1. JSTL 라이브러리 다운로드 받기 아래 사이트에서 원하는 버전을 다운받는다. https://mvnrepository.com/artifact/javax..

JSP (3) - EL

1. EL(Expression Language)이란? JSP의 표현식()보다 더 쉽게 값을 출력하기 위한 language(${ }) 1. EL에서 사용할 수 있는 기능 1) JSP의 4개의 영역 속성 사용 : PageContext, Request, Session, Application 2) 자바 클래스의 메서드 호출 3) EL의 기본 객체 사용 4) 수치, 관계, 논리 연산 사용 2. EL 내장객체 category identifier type 설명 JSP pageContext Java Bean 현재 페이지의 Page객체 범위 pageScope Map page 영역에 저장된 객체 추출 requestScope Map request 영역에 저장된 객체 추출 sessionScope Map session 영역에 ..

Servlet & JSP (4) - Cookie와 Session

0. Cookie와 Session이란? client 단위로 상태 정보를 유지할 때, 사용된다. client의 요청을 받은 server는 요청을 처리하고 응답을 해줄 때, Http protocol이 활용된다. Http protocol은 응답을 하고 나면 바로 연결을 해제하면서 사용된 정보가 유지되지 않는데 이를 stateless라고 한다. 이때, 정보를 유지하기 위해 Cookie와 Session을 사용한다. Cookie Session 공통점 Map 형식으로 관리하기 때문에 key값 중복X 차이점 Type javax.servlet.http.Cookie (Class) javax.servlet.http.HttpSession (Interface) 저장 위치 Client의 컴퓨터의 file Server의 메모리 저..

Servlet & JSP (3) - MVC 패턴

1. MVC 패턴이란? Model-View-Controller로 구조를 만들어 개발하는 개발 패턴이다. 이 패턴에 따라 개발하면 분업이 되어 유지보수가 쉽다고 알려진 형식들 중 하나이다. Controller가 Model과 View의 다리 역할을 한다. 1) Controller는 Client의 요청을 분석해서 Model에 있는 메서드를 호출한다. 2) Controller는 Model이 준 결과 값을 분석해서 알맞은 View를 찾아 Client에게 반환해준다. 2. MVC패턴을 적용한 Web project 1. Model (Java) - Logic을 처리하는 요소들 - controller가 호출하면 실행시켜서 controller에게 결과를 반환해준다. 1) Service Object - Logic 중에서 D..

Servlet & JSP (2) - Page 이동

여기서 말하는 Page이동이란, 클라이언트의 요청을 받은 서버가 클라이언트에게 "이 페이지로 가!"라고 보낼 수 있는 것을 말한다. Servlet | JSP에서 html | Servlet | JSP 등으로 이동 가능하다. 두 가지 방법이 있으며, 특징을 파악하고 상황에 맞게 선택하여 사용해야 한다. forward(request, response) setRedirect(location) 사용법 String path="/경로"; RequestDispatcher dispatcher = request.getRequestDispatcher(path); dispatcher.forward(request, response); *클라이언트에 다시 돌려주지 않고 페이지를 바로 변경하기 때문에 request의 url을 얻어..