[DAY67]

NA YE SOM·2023년 10월 12일

hikaricp-DataSource

데이터 소스를 hikaricp로 대체하고




-> property를 만들어놓은 상태

-> connection pull을 이용한 접속으로 바꾸기

-> 나머지 아이들은 바뀌지 않은 상황임

DataSource를 hikira로 바꾼다



-> 처리하는 Hikari에서 제공하는 클래스

hikariConfig로 수정하기



-> 우리는 가져다 쓰기만 하면된다



-> hikrai config받아오는 2번째 생성자


-> spring jdbc때 필요한 거라서





-> query문을 mapper에서 함








-> 한적이 있는가?


-> 이미 해놓음



-> 전부 필요없음
\

경로변경














-> 대충던지면 끝냄

-> 계속 가져다 쓰는 bean이 됨
(한번만 잘 만들어놓으면 됨)



dao측에서 sql template가지고 옴
-> bean을 가지고 오니까 이와 같음

-> 이거가지고 삽입, 수정 다 하는것



-> tag의 id는 mehtod이름으로 맞추기






-> 쿼리문 복붙












-> dto에 들어있는 field이름 적기
-> dto에 들어있는 field이름은 camelcase로 바꾸었음





★★★잊지말기!

2.수정

3.삭제




-> 매개변수 변경하기 (contactNo)

4.상세조회


-> 다지우기


-> id와 parameter전달하는 방식으로 하기



-> 불필요한 import정리하고 닫기


-> 메소드 2군데 있음
transaction test는 조금있다가 하기 !





-> jsp 전부 열어서 확인하기!!

detail.jsp부터 확인하기!


-> 바꾸기

list.jsp



-> 실제 값도 바꾸기



typeAliases





-> 이부분만 지우면 됨

logback.xml 수정하기




-> mybatis것도 뜸

-> mybatis에서 제공되는정보, hikari에서 제공되는 정보









트랙잭션의 원자성 : 하나의 단위이다 (모두 성공아니면 실패해야한다)



configuration 와서 하나더 붙이기




-> 주소창에 contact/tx.do 치기




-> 사실은 transcation이 필요없음
(안붙여도 상관x)


database수정이 없는 select들
-> 조회용



-> 빼먹더라도 동작은 됨(성능보다 돌아가는것이 더 중요함)


-> 아직 최종 버전은 아님

AOP복습


모든 메소드가 동작할때 자동으로 처리될 수 있도록 AOP 기술을 도입함

aop클래스 추가하기





-> 포인트컷의 등록을 위한 메소드 : 이름만 제공하면 됨
-> controller 모든 메소드에서 동작하낟
개입하는 시점이 있음

-> 실행하기 이전에 대입하는것, 실행이 끝난 다음에 대입하는것도 있음

로직이 돌기전에 수행하는 Before 쪽에 파라미터 찍어주기!


-> 다른 선택지로 around도 있으나 around는 명확한 사유가 없으면 안쓰는것이 좋음
(around를 사용해야하는 명확한 사유가 있다)
-> around는 이전,이후에도 동작해야함


-> around로는 위,아래 다 되어서 선택하는경우도 있지만 좋지 않음

-> beforeadvice는 만드는 방법이 정해져있음


-> 우리가 하고있는것 : aspect






-> 복사해서 do log에 붙이기 !!







-> DAO 테스트 (JUNIT테스트에서는 tomcat이 사용되지않음)

주소를 받아서 test진행하려면 tomcat의 개입이 필요함 -> web application





-> autowired로 가져온다






-> 테스트할때 다 쓰는것!

MockMvc가 어떤 요청을 해야할지 알아야 함



-> info로 바꾸기

삽입하고 나서 삽입결과 찍기

-> 요청을 만드는 방법


-> 요청주소와 요청방식이 요청되었음



perform에서 요청만 깔아주고 뒤에 실행하는 실행결과 받아오기!






-> 수정,삭제 모두 같은 요청이고

-> flashattribute에 저장해놓은것

-> 요청이 끝나면 andReturn 받아와서
상세조회의 결과는 detail

detail의 결과 : model에 저장함

getModelAndView : spring초창기에 model and view가 있었음

-> modelAndView가 model임





-> 상세조회, 목록조회는 같음


-> 목록조회는 알아서 해보기!!

