IOC
MVC
ORM (Spring이 어떻게 mybtis를 대체하는가?)
AOP(트랜잭션 관리)
나머지는 수정 중간에 섞을것
디펜던시 인젝션???, 누군가가 만들어서 넣어줘야한다. 주입자가 필요하다?(주입자와 DAOImpl 사이의 결합력으로 되었다., 주입자가 어플리케이션 밖에 존재한다면 어플리케이션에서의 결합력이 없어진다 spring ??)
data-access(dao 구현 기능)
messaging(웹소켓으로 대체할 예정) - push message, 별도의 메시지서버, 메시지 브로커가 필요 해서 제외예정
특정레이어하나를 지원하기 위한 것 프레임워크가 아니다 Enterprise 지원 프레임워크 이기 때문에 가지고 있는 기능이 상당히 많다.
우리의 포커스 ( 절대로 바뀌지 않는 원칙을 보는 것으로 수업 방향을 잡겠다)
Refence Doc - 휴대폰 메뉴얼 같은 느낌
III. Core Technologies 에 포커스
IoC ( 인버전 오브 컨트롤 ), 라이브러리와 프레임워크의 차이 설명에 바닥을 깔고 가야한다. IoC 패턴(제어가 역전, 의존 관계가 역전)
리소스 파일 종류
3가지 웹, 파일시스템, 클래스패스
commons 벨리데이터 하이버 네이트쓰기위해서 만들었는데 , Spring안에서 9. Validation, Data Binding, and Type Conversion
하이버 네이트관련해서 지원한다는 소리이다.
Spring Expression Language (SpEL)
EL이 Spring 안에 존재한다.
Aspect Oriented Programming with Spring - AOP
선언적 프로그래밍??
14.2. Unit Testing support Classes
테스팅
Object Pooling Commons Pool
Connection Pool
검색어 : egov wiki
우리으 egovFramework
개발환경(eclipse 가져가다 확장) + 실행환경(Spring 가져다가 확장)
EJB 의 단점 보완 - Spring 장점
마음대로 개발 - 선호 기호에 따라 다 각자개발하고 합치려면 어렵다
2명이상의 개발자는 룰과 가이드 라인(틀)이 필요하다.
그런 규칙성(스펙모음) EJB
제안서 정리하지않고 때려넣어서 스펙이 만들어짐
그러면 개발자가 일하기 싫어진다. 그러면 EJB를 쓰기 싫어진다.
봄싹? 국내 스프링 커뮤니티
POJO기반 의존 코드가 없이 (결합력 X)
스프링의 라이프 사이클 관리 대상은 객체이다
이 객체를 Bean 이라고함.
스프링 컨테이너
요청과 응답의 접점이 없었다.
Mock 객체가 없었기 때무니.. Web MVC 테스팅 모델 (국내 개발자들이 제안)
결합력을 해결하기 위해서 Factory 객체로 몰아버림, 또한 이 안에서의 결합력을 해결하기 위해서 설정파일을 외부로 빼버림
인터페이스가 정해져있기 때문에 결합력을 줄여버렸다.
CookieUtils 에서 이용했다.
HTTP Request는 인터페이스이다. 어떤 API 객체로 만들어 지는지 전혀 모른다. 아파치 퍼사드 객체가 만들어진다.
전략에 해당하는 인터페이스만 맞춰 두면 A라오던 B라 오던 상관이 없는 것
디자인 패턴의 두가지 키워드??
응집력과 결합력과 연관해서 생각해야한다.
DI 를 했을떄와 안했을때 차이
DI 구조를 어떻게 해결할지
필요 모듈과 의존 관계를 파악해서 넣는다. 즉 context 넣으면 다른거 안넣어도 같이 따라온다는것 context가 core의 다른 3가지과 의존 관계를 가지고 있다. (내포)
객체의 필수는 생성자 인젝션 으로
옵션은 Setter 인젝션 으로
주입자가 외부냐, 내부냐에 따라 달라진다.
단계적으로 디자인 패턴 적용해서 결합력을 어떻게 낮추는가?
협업
클래스 사이에서의 결합력을 낮춤 + 실행코드 탈출화 + 캡슐화(사용자가 어떻게 굴러가는지 알 필요가 없게한다)
pom.xml
빈 메타데이터를 등록
property value -> setter injection
<bean class="kr.or.ddit.sample.dao.SampleDAOImpl"></bean>
생성자를 가지고 객체를 생성한 것과 똑같다.
id 유일성?
spring C.O.C(convention of configuration)를 광범위하게 이용한다??
그동안의 관행을 따른다??
참고 : https://medium.com/@dlaudtjr07/convention-over-configuration-%EB%9E%80-694345d2447f
엔트리 포인트(entry point)는 제어가 운영 체제에서 컴퓨터 프로그램으로 이동하는 것을 말하며, 프로세서는 프로그램이나 코드에 진입해서 실행을 시작한다. 어떤 운영체제나 프로그래밍 언어에서, 초기 엔트리는 프로그램의 한 부분이 아니라 런타임 라이브러리의 한 부분이다.
참고 : https://codevang.tistory.com/165
웹
클래스패스
파일 시스템
뭘하면 이 과정이 필요가 없어진다?
리소스 로더를 어떻게 활용하냐에 따라 컨테이너 구현체가 달라진다.
알바 자격증 테이블에서
중복되게 하지 않게 복합키를 기본키로 잡았다.
오라클의 DECODE 함수 알아볼것
이미 보유한 자격증은 수정목록에서 제외?
아니면 잘못등록된 자격증은 삭제 할수 있어야하며 아래 자격목록에 보여야함.
공통모듈 모듈화, 이미지 미리보기
알바 정보, 자격증 2진데이터 DB저장, 프로필사진 서버 2진 데이터 저장 -> 트랜잭션
과제 못했다면
Alba 코드 리뷰하고
안된 부분 내가 처리해보기가 미션이래
EMPLOYEES에 대해서 MERGE 구조하고 ? 계층 구조 적용해보기?
계층형 쿼리 구문
오늘한 것 복습하기