* Enumeration : Iterator의 구버전 * ListIterator : Iterator의 접근성을 향상시킨 것. 단방향 → 양방향 - Collection 클래스에 저장되어 있는 요소들을 읽어오는 방법을 표준화한 것. 다형성 - Collection 클래스의 iterator()를 호출해서 Iterator를 구현한 객체를 얻어 사용. - Collection Framework 중 List, Set 인터페이스에서 사용 가능. - Iterator 객체를 생성하여 사용하기 때문에 느림. - remove() 메소드는 next() 메소드 호출 후에 사용 가능. List list = new LinkedList(); Iterator it = list.iterator(); while(it.hasNext()){ S..
String - immutable(불변적), thread-safe(여러 스레드가 동시에 접근해도 값이 변하지 않기 때문에 문제가 없다.) - String 객체를 생성하여 메모리 공간은 변하지 않는다. (Heap 영역에 할당) - +, concat 연산 시 새로운 String 객체를 생성하여 문자열을 복사하고 새로운 객체를 가리킨다. (오버헤드 발생) - 기존 String 객체는 특정 시점에 Garbage Collector 에 의해 반환 - String 클래스는 문자열 연산이 적고 조회가 많을 때 멀티쓰레드 환경에서 사용하면 좋음. StringBuilder - mutable(가변적) - 클래스를 한번 생성하고 연산 시 버퍼크기를 변경하여 문자열을 변겅 - 동기화를 지원하지 않아서 멀티스레드 환경에 취약 -..
Spring 3.0 Spring3.0 부터 Java5가 지원된다. 기존에 유지하던 하위호환성에 Generic 이나 가변인자(varargs) 등과 같은 개선사항이 추가된다. (1) 전체 프레임워크를 하나의 spring.jar 파일로 제공하던 부분을 여러개의 jar 파일로 나누어 제공한다. (2) SPEL(Spring Expression Language)가 도입되었다. (3) Rest API 에 대한 지원이 추가되었다. (4) OXM(Object Xml Mapping) 기능이 추가되어 설정을 Xml 형태로 할 수 있게 지원한다. (5) Java annotation 을 이용해서 DI 의 지원이 가능하다. Spring 4.0 Spring 3.0 이 Java5+ 버전들에 대해 지원을 한다면 Spring 4.0 버..
시중은행들이 오라클 DB를 쓰는 가장 큰 이유는 RAC(Real application clusters)라는 기능 때문이다. RAC는 간단히 말하면 하나의 DB를 여러 서버가 공유하는 기술이다. 하나의 DB를 여러 서버가 공유하기 때문에 서버 하나가 장애가 나도 데이터 정합성이 유지된다. 데이터 정합성이 유지된다는 것은 서버 장애 때문에 고객의 돈이 사라지지 않는다는 의미다. 그러나 MySQL은 서버들이 DB를 공유하지 않는다. 서버마다 다른 DB가 있다. 이 때문에 MySQL은 마스터와 슬레이브라는 구조의 시스템을 운용한다. 마스터 서버로 시스템을 운용하면서 슬레이브 서버는 마스터 서버의 데이터를 특정 시점마다 복제한다. 마스터에 장애가 나도 복제된 데이터를 가지고 있는 슬레이브로 대체해서 운용하면 된다..
https://victorydntmd.tistory.com/195
https://gmlwjd9405.github.io/2018/12/02/spring-annotation-types.html [Spring] Spring Annotation의 종류와 그 역할 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io Bean 설정 관리 Spring에서는 아래와 같이 Layer별로 구분된 Annotation을 사용할 것을 권장하고 있습니다. @Controller 프리젠테이션 레이어를 구성하는 Controller 클래스를 정의하는데 사용하며, Spring MVC 기반인 경우에 한해 활용 가능하다. @Service 비즈니스 로직을 처리하는 클래스를 정의하는데 사용한다. @Repository DB 처리..
IoC는 Dependency Lookup 과 Dependency Injection 으로 나뉜다. □ Dependency LookupIoC 컨테이너는 각 컨테이너에서 관리할 객체들을 위한 별도의 Bean 설정파일을 가진다. (XML 파일)이런 저장소에서 사용자가 사용하고자 하는 빈을 특정 id로 찾아서 사용하는 방식.Bean을 Lookup 하기 위하여 컨테이너에 제공하는 API와 의존관계가 발생(ApplicationContext의 getBean() 메소드)가능한 Dependency Lookup을 사용하지 않는 것이 컨테이너의 종속성을 줄일 수 있다. □ Dependency Injection (Spring에서 사용)하나의 객체가 정상적으로 수행되기 위해서 다른 객체를 참조하는 것을 의존관계.각 클래스 사이의..
□ POJO (Plain Old Java Object) - 특정 규약(contract)에 종속되지 않는다. (Java 언어와 꼭 필요한 API 외에 종속되지 않는다.)- 특정 환경에 종속되지 않는다.- 객체지향 프로그래밍 기법과 언어가 주는 장점인 유연한 설계와 재사용성 활용하여 비즈니스의 복잡성과 변화를 상대함. □ Spring Framework스프링은 자바 엔터프라이즈 애플리케이션 개발에 사용되는 프레임워크입니다. 애플리케이션 프레임워크는 애플리케이션의 개발을 빠르고 효율적으로 할 수 있도록 애플리케이션의 바탕이 되는 틀과 공통 프로그래밍 모델, 기술 API등을 제공합니다. POJO 프레임워크 중 하나이며, 자바 애플리케이션 개발을 위한 포괄적인 인트라 스트럭처를 제공하는 자바 플랫폼이다. 스프링을 ..
□ EJB (Enterprise JavaBeans) 엔터프라이즈 자바빈즈(Enterprise JavaBeans; EJB)는 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. 즉, EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다. EJB 사양은 Java EE의 자바 API 중 하나로, 주로 웹 시스템에서 JSP는 화면 로직을 처리하고, EJB는 업무 로직을 처리하는 역할을 한다. Multi-tier의 분산형 객체지향 JAVA 어플리케이션을 개발하고 보급하기 위한 컴포넌트 아키텍쳐로서 Sun 사에서 개발했고, EJB는 확장성 있는 어플리케이션 서버 컴포넌트들을 지원하는 여러 서비스들을 제공함으로써 비즈니스 어플리케이션들을 컴포넌트 단위로 쉽게 작성 할 수 있도록 합니다. EJ..