UMC 8주차

Simple·2021년 11월 29일
0

UMC 1기 Server

목록 보기
8/9

1. 학습 목표

  1. 웹 이해와 HTML의 문법 지식 습득
  2. CSS의 기본문법과 선택자 개념 이해
  3. JavaScript 주요 문법과 간단한 모달 실습

2. 8주차 수업 후기(선택)

💡 8주차 수업 듣고 느낀점 이야기, 각자 진행상황 공유

3. 실습

📝실습 체크리스트

  • 이전의 실습 API 20개 보충하기
  • JWT 활용하여 해당하는 모든 API 디벨롭하기
  • jwt 추가
  • Paging 처리를 하여 조회부분의 일부 API 디벨롭하기
  • 쿼리와 인자로만 간단하게 해결함, 좀 더 develop해서 더 잘 나타내보자
  • hasNext, currentPage, totalPgae 구현 성공
  • Transaction 활용하여 API를 디벨롭하기
  • Transaction(readOnly=true) 사용

🔥 트러블 슈팅(실패한 경험도 성장을 위한 경험!)

  • 트러블 슈팅 양식

    [ 문제 원인 ]@Transactional(readOnly = true) 에서 cannot resolve methon 오류

    [ 해결 방안 ]

    1. org.springframework.transaction.annotation.Transactional  --> 옵션을 허용(readonly=true? false) 가능

    2. javax.transaction.Transactional --> 옵션을 허용하지 않음..

    [ 참고 자료 ]

    https://byeongyeon.tistory.com/35

4. 핵심 키워드

5. 공유하면 좋은 것들

Transactional이 Dao 가 아닌 Service와 provider에 있는 이유?

(db를 직접 다루는 Dao가 트랜잭션에 더 적합하다고 생각했는데,,,)

  • Transational(readOnly=true)의 성능적 이점
    • 성능적인 이점

      해당 옵션인 경우 스프링 프레임워크가 하이버네이트 세션 플러시 모드를 MANUAL로 설정하기 때문에 강제로 플러시를 호출하지 않은 한 플러시가 일어나지 않아, CUD 작업이 동작하지 않고, 앞에 언급한대로 스냅샷 저장. 변경감지등의 작업을 수행하지 않아 성능이 향상된다.

      또한, DB가 master와 slave로 나누어져 있다면 ReadOnly가 있는 경우 읽기전용으로 slave를 호출하게 된다. 즉, 상황에 따라 DB 서버의 부하를 줄일 수 있다.

    • 해당 어노테이션이 있다면 우리는 해당 메서드는 READ에 대한 동작만 수행할 것이라고 예상하고 그리고 이루어진다. 여기서 난 객체지향으로 작업할때 가능한 경우 final을 두어 객체의 신뢰성을 보장하는것이 떠올랐다. 그리고 난 이 점이 중요하다고 느껴졌기에 해당 옵션에서 아무런 성능적 이점을 갖지 못한 경우라도 명시적으로 두어 계속 사용할 것 같다.

  • repository와 Dao의 차이점-> Repository와 DAO 차이?
  • 페이징 성능 개선하기-> 2. 페이징 성능 개선하기 - 커버링 인덱스 사용하기
  • mysql auto_increment 설정 및 초기화-> [mysql 기초] 9. AUTO_INCREMENT 조회 및 초기화(변경)

6. 참고자료

  • HTML / CSS / JS

HTML Tutorial

WEB - 생활코딩

  • Bootstrap

Bootstrap

  • 포트폴리오 및 자기소개 / 무료 템플릿 사이트 소개

Free & Premium Responsive Bootstrap Templates @ ThemeWagon

HTML5 UP

profile
몰입하는 개발자

0개의 댓글