- Model : DAO 영역 (Controller에서 View단으로 데이터 넘길 때 사용) ex) DB관련, CRUD
- View : HTML, CSS 영역 (Controller에서 넘겨준 데이터를 화면에 뿌리기)
- Controller : 사용자 요청 처리 영역 (DB데이터와 관계없이 서버에서 처리하는 영역)
- oracle 19c
- oracle database download
- 이클립스에서 오라클 접근
- 로컬에서 오라클 사용할거면 ojdbc11.jar 라이브러리 하나 추가해서 사용
- /oraclejdbc/jdbcTest.jsp <-- 오라클 로컬 DB 연동 테스트
/oraclejdbc/DBHelper.java
package dao;
import java.sql.*;
public class DBHelper {
public static Connection getConnection() throws Exception {
// 오라클 DB 접근 클래스 로딩
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("드라이브 로딩 성공");
// 로컬 DB 연동 테스트
String dbUrl = "jdbc:oracle:thin:@localhost:1521:orcl";
String dbUser = "admin";
String dbPw = "java1234";
/* 클라우드 DB 연동 테스트
jdbc:oracle:thin:@접속문자열TNS?TNS_ADMIN=전자지갑폴더위치
String dbUrl = "jdbc:oracle:thin:@접속문자열(TNS)?TNS_ADMIN=전자지갑폴더위치";
String dbUser = "admin";
String dbPw = "Cloud DB 비밀번호";
*/
Connection conn = DriverManager.getConnection(dbUrl, dbUser, dbPw);
System.out.println("conn : " + conn);
return conn;
}
스프링
스프링 컨테이너 빈(Bean)
- 스프링 프레임워크 안에서의 자바 객체를 의미
IoC 제어의 역전
- 객체 사용을 위해 필요한 곳에 객체를 생성하여 사용하는 것이 아니라
- 어딘가에서 객체를 가져와서 사용
- 생성해서 사용하는 것과 가져와서 사용하는것은 엄연히 다름
- 객체를 개발자가 new를 통해 직접 생성하는 것이 아니라
스프링 프레임워크가 생성하고 관리하는 객체를 사용하게 됨 (Bean)
- 그러한 Bean들을 모아 관리하는 곳이 스프링 컨테이너(BeanFactory, ApplicationContext)
DI 의존성 주입
- 한 클래스가 다른 클래스에 의존하고 있다
- B b = new B() 처럼 객체를 직접 생성하는 것이 아니라
- @Autowired
B b; 처럼 어노테이션을 이용해 객체(Bean)를 스프링 컨테이너에 주입
- 스프링을 사용하면 new를 사용해 b 객체를 생성하지 않더라도 b를 객체로 사용가능
- 어노테이션을 이용해 빈을 컨테이너에 주입하고, 컨테이너가 객체로 사용할 수 있게끔 만들어주기 때문
AOP 관점 지향형 프로그래밍
- 핵심관점코드, 부가관점코드로 구분하여 프로그램의 변경과 확장에 유리하게 대응
PSA 이식 가능한 서비스의 추상화 (=인터페이스)
- ex1) 클라이언트, 클래스, 메서드의 매핑을 위한 어노테이션
- ex2) 같은 코드로 다른 WAS에서 코드 실행 가능 (톰캣, 언더토우, 네티)