본문 바로가기

전체 글

(57)
Spring pom.xml 오류 해결법 오늘 다른 pc에서 작업한 걸 git에서 pull하고 노트북으로 작업하려고 했는데, 갑자기 pom.xml 파일에 빨간 x가 뜨면서 생긴 이슈로 인해 프로젝트가 제대로 동작하지 않았다. 구글링을 하다 보니 나와 비슷한 경험을 한 블로그가 보여서 거길 참고해 해결할 수 있었다. 해결 방법은 다음과 같다. 1. 오류가 난 pom.xml 우클릭 2. Maven >> Update Project 클릭 3. Force Update of SnapShots/Releases 누르고 OK 클릭하여 적용 [출처] https://pendine.tistory.com/15 JAVA pom.xml 오류 해결법 블로그에 자주 이글로 많이들 들어오시는것 같은데 해결 안되시면 다른글, 다른 글에 적어놓은 걸로도 안되면 안되는분들 계시면 ..
RequestContextListener 1. RequestContextListener란? : HttpServletRequest를 인자로 전달하지 않고 직접 가져올 때 사용하는 클래스 2. 사용법 1) web.xml 파일에 다음과 같이 코드를 작성한다. org.springframework.web.context.request.RequestContextListener 2) java 소스 상에서 HttpServletRequest 객체를 얻어오는 방법 ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes(); //Request 가져오기 HttpServletRequest req = sra.getRequest(); // 세션..
스프링 JDBC 1. 스프링 JDBC 개념 JDBC는 가장 오랫동안 자바 개발자들이 사용한 DB 연동 기술이다. JDBC를 이용하여 DB 연동 프로그램을 개발하면 데이터베이스에 비종속적인 DB 연동 로직을 구현할 수 있다. 그런데 JDBC 프로그램은 이용하려면 개발자가 작성해야 할 코드가 너무 많다. 스프링은 JDBC 기반의 DB 연동 프로그램을 쉽게 개발할 수 있도록 JDBCTemplate 클래스를 지원한다. 반복되는 DB 연동 로직은 JDBCTemplate 클래스의 템플릿 메소드가 제공하고, 개발자는 달라지는 SQL 구문과 설정값만 신경쓰면 된다. 2. 스프링 JDBC 설정 2.1 라이브러리 추가 먼저 JDBC를 이용하려면 BoardWeb 프로젝트에 있는 pom.xml 파일에 DBCP 관련 설정을 추가해야 한다. [..
Annotation 기반 설정 대부분 프레임워크가 그렇듯이 스프링 프레임워크 역시 XML 설정이 매우 중요하다. 그만큼 XML 파일의 과도한 설정에 대한 부담도 크며, 이로 인해 프레임워크 사용을 꺼리기도 한다. 따라서 대부분 프레임워크는 어노테이션을 이용한 설정을 지원하고 있다. 1. Context 네임스페이스 추가 어노테이션 설정을 추가하려면 다음의 그림과 같이 스프링 설정 파일의 루트 엘리먼트인 에 Context 관련 네임스페이스와 스키마 문서의 위치를 등록해야 한다. 수정된 소스는 다음과 같다. 2. 컴포넌트 스캔(component-scan) 설정 스프링 설정 파일에 애플리케이션에서 사용할 객체들을 등록하지 않고 자동으로 생성하려면 이라는 엘리먼트를 정의해야 한다. 이 설정을 추가하면 스프링 컨테이너는 클래스 패스에 있는 클래..
IoC, DI의 개념과 예제 1. 컨테이너란? IoC와 DI를 이해하기 전에 먼저 이해해야 할 개념이 있다. 그것은 바로 '컨테이너'이다. 컨테이너란, 우리 대신 객체의 생성과 소멸 같은 부분을 전담해주는 역할을 한다. 비유를 하자면 주식을 주식 전문가에게 맡기는 것과 같다고 생각하면 된다. 2. IoC란(Inversion of Control)? 그대로 해석을 돌리면 제어의 역전이라고 한다. 제어는 무언가를 조종하고 다루는 것, 역전은 바뀌는 것이다. 즉, 무언가를 조종하고 다루는 존재가 바뀌는 것을 IoC라고 한다. 우리는 프로그램을 다룰 때, 우리가 직접 조종을 하곤 한다. (예를 들어 객체의 생성을 직접 한다거나) 그러나 스프링에서는 우리가 아닌 다른 존재(컨테이너)가 조종을 한다. 결과적으로, 스프링의 객체들을 생성하고, 제..
프록시 패턴(Proxy Pattetn) 1. 프록시 패턴이란? 프록시(Proxy)를 번역하면 대리자, 대변인의 의미를 갖고 있다. 이 단어의 뜻과 마찬가지로 프로그램에도 똑같이 적용되는데, 프록시에게 어떤 일을 대신 시키는 것이다. 어떤 객체를 사용하고자 할 때, 객체를 직접적으로 참조하는 것이 아닌 해당 객체를 대항하는 객체를 통해 대상 객체에 접근하는 방식을 사용하면 해당 객체가 메모리에 존재하지 않아도 기본적인 정보를 참조하거나 설정할 수 있고, 실제 객체의 기능이 필요한 시점까지 객체의 생성을 미룰 수 있다. 2. 프록시 패턴의 장단점 프록시패턴 장점 사이즈가 큰 객체가 로딩되기 전에도 프록시를 통해 참조를 할 수 있다. 실제 객체의 public, protected 메소드를 숨기고 인터페이스를 통해 노출시킬 수 있다. 로컬에 있지 않고..
데코레이터 패턴(Decorator Pattern) 1. 데코레이터 패턴이란? : 데코레이터 패턴(Decorator Pattenr)은 주어진 상황 및 용도에 따라 어떤 객체에 책임(기능)을 동적으로 추가하는 패턴을 말한다. 데코레이터라는 말 그대로 장식이라고 생각하면 된다. 기본 기능을 가지고 있는 클래스를 하나 만들어 주고 추가할 수 있는 기능들을 추가하기 편하도록 설계하는 방식이다. Component : 실질적인 인스턴스를 컨트롤하는 역할 ConcreteComponent : Component의 실질적인 인스턴스의 부분으로 책임의 주체의 역할 Decorator : Component와 ConcreteDecorator를 동일시 하도록 해주는 역할 ConcreteDecoreator : 실질적인 장식 인스턴스 및 정의이며 추가된 책임의 주체 2. 데코레이터 패..
이클립스(Eclipse)에 스프링(Spring) 설치하기 오늘은 스프링을 이클립스에 설치하는 방법에 대해서 다루어 보도록 하겠다. 스프링과 관련된 많은 교재에서 설치하는 부분의 양이 비교적 많은 것을 볼 수 있다. 그만큼 스프링을 설치하기가 꽤나 까다롭고 어렵다. 최대한 깔끔하고 간단한? 방식으로 설치를 진행해 보도록 하겠다. 우선 이클립스와 JDK 등은 이미 설치되어 있다는 가정 하에 시작하겠다. 이 과정은 스프링3(Spring3)를 기반으로 한다. 아파치 서버는 반드시 9버전이나 그 이하를 설치하시기 바란다. 10이나 10이상의 버전에서는 상당히 많은 에러가 발생하는 것을 발견했다. 그리고 JDK 쪽에서 문제가 발생하게 된다면 11버전이 가장 안정적으로 동작하는 것 같으니 11버전을 다운로드하여 교체해 보기 바란다. 1. 이클립스를 키고 위의 네비게이션 바..