전체 글 157

2022-11-25 [Spring] IoC(제어의 역전), DI(의존관계 주입)에 대해서

IoC컨테이너는 DL과 DI를 제공한다. DI(Dependency Injection) : 의존성 주입, 즉 개발자가 객체를 직접호출하는 대신, 스프링 컨테이너가 내부에서 설정파일에 등록된 객체를 만들면서 그 객체가 의존하고 있는 모듈(객체)을 직접 생성해서 전달해주는 방식이다. DI(Dependency Injection) : 개발자가 스프링컨테이너로부터 직접 객체를 찾아와서 사용하는 DL과 다르게 Spring컨테이너 내부에서 설정파일에 등록된 객체를 만들면서 그 객체가 의존하고 있는 모듈(객체)을 직접 생성해서 전달해주는 작업까지 처리한다. ApplicationContext가 생성될 때 자동으로 모든 작업이 처리된다. => 이를 위해서 개발자가 설정파일에 생성할 객체와 그 객체가 사용하는 의존모듈을 어떤..

Spring 2022.11.25

2022-11-24 스프링 - IoC(제어의 역전)컨테이너를 이용해 결합도 낮은 코드만들기

IoC(Inversion of Control, 제어의 역전) - 사전적 정의 : 제어 반전, 제어의 반전, 역제어는 프로그래머가 작성한 프로그램이 재사용 라이브러리의 흐름 제어를 받게 되는 소프트웨어 디자인 패턴을 말한다. 줄여서 IoC이라고 부른다. 전통적인 프로그래밍에서 흐름은 프로그래머가 작성한 프로그램이 외부 라이브러리의 코드를 호출해 이용한다. 위키백과 작업을 구현하는 방식과 작업 수행 자체를 분리한다. 모듈을 제작할 때, 모듈과 외부 프로그램의 결합에 대해 고민할 필요 없이 모듈의 목적에 집중할 수 있다. 다른 시스템이 어떻게 동작할지에 대해 고민할 필요 없이, 미리 정해진 협약대로만 동작하게 하면 된다. 모듈을 바꾸어도 다른 시스템에 부작용을 일으키지 않는다. - 쉽게 말하자면 이전에는 개발..

Spring 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() 메소드 사용하기 위해 객체를 생성해주고 생성자를 이용해 데이터를 입력..

Spring 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..

Spring 2022.11.24

2022-11-23 Spring에 대해서

- 스프링 프레임워크 - 스프링의 핵심 - 스프링의 특징 1. 프레임워크 : 완성된 소프트웨어가 아니라 어떤 문제를 해결하기 위해 만들어진 미완성 모듈로 자바 개발자들이 공통으로 사용하는 기능을 미리 만들어서 제공(해결해야 하는 문제 - 내가 개발하고 싶은 시스템(교육, 예약, 인터넷뱅킹, 쇼핑몰.....) - 재사용이 가능한 모듈, 일반적으로 프레임워크를 통해서 개발하는 시스템의 공통모듈들은 프레임워크에서 제공하는 모듈을 이용해서 처리 * 공통모듈 : db연동, 트랜잭션처리, 뷰관리, 로그기록, 보안처리, 다국어처리, 메시징... - 프레임워크를 사용하면 개발자들간의 의사소통이 가능한 프로젝트를 만들 수 있다. - 신뢰성이 높은 시스템을 개발할수 있다. - 대부분의 개발자들이 수동으로 처리하던 작업을 ..

Spring 2022.11.23

tomcat 서버 등록하기

1. 프로젝트 우클릭 - Build Path - Configure Build Path - Libraries - Class Path - Add External Jars - 2. Servers탭의 new server - Apache - 버전 선택 - Browser - 톰캣 파일 경로 설정 - next - 프로젝트 연결 Add - finish 3. Window - Perferences - Server - Runtime Enviroments - Add - Apache - 버전 선택 - Browser - 톰캣 파일 경로 설정 - next - 프로젝트 연결 Add - Apply and Close 4. 서버 생성 확인, port 바꾸기 Servers탭에 생성된 서버 더블클릭하여 파일 열기 - Tomcat admin ..

Server 2022.11.23

[에러] ORA-00911: invalid character

invalid character : 부적합한 문자 원인 : 쿼리문에 적합하지 않은 문자가 들어감 해결방법 : 오타와 이상한 문자가 들어가진 않았는지 확인한다. 문제가 된 sql문 ............ "select * from board;"; 아주 간단하고 기본적인 코드에서조차 이렇게 문제가 발생할 수 있다... 세미콜론 하나로 인해서.. 분명 확인하고 완벽하게 적었다고 생각했는데.... 복사 붙여넣기의 폐해(?)로... 이클립스 쿼리문에 세미콜론이 들어가서 에러가 나는 것이었다. 정말 어이없어 .... 담뱃재, 가스불, 코드선처럼(?) 다시 확인하고 또 확인하는 습관을 가지자 ..

Error 2022.11.18

2022-11-17 부트스트랩 사용법

Bootstrap All CSS Classes (w3schools.com) Bootstrap All CSS Classes W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more. www.w3schools.com 기본적이고 많이 사용하는 css, js를 모아둔 사이트로 사용법에 대해 정리해보자. 세 가지 주소 적어주기 안 적으면 무용지물,, 등의 태그로 묶어둔 곳에 내가 사용할 작업물의 class를 정의 제목 내용..

기타 2022.11.17

2022-11-17 MVC, 요청 재지정

[MVC] - list.jsp : 사원 목록 리스트에서 id를 누르면 사원 정보가 나오는 read only페이지로 이동하고, '수정'버튼을 누르면 사원 정보를 수정할 수 있는 페이지로 이동하기 //EmpReadServlet.java => action=READ : action이라는 변수에 "READ"라는 데이터를 넣어 "/serverweb/mvc/read.do" 파일로 파라미터로 넘김 String view = ""; if(action.equals("READ")) { view = "/mvc/emp_read.jsp"; }else { view = "/mvc/emp_update.jsp"; } RequestDispatcher rd = req.getRequestDispatcher(view); //vie..

MVC 2022.11.17