목록백엔드 (28)
가희의자기개발블로그

★ 스프링 MVC 스프링 MVC도 컨트롤러를 사용하여 클라이언트의 요청을 처리한다 스프링에서 DispatcherServlet 이 MVC에서 C(Control) 부분을 처리한다. 개발자가 처리할 부분은 클라이언트의 요청을 처리할 컨트롤러와 응답화면을 전송할 JSP나 Velocity 템플릿 등 뷰 코드이다 DispatcherServlet, HandlerMapping, ViewResolver등은 스프링이 기본적으로 제공하는 구현 클래스를 사용한다. 스프링 MVC의 구성 요소 1. DispatcherServlet 클라이언트의 요청을 전달 받는다 컨트롤러에게 클라이언트의 요청을 전달하고 Controller가 리턴한 결과값을 View에 전달하여 응답을 생성하도록 한다. 2. HandlerMapping 클라이언트의 ..
스프링은 JDBC를 비롯하여 ORM프레임워크(myBatis, hibernate, JPA(Java Persistence API))를 지원한다 스프링의 목표는 인터페이스에 의한 개발인데 DAO는 데이터베이스에서 데이터를 읽거나 쓰는 수단을 제공하기 위해 존재하며, 반드시 인터페이스를 통해 외부에 제공돼야 한다. 서비스 객체는 인터페이스를 통해서 DAO에 접근한다 서비스 객체를 특정 데이터 액세스 구현체에 결합시키지 않음으로써 테스트를 용이하게 한다 DAO인터페이스는 DAO구현과 서비스 객체 사이에서 느슨한 결합이 유지될 수 있게 한다 서비스 객체 → DAO 인터페이스 UserInsertService UserDAO ↑ DAO 구현 객체 UserDAOImpl 스프링은 데이터베이스 연동을 위한 템플릿 클래스를 제..
★ 스프링 AOP(Aspect Oriented Programming) - 관점지향프로그램 OOP(Object Oriented Programming) - 객체지향프로그램 객체지향은 중복성과 결합도를 낮추기 위해서 등장했지만 그래도 여전히 중복성이 있다. 그걸 보완하기 위해서 나온게 관점지향 프로그램이다. 주로 DB를 이용할때 사용한다. Aspect란 어플리케이션의 핵심 기능은 아니지만, 어플리케이션을 구성하는 중요한 요소이고, 부가적인 기능을 담당하는 요소 Aspect = Advice + Pointcut 어드바이저는 단순한 형태의 애스펙트라고 볼 수 있다 AOP란 어플리케이션의 핵심적인 기능에서 부가적인 기능을 분리해서 애스펙트라는 모듈로 만들어서 설계하고 개발하는 방법을 AOP(Aspect Oriente..

1_Servlet(서블릿) 서블릿은 웹프로그래밍에서 클라이언트의 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet클래스의 구현 규칭을 지킨 자바 프로그래밍이다. 간단히 말해서, 서블릿이란, 서블릿이란 자바를 사용하여 웹을 만들기 위해 필요한 기술입니다. 그런데 좀더 들어가서 설명하자면 클라이언트가 어떠한 요청을 하면 그에 대한 결과를 다시 전송해주어야 하는데, 이러한 역할을 하는 자바 프로그램입니다. 예를 들어, 어떠한 사용자가 로그인을 하려고 할 때. 사용자는 아이디와 비밀번호를 입력하고, 로그인 버튼을 누릅니다. 그때 서버는 클라이언트의 아이디와 비밀번호를 확인하고, 다음 페이지를 띄워주어야 하는데, 이러한 역할을 수행하는 것이 바로 서블릿(Servlet)입니다. 그래서 서블릿은 ..
★ DI (Dependency Injection) 스프링의 핵심 개념 객체사이의 의존 관계를 자기 자신이 아닌 외부에 의해서 설정된다는 개념이다 스프링에서는 설정파일을 사용하여 손쉽게 객체간의 의존관계를 설정하기에 스프링을 DI컨테이너라고 부르기도 한다. DI 컨테이너는 어떤 클래스가 필요로 하는 인스턴스를 자동으로 생성, 취득하여 연결시켜주는 역활을 한다. DI 컨테이너가 인스턴스를 생성하도록 하려면 프로그램 소스 내부에서 new 로 직접 생성하지 않고 설정파일에서 필요로 하는 클래스의 정보를 설정해 주어야한다. 스프링은 각 클래스간의 의존관계를 관리하기 위한 방법 - Constructor Injection - Setter Injection 가. Constructor Injection : 생성자를 통해..
HTML이나 JSP파일로 코드를 작성했을 떄, 한글이 깨지는 현상이 자주 발생한다. 이는 파일의 인코딩 방식과 웹 브라우저가 사용하는 인코딩 방식이 서로 달라서 발생하는 문제이다. 이 인코딩 방식을 통일 해 주어야 한다. 좀 더 자세히 설명하자면, 영어 알파벳은 ASCII코드가 어느 cHARACTERSET에나 기본적으로 포함되어 있기 때문에 어떠한 인코딩을 사용하든지 깨질 일이 없지만 한글의 경우에는 EUC-KR, UTF 계열 인코딩 등 특정 캐릭터셋이 아니면 한글을 표현하지 못해 깨지는 현상이 발생한다. 웹 환경에서의 데이터는 보통 브라우저(클라이언트) - 서버 - DB서버 처럼 3계층에 거져 주고 받게 되는데 이때 세가지 요소의 인코딩이 서로 맞아야한다. 데이터를 입력받거나 출력하는 통로를 스트림이라..
Spring을 eclipse로 실행할 때, STS를 설치하고 나면 eclipse를 재부팅하게 되는데 eclipse 로고만 보이고 켜지지 않는 오류가 발생했다. 알고보니 eclipse가 JDK의 경로를 잡아주지 못해서 생기는 오류 였다. eclipse.ini파일에 그 경로를 잡아주면 되었다. -clean -startup plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.1100.v20190907-0426 -product org.eclipse.epp.package.jee.product -showsplash..
JAVA ENTERPRISE APPLICATION 개발에 사용되는 자바플랫폼을 위한 오픈소스 어플리케이션 프레임워크이다. 스프링을 쓰다보면 안에서 내부에서 해주는 일이 많다. 스프링과 비슷하게 나온게 Jango이다. 1_특징 - 자바 객체를 담고 있는 경량 컨테이너이다 객체의 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로 부터 필요한 객체를 얻어올 수 있다.(Spring에서는 new하고 객체를 생성할 일이 거의 없다. Spring이 알아서 생성해준다. ) - POJO(Plain Old Java Object) 기반의 개발 POJO란 누구에게도 상속 받지않고 implements도 하지 않는 순수한 클래스 형태 - 제어 반전(IoC - Inversion of Control)을 지원 컨트롤의 제어권이 ..