본문 바로가기

Dev-/Spring

servlet-context.xml, root-context.xml, web.xml 차이점 알기! servlet-context.xml, root-context.xml, web.xml에 대한 차이점에 대해 정리해봅니다. 우선, xml 파일은 모두 객체(Bean)를 정의합니다. 1. servlet-contex.xmlservlet에서 보듯이 요청과 관련된 객체를 정의합니다. url과 관련된 controller나, @(어노테이션), ViewResolver, Interceptor, MultipartResolver 등의 설정을 해줍니다. 초기 파일을 보시면 위와 같은 주석이 있는데,, DispatcherServlet과 관련된 설정을 해야함을 알 수 있습니다. 2. root-contex.xmlservlet-context.xml 과는 반대로 view와 관련되지 않은 객체를 정의합니다.따라서 Service, Repo..
Spring Security 관련 에러 해결법 참고: 아주 기초적인 Spring Security 사용법 스프링 시큐리티를 적용하는데 조금 애를 먹었는데,제가 겪은 관련 에러 해결에 대해 정리해보겠습니다. 1. security-context.xml 파일 xsi:schemaLocation 오류 시큐리티 관련 라이브러리를 추가했을 땐 별 문제가 없었는데, security-context.xml에서 오류가 뜨고, Please update your schema declarations to the 4.2 schema 라는 메세지가 적혀있었습니다.콘솔창 역시 비슷한 메세지가 찍혀있었습니다. 앱을 실행시키면,, 아예 home.jsp 페이지도 뜨질 않구요. 원인은 security-context.xml의 xsi:schemaLocation 버전문제였습니다. 5.0이라서 ..
아주 기초적인 Spring Security 사용법 (1) 개인 프로젝트에서 사용자 권한과, 인증에 대한 부분이 많이 부족했던 것 같아,, 팀프로젝트에서는 스프링 시큐리티를 공부해 적용해보고 싶어졌습니다. 근데 설정이나 원리가 좀 복잡한 것 같아서,, 차근차근 공부하며 정리해보려고 합니다. 기초적인 스프링 시큐리티를 적용법을 알아보도록 하겠습니다. [pom.xml] 위와 같이 두가지 라이브러리를 추가해줍니다. 그리고 security-context.xml 파일을 추가해준 뒤, web.xml에 등록해줍니다. [security-context.xml] [web.xml] security-context.xml을 잠깐 보고 가자면, 사용자의 각 권한별로 접근 가능한 url 패턴을 설정해주었습니다. 컨트롤러가 의 pattern에 해당하는 요청을 받았을 때, access로 설정..
스프링 Filter 만들기 스프링 Filter 사용법에 대해 간단히 알아보겠습니다.간단하게 매 요청 URL을 이클립스 콘솔창에 찍어주는 필터를 만들어 볼게요. 우선 기본 인터페이스인 Filter를 구현한 커스텀 필터 클래스를 하나 만들어 줍니다. [PrintURLFilter.java] Filter 인터페이스의 메서드는 아래와 같습니다. init(): 필터 인스턴스 초기화doFilter(): 전/후 처리destroy(): 필터 인스턴스 종료 위 코드에서 1. init()를 보시면getInitParameter()로 파라미터를 사용하는 것을 보실 수 있는데 아래에서 보실 [web.xml]에서 필터를 등록할 때 파라미터를 설정해주었는데, 그것을 받아 사용한 것입니다. 사실... 이게 굳이 무슨 의미가 있을까 생각을 해 봤는데.. [web..
Filter, Interceptor, AOP 개발을 하다보면, 공통적으로 처리해야 할 업무들이 많습니다.예를들어 로그인 관련 체크, 로깅, 문자 인코딩, 필터링 등이 있죠. 이러한 처리들을 필요한 부분마다 실행시킬 수 있지만 프로젝트 단위가 커질수록 코드의 중복이 늘어나서 서버에 많은 부하를 주게 됩니다. 따라서 적절한 사용 위치와 범위에 맞게 일괄처리를 해 주어야 하는데요.그와 관련된 방식이 Filter, Interceptor, AOP 세가지 있습니다. 세 가지 개념이 모호해 한번 정리해보았습니다. 1. Filter(필터) 위 그림과 같이 필터는 스프링 프레임워크의 Context(영역) 밖에 있습니다. (스프링과 무관하게 J2EE 표준 스펙) 따라서 스프링에서 빈으로 등록된 컨트롤러나 서비스 객체의 사용이 어렵고,웹 애플리케이션 전반에 걸친 모든..
'좋아요' 기능 추가하기 개인 프로젝트에서 계속 미뤄오던 좋아요 기능을 구현해봤습니다. 우선 아래와 같이 좋아요 테이블을 하나 만들어야 합니다.(lno: 기본키, bno: 외래키(글 no), uid: 외래키(사용자 id)) 여기서,, 제가 찾아본 방식은 필드를 하나 더 만들어 좋아요 상태를 1 0으로 토클시켜주는 방식을 사용하던데 커뮤니티에 조언을 구한 결과,그냥 해당 데이터를 생성 삭제 하는것이 좋다는 의견이 많아 필드를 3개만 주었습니다. 전체적인 그림은,1. 좋아요 버튼은 로그인시 활성화2. 버튼 클릭시 Ajax로 uid, bno를 가진 데이터가 존재하는지 검사3. 2.결과를 이용해 [좋아요] [좋아요 취소] 로직처리3.1 데이터가 존재하지 않는다면: 데이터 추가3.2 데이터가 이미 존재한다면: 데이터 삭제 [like-ma..
오픈 API 사용하기 - 네이버 아이디로 로그인(로컬) 요즘 웬만한 사이트에서, 이미 사용중인 타 사이트 아이디로 가입하는 방식을 보실 수 있는데요.이를 OAuth 방식이라고 합니다. ( OAuth: 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다. )[출처: 나무위키] 사용해 보신 분들은 알겠지만, 굉장히 편리한 기능입니다.OAuth 방식의 '네이버 아이디로 로그인하기'를 적용하는 법을 알아보도록 하겠습니다. 우선, Naver Developers에 들어가 로그인을 하고 '오픈 API 이용 신청>' 버튼을 클릭합니다. 그러면 아래와 같은 화면이 나오는데, 애플리케이션 이름과, 필요한 정보를 선택합니다. 다음..
Spring 회원가입 인증메일 구현하기 꽤 많은 사이트에서,회원가입 후 입력한 메일을 통한 인증과정을 거치는 것을 볼 수 있습니다. 개인 프로젝트에 적용해볼까 싶어 찾아봤는데, 다행히 생각보다는 어렵지 않아 적용시켜보았습니다. 시작 전에,, 관련 라이브러리 2개를 다운받아야 합니다. [pom.xml] 상단의 레파지토리는 스프링 버전과 맞춰주시고,, 확실한 것은 아닌데,, 하단의 javax.mail 이게 비슷한게 여러개 있는 듯 합니다. 초반에 다른 것을 적용하였는데 계속 오류가 났는데,, 스택 오버플로우를 보고, 저걸로 바꾸어 해결했네요. 참고만.. 그리고.. 스프링 설정 xml파일에 아래 빈을 추가시켜줍니다.(저는 root-context.xml에 추가시켰습니다.)실제로 메일을 보내는데 필요한 기본 정보를 입력하시면 됩니다. [root-con..