반응형

프로그래밍 176

[Spring / 스프링] Apache Maven / POM.xml / web.xml / root-context.xml / servlet-context.xml

Maven : 자바용 프로젝트 관리 도구 project object model(POM) XML 문서를 통해 해당 프로젝트의 버전 정보 및 라이브러리 정보들을 통합하여 관리하는 프레임워크 라이브러리 종속성 : Maven을 사용하면 pom.xml문서에 사용하고자 하는 라이브러리를 등록하여 자동으로 프로젝트에 추가되게 하여 라이브러리 관리의 편리성을 제공해줌 POM(project object model) : 하나의 프로젝트에서 사용하는 자바버전, 라이브러리, 플러그인 구성을 통합하여 관리할 수 있게 각 설정 정보를 XML 문서화 한 것 POM.xml 의 구성 4.0.0 com.greedy xml chap01-web-config-xml war 1.0.0-BUILD-SNAPSHOT 11 5.2.9.RELEASE ..

[Spring / 스프링] Spring MVC구성 요소와 처리 과정

Spring MVC 구성 요소 Dispatcher Servlet : 클라이언트의 요청을 전달 받음 요청에 맞는 컨트롤러가 리턴한 결과값을 View에 전달하여 알맞은 응답을 생성 Handler Mapping : 클라이언트의 요청 URL을 어떤 컨드롤러가 처리할지 결정 Controller : 클라이언트의 요청을 처리한 뒤, 결과를 DispatcherServlet에게 리턴 컨트롤러는 결정만 하고 실질적으로는 서비스에서 처리함. 요청을 받으면 어떤 뷰 페이지를 보여줄 건지, 어떤 데이터를 보여줄 건지 결정 ModelAndView : 컨트롤러가 처리한 결과 정보 및 뷰 선택에 필요한 정보를 담음 ViewResolver : 컨트롤러의 처리 결과를 생성할 View를 결정 View : 컨트롤러의 처리 결과 화면을 생성..

[Spring / 스프링] Spring Framework 의 특징과 구성모듈

1 . Spring Framework : 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 간단히 Spring이라고도 불림 동적인 웹 사입트를 개발하기 위한 여러 가지 서비스를 제공 대한민국 공공기관의 웹서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있음 2 . Spring의 특징 1) DI(Dependency Injection / 의존성 주입) 설정 파일이나 어노테이션을 통해 객체간 의존 관계를 설정(개발자가 설정할 필요x) 2) Spring AOP(관점 지향 프로그래밍) Database의 트랜잭션처리나 로깅 처리와 같이 여러 모듈에서 공통으로 필요로 하는 기능을 분리하여 관리함. 3) Spring JDBC Mybatis나 Hibernate 등의 데이터 베이..

[Spring/스프링] CGLib 방식으로 Proxy 구현하기

프록시 생성 방식 프록시(Proxy) : 실제 Target의 기능을 수행하면서 기능을 확장시키거나 추가하는 실제 객체 1. JDK Dynamic Proxy 방식 - 리플렉션을 이용해서 프록시 클래스를 동적으로 생성해주는 방식 - 타켓의 "인터페이스"를 기준으로 프록시 생성 - 사용자의 요청이 타겟을 바라보고 실행될 수 있도록 타겟 자체에 대한 코드 수정이 아닌 리플렉션을 이용한 방식으로 타겟의 위임 코드를 InvocationHandler를 이용하여 작성함 - 사용자가 타겟에 대한 정보를 잘못 주입하는 경우가 발생할 수 있기 때문에 내부적으로 주입된 타겟에 대한 검증 코드 를 거친 후 invoke가 동작(느림) 2. CGLib 방식 - 리플렉션 사용x - 동적으로 Proxy를 생성하지만, 바이트코드를 조작..

[Spring/스프링] 리플렉션 Reflection

리플렉션 : 컴파일 된 자바 코드에 역으로 클래스를 불러 메소드 및 필드 정보를 구해오는 방법 JVM에서 실행되는 애플리케이션의 런타임 동작을 검사하거나 수정할 수 있는 기능이 필요한 경우 사용 스프링 프레임워크, 마이바티스, 하이버네이트 등의 라이브러리에서 사용 Reflection을 사용해서 스프링에서는 런터임 시 개발자가 등록한 빈을 애플리케이션 내에서 사용 할 수 있음 Reflection 주의사항 1) 오버헤드 발생 : 성능 저하를 발생시킬 수 있기 때문에 성능에 민감한 애플리케이션에서는 사용하지 않음 2) 캡슐화 저해 : private로 설정한 member에 접근 가능하기 때문에 코드 기능이 저하되며 여러 가지 문제가 발생 방법 1. class 문법을 이용하여 Class 타입의 인스턴스를 생성 :..

