본문 바로가기

Java192

Spring Security CSRF 적용하기(With Thymeleaf) Security Config의 @EnableWebSecurity 어노테이션을 통해 csrf 토큰처리가 자동으로 이루어진다. @Configuration @EnableWebSecurity @EnableMethodSecurity @RequiredArgsConstructor public class SecurityConfig { 현재 view 단을 Thymeleaf v3.0.15를 통해 처리중인데 Thymeleaf 를 사용하는 경우 손쉽게 csrf 처리를 할 수 있다. CSRF 적용 후 Logout 404 error 발생 문제 : csrf공격 처리를 위해 SecurityConfig에 csrf.disable()코드를 지우고 csrf설정을 활성화했더니, 기존의 a태그로 “/logout”경로로 요청을 보내서 처리하는 .. 2024. 3. 17.
도로명 주소 API 구현 { "common": { "totalCount": "75", "currentPage": "1" }, "juso": [ { "roadAddr": "서울특별시 서초구 강남대로12길 6 (양재동)", "jibunAddr": "서울특별시 서초구 양재동 326-1" }, { "roadAddr": "서울특별시 서초구 강남대로12길 8 (양재동)", "jibunAddr": "서울특별시 서초구 양재동 326-2 성경빌딩" }, { 2024. 3. 13.
Filter 와 interceptor, AOP 차이와 용도 이번 면접에서 아직 java에 대해서 정확하게 모르는 구나...! 라고 느꼈고java, spring 에 대해서 다시 공부해야겠다고, 생각했습니다 😭그래서 정리해보는 Filter와 interceptor 그리고 AOP종류실행시점FilterDispatcher Servlet에 요청이 전달되기 전/후 실행InterceptorServlet이 Controller mapping method를 호출하기 전/후 실행AOPtarget joinPoint(method)가 실행되기 전,후,자유롭게 호출Filter웹 어플리케이션에 전반적으로 사용되는 공통적인 기능을 구현할 때 적용할 수 있습니다.특히 공통적인 기능을 서블릿이 호출되지 전에 수행(전처리)하거나 서블릿이 호출되고 난 후에 수행(후처리)시 사용. 필터를 사용하면 클라.. 2024. 2. 22.
MyBatis로 대댓글 구현 배웠던 내용을 다시 한 번 정리해보는 글입니다 :) 코드는 답글을 작성할 수 있는 코드인데, 대댓글로도 구현이 가능할 것 같습니다. *팀프로젝트 파티쉐어의 partyboard를 참고로 게시글을 작성합니다. ERD: 게시글 작성 * Service @Transactional @Override public void regist(PartyBoardVO board) throws Exception { dao.register(board); // origin column 값을 등록된 게시글 번호로 수정 dao.updateOrigin(); } * DAO // 게시글 작성 @Insert("INSERT INTO partyboard(category,pnum,title,content,writer,mnum) " + "VALUES.. 2024. 2. 19.
정렬할때 쓰기 좋은 메소드 List 정렬 시 오름차순 정렬 Collections.sort(정렬할 리스트); 내림차순 정렬 Collections.sort(정렬할 리스트, Comparator.reverseOrder()); 순서 뒤집기 Collections.reverse(뒤집을 리스트); 배열은 Arrays.sort() 를 사용해준다. 2024. 2. 15.
SpringDataJPA - EntityGraph, fetch join 간단하게 하기 fetch join을 SpringDataJPA에서는 @EntityGraph 어노테이션을 통해 간단하게 할 수 있다. // 한방쿼리로 들고 오는 fetch join@Query("select m from Member m left join fetch m.team")List findMemberFetchJoin();위의 fetch join 메서드를 EntityGraph를 사용하면 아래와 같이 바꿀 수 있다. EntityGraph를 이용하면 메서드 이름으로 쿼리 생성 + 패치조인처럼 쓸 수 있음@Override@EntityGraph(attributePaths = {"team"})List findAll();jpql 대신 @EntityGraph 어노테이션을 사용한다. attributePaths에 fetch join할 .. 2024. 1. 10.