목록전체 글 (348)
파게로그
서비스 객체의 결합력을 낮추기 서비스 객체를 다른 객체(다른 구현기술)로 바꾸려면? service:JDS - JDS(JDBCService) - DB JPS(JPAService) MyBatis ... 지금 service:JDS에서 알 수 있듯이 결합력이 너무 높음. 교체를 용이하도록 하기 위해 결합력을 낮추게, 인터페이스를 추가해준다. service:S - S(Service) - JDBCService or JPAService - DB Service에다가 Connection 정보(url, uid, pwd, driver 등)을 직접 넣어두면 배포 후 변경이 불가능하므로 재컴파일, 재배포 등의 과정이 필요하다. JDBEmpService 클래스에다가 private DataSource dataSource; // i..
Maven dependencies에 com.oracle.database.jdbc ojdbc를 추가한다. 그렇다면 EmpService라는 객체를 어떻게 생성할 것인가? EmpController 내부에서 직접 EmpService 객체를 new 키워드를 통해 생성하는 대신, Spring스럽게 별도로 생성하여 IoC Container에 담아서 DI를 해준다. 물론 이를 위해서 인스턴스 변수와 setter를 설정해두어야 한다. dispatcher-servlet.xml 그리고 DB를 시험해보기 위해 사용할 Emp라는 클래스는 알아서 만들어두자. 아래와 같이, Controller에서 EmpService는 직접 생성되는 것이 아니라 이미 Spring을 통해 DI가 완료되어 있는 상태이다. 바로 empService.ge..
새로운 Java 프로젝트를 생성하여 JDBC를 통해 간단하게 DB에 접속해보았다. 기본적인 기능들을 확인하기 위해 아래 사이트를 참고했는데 코드 퀄리티 자체도 좋지 않을 뿐더러 설명이 다소 미흡한 부분이 있어서 조금 고생을 했다. 일단, 아래 링크를 통해서 Oracle JDBC Driver를 다운받는다. www.oracle.com/database/technologies/appdev/jdbc-ucp-183-downloads.html Classpath 아래에 Add External JARs를 통해서 JAR를 추가해준다. 서버의 IP, 오라클 SID, 접속 프로토콜 등은 ServiceName으로서 대표되고, 클라이언트 프로그램은 ServiceName을 통해서 서버에 접속할 수 있다. 이는 클라이언트쪽의 TNS..
JDBC(Java DataBase Connectivity)는 Java 프로그래밍 언어와 데이터베이스를 연결해주는 데이터베이스 독립적인, standard Java API이다. 🥪 JDBC의 기능 ▪ DB에의 연결 ▪ SQL문 생성 ▪ DB에서 SQL 쿼리 실행 ▪ 결과 레코드를 보거나 수정 🥪 JDBC의 아키텍쳐 JDBC API는 DB 접근을 위한 2-tier과 3-tier 프로세싱 모델을 모두 지원하지만 일반적으로는 두 개의 레이어로 이루어져 있다. ▪ JDBC API 어플리케이션-to-JDBC Driver Manager 연결 제공 ▪ JDBC Driver API JDBC Driver Manager-to-JDBC Driver 연결 제공 JDBC 드라이버는 각각의 데이터 소스에 대해서 (동시에 여러 다른 ..
public class NoticeService { private String url = "jdbc:oracle:thin:@localhost:1521/xepdb1"; private String uid = "berry"; private String pwd = "qwer123"; private String driver = "oracle.jdbc.driver.OracleDriver"; // ... } public class ListController implements Controller { private NoticeService noticeService; public void setNoticeService(NoticeService noticeService) { this.noticeService = notic..
프론트와 백의 구분이 점차 이루어지면서 Tiles도 잘 안 쓰이는 추세라고 한다. 페이지 모듈 집중화 도 가능하지만, 이것도 페이지 만들 때마다 넣기 귀찮으니까 Tiles를 이용한다. header/footer/aside/main(content) layout 1. HTML 파일(index.html 등등...)에서 를 잘라내서... 2. view 안에 inc 폴더를 만들어서... 3. header.jsp를 생성 후 클립보드의 내용을 붙여넣기 4. 도 footer.jsp로 마찬가지 5. 도 잘라내서 (여러 페이지에 공통적으로 있으니까) view/inc(include)는 완전 공통인 애들 얘는 그건 아니니까 view/customer/inc 폴더 만들어서 여기다가 visual.jsp를 생성 후 클립보드의 내용을 ..
Spring은 기본적으로 JSP 등 동적인 페이지와는 달리 HTML, CS, JavaScript 등 정적인 리소스에 대한 접근을 막는다. 정적인 리소스를 서비스해야 한다면 dispatcher-servlet.xml에 를 추가함으로써 접근을 허용할 수 있다. dispatcher-servlet.xml mvc 사용을 위해 네임스페이스와 스키마를 추가해주고, 를 통해 접근을 허용해준다. 여기서 '**'은 하위 폴더 아래의 파일까지 모두 포함함을 의미한다. 이런 걸 모두 모아서 resource에 넣고 아래와 같이 사용할 수 있다.