스프링 4

Mango·2022년 4월 2일
0

Spring

목록 보기
4/7

[04-01] MyBatis의 소개와 설정

  1. MyBatis란?
    - SQL Mapping Framework - Easy&Simple
    - 자바 코드로부터 SQL문을 분리해서 관리
    - 매개변수 설정과 쿼리 결과를 읽어오는 코드를 제거
    - 작성할 코드가 줄어서 생산성 향상 & 유지 보수 편리

  2. SqlSessionFactoryBean과 SqlSessionTemplate
    - SqlSessionFactory : SqlSession을 생성해서 제공
    - SqlSession : SQL명령을 수행하는ㄷ 필요한 메서드 제공
    - SqlSessionFactoryBean : SqlSessionFactory를 spring에서 사용하기 위한 빈
    - SqlSessionTemplate : SQL명령을 수행하는데 필요한 메서드 제공. thread-safe

  3. SqlSession의 주요 메서드

  4. Mapper XML의 작성

  5. < typeAliases>로 이름 짧게 하기

[04-02] MyBatis로 DAO 작성하기

  1. BoardDao의 작성
    ① DB 테이블 생성
    ② Mapper XML & DTO 작성
    ③ DAO인터페이스 작성
    ④ DAO인터페이스 구현 & 테스트

  2. DTO란? Data Transfer Object
    - 계층간의 데이터를 주고 받기 위해 사용되는 객체

  3. #{}와 ${}의 차이
    - SQL문 구성 시 #{}는 PreparedStatement 사용, ${}는 Statement 사용

  4. XML의 특수 문자 처리
    - MXL내의 특수 문자(<,>,&,...)는 < >로 변환 필요
    * CDATA : SQL문 작성시 <![CDATA [ ]]>로 감싸면 안의 쿼리에는 XML코드가 없다는 의미

[04-03~04] 게시판 목록 만들기와 페이징 -TDD

  1. 게시물 목록 페이징
  2. LIMIT[offset], row_count

[04-05~06] 게시판curd

  1. 기능별 URI정의
    - URL : 리소스 경로
    - URI : URL + URN(name)

  2. 게시물 읽기 기능의 구현
    게시물 제목을 누르면 제목에 걸려있는 링크를 따라 GET요청이 감. 게시물 번호 필요
    ② boardController의 read(Integer bno)메서드가 게시물 번호를 받아서 boardService의 read(bno)를 호출
    ③ DB는 해당 게시물을 읽어와서 boardDto에 담아줌
    ④ read메서드가 board.jsp에게 DB에서 읽어온 boardDto를 전달
    ⑤ boardDto의 제목과 내용을 읽어서 화면에 출력

  3. 게시물 삭제 기능의 구현
    삭제 버튼을 누르면 boardController의 remove(Integer bno)메서드에 삭제할 게시물 번호를 POST요청으로 넘겨줌
    ② boardController는 boardService의 remove(bno, writer:작성자만 지울수 있기 위해 필요) 메서드를 호출하는데
    ③ 게시물이 삭제되면 redirect:/board/list로 이동
    ④ list가 BoardController의 list()메서드를 호출해서 DB의 한 페이지를 요청해서 List< BoardDto>를 가져와 화면을 보여줌
    ⑤ page와 pageSize를 같이 줘야 원래 보던 페이지로 돌아갈 수 있음

  4. 게시물 쓰기 기능의 구현
    등록 버튼을 누르면 Controller의 @PostMapping된 write()메서드 호출
    ② write()는 boardService의 write(boardDto)메서드 호출 -> 게시판의 내용이 담긴 boartDto를 DB에 전달. insert SQL문이 실행
    ③ redirect:/board/list -> write()에 매핑되어 있는 list()가 호출됨 (redirect는 항상 GET)
    ④ list()가 getPage()를 호출해서 게시물 목록을 가져옴
    ⑤ 게시물 목록을 화면에 보여줌 -> List<BoardDto)

  5. 게시물 수정 기능의 구현
    수정 버튼을 누르면 Controller의 @PostMapping된 modify()메서드 호출
    ② modify()는 boardService의 modify(boardDto)메서드 호출 -> 게시판의 내용이 담긴 boartDto를 DB에 전달. update SQL문이 실행
    ③ redirect:/board/list -> modify()에 매핑되어 있는 list()가 호출됨 (redirect는 항상 GET)
    ④ list()가 getPage()를 호출해서 게시물 목록을 가져옴
    ⑤ 게시물 목록을 화면에 보여줌 -> List<BoardDto)

[04-07~08] 게시판 검색 기능 추가하기

  1. 게시판 검색
    2-1. MyBatis의 동적 쿼리(1) - < sql>과 < include>
    - 공통 부분을 < sql>로 정의하고 < include>로 포함시켜 재사용
    2-2. MyBatis의 동적 쿼리(2) - < if>
    2-3. MyBatis의 동적 쿼리(3) - < choose>< when>< otherwise>
    2-4. MyBatis의 동적 쿼리(4) - < foreach>

⛔ <c:out /> ⛔

[04-09] REST API와 Ajax

  1. JSON이란?
    - Java Script Object Natation : 자바 스크립트 객체 표기법

  2. stringify()와 parse()
    - JS객체를 서버로 전송하려면, 직렬화(문자열로 변환)가 필요
    - 서버가 보낸 데이터(JSON문자열)를 JS객체로 변환할 때, 역직렬화가 필요

    JSON.stringify() - 객체를 JSON 문자열로 변환(직렬화. JS객체->문자열)
    JSON.parse() - JSON문자열을 객체로 변환(역직렬화, 문자열->JS객체)

  3. Ajax란?
    - Asynchronous javascript and XML : 요즘은 JSON을 주로 사용
    - 비동기 통신으로 데이터를 주고 받기 위한 기술
    - 웹페이지 전체(data + UI)가 아닌 일부(data)만 업데이트 가능

⛔ 동기 vs 비동기 ⛔

  1. jQuery를 이용한 Ajax

  2. Ajax요청과 응답 과정

  3. @RestController
    - @ResponseBody 대신, 클래스에 @RestController 사용 가능

  4. REST란?
    - Roy Fielding이 제안한 웹서비스 디자인 아키텍쳐 접근 방식
    - 프로토콜에 독립적이며, 주로 HTTP를 사용해서 구현
    - ⭐리소스 중심의 API 디자인 : HTTP메서드로 수행할 작업을 정의

  5. REST API란?
    - Representational State Transfer API : REST규약을 준수하는 API

  6. RESTful API 설계

[04-10] 댓글 기능 구현 - DAO 작성

  1. 댓글 기능 구현 순서

    ① DB테이블 생성
    ② Mapper XML 작성
    ③ DAO 작성 & 테스트
    ④ Service 작성 & 테스트
    ⑤ Controller 작성 & 테스트
    ⑥ 뷰(UI)작성 & 테스트

[04-11] 댓글 기능 구현 - Controller 작성
[04-12] 댓글 기능 구현 - UI 작성
[04-13] 댓글 기능 구현 - 대댓글

profile
How u do that

0개의 댓글

관련 채용 정보