본문 바로가기

Java31

[Spring] IoC (제어 역전, Inversion Of Control) / DI (의존성 주입, Dependency Injection) 1. 제어 역전 (IoC: Inversion Of Control) - 인스턴스를 제어하는 제어권이 역전된다는 것 (메서드나 객체의 호출 작업을 개발자가 결정하는 것이 아니라 외부에서 결정되는 것을 의미한다) (컴포넌트를 구성하는 인스턴스 생성과 의존관계 연결처리를 스프링 IoC 컨테이너에 위임한다) - 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어 필요에 따라 스프링에서 사용자의 코드를 호출한다 - 애플리케이션의 느슨한 결합을 도모한다 -> 어떤 객체가 사용할 객체(의존관계인 객체)를 직접 선언하여 사용하는 것이 아니라, 어떤 방법을 사용하여(ex. 생성자) 주입받아 사용하는 것 블럭 끼워넣기 개발이라고도 함 2. 의존성 주입 (DI: Dependency Injection) - 제어 역전이 발생할 .. 2021. 5. 20.
[Spring] 스프링 프레임워크(Java Spring Framework)란? 1. 스프링 프레임워크 개요 로드 존슨 ( Rod Johnson ) 이 자신의 Java 개발 경험과 노하우를 기반으로 저술한 책 《Export One-on-One: J2EE Design and Development》에서 스프링 프레임워크(Spring Framework)의 전신이 되는 초기의 프레임워크를 설명했는데 추후에 핸재의 개발 리더인 유겐 할러(Juergen Hoeller) 와 얀 카로프(Yann Caroff)가 합류하면서 J2EE의 겨울 뒤에 봄이온다는 의미로 얀 카로프가 "Spring Framework"로 명칭을 제안했다 스프링 프레임워크라는 이름으로 아파치 라이선스를 따르는 오픈소스 프로젝트가 됐다. 스프링 프레임워크는 2004년 버전 1.0 2006년 버전 2.0 2009년 버전 3.0 20.. 2021. 5. 19.
DBCP (Database Connection Pool) 연습 DBCP란? 컨넥션을 미리 생성한 다음, 빌려주고 반납하는 방식 데이터베이스 연동시 컨넥션을 생성하고 소멸하는 것이 아니라 미리 Pool에 컨넥션들을 생성해놓고 빌려주고 반납받는 형식으로 시스템 성능을 향상시키기 위해 사용 >> 컨넥션을 생성시에 많은 자원을 소모하는데 이것은 성능 저하를 초래하고 이것을 효율적을 사용하기 위함 기존 JDBC 사용시 1. DB 접속을 위한 JDBC 드라이버 로드 2. getConnection Method로 부터 DB 컨넥션 객체를 얻음 3. 쿼리 수행을 위한 PreparedStatement 객체 생성 4. executeQuery를 실행해서 결과를 받아옴 >> 이 과정에서 DB 연결할 때마다 Driver를 로드하고 컨넥션 객체를 얻어오는 작업을 반복하게 된다 >> 성능저하 .. 2021. 4. 25.
MVC Architecture Model 2 연습예제 1. SQL로 Table 생성 및 데이터 추가 //테이블 생성 SQL CREATE TABLE member( id VARCHAR2(100) PRIMARY KEY, password VARCHAR2(100) NOT NULL, name VARCHAR2(100) NOT NULL, address VARCHAR2(100) ) // 데이터 추가 SQL INSERT INTO member(id,password,name,address) VALUES('logitech','m331','로지텍','강남'); INSERT INTO member(id,password,name,address) VALUES('samsung','galaxy','삼성','영통'); SELECT COUNT(*) FROM member; // 멤버 숫자 세는 S.. 2021. 4. 25.
MVC Architecture Model 1 연습예제 1. SQL로 Table 생성 및 데이터 추가 //테이블 생성 SQL CREATE TABLE member( id VARCHAR2(100) PRIMARY KEY, password VARCHAR2(100) NOT NULL, name VARCHAR2(100) NOT NULL, address VARCHAR2(100) ) // 데이터 추가 SQL INSERT INTO member(id,password,name,address) VALUES('logitech','m331','로지텍','강남'); INSERT INTO member(id,password,name,address) VALUES('samsung','galaxy','삼성','영통'); SELECT COUNT(*) FROM member; // 멤버 숫자 세는 S.. 2021. 4. 23.
Singleton Design Pattern(싱글톤 디자인 패턴) 시스템 상에서 단 한번 객체를 생성해서 여러 곳에서 공유해 사용하고자 할 때 적용하는 설계 패턴 >> 인스턴스가 사용될 때 인스턴스를 여러개 생성하는 것이 아니라, 기존에 생성했던 동일한 인스턴스를 사용하게끔 한다 1. 생성자의 접근 제어자를 private으로 명시 > 외부에서 객체 생성하는 것을 막는다 2. private static 멤버변수 차원에서 클래스 로딩시점에 자신의 생성자를 이용해 객체를 생성하고 주소값을 저장 (현 객체의 주소값은 static 영역 (meta-space / class area)에 저장하게 됨) 3. public static 메서드로 한번 만든 객체의 주소값을 외부에서 반환할 수 있도록 getInstance() 메서드를 정의 private static MemberDAO ins.. 2021. 4. 23.