웹구조(복습)

웹 구조안에서 클-서버시스템
그 서버가 몇개로 쪼개지냐에 따라 n-tier구조

요청을 하나의 컴포넌트로 처리할것이냐 두개로 나눠서 처리할 것이냐에 따라 모델1,2나눠짐

controller-view로 contents를 보여줘야됨- model layer에서 만듬
row데이터 가져오고 가공해야함-역할 또 조개져서 b.l, p로 나뉨


<오늘>
logging 프레임웤-퍼사드 패턴(빔-리모컨(퍼사드객체))
->1. 빔 역할하는 로깅 프레임웤
2. 리모컨 역할하는 로깅 프레임웤

데이터 검증
원래는 안전하게 한다면 각 레이어에서 검증해야되는데 그러면 중복되는 코드 발생 - 모든 레이어에서 전달되는 모든 데이터 가지고 있는 VO에 대해 검증하겠다.

log4j 추가

log4j1-설정파일 properties파일로
log4j2-xml로

아파치 사이트에서 log4j - 빔 역할

slf4j

리모컨 역할 - slf4j

퍼사드-실제로 동작은 안한다. 리모컨 역할.
commons-logging도 있는데 얘는 무거워서 slf4j씀

리모컨 셋팅해주기 위해 빔과 중간에서 맞춰줄 수 있는 애. 연동한것

추가해줌

jcl-over-slf4j

옛날 리모컨 버리려고 하는데 얘 쓰고있던 애들 있음->slf4j쓸 수 있게 해줘야됨

자카르타커먼로깅 있으면 얘 누르고 slf4j쓰겠다.

추가해줌

프레임웤은 내 마음대로 못하고 설정파일 설정 해줘야됨- 아파치 사이트 configuration에서 xml 긁어옴. 반드시 이 이름으로 해야됨!

->로그 찍힘

-> 필요한 것만 나오게 하기


log4j2 설정파일

전체 코드

설정파일
1. 뭐를 찍을건지 - logmessage - 사용자가 정함.
2. 어떤 형식으로 - layout
3. 어디에 - appender
4. 찍어주는 작업 해주는 애(전달자) loging framework까지 사용자가 찍고 싶다고 한 내용 전달해주는 애. 메시지 전달 방법- logger

이 형식에 의해 콘솔창에 로그 찍혔던 것
[ %t] : 쓰레드 이름
level : logging event 등급
debug -> info -> warn -> error -> fatal
그 이하의 등급은 무시함.

-> 로거 가져온 것.
static final - 로거를 여러개 남길 필요 없다, 상태가 변경되지 않는다.
로그는 클래스패스 사용.

root레벨을 debug로 해놓으면 너무 많은 로그가 찍힘 -> < logger>로 따로 설정

우리 프로젝트 밑에 있는 애들은 다 debug레벨로 하겠다.

mages.velog.io/images/wjdaks4945/post/67f3194a-f895-4611-98f7-2b009413e9ec/image.png)

두번씩 찍힘
모든 로거는

얘 상속받고 있음. 그런데 또 설정해줘서 두번찍혔던것.

내꺼랑 상속받은거 충돌날 수 있음 - addtivity추가

-> 한번만 나옴

콘솔말고 db같은데 남기려면(튜닝) logger를 변경!
콘솔은 이클립스 끄면 사라지니까

-> 프레임웤 쓸때 블로그 찾아다니지 말고 문서를 봐라!!

확인할때 긁어서 넣고 ?에 파라미터에 있는거 가져다가 넣으면 되는데 만약 insert라면? 너무 많음 - 프레임웤

log4jdbc

클라이언트가 요청 보내면 프록시가 요청 중계해서 서버한테 보내고 응답도 프록시 거쳐서 내보냄
프록시는 서버 없으면 아무것도 못함. 대리자

진짜 드라이버가 아니다. 드라이버 없으면 동작 안한다.

추가

변경

위에거 잘 안되서 이거로 바꿈

이것도 추가.

mybatis에서 찍는 쿼리(?로 나오는거) 안나오게 하려고 info로 높임


ibatis - insert selectKey..

Alias로 주면 수동바인딩 따로 할필요 없음


검색조건 여러개인 경우
조건이 뭐가 붙을지 모름 - 다 AND 써줘야됨. 하지만 맨앞에오는 문장은 AND있으면 안됨 - 잘라주기
-> < trim>

prepix - 하나라도 만족하면 붙는다.
prepixoveride - 잘못들어가있는 and
suffix는 연산자가 뒤에 붙는 경우

vo안만들고 map으로 가져옴
-> key : vo의 property명
value : 해당하는 값

mybatis안에 뭐가 맵으로 존재하는지

el-nullpoint발생 거의 안함. 발생할거 같으면 화이트스페이스로 바꿔줌

<숙제>
회원리스트 동기, 비동기로 나누기
상품 검색 selectTag 라이브러리화
다이어그램 해석
클래스다이어그램-시퀀스다이어그램 쓰려면 이런 클래스 구조가 필요하다고 그려놓은 설계도

0개의 댓글