전체 글 1097

JDBC 실습 : INSERT(delete & update) { INSERT 메서드 생성 및 실행 }

수업목표 지난 예제에서는 JDBC 를 처음 학습하는 만큼 코드를 한 줄 한 줄 작성하면서 그 코드가 왜 필요한지 살펴보았습니다. 이번 시간에서는 입력하는 부분과 여러건 Select 하는 것을 같이 살펴보면서 어떤 부분의 코드가 변경되는지를 집중해서 살펴보겠습니다. INSERT 메서드 생성 및 실행 (addRole 메서드) 우선은 한 건의 데이터를 입력하는 메서드를 addRole 이라고 정하고 RoleDao 클래스에 추가했습니다. 우선 값을 입력해야 하니까 어떤 값을 입력할 것인지는 이 메서드를 사용하는 사용자에게 받아와야 겠죠. 그래서 메서드의 인자로 role 을 받습니다. 그 다음에 입력한 결과로 예를 들어 '3 건을 추가했습니다'와 같은 결과를 담을 int 형 변수 insertCount 를 생성했습니..

JDBC 실습 : 한 건 Select하기 { Connection, Statement, ResultSet 객체 }

Maven 프로젝트 생성 JDBC 실습을 위한 Maven 프로젝트를 하나 먼저 생성하고 진행하겠습니다. Maven 프로젝트 초기 설정 Maven 프로젝트를 생성하면 pom.xml 에 해주어야 하는 작업이 있었습니다. pom.xml 에 jdk 를 사용하기 위해서 플러그인을 추가했구요. jdbc 를 사용하기 위한 드라이버를 dependency 부분에 추가해주었습니다. 이렇게 pom.xml 을 수정한 다음에는 반드시 maven project 를 새로고침 해주어야 합니다. JDBC 객체 생성 [ DB 접속 및 사용할 테이블 확인 ] JDBC 는 데이터베이스에 데이터를 쓰고 읽는 역할을 수행합니다. 즉 데이터베이스에서 읽고 쓰는 객체를 만들어 주어야 합니다. 우선 DB에 접속을 해주겠습니다. 그 다음 role 이..

컬렉션 프레임워크 실습 { TreeSet, binary tree, Comparable & Comparator 인터페이스 }

TreeSet 클래스 자바의 Collection 인터페이스나 Map 인터페이스를 구현한 클래스 중 Tree 로 시작하는 클래스는 데이터를 추가한 후 결과를 출력하면 결과 값이 정렬됩니다. TreeSet 는 자료의 중복을 허용하지 않으면서 출력 결과 값을 정렬하는 클래스입니다. TreeSetTest TreeSetTest 코드를 작성해서 TreeSet 의 특징을 살펴보겠습니다. TreeSet 에 자료를 추가한 다음에 출력을 해보았는데요. 별도의 코드를 구현하지 않아도 요소들이 정렬되었던 이유는 String 클래스 안에 정렬 방식이 이미 구현되어 있기 때문입니다. 그렇다면 실제로 TreeSet 에서 어떻게 자바는 정렬을 진행했다는 것일까요? binary tree 이진 트리 & binary search tree..

컬렉션 프레임워크 실습 { Set 인터페이스, HashSet, HashTable }

Set 인터페이스 순서와 상관없이 중복을 허용하지 않는 경우에는 Set 인터페이스를 구현한 클래스를 사용합니다. 예를 들어 회원 아이디, 주민등록번호, 사번, 주문 번호 등이 해당됩니다. Set 인터페이스를 구현한 대표 클래스에는 HashSet과 TreeSet 이 있습니다. HashTable HashTable 에 대해서 잘 정리한 포스팅이 있다. 다음 포스팅을 통해 HashTable 에 대해서 알아보자. https://mangkyu.tistory.com/102 HashSet 클래스 HashSet 클래스는 집합 자료 구조를 구현하며 중복을 허용하지 않습니다. 중복을 허용하지 않는다는 의미를 살펴보기 위해 다음과 같은 테스트 프로그램을 작성해보겠습니다. hashSet 을 생성한 다음 add( ) 메서드로 자..

Spring Core : 의존성 주입 DI (Dependency Injection) 구현 및 DI의 장점

의존성 주입이 없는 클래스 생성 의존성 주입이 없는 우리가 하던 방식의 클래스를 살펴보겠습니다. Engine 과 Car 클래스입니다. new 키워드를 사용하여 Engine 인스턴스를 생성한 이후에 Car 인스턴스를 생성할 때 사용하는 것을 볼 수 있습니다. 의존성 주입 DI 구현 & 장점 이런 과정을 Spring 컨테이너가 하게 하려면 뭘 해야 한다고 했죠? 설정파일에다가 bean 태그를 등록해야 한다고 했었습니다. 우선 bean 태그를 생성했는데요. 여기서 보아야 할 점은 Car 의 bean 태그입니다. Car bean 태그에 engine 을 set 하라고 말해줘야 합니다(우리의 코드에서 그렇게 했기 때문이죠). 태그를 활용해 생성했습니다. engine 변수에 e 를 파라미터로 전달해주세요를 구현한 것..

