Latest Posts · Page 1 of 1
JPA 기술 세미나 노트

JPA는 엔티티 객체와 DB 테이블을 매핑하여 객체지향적으로 데이터를 다룰 수 있게 해주는 ORM 기술이다. 하지만 내부적으로는 영속성 컨텍스트, 변경 감지(Dirty Checking) 등 동작 원리를 이해하지 않으면 예상과 다른 쿼리나 성능 문제가 발생할 수 있다. 따라서 단순 CRUD 수준을 넘어서 JPA의 동작 방식과 생명주기를 이해하는 것이 실무에서 매우 중요하다.

Read
Spring MVC에서 페이스북 소셜로그인 구현

개인 프로젝트에서 페이스북 소셜로그인을 구현하려는데 해보니까 진짜 쉽지만 초반에는 하루 이틀정도 헤멨던 것 같다. Spring.io에서 예제들을 열심히 찾았지만 Spring boot 사용을 전제로 해서 내놓은 것이라서 예시에서는 자동적으로 되던 것이 당연히 내 프로젝트에서는 안됐고 적지않은 구글링을 했어야 했다.

Read
Filter를 사용한 XSS(Cross-Site Scripting) 처리

HttpServletRequestWrapper 를 상속한 확장 클래스를 만들어 getParameter, getParameterValues, getHeader 메서드를 오버라이드하고, 네이버의 lucy-xss-filter 라이브러리로 Escape 처리한 값을 리턴하도록 구현한다. lucy-xss-filter는 XssPreventer(단순 문자열 전체 Escape)와 XssFilter(HTML 태그가 필요한 본문은 스크립트만 선별 필터링) 두 가지를 제공하며, 파라미터명이 content로 시작하면 XssFilter를, 그 외에는 XssPreventer를 적용한다. Spring의 OncePerRequestFilter 를 상속한 CrossSiteScriptingFilter를 만들어 GET/POST 요청에만 XSS 필터를 적용하고, web.xml에 등록하면 비즈니스 로직에 손대지 않고 일괄 처리가 완성된다.

Read
블로그에 새로운 글이 발행되었습니다.