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

Nicole Gold·2023년 9월 19일
0

K-digital training

목록 보기
40/60

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

파업 진짜 싫다😢

MyBatis

  • MyBatis 는 자바 퍼시스턴스(영구저장) 프레임워크 의 하나이다.
  • XML 이나 annotation 을 사용하여 저장 프로시저나 SQL 문으로 객체들을 연결시킨다.
  • 퍼시스턴스(Persitence) 애플리케이션을 종료 후 실행 시 이전에 저장한 데이터를 다시 불러 올 수 있는 기술
  • MyBatis 는 DB C.R.U.D 를 다루는 클래스 및 설정 파일들을 가지고 있어 자체 처리가 가능 하다.(creat, read, update, delete)
  • 그래서 MyBatis 를 활용하면 JDBC 프로그래밍을 아주 간단하게 해결할 수 있다.

web.xml

servlet-context.xml

MyBatis 를 이용한 Crud 구현

pom.xml

  • MyBatis 를 활용하기 위해서는 다음의 라이브러리가 추가로 필요하다.
  • spring-jdbc.jar, mybatis.jar, mybatis-spring.jar

servlet-context.xml

  • DB 접속 정보와 Mapper 설정, SqlSessionTemplate 사용을 위한 설정도 추가해야 한다.

DataSource 에 들어갈 정보 생성

마이바티스 에서 xml 사용 설정

마이바티스를 사용할 패키지 지정

Mapper

  • SQL 을 표현한 Mapper.xml 과 이를 연결해 줄 Interface 를 구현한다.
  • I.O.C : DB 접속, 쿼리 실행, 자원반납, resultStet 생성 등이 자동으로 된다.
  • D.I : 작업에 필요한 내용을 xml 에 등록(빈등록) 해놓으면 필요한 곳에서 사용한다.
  • 변경사항이 생기면 xml 내용만 바꿔주면 된다.

Spring 의 특징

1) 제어 역행 (I.O.C : Inversion Of Control ) 지원하여 필요에 따라 스프링이 사용자 코드를 호출 (내가 입력하지 않아도 설정만 해주면 스프링에서 알아서 해줌
2) 의존성 주입 (D.I : Dependency Injection) 을 지원하여 느슨한 결합을 유지

  • Class A 가 B 를 직접 호출 하지 않고 Bean 에 등록하여 사용 (DI) 함으로써 두 클래스간 결합도가 낮아진다.(Bean 만 수정하면 됨_
  • 그리고 이 연결은 사용자가 아닌 Spring 이 관리 (IOC) 한다.

3) Spring Framework 에서 객체 자원을 효율적으로 관리해 준다.
4) AOP(Aspect Orient Programming) 을지원 한다 .(AOP 에서 자세히 설명할 예정)

SPRING 프로젝트 생성 과정

기본 프로젝트 생성(3단계 패키지)

  • kr.co.gudi
  • 첫 실행

web.xml 확인

  • 설정 파일 위치, 한글 깨짐 방지
  • 실행

버전 변경(project facet, pom.xml)

패키지, 클래스 생성(Controller, Service)

  • 실행

라이브러리 추가(pom.xml)

  • spring-jdbc : 연결할 때 파라미터들에 대한 정의, SQL, 파라미터 선언과 값(DTO) , 기능 들에 대해서만 정의를 해주도록 하는 라이브러리
    mybatis : Mybatis는 파라미터를 수집해서 SQL문을 처리해주고 템플릿 메소드 패턴을 이용해서 예외 처리를 해줌
    mybatis-spring : ??

servlet-context.xml 에 설정 추가

  • 접속 정보(datasource)
  • mapperLocations
  • mybatis 사용 패키지 영역
    • mybatis-spring 빨간 줄 > Namespaces 들어가서 체크

Interface, mapper 생성

  • Interface 생성
  • 자바 클래스 타입과 xml 을 연결하기 위해서 interface 로 규격화해줌

  • mapper 생성
  • 하나의 타입으로 들어올 땐 타입을 따로 써줄 필요 없지만 여러 타입으로 들어올 때는 타입을 써줄 필요가 있음

  • <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  • 실행

기본적인 DB 접속 기능 구현 후 실행

controller

service

DTO(bean)


으아아아악

🤷‍♀️🤷‍♀️

profile
JAVA 개발자로 가는 길

0개의 댓글

관련 채용 정보