본문 바로가기

Spring36

2022-11-25 [Spring] IoC(제어의 역전), DI(의존관계 주입)에 대해서 IoC컨테이너는 DL과 DI를 제공한다. DI(Dependency Injection) : 의존성 주입, 즉 개발자가 객체를 직접호출하는 대신, 스프링 컨테이너가 내부에서 설정파일에 등록된 객체를 만들면서 그 객체가 의존하고 있는 모듈(객체)을 직접 생성해서 전달해주는 방식이다. DI(Dependency Injection) : 개발자가 스프링컨테이너로부터 직접 객체를 찾아와서 사용하는 DL과 다르게 Spring컨테이너 내부에서 설정파일에 등록된 객체를 만들면서 그 객체가 의존하고 있는 모듈(객체)을 직접 생성해서 전달해주는 작업까지 처리한다. ApplicationContext가 생성될 때 자동으로 모든 작업이 처리된다. => 이를 위해서 개발자가 설정파일에 생성할 객체와 그 객체가 사용하는 의존모듈을 어떤.. 2022. 11. 25.
2022-11-24 스프링 - IoC(제어의 역전)컨테이너를 이용해 결합도 낮은 코드만들기 IoC(Inversion of Control, 제어의 역전) - 사전적 정의 : 제어 반전, 제어의 반전, 역제어는 프로그래머가 작성한 프로그램이 재사용 라이브러리의 흐름 제어를 받게 되는 소프트웨어 디자인 패턴을 말한다. 줄여서 IoC이라고 부른다. 전통적인 프로그래밍에서 흐름은 프로그래머가 작성한 프로그램이 외부 라이브러리의 코드를 호출해 이용한다. 위키백과 작업을 구현하는 방식과 작업 수행 자체를 분리한다. 모듈을 제작할 때, 모듈과 외부 프로그램의 결합에 대해 고민할 필요 없이 모듈의 목적에 집중할 수 있다. 다른 시스템이 어떻게 동작할지에 대해 고민할 필요 없이, 미리 정해진 협약대로만 동작하게 하면 된다. 모듈을 바꾸어도 다른 시스템에 부작용을 일으키지 않는다. - 쉽게 말하자면 이전에는 개발.. 2022. 11. 24.
2022-11-23 스프링 board패키지 리뷰 - 이번엔 board패키지를 리뷰해볼 건데 전 게시글과 비교적 간략하게 작성해볼 것이다. main 메소드 1. 회원 등록하기 앞에서 했던 내용이므로 간략하게 설명 public static void main(String[] args) { //회원이 등록돼야 하므로 - db연동이 됐으면 안 해도 되는 작업 CustomerService customerservice = new CustomerServiceImpl(); CustomerDTO customer = new CustomerDTO("jang", "1234", "장동건", "VVIP"); //생성자 customerservice.register(customer); } => register() 메소드 사용하기 위해 객체를 생성해주고 생성자를 이용해 데이터를 입력.. 2022. 11. 24.
2022-11-23 스프링 customer패키지 리뷰 - 우선 전체적인 과정을 그림으로 그린다면 이렇다. - MVC패턴에서 한발짝나아가 각각의 기능을 하는 클래스들의 인터페이스를 만들어 상속받게 한다. 자기가 상속받는 클래스의 추상메소드를 구현해준다. main메소드 1. 데이터 삽입을 위한 처리 package customer; public class Main { public static void main(String[] args) { CustomerService service = new CustomerServiceImpl(); //데이터 삽입을 위한 CustomerDTO customer = new CustomerDTO("jang", "1234", "장동건", "VVIP"); service.register(customer); System.out.println.. 2022. 11. 24.
2022-11-23 Spring에 대해서 - 스프링 프레임워크 - 스프링의 핵심 - 스프링의 특징 1. 프레임워크 : 완성된 소프트웨어가 아니라 어떤 문제를 해결하기 위해 만들어진 미완성 모듈로 자바 개발자들이 공통으로 사용하는 기능을 미리 만들어서 제공(해결해야 하는 문제 - 내가 개발하고 싶은 시스템(교육, 예약, 인터넷뱅킹, 쇼핑몰.....) - 재사용이 가능한 모듈, 일반적으로 프레임워크를 통해서 개발하는 시스템의 공통모듈들은 프레임워크에서 제공하는 모듈을 이용해서 처리 * 공통모듈 : db연동, 트랜잭션처리, 뷰관리, 로그기록, 보안처리, 다국어처리, 메시징... - 프레임워크를 사용하면 개발자들간의 의사소통이 가능한 프로젝트를 만들 수 있다. - 신뢰성이 높은 시스템을 개발할수 있다. - 대부분의 개발자들이 수동으로 처리하던 작업을 .. 2022. 11. 23.
2022-11-11 JDBC 이론 정리 JDBC(Java Database Connectivity) => java를 DBMS와 연동하기 위한 기술(java프로그램에서 SQL문을 실행하기 위해서 제공되는 API) 💡 오라클에 접속하여 JDBC를 사용하기 전에 해야할 일 1. 오라클 드라이버 다운받기 - 모든 DBMS의 제조사 홈페이지에서 다운로드 - 오라클이 설치되어 있는 경우(xe) C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib\ojdbc6.jar을 사용 ** ojdbc6.jar : 오라클 드라이버 2. JVM(자바를 실행하기 위한 가상 기계(컴퓨터))이 인식할 수 있는 위치로 오라클 드라이버를 복사 => 코드를 실행하기 위해 JVM이 찾을 수 있는 위치에. 1) 작업프로젝트 선택 2) 프로젝트.. 2022. 11. 12.
2022-11-11 Servlet 등록, 요청 실행방법에 따른 자바 클래스의 구분 - Application(main메소드) - Applet - Servlet Servlet - 클라이언트의 요청을 처리하기 위한 기술 - 서버에서 클라이언트의 요청을 처리하고 응답할 수 있도록 만들어진 객체 - 클라이언트가 요청을 하면 서버에서 실행되면서 DB에 대한 처리, 서버의 리소를 이용해서 만들어진 결과를 클라이언트에 응답 - 클라이언트가 요청하면 서버가 자동으로 요청한 서블릿을 찾아서 실행하므로 서버가 인식하는 위치에 있어야 한다. ** 서버가 인식하는 위치 : 서블릿 디렉토리(표준화된 폴더 구조의 classes폴더) - 서버를 구성하는 많은 클래스내부에서 우리가 만든 서블릿 객체가 실행되도록 하기 위해서는 서버가 인식할 수 있는 규칙에 맞게 클래스를 작성해야 .. 2022. 11. 12.
2022-11-09~10 JDBC 2. select - 전체 사원 조회하기 2. 전체 사원 조회하기 package jdbc.exam; import java.util.Scanner; public class DAOTest { public static void main(String[] args) { Scanner key = new Scanner(System.in); System.out.println("******인사관리시스템********"); System.out.println("1. 사원등록"); System.out.println("2. 전체사원조회"); System.out.println("3. job별로 사원조회하기"); System.out.println("4. SMITH부서의 전 사원의 급여를 500올려주기"); System.out.println("5. comm이 0인 직원 삭.. 2022. 11. 11.
2022-11-09~10 JDBC 1. insert - 사원등록하기 / 드라이버 로딩, DB서버 연결, 자원반납 jdbc패키지 - DBUtil ,CustomerDAO2, CustomerDTO2, DAOTest, MenuUI .java파일 1. 각각의 클래스로 기능을 나눠서 CustomerDAO에 모으기 2. CustomerDAO에서 중복되는 코드를 분리하여 DBUtil에 모으기 3. 각 계층으로 데이터 전달할 때 DTO객체로 만들어서 주고받기 - 객체생성을 위해 CustomerDTO클래스와 생성자, getter, setter메소드 만들기 * 커넥션설정과 자원반납 등 모든 메소드가 공통으로 처리하는 부분을 구현 * DB연동과 관련된 기능을 유틸리티처럼 제공하는 클래스 1. 드라이버 로딩 2. DB서버 연결 3. 자원반납 => 유틸리티처럼 사용할 것이므로 static으로 구현 package jdbc; import ja.. 2022. 11. 11.