Spring Core : Maven 프로젝트 생성 & Bean 공장 및 클래스 생성 { bean 클래스 특징 & 생성, 공장 생성 & 실행 }

수업목표 이번 시간에는 Spring 의 IoC / DI 컨테이너에 대한 동작을 확인하기 위해 Maven 을 이용해 프로젝트를 생성한 후, XML 형식의 설정 파일을 만들어 IoC 와 DI 가 잘 동작하는지 확인해 보도록 하겠습니다. Maven 프로젝트 만들기 이클립스에서 File-new-Maven Project 를 실행시킵니다. Archetype 을 선택하라는 창이 뜹니다. Archetype 은 Maven 프로젝트에서 제공하는 템플릿을 이야기 합니다. 어떤 것을 지정하느냐에 따라 프로젝트 구조가 달라집니다. 기업들은 자신만의 Archetype 을 만들어서 사용하기도 합니다. 이번 시간에 우리는 Maven Archetype quick start 를 사용해 보겠습니다. Next 를 클릭합니다. 다음은 gro..

Spring Core : 개요 { 컨테이너, IoC, DI, BeanFactory, ApplicationContext }

컨테이너 란? 컨테이너는 인스턴스의 생명주기를 관리한다. 인스턴스를 직접 생성해서 실행하고 인스턴스가 소멸되는 과정을 우리가 직접 하지 않고 누군가가 대신 해주는 것을 컨테이너라고 하는데요. 에를 들어 서블릿 공부했었을 때 서블릿 클래스를 정의하긴 했지만 서블릿을 인스턴스화 하는 과정을 직접 하지는 않았습니다. 그 일을 사실은 Tomcat 이 대신 해주고 있었는데요. WAS 는 서블릿 컨테이너를 가지고 있다는 것을 의미합니다. WAS는 웹 브라우저로부터 서블릿에 대한 요청을 받으면 서블릿을 메모리에 올린 다음에 실행을 하게 됩니다. 개발자가 서블릿 클래스를 작성했지만 실제로 메모리에 올리고 실행하는 것은 WAS 가 가지고 있는 서블릿 컨테이너가 해주고 있는 겁니다. 서블릿 컨테이너는 동일한 서블릿에 대한..

Spring Core : Spring Framework { 개요, 모듈종류 등 }

Spring Framework 란? 우선 Framework 는 반제품 상태를 의미한다고 할 수 있는데요. 많은 프레임워크 중에 우리는 Spring Framework 를 배우고 사용할 예정입니다. - Spring Framework 는 엔터프라이즈 급 어플리케이션을 구축할 수 있는 가벼운 솔루션이자, One - Stop - Shop(모든 과정을 한번에 해결할 수 있다) 입니다. - 스프링 프레임워크는 모듈화가 굉장히 잘 되어 있어서 모두 가져다 쓸 필요 없이 필요한 부분들만 가져다가 사용할 수 있습니다. - IoC 컨테이너입니다. - 선언적으로 트랜잭션을 관리할 수 있습니다. - 완전한 기능을 갖춘 MVC Framework 를 제공합니다. - AOP를 지원합니다. - 스프링은 도메인 논리 코드와 쉽게 분리될..

JDBC { 개요, 환경설정, 단계별정리, 클래스 생성관계 }

수업목표 이번 시간에는 JAVA 언어를 이용해서 DBMS로 부터 정보를 조회하는 방법인 JDBC에 대해 알아보도록 하겠습니다. JDBC 란 JDBC 는 Java Database Connectivity 입니다. 자바 언어와 데이터베이스를 연결해주는 통로같은 얘를 JDBC라고 합니다. JDBC는 자바를 이용한 데이터베이스 접속과 SQL 문장의 실행, 그리고 실행 결과로 얻어진 데이터의 핸들링을 제공하는 방법과 절차에 관한 규약입니다. 자바 프로그램 내에서 SQL문을 실행하기 위한 자바 API 입니다. SQL과 프로그래밍 언어의 통합 접근 중 한 형태입니다. 즉, 우리가 웹을 동작시킬 때 SQL을 작성해서 DB에 데이터를 작성하고 지우고 했었는데요. 우리가 매번 할 수는 없으니까 프로그램이 그 역할을 대신할 ..

Maven { 개요, 장점, pom.xml }

수업목표 앞에서 JSTL에 대해서 배울 때 JSTL과 관련된 라이브러리를 다운로드 하여, WEB-INF/lib 폴더에 복사하여 설치하였습니다. 프로젝트가 복잡해질수록 사용하는 라이브러리가 많아지게 됩니다. 프로젝트에 참여하는 사용자가 많아질수록 라이브러리의 관리는 어려워집니다. 또한 프로젝트가 복잡해질수록 소스를 컴파일하고 배포하는 것도 점점 어려워집니다. 이러한 문제를 해결하기 위한 도구들이 존재한는데, 그 중에서 Maven 에 대해서 배워보겠습니다. Maven 이란? Maven은 지금까지 애플리케이션을 개발하기 위해 반복적으로 진행해왔던 작업들을 지원하기 위하여 등장한 도구입니다. Maven을 사용하면 빌드(Build), 패키징, 문서화, 테스트와 테스트 리포팅, git, 의존성관리, svn등과 같은..