[자바 / Java ] List 인터페이스 ( ArrayList , LinkedList, Stack, Queue )

List : 자료들을 순차적으로 나열한 자료구조 인덱스로 관리 중복해서 객체 저장 가능 구현 클래스 : ArrayList, Vector, LinkedList List 계열 주요 매소드 ArrayList : 가장 많이 사용되는 컬렉션 클래스 내부적으로 배열을 이용하여 요소를 관리하고, 인덱스를 이용해 배열 요소에 접근 가능 배열의 단점을 보완하기 위해 만들어짐 배열의 장점 - 구조가 간단하고 데이터를 읽는 데 걸리는 시간이 짧음(접근시간, access time) 배열의 단점 - 한번 크기를 지정하면 변경할 수 없음 - 요소의 추가/삭제/정렬 등을 하려면 시간이 많이 걸리고 알고리즘이 복잡해짐 - 한 타입의 데이터만 저장가능 ArrayList 특징 - 저장하는 크기의 제약이 없음 - 추가, 삭제, 정렬등의 ..

[자바 / Java] Iterator() , descendingIterator(), Comparable, Comparator

Iterator() 메소드 : 컬렉션에 저장된 요소를 접근하는데 사용되는 반복자 인터페이스 인덱스로 관리되는 컬렉션이 아닌 경우(set)에는 반복문을 사용해서 요소에 하나씩 접근할 수 없기 때문에 인덱스를 사용하지 않고도 반복문을 사용하기 위한 목록을 만들어주는 역할 ( Map의 경우 Set 또는 List화 시켜서 interator() 사용) hasNext() : 다음 요소를 가지고 있는 경우 true, 더 이상 요소가 없는 경우 false로 반환 next() : 다음 요소를 반환 List stringList = new ArrayList(); stringList.add("banana"); stringList.add("orange"); stringList.add("mango"); stringList.add..

[자바/ JAVA] 컬렉션(Collection)이란?

Collection : 여러 개의 다양한 데이터들을 쉬보 효과적으로 처리할 수 있도로 표준화 된 방법을 제공하는 클래스들의 집합 데이터를 효율적으로 저장하는 자료구조와 데이터를 처리하는 알고리즘이 미리 구현되어 있음 컬렉션의 주요 인터페이스 인터페이스 특징 구현클래스 List 순서가 있는 데이터의 집합 중복 저장 가능 ArrayList Vector LinkedList Set 순서를 유지하지 않는 데이터의 집합 중복 저장 불가 HashSet LinkedHashSet TreeSet Map key와 value의 쌍으로 이루어진 데이터의 집합 순서 유지x key중복 저장 불가 value 중복 저장 가능 HashMap HashTable TreeMap Properties

[자바/JAVA] 예외처리(try-catch , thows, finally블럭, RuntimeException)

1..프로그램 오류 컴파일 에러 : 컴파일할때 발생하는 에러 / 고치기 전까지는 실행x 런타임 에러 : 실행 중 발생하는 에러 / 실행은 되지만 프로그램 종료됨 논리적 에러 : 작성 의도 다르게 동작 / 실행o 프로그램 종료x 2 . error / exception 런타임 에러 - 에러(error) : 수습될 수 없는 심각한 오류 - 예외(exception) : 미리 예측하고 처리할 수 있는 미약한 오류 3. 예외 처리 - 예외의 발생에 대비한 코드를 작성하는 것 - 프로그램의 비정상 종료를 막고, 정상적인 실행 상태르 유지하는 것 4. 예외 클래스 계층 구조 - 예외 클래스들은 상속구조를 가지고 카테고리화 되어 있음. Exception 클래스들 RuntimeException 클래스들 Io Excepti..

[자바JAVA] 제네릭(generic)_와일드카드

제네릭(generic) 데이터의 타입을 일반화한다는 의미 클래스나 메서드에서 사용할 내부 데이터 타입을 컴파일 시에 지정하는 방법 제네릭을 이용하면 instanceof 비료 및 다운 캐스팅을 하지 않아도 됨. 1 . 제네릭 설정 - 다이아몬드 연산자 이용 - 관례상 대문자로 작성 - - 타입 변수를 자료형 대신 사용, 가상으로 존재 - 여러 개의 타입 변수를 작성도 가능 - 컴파일 시점에서 타입 결정됨. public class GenericTest { private T value; getter, setter 작성 시에도 구체적인 타입 대신 T 사용 가능 public void setValue(T value) { this.value = value; } public T getValue() { return va..

반응형