본문 바로가기
728x90
반응형

Development/Java72

Deep Copy vs Shallow Copy 예전에 시험에서 나왔었는데...그때는 이게 뭔말인가 했다. -_-;;어디서 듣도 보지도 못한것이 굴러나왔나 했는데... [직역]Deep copy - 깊은 복사Shallow copy - 얕은 복사 Deep copy원본과 같은 데이터를 저장하고 있는 새로운 객체나 배열을 생성하는것원번이 바뀌어도 복사본은 독립적이기 때무에 영향이 없다. Shallow copy배열이나 객체를 복사할때 단순히 참조만 복사하는것.원본이 변경됨면 복사본도 변경된다. 까먹지 말자꾸나! 2013. 2. 12.
객체에는 메서드가 포함되지 않는다? 객채가 생성되면 인스턴스 변수는 포함이 되지만 메서드는 포함되지 않는다.왜냐고??인스턴스 변수는 인스턴스마다 다른 값을 가질수 있어야 하기 때문에 별도의 메모리 공간이 필요하다.그런데 메서드는 변하는게 아니다.그래서 메모리를 낭비해 가면서 인스턴스를 포함시킬 이유가 없다... 라고 오늘 책에서 봤다...처음 알았네 -_-;;; 2013. 2. 12.
파일 입출력. 가끔 찾아보기가 귀찮아서.. ㅡㅡ; try { BufferedReader in = new BufferedReader(new FileReader("src/input")); String s; while ((s = in.readLine()) != null) { System.out.println(s); } in.close(); } catch (IOException e) { System.err.println(e); System.exit(1); }} 2013. 1. 29.
[Spring]Spring Annotation 1. 속성 정의 XML 파일에 추가되어야 하는 정의 xmlns:context="http://www.springframework.org/schema/context“ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> Spring Container가 Annotation을 인식하기 위해서는 Spring Container에 BeanPostProcessor들이 등록되어있어야한다. 을 추가하면 내부적으로 자동 등록된다. 2. Stereotype - @Service : Business Layer를 구성하는 서비스 클래스 대상 - @Repository : Data.. 2012. 8. 1.
[Spring]SpEL(Spring Expression Language) SpEL - Expression Languege중 하나, 런타임시 특정 객체의 정보에 접근하거나 조작할수 있도록 지원. 1. XML 기반 Bean 정의시 classpath상에 존재하는 context.properties파일을 로드하여 bean으로 정의한 후 driver, url 등의 정보를 추출함. 2. Annotation 기반 Bean 정의시@Repository(“movieDao")public class MovieDao extends SimpleJdbcDaoSupport { @Value("#{contextProperties['pageSize'] ?: 10}") int pageSize; @Value("#{contextProperties['pageUnit'] ?: 10}") int pageUnit; @Inj.. 2012. 7. 31.
[Spring]Autowiring - Autowiring 이란 Spirng container가 bean 간의 참조관계를 자동으로 연결해주는 기능- 속성값 1. no : 기본값 2. byName : property 명과 동일한 id 또는 name을 가진 bean 3. byType : 동일한 클래스타입,(같은 타입 여러개 존재시 exception 발생) 4. constructor : byType과 비슷하나 생성자인자에 적용 5. autodetect : constructor 모드 수행후 byType 모드 수행 6. default : 최상위 태그인 에 셋팅한 모드가 수행됨. (default-autowire 속성) Setter Injection 사용시 Autowire 사용시 특정 bean을 autowiring 제외시키려면 2012. 5. 3.
[Spring]AOP 주요 구성요소 Core Concerns : 특정 시스템의 핵심 가치와 고유 목적이 그대로 드러난 관심영역Crosscutting Concerns ; 로깅, 보안, 트랜잭션 관리등과 같이 여러 모듈간 공통적으로 적용되는 공통 관심영역1. JoinPoint- Crosscutting Concerns 모듈이 삽입되어 실행될수 있는 특정 위치- 제어 흐름중의 한 시점(메소드 호출시점, 예외 던져지는 시점등)2. PointCut - JoinPoint 중 AOP를 적용하기 위한 선별된 JoinPoint - Pattern Matcing과 PointCut Designator를 묶어 룰을 정함.3. Advice - JoinPoint에 삽입되어 동작할 수 있는 코드 - 동작시점 before : Matching 된 JoinPoint 이전에 .. 2012. 4. 13.
[Spring]Spring Bean Scope 1. Singleton Scope- SpringContatiner는 해당 Bean에 대한 여러개의 요청이나 참조에 대해 하나의 Bean 인스턴스만 생성해서 제공함.- 사용자의 요청시마다 유지해야할 data일 경우 Singleton Scope는 부적합.- scope을 별도로 지정하지 않을경우 기본값은 Singleton Scope이다. 2. Prototype Scope- SpringContainer는 요청시마다 새로운 인스턴스 생성하여 제공. 3. Request Scope- Http Request마다 새로운 인스턴스 를 생성하여 제공 4. Session Scope- Http Session마다 새로운 인스턴스 를 생성하여 제공 2012. 4. 9.
[Spring]Dependency Injection Bean Definition 파일에 정의 한 dependency 관련 정보를 바탕으로 객체 사이의 의존 관계를 Container가 자동적으로 연결해주는것을 말한다. Container API 에 종속되는것을 줄일수 있다. - Setter Injection : Setter 메소드 구현을 통해 해당 객체 초기화시 Container로 부터 참조관계에 놓인 특정 리소스를 할당받음. - Constructor Injection : Constructor 구현을 통해 특정 객체 초기화 시 Contatiner로부터 참조 관계에 놓인 특정 리소스를 할당 받는 방법 -- Setter Injection 예 [속성 정의 파일 ] [구현클래스 ] public class MovieServiceImpl implements MovieS.. 2012. 3. 21.
[Spring in Action]DispatcherServlet 구성 actionServlet org.springframework.web.servlet.DispatcherServlet 1DispatcherServlet이 로드되면 이 서블릿에 부여된 이름을 기반으로 이름지어진 XML 파일을 이용하여 스프링 어플리케이션 컨텍스트를 로드한다. (actionServlet-servlet.xml) actionServlet *.htmlhtml로 끝나는 모든 URL 처리 org.springframework.web.context.ContextLoaderListener컨텍스트 로더 구성 ContextLoaderListener 구성후에 설정파일 위치 지정해야한다. 지정하지 않으면 /WEB-INF/applicationContext.xml을 검색하게 된다. contextConfigLocation.. 2011. 10. 25.
[Spring In Action]Spring MVC 요청의 생명주기 1. 요청이 가장 먼저 들르는곳은 DispatcherServlet이다. DispatcherServlet이 프론트 컨트롤러 역할을 한다. 2. DispatcherServlet은 요청을 스프링 MVC 컨트롤러로 보낸다. 이때 요청을 어느 컨트롤러로 보낼지 알아내기 위해 Handler Mapping에 도움을 청한다. Handler Mapping은 요청에 담긴 URL을 참고해서 결정을 내린다. 3. 컨트롤러가 결정되면 DisspatcherServlet이 요청을 Coltroller로 보낸다. Controller에서는 비지니스 로직을 수행하거나 여러개로 서비스에 비지니스 로직의 책임을 위임하기도 한다. 결론적으로 비지니스로직의 처리가 끝날때까지 기다린다. 처리가 끝난면 브라우저에 표시될 정보가 만들어진다. 이 정보.. 2011. 10. 17.
[Spring In Action]Transaction 동시성의 문제점 - Dirty Read Transaction에서 다른 Transaction에 의해 변경됐지만 아직 커밋되지 않은 데이터를 읽어버리는 문제. 이 데이터가 커밋되지 않고 롤백 됐을경우 첫번째 Transaction에서 읽은 데이터는 유요하지 않은 데이터가 된다. - NonRepeatable Read Transaction이 같은 질의를 2번 이상 수행할때 서로 다른 데이터를 얻기 되는것을 말한다. 각 질의 사이에 다른 Transaction이 데이터를 변경하는 경우에 발생한다. - Phantom Read Transaction이 둘 이상의 데이터 행을 읽은 다음, 동시에 다른 Transaction이 추가 행을 삽입할때 발생한다. 첫번째 질의에는 없어떤 행이 두번째 질의에서는 나타나게된다. Nonrepeatable .. 2011. 10. 7.
728x90
반응형