[IT국비지원] 개발자 교육 36일 차 : SPRING(2023.09.14)fit.구디아카데미,김지훈 강사님

Nicole Gold·2023년 9월 14일
0

K-digital training

목록 보기
37/60

이하 구디아카데미 김지훈 강사님의 수업자료와 강의 내용 정리, 실습한 내용을 정리함

드디어 ㄷㄷ SPRING

Start SPRING






  • 주로 사용하는 곳

  • 패키지명은 절대 바꾸면 안 됨(되던 게 안 되는 현상 발생할 수 있음)

  • Tomcat v9.0 선택
  • tomcat 설치 폴터 선택 > JRE jdk 선택

Spring Framework

디자인 패턴

디자인 패턴의 정의

  • 설계 문제에 대한 해답을 문서화 하기 위해 고안된 방법.
  • 소프트웨어 개발 과정에서 자주 나타나는 과제를 해결하기 위한 방법.
  • 패턴은 특정한 상황에서 구조적인 문제를 해결하는 방식을 설명해 준다.

패턴 사용 시 주의 사항

  • 디자인 패턴은 일반적으로 대규모 프로그램 개발에 적합하다.
  • 각 디자인 패턴이 유용한 상황에 대해 잘 알아야 한다.
  • 패턴은 절대적이지 않다. 상황에 맞게 유연하게 변형이 가능하다.
  • 패턴의 틀에 갇힌 사고방식은 효율성이 낮은 프로그램을 생산하게 된다.
  • 패턴은 사용하는 것보다 차용한다는 생각으로!

MVC 패턴(Model 2)

  • MVC Pattern 은 Model View Controller 의 약자로 애플리케이션을 세 가지의 역할로 구분한다.

  • 각 파트는 자신이 맡은 역할을 수행한다.

  • 실생활 속 MVC 패턴

Basic MVC Pattern

  • 기본적인 MVC 구조로 jsp 와 Java 를 분리해 보자.

Multi URL

  • Controller 에서는 요청 객체와 url 을 처리한다.
  • 하나의 Controller 에서는 단일 url 또는 다수의 url 을 처리할 수 있다.

code


Calculator Service

  • Controller 와 View 로만 구성된 계산기 서비스.

code


DAO와 DTO

  • Controller 는 받은 일을 직접 처리하거나 다른 Model 에 전달한다.
  • Model 은 Controller 부터 요청 받은 일을 처리하고 통지한다.
  • 이때 DB 에 access 할 일이 생길 경우 우리는 DB 처리만을 위한 class 를 생성한다.



Data Base

  • 데이터베이스(Database, DB)란? : 데이터의 저장소.
  • DBMS(Database Management System, 데이터베이스 관리 시스템)란? 데이터베이스를 운영하고 관리하는 소프트웨어. 계층형, 망형, 관계형 DBMS 중 대부분의 DBMS가 테이블로 구성된 관계형 DBMS(RDMBS)형태로 사용됨.
  • SQL(Structured Query Language)란? 구조화된 질의 언어라는 뜻으로 관계형 데이터베이스에서 사용되는 언어. 표준 SQL을 배우면 대부분의 DBMS를 사용할 수 있음.

Data Base-JDBC

  • Java 와 Data Base 를 연결해 보자.

  • 연결을 위해 필요한 것은?

    • JAVA 와 DB 연결 프로그래밍
    • DB 쿼리 실행 프로그래밍
    • DB 쿼리 반환 값 추출 프로그래밍
  • 이런 어려운 프로그래밍을 직접 하기보다는 누군가의 코드를 가져다 쓰는 것이 효율적이다.

  • 그래서 위 내용을 모두 수행해 줄 수 있는 JDBC(Java Data Base Connectivity) 가 필요하다.

Spring form 변경

porm.xml 변경

  • java-version : 자바 버전 변경
  • pringframework-version : RELEASE 버전 변경

  • source 와 target 변경
  • 둘을 인식하기 위해 version 도 함께 변경

