[DAY65] jdbc_junit , 9장_jdbc_junit: 능력단위평가

NA YE SOM·2023년 10월 10일


pom.xml


-> pom 덮어쓰기(ajax 7장부터)

web.xml

Homcontroller 지우기

package 복사하기

index.jsp 복붙 -> 빨간색깔만 살리기

javastudy

ContactDao 드래그 -> dao 가져다두기


ContactDto 드래그 ->

GD.sql문




-> sql생성


-> contact.sql

sql developer열기

GD 계정 접속후 실행하기 (F5 두번 누르기)






jdbcConnection 클래스 추가하기





-> 복붙해서 쓰기 !!



-> 사용할 것 : 마지막 3번째!!

dao로 가기


-> autowried 처리하기(Spring 컨테이너의 객체를 가지고 오시오) -> 필드에 붙이기
(생성자에 붙이기 등 여러가지 중 여기서는 필드에 붙이기!)



mission : JdbcConnection에 편입시켜보기!


connection ps,rs는 dao에 있는것을 갖는것
-> jdbc connection으로 가지고 가면 아무것도 없음(오류를 어떻게 해결할 것인가 생각해보기!)


-> jdbc connection에 옮기는 작업은 끝남



-> rs는 사용할때도 사용안할때도 있음


Dao 자체도 Service가 사용할 수 있게 객체 자체로 만들어야 함

dao에 붙이는 componenet는 전용 component가 있음-> Repository


Junit활용해서 하기


junit



-> 쥬피터 : 5쓰기


-> testcode라서 아무거나 붙여도 됨

Junit을 위한 dependency 필요함

maven repository

5.3.3 버전 복사하기!!!






-> 5.3.3 이라고 써도 문제는 없지만 밑에 같은 스프링 버전 가져다 쓸수 있게금 작업하기

maven update 하기!!




-> 어떻게 load로드 해야하는가?
-> Autoweird써서 해야함


-> bean 태그로 만들었다 하면









-> soruce 순서 결정하는건 기본적으로 개발자가 아님
-> 정하고 싶으면 이름순으로 바꿔서 setting하기







-> 삽입테스트 성공하면 기대하는값은 1임
-> 실제로 나온값은 insertResult값 넣어보면 됨






-> 자주 사용하는게 많지는 않음 (테스트 코드 짜는게 어려운건 아님)


-> run as -> jUNIT TEST 하기 !!


-> location 시작시 file:(file 콜론 추가하기)

test수행은 한번만 실행하기!!

삽입테스트가 생기면 첫번째 연락처가 생기고 첫번째 연락처가지고 조회도 하고 여러가지 해서

2번이상 실행할거면 DB테스트 초기화해야함

Junit 처리방법,








★추천방법



controller와 jsp 만들면 결과보는것









-> contact 폴더 만들고 index.jsp 복붙

list.jsp 로 이름바꾸기





테이블 아래쪽은 no touch 테이블 위로 가서


-> 서버로 돌리기



-> console창이 깨끗하면 되는것 (목록기능)





-> write jsp로 넘어온 상황까지 등록되었음



redirect할때 적어주기로 했던 내용 : redirect는 새로운 요청을 만드는 행위임 -> 주소를 적어줘야함 (Mapping을 적어줘야함)

-> 추가한 내용을 사용하기로 한 것 : list임



return으로 redirect하기전에 저장해야함


list.jsp 열기 -> script작업



-> 아니면 실패한것





-> 테스트 코드때문에 2번부터 생긴것

상세보기








-> 이안에 들어있는 각종 field들 찍어주면 됨



삭제하기(일반버튼으로하기)


contact DTO





-> contact DTO . contact number


-> modfiyResult확인해서 수정되었다 수정되지 않았다 띄워주는 작업



-> 아니면 수정되지 않은 것

상세보기와 수정을 한번에 확인하기!



-> 이름 클릭 : 상세보기 되는지 확인하기


-> 다 등록해서 나오는지 확인하기

-> 수정되고 화면 바뀌지 않음, 같은화면으로 돌아오게금 함
(메시지가 뜨기때문에 확인가능)


삭제 전에 물어보기(confirm이 물어보는 대화상자임)




-> 목록은 끝나고 삭제만 정상적으로 하면 끝남

번호가 넘어오지 않는다면 삭제가 되지않도록 기본값 처리함



-> 삭제하고 상세보기 할 수 없으니 목록보기를 복사해서 붙이기!!



-> 등록대신 삭제


-> 현상황 끝남




-> 목록에서 사라짐
-> 기본입출력

★★★ 9장_jdbc_junit: 능력단위평가 연습하기!!