삽입을 하고 삽입된 번호를 조회하고 있음



-> 삽입과 조회가 돌고있음

-> mocking test가지고 살펴보았던 것


-> 상세조회할때 model에 담았던것

-> 전체를 다 화면이 없어도 테스트 가능





pom.xml 긁어오기(property부터)

package동일구성 -> 전부 복붙




->실행


-> class단어를 interface로바꾸기만하면됨







-> 이름 바꾸기






-> 돌려보기


-> 기본적으로 사용해야하는 건 이버전으로 가기
-> 원래 있던 코드라고 해봐야 무슨 mapper에 무슨 id 부를것

scheduler : timer 걸어두고 자동으로 동작하게끔 해주는것

cron


-> unix에서 파생된것(cron tab 명령어 사용해서 처리가능)


-> 매해 10초되면 동작한다
-> cron식을 새롭게 배워야 사용가능

scheudler는 cron 작성법에 대해서 배운다


확장자가 bat 파일이 있음

-> batch파일 열어보면 명령어들이 순서대로 적혀있음

-> 명령어들이 순서대로 돌아간다














(ex) 금요일 저녁 7시마다 치킨을 먹겠다


-> 숫자로 바꾸어서 5라고 적을수도 있음

-> 만들어주는 사이트가 있음(거기서 만들면 됨)






Mission : 1시간마다 가장 예전에 등록된 연락처를 삭제하는 스케줄러

DELETE QUERY로 짜고 호출할 수 있는 Mapper작업 , interface작업하기

ContactService/ContactSerivceImpl 해당 서비스 호출만하면됨

-> 스케줄 아니라 쿼리문 작성,

developer열어서 가장 옛날 연락처 지울수있는 쿼리를 고민하기!!





-> delete는 원래 반환타입이 없음





=> 1분마다로 바꾸기
-> 시간을 분으로 옮기기







-> 동작안하는것처럼 보이는상황

AUTOCOMMIT : 개발하면서 삭제되는것

Sqldeveloper는 아님

12 rename하기


-> update해서 해결하기

intercepter : controller의 method돌기전에 가로채는것

filter, aop(의 beforeadvice) = intercepter와 동일한 역할을 함


-> filter나 aop는 먼저 동작하고 동작시킴

-> 먼저 동작시키고 원하면 요청을 막을 수 있음
-> 요청을 막아서 실행이 안되게끔 막을 수 있음
-> interceptor는 하고 원하면 못하게 막을 수 있음

service구현시 interface구현해주는것이 좋음

-> 작성페이지로 갈때 그냥 보내지 말고 login여부확인하기 !!






-> 3가지가 필수가아니라 골라서 하는것임

afterCompletion 작업이 완료된 후에 실행

preHandle : 이전이 가장많이사용되는 intercepter임






-> 동작을 막아주기
-> interceptor부르면 message뜨고 무조건 전단계로 보내버림

-> 만들었으니까 servlet context에 등록하기로 함

-> 누구를 언제 동작시킬것인가




-> 확인누르면 뒤로 보냄

-> interceptor로 진입을 막아봄
-> interceptor는 요청을 아예 막는 기능이 있음
-> 로그인 못하면 못들어가게 막음
-> interceptor로 처리하기 !!







-> 전체에서 제외시켜주겠다(interceptor동작을 실행시키고 해당 요청을 막을 수 있는 방법)
업로드중..
-> 로그인 되었는지 안되었는지에 따라서 로그인 보낼 수 있다
(login은 session에 정보를 올리는것 : request를 이용해서 session을 구하고 session에 로그인할때 올리는 값이 있는지 살피기!!)
-> 없으면 메시지 띄우기!

★★★ interceptor (나중에 쓰기!!)
업로드중..

*남은수업

파일첨부방법 : Input type="file"

RESTful AJAX : 주소안에 파라미터가 포함되는방식


build -> deploy(빌드하고 베포하는방식)

-> tomcat에 베포를 해서 실행을 해보기
(사용자들에게 우리 프로그램을 서비스, 베포하려면 사용자들이 sds켜서 실행하지 않으니까

Spring Boot 2점대 버전으로 구현하기

Thymeleaf : jsp파일을 대체하는 타임리프

기능구현 수업시 : 만들어진 코드를 기반으로 프로젝트 들어가면 됨

profile
개발자 velog

0개의 댓글