porm.xml 의 중간 위치

web.xml 맨 끝

  • DBMS 의 종류가 바뀔 경우 JDBC 만 변경해 주면 된다.

  • DB 에 접속해서 Data 를 꺼내온다는 것은 창고에서 물건을 꺼내오는 것과 같다.

  • Connection 객체는 DB 에서 하는 모든 일을 대신 DB 에 접속해서 수행해 준다.

  • JDBC 를 활용한 DBMS 와의 연결

code



Data Base - Connection Pool

  • Connection Pool 을 사용하면 Connection 을 조금 더 효율적으로 사용할 수 있다.
  • Connection 이란 DB 의 모든 것이 담겨 있고, 그때그때 꺼내서 정보를 줄 수 있다.
  • 아래 그림은 pool 에 대한 개념도이다.

DB 정보 context 에 입력

code

Data Base - JDBC

  • Jaba Database Connectivity의 약어
  • Connection pool 을 활용하면 context.xml 의 정보를 가져오는 작업이 필요하다.
  • Connection Pool 을 활용하여 DBMS 와 연결해 보자.

Controller

Service

HomeDAO


  1. MVC 패턴은 무엇의 약자인가요?
    // Model View Controller

  2. Connection Pool 을 사용하면 좋은 점은?
    // DB 접속 설정 객체를 미리 만들어 연결하여 불필요한 작업이 사라지므로 클라이언트가 빠르게 DB에 접속이 가능하다.
    // Connection 을 조금 더 효율적으로 사용할 수 있다.

  3. logger의 역할은?
    // System.out.println 과 같은 역할
    // 어느 클래스에서 발생했는지 알려주고 설정에 따라 파일 저장도 가능하다.

  4. Model 객체의 역할은 무엇인가요?
    // 기존의 RequestDispatcher 역할

  5. @RequestMapping 의 역할은?
    // 특정 uri 로 보낸 요청을 받아주는 받아주는 역할
    ( 이전 addr(uri-ctx) 역할 + method 지정 역할(get,post방식))

  6. @RequestParam 이 하는 역할과 사용할 때 주의할 점으로 무엇이 일치해야 하는 것인지?
    // 요청의 파라메터를 특정 변수에 담아주는 역할을 한다.
    // 보낼 파라메터 명과 변수명이 일치해야 한다.

  7. java 1.6 에서 switch 문을 사용 시 주의해야 할 점은?
    // 문자열을 사용하면 안된다.

  8. DB 의 데이터를 Connection으로 가져오고 close() 로 닫아주지 않으면 발생하는 문제점은 무엇인지?
    // 쓰면 쓸수록 점점 느려지다 동작이 되지 않는다.

9.DB 접근을 위한 정보는 어떤 것들이 있나요?
// 유저명 / 패스워드 / 데이터베이스 주소 / 드라이버

  1. 어떤 객체가 DB 에서 하는 모든 일 대신 DB에 접속하여 수행하나요?
    // 커넥션 전체

  2. Connection pool을 활용하려면 어떤 정보를 가져오는 작업이 필요한데
    여기서 어떤 정보란 무엇인지?
    // context.xml

12.Connection pool을 활용하여 DBMS와 연결할 때 대략적인 순서는?
// 1. context.xml을 객체를 가져온다.
// 2. 이름이 jdbc/MariDB 인 태그를 가져온다.
// 3. 가져온 정보로 Connection 생성
// 4. 커넥션을 이용한 데이터 베이스 처리
// 5. 커넥션을 닫아 준다.


내일 할 것

Data Base - Query

  • Data base 접속은 성공 했다
  • 이제 Data Base 의 데이터를 처리하는 Query 문을 실행 해야 한다
  • Query 문을 실행 하기 위해 Connection 은 두 가지 방법을 제공 해 준다
profile
JAVA 개발자로 가는 길

0개의 댓글

관련 채용 정보