mybatis 를 2번 선호! jspstudy방식이랑


-> 주소만 알면 삭제할 수 있는상황임

권한이 있는사람도 주소만 알면 지울 수 있다


-> 권한은 없는데 그냥 됨

막아보기!!

주소로 접근하는 방식 : GET방식 -> delete요청을 POST방식으로 바꾸면 주소창으로 접근하는것이 원천적으로 막힘



-> ajax은 이미 넘어갔음 : form의 메소드가 POST라고 되어있을때 동작시킬 수 있음



-> form 안에 번호가 들어있음




-> frm_detail 불러서 submit을 직접하면 된다


-> 삭제 method가 POST로 바뀜


-> 주소 아무리 입력해도 주소로 요청이 들어오면 안됨





-> 삭제 되는것이 아니라 막힘
-> 오류 발생시 : 발생된 오류에 따른 해결책은 boot배울때 배우기(최종 final boot로 하기)
-> 간단하게 해결하기!!

에러가 났을때 띄워줄 page를 우리가 지정할 수 있음 : 405번이라고 만들어서 두라는데 두기!!(에러났을때 열림)

-> 예외처리는 안함(try catch로 해결하기)

--> jdbc가지고 CRUD 처리함




-> 파일에 찍을 수도 있고 consoleAppender 로 찍어주는 놈




-> appender사용할때 console사용하시오

-> 해석방법 : 이 package에 있는 class들은 info level에 찍을것


-> spring framework의 기본 로그만 찍혔던 것


-> log다는 test정도는 달아보기


-> controller 열려있음



systemout 대신 -> log방식으로 바꿔야함(쓸데없이 자원을 많이차지함)

log back : 최종적으로 쓸것!!





-> log 찍는 사람을 3명 중에서 1명을 뽑아쓰는것


-> 지원자 3명 중 한명 뽑아서 쓰기

-> log4j를 쓰든 javautil.logging을 쓰든 상관없음

-> 우리는 SLF4J하고만 이야기를 나눔

직접 명령 X : 인터페이스 통해서 명령을 내리는 이유 -> 사용법을 통일하기 위해서


-> 실제 로그 프레임워크쓰든 상관없음



-> 명령내릴때 사용하는것 : bridge


-> 안쓰겠다






-> 이메일을 보낼때 log찍지 않는다(상황별로 예외 제외상황이 잡혀있음)

=> 크게 보면 :




-> 이걸 이해를 해야 어떤 dependency 를 제거하고 depenendcy를 남길건지

3개의 dependency를 준비해야함



-> 10배나 빠르므로 꼭 써야함

log level : 언제 log를 찍을까?





-> 붙이기




-> log4j이름 바꾸기





-> 우리나라 서울의 timezone


-> controller, service, dao




-> service밑에 두고 위에다가 추가하기




-> log찍을때 시간, 레벨, 클래스 메시지 자리에 목록이 출력되어서 나옴

















-> 버전만 바꾸면 됨








-> springframework 소속임





-> logback manual 찍으면

-> chapter 13까자지 됨









-> 여전히 appender는 목록에서만 찍히고 있음


log 폴더 열기




-> 로그 찍힘


-> 한파일은 몇 메가로 할것인가 지정할 수 있음

-> rolling file 테스트 해보고 동작가능
-> 매일 새로운 log파일을 만드는 RollingFileAppender












-> 날짜 패턴 뒤에 .




-> 첫번째 로그가 0이찍힘(100메가 넘을때까지 확인할 수 없으니까)


-> 100메가 넘어가면 파일이 하나 더 생김

★★★로그찍는거 테스트 코드만드는것

logback사용법까지는 끝남


log4jdbc

1.16 copy




-> 필요한 dependency 끝남


-> DB접속할때 사용하는 주소가있음

Driver spy 다른 driver가 돌아가는것으로 대체를 시키고 주소가 약간 바뀜














-> 자동으로 찍어주는 library suffer log기록으로 남기기
-> 디버그 error 나오는애들은 닫아주고 필요한 애들만 열어서



-> lombok이 해줌


-> list는 파라미터가 없음
-> add는 시작할때 log.info(contactDto.toString 있음)는 그냥 안됨


-> 상세도 같은 작업해주기!!

-> 파라미터가 넘어갈때마다 잘 되는지 확인가능

-> 여러개 그냥 막 사용해보기


-> 상세보기, 수정도 해보기





-> 수정해서 상세보기 돌아온것처럼 상세보기
삭제하는 쿼리

-> 실제 5번이 없어짐
-> log4j dependency 초기 setting이 길어지고 있음

profile
개발자 velog

0개의 댓글