본문 바로가기
공부/SpringBoot

[블로그] 서비스와 트랜잭션

by yeaseul912 2022. 2. 26.
728x90

1. Service Package

  서비스 사용하는 이유

    - 트랜젝션 관리

    - 서비스 의미 때문 : 여러개의 트랜잭션으로 기능을 구현하는 것.

                                    모든 트랜잭션이 실행 되지 않으면 rollback시켜 줌.

repository -> c,r,u,d 하나씩 들고있음

service -> c,c 두개 들고있음(ex,송금서비스)

 

2. ResponseDto 수정

    - 회원가입 시 중복 유저 처리 원활하게

        - User model username 중복 안되게 설정

    - 결과

3. DB 격리 수준

   트랜잭션 : 일이 처리되기 위한 가장 작은 일의 단위

    - 오라클 : Read Commit 방식

    - mysql : InnoDB Strogy Engine 사용

                    Repeatable read 이상 방식 -> 부정합 발생 X

스프링에서는

                    데이터의 변경(insert, update, delete)은 Commit이 필요하기 때문에 @Transaction 사용

                    select 는 Commit이  필요하지 않지만 정합성을 위하여 @Transaction 사용

                    (select 하는 동안 같은 데이터를 얻는지 확인하기 위하여)

                     자기 transaction 번호 보다 낮은 undo 로그를 보고 select를 함.

                     

4.  전통적인 방식의 로그인

    - loginForm.jsp 에서 버튼 클릭 시 user.js 실행

    - user.js에서 ajax로 login 정보 전달

    - Controller에서 정보를 받아서 로그인 서비스 실행

    - Repository에서 로그인을 위한 JPA Naming query 생성

// 1. JPA Naming query 전략
	// Select * From user WHERE username = ?1 AND password = ?2;
	User findByUsernameAndPassword(String username, String password);

// 2. native 한 방법
	@Query(value="Select * From user WHERE username = ?1 AND password = ?2", nativeQuery=true)
	User login(String username, String password);

    - Service에서 repository에서 정의한 naming query 실행 및 정합성 유지

    - Controller에서 Session 유지 및 로그인 완료

    - jstl을 사용하여 session 생성 시 Nav 메뉴 바뀌게 설정

http://theeye.pe.kr/archives/1563 

 

[Java] Tag라이브러리(JSTL) 사용하기 | 아이군의 블로그

자꾸 까먹는 경향이 있어 기록용으로 저장해 둡니다. JSP에서 간단한 프로그램 로직을 구현하기 위해 JSTL을 사용하는데요 다양한 JSTL용 태그 라이브러리가 제공되지만 이 글에서는 플로우등을

theeye.pe.kr

 

5. 스프링 시큐리티를 이용한 로그인

 

반응형

'공부 > SpringBoot' 카테고리의 다른 글

[블로그] 글쓰기  (0) 2022.03.06
[블로그] 스프링시큐리티  (0) 2022.02.27
[블로그] 오늘의 에러  (0) 2022.02.21
[블로그] 화면구현  (0) 2022.02.18
[블로그] CRUD 테스트  (0) 2022.02.12

댓글