TIL(Today I Learned)(27)
-
2023.07.13 TIL
(1) 다양한 메소드가 사용가능 할때 RestAPI를 어떻게 작성하는가? - 여러 개의 메소드를 사용가능 할때, 같은 URL을 만들어놓고 메소드만 가지고 분리해서 사용하는 경우가 있다. (2) CSR방식 - model에 담아서 포워딩 하는 것이 아니라 Responsebody 어노테이션 받아서 그대로 VO를 내보내준다. - 백엔드 개발할때는 Dao -> Service -> Controller 순으로 만든다. - Board와 관련된 도메인에 대해서 기능을 만들때, 어떤 기능을 만들지 고민을 하게 된다. 그 기능에 맞춰서 메소드를 준비해줘야 한다. - 이 메소드에 해당되는 것부터 작성을 해준다. Sql먼저 쭉 만들고 -> DAO -> SERVICE -> CONTROLLER 순으로 작업을 하게 된다.(컨트롤러는..
2023.07.13 -
2023.07.12 TIL
(1) Spring Security 객체를 Servlet-Context.xml에 추가하면 에러가 나는데 Root-Context.xml에 추가하면 에러가 안나는 이유 - 스프링을 실행하면 컨테이너에 bean들을 만든다. dependency에 뭔가 만족되지 않는 이유는 servlet바구니 안쪽에 bcryptPasswordEnconder를 만들어주었는데도 MemberService 측에서 찾지 못하게 됨. - root바구니 안쪽에도 MemberService 객체가 만들어져 있고 인코더를 필요로 하고 잇는데 servlet-context에 접근할 수 없어서 에러가 난 것이다. - root-context에 encoder를 추가하면 root와 servlet 모두다 접근이 가능하다. 그래서, root-context.xm..
2023.07.12 -
2023.07.07 TIL
[1] Cookie - 클라이언트 측에 저장한다. - key, value 형태로 저장된다. - 서버가 쿠키를 만들어서 클라이언트 측에 전달한다. - member/login 을 하면 요청받은 서버가 Cookie를 하나 만들어서 그 쿠키를 기억해서 클라이언트에 전달함. - 광고를 볼 때, 체크박스 체크하면 24시간 동안 광고 안보이기나 아이디 저장을 누르면 항상 기억되게 만든다거나 할 때, 쿠키가 사용된다. - 저장된 쿠키는 요청을 보낼 때마다, 포함되어서 보내진다. (1) 서버에서 쿠키를 구워서 클라이언트한테 주는 방법 1. 쿠키 생성 path : 현재경로 기준으로 쿠키가 만들어짐 기본적으로는 path가 현재경로 기준이 됨 - 하지만, path를 설정할 수 있음 - 만료시간을 설정할 수 있음 2. resp..
2023.07.07 -
2023.07.03 TIL
(1) AOP란? - AOP는 Aspect Oriented Programming이다. 특정 관점에 대해서 프로그래밍을 하는 것이다. - 현재까지의 작업 내용을 Controller, Service, Dao 이렇게 했었는데 AOP는 서비스 관점에서 프로그래밍을 한다는 것이다. - 예시를 들자면 db 왔다갔다 할 때, 시간이 꽤 걸린다. 프로그래밍이 느리다 싶으면 was, db랑 통신할 때(dao)에서 db까지 왓다갔다할때, 좀 오래 걸릴 수가 있다. - 이게 느리다 싶으면 쿼리문에 문제가 있는거 아닌가 확인할 필요가 있다. 그래서 dao에 log를 활용해서 쿼리문들이 실행되는 시간을 측정할 필요가 있다. - 특정 기능 하나에다가 추가하는게 아니라 모든 기능에 추가할 수 있다. - dao를 타겟으로 삼아서 쿼..
2023.07.03 -
2023.06.23 TIL
(1) 예외 - Dao에서 예외를 던지고, Service에서도 예외를 던지고, Controller에서도 예외를 던지고 예외를 처리하는 것은 무엇일까> - DispatcherServlet에서 던져봤자 특별히 예외를 처리하는것이 없기 때문에 ControllerAdvice를 사용해야 한다. (2) @ControllerAdvice - 컨트롤러가 디스패처서블릿한테 예외를 던지는데 디스패처서블릿에 건너지기 전에 ControllerAdvice가 예외를 잡아서 처리해준다. - @ControllerAdvice를 달아주면 특정 타겟들을 감시하고 있다가 그 타겟들에 예외가 발생하면 처리해줄 수 있다. - 설정해야 할 것은 '누구를 감시할 건지', '뭐라고 할 건지'를 설정해야 한다. @ControllerAdvice(anno..
2023.06.23 -
2023.06.22 TIL
(1) 트랜잭션(@Transactional) - 여러개의 쿼리문이 처리되도 하나의 트랜잭션으로 처리할 때, service가 한꺼번에 처리해야 한다. - 즉, 하나의 서비스에서 여러개의 dao를 실행한다. - 예를 들어 게시판 기능에서 게시글 상세조회가 실패한다해도 조회수가 알아서 증가하게 된다. - 무조건 조회수가 증가하게 되는데, @Transactional을 달아주면 몇개의 dao가 들어오든 그 중 하나가 error가 나면 rollback처리 된다. - 원하는 대로 하나의 트랜잭션으로 동작하게 된 것이다. 메소드 안쪽에서 예외가 발생하면 rollback이 처리되고, 예외가 발생하지 않으면 commit이 된다. - 조회수 증가, 상세 조회 두가지 기능이 하나의 서비스에 제공이 되는데 하나의 기능마다 하나..
2023.06.22