[커널아카데미] 백엔드 12기 9주차 -스프링MVC,DI,DAO

jh5959·2025년 5월 23일
0

Spring MVC

설계: 그룹화+관계(시스템 구조화)
그룹화, 구조화 -> 분리
MVC -> 패턴
oop설계의 5대 원칙 SOLID
S: 단일책임 원칙: 1책임 1메서드
O:OCP 오픈(상속O) 앤 클로즈 (변경X) - 상속은 가능 템플렛 변경X
LID
분리

  • 관심사(work)
  • 변하는 것, 변하지 않는 것(템플릿, OCP) 섞지말기

메서드의 매개변수 - 작업에 필요한 것이 뭔지 지정(입력)

1tcp/ip 연결-in, out
2http요청
3서버가요청처리
4서버 http응답

http 요청- 문자열
-> request 객체로 변함(HttpServletRequest request)

서블릿:자바(5%)안에 html(95%)
jsp: html안에 자바

jsp -> servlet 자동변환


  • 스프링MVC
  • 스프링DI
  • 스프링DAO

DI

객체를 미리 만들어서 map에 저장
필요할 때마다 꺼내서 씀(객체주소를)
map에서 꺼내는 방법

  • 이름
  • 타입

Spring container: map

싱글톤: 객체 1개, 저장되어있는거 재사용
flyweight: 여러개
prototype: 기존걸 복제해서 새로운걸 줌(주소가 다름)

DAO

중복 코드 따로 뻄

트랜잭션: 더이상 나눌 수 없는 작업의 단위

트랜잭션 속성: ACID
원자성:나눌 수 없는 하나의 작업으로 다뤄져야 함
일관성: Tx 수행 전과 후가 일관된 상태를 유지
고립성: 각 Tx는 독립적으로 수행되어야 한다
영속성: 성공한 Tx의 결과는 유지되어야 한다

Tx의 isolation level
READ UNCOMMITED: 커밋되지 않은 데이터도 읽기 가능
RAED COMMITED: 커밋된 데이터만 읽기
REPEATABLE READ: Tx이 시작된 이후 변경은 무시됨
SERIALIZABLE: 한번에 하나의 Tx만 독립적으로 수행

중복제거 하려고 쪼갬 = 정규화
실행할 때 합쳐짐 = 조인
sql에서는 데이터 중복 제거
AOP에서는 코드 중복 제거

AOP: 동적 자동 코드 추가(시작과 끝)

  • 중간에 추가X
  • 맨 앞과 끝은 고정 -> 자동추가
  • target 앞과 끝에 코드 넣음

target: advicd가 추가될 객체
advice: target에 동적으로 추가될 부가 기능(코드)
join point: advice가 추가(join)될 대상(메서드)
pointcut: join point들을 정의한패턴. 예)execution( com.fastcampus..*(..))
proxy: target에 advice가 동적으로 추가되어 생성된 객체
weaving: target에 advice를 추가해서proxy를생성하는것 꼬맨다

서비스 계층의 분리와 @Transational

DAO의 각 메서드는 개별 Connetion을 사용
TransactionManager : 같은 Tx내에서 같은 Connetion을 사용할 수 있게 관리

이번주 회고

  • 스프링 이론이 아직은 어렵지만 강사님 말씀대로 실습을 10번하니 조금 이해가 가는것 같다
  • 자바가 부족해서 계속 하는 중인데 스프링으로도 벅차서 제대로 못했다
  • 일찍 누워도 잠이 안온다 한약을 먹어야겠다
  • 다음주는 스프링 실습 위주로 해야겠다
  • 자바는 계속 꾸준히 하기...

0개의 댓글