본문 바로가기

Spring24

[SpringBoot] 스프링 패키지 이름 규칙(작명 방법) 스프링프로젝트를 생성하게되면 처음으로 패키지이름을 작성하게 됩니다. 처음 공부할때는 별 생각없이 짓고 넘어가곤 했었는데 스프링에 익숙해 질수록 패키지이름을 어떻게 정하는게 좋을지에 대하여 궁금증을 가지게 되었고, 나름대로 확인해보니 어느정도 정형화된 규칙이 있었습니다. 이 포스팅에서는 이러한 규칙에 대하여 확인해 보도록 하겠습니다. 패키지명이란 무엇을 의미할까? 패키지 이름은 어플리케이션을 구분하는 고유의 값 입니다. 따라서 다른 앱들과 구분되기 위해서는 유니크한(유일한) 값을 가져야 합니다. 만약 내가 사용하는 라이브러리의 패키지와 생성된 SPRING어플리케이션 패키지명이 동일하다면 충돌이 발생 할 것 입니다. 패키지명 작성 방법 그렇다면 패키지명은 어떤 방법으로 작성하면 될까요? 아래 예시를 통해서.. 2021. 2. 14.
[SpringBoot] 1. web project 만들기 최근에 SpringBoot에 대하여 공부하기 시작했고 한번쯤 정리가 필요하다고 생각해서 부트에 관련된 포스팅을 작성하려고 한다. 이전에 작성했던 포스팅과는 다르게 시리즈형태로 진행되는 포스팅으로 작성할 예정이라 스프링부트에 대하여 차근차근 알아보고자 하는 사람이라면 순서대로 포스팅을 따라가는 것을 추천하며 첫 포스팅은 프로젝트 생성을 주제로 이야기 할려고 한다. 프로젝트 생성 새로운 프로잭트를 생성한다. 프로젝트의 종류는 Spring Starter Project이다. Next버튼을 누른다. 나는 Gradle프로젝트로 했는데 Maven이 익숙한 사용자라면 메이븐으로 선택하고 진행하면 된다. 여기서는 필요한 라이브러리를 추가할 수 있다. 나중에 추가해도 되니 너무 심각하게 고민할 필요는 없다. Finish버.. 2020. 3. 20.
[Spring Security] 5. Mybatis를 이용하여 DB연동하기 지금까지 우리는 xml에 계정과 비밀번호를 직접 등록하여 사용했다. 하지만 우리가 상상하는 로그인은 이런게 아니라 DB속에 계정정보를 저장하여 유동적으로 사용하는 것을 꿈꾸었을 것이다. 이 포스팅에서는 드디어 스프링시큐리티와 DB를 연동하여 쿼리문을 통하여 계정정보를 조회하는 방법을 알아보도록 하겠다. Mybatis를 이용한 DB연동 여기서는 마이바티스를 이용한 DB연동은 기본적으로 할줄 안다고 가정을 하고 대하여 자세히 다루지 않겠다. 디비를 연동하게되면 dataSource라는 이름으로 빈객체를 생성하는데 이 bean객체를 이용하여 Spring Security와 연동을 하게 된다. 제 제목 내용작성 제목 내용작성 제목 내용작성 2020. 2. 8.
[Spring Security] 4. 로그아웃(logout) 구현하기 로그인이 있으면 당연히 로그아웃이 있는게 당연하다. 스프링시큐리티를 사용하지 않고 로그인 기능을 구현하게 되면 별도로 로그아웃 url을 통해 세션관리를 해주었는데 이러한 과정을 스프링시큐리티에서는 어떤식으로 구현하고 또 어떤 기능들이 있는지 살펴보는 내용을 알아보도록 하겠다. xml 설정 자세한 설명은 생략한다... logout-url : 로그아웃 URL logout-success-url : 로그아웃 성공시, 이동할 URL. (default: /login?logout) invalidate-session : 로그아웃 시, session을 무효화할 지 선택. (default: true) delete-cookies : 로그아웃 성공시, 삭제할 쿠키 이름 지정 success-handler-ref : 로그아웃 성.. 2020. 2. 7.
[Spring Security] 3. 내가만든 커스텀 로그인화면 사용하기 이제 슬슬 스프링시큐리티에 대하여 자신감이 붙기 시작했으리라 생각한다. 자신감이 생기면 내 마음대로 고쳐보고싶은게 생기기 마련인데 이 포스팅에서는 가장만만한 로그인화면부터 수정하는 방법에 대하여 알아보고자 한다. 로그인화면 만들기 Please sign in Username Password Sign in 기본으로 제공되어지는 스프링 시큐리티 로그인화면이다. 자세히 살펴보면 전송은 POST방식으로 URL은 /login으로 되어 있다. 그 외에 _csrf라고 적혀있는 토큰이 있는데 토큰에 대해서는 나중에 따로 이야기를 하도록 하고 지금은 그냥 넘어간다. 로그인 기존 스프링시큐리티의 로그인 화면을 이용하여 직접 만든 로그인페이지 이다. input태그의 name 값을 변경해도 되냐고 물어본다면 Okay다. 하지만.. 2020. 2. 7.
[Spring Security] 2. 권한설정 1편에서 Spring Security의 기본적인 설정 방법에 대하여 알아보았지만 말 그대로 기본적인 설정일뿐 현실적으로 사용하기에는 무리가 있다. 사실상 스프링시큐리티는 커스터마이징을 하지 않는다면 아무 의미가 없기 때문에 기본설정 이후에 각 기능에 대하여 적절한 튜닝절차를 거쳐야 하는데 스프링시큐리티 2번째 포스팅에서는 권한설정에 대하여 좀 더 자사하게 알아 볼려고 한다. 권한설정 기본설정 편에서는 url에 따른 접근권한을 한개만 설정했지만 이번에는 3가지로 나누어서 설정을 했다. 특이한점은 use-expressions 옵션의 값이 기본설정편에서 false였는데 true로 변경됬다는 점인데 이 값이 true가 된다면 SpEL문법을 사용한다는 의미이다. 예를 들어hasAnyRole이라던가 permitAl.. 2020. 2. 7.
[Spring Security] 1. 기본설정 하기 Spring Security를 주제를 여러회차로 나누어서 시리즈 형태로 포스팅을 시작할려고 합니다. 사실 기존의 AOP를 이용한 인증방식을 너무나도 잘 사용하고 있어서 굳이 스프링시큐리티를 따로 사용해야 하나 라는 생각이 있었는데 스프링시큐리티를 파보면서 느낀점은 첫번로 스프링시큐리티가 너무 좋다는 점이였고, 두번째로는 생각보다 많이 어렵구나(복잡하구나)라는 생각이였습니다. 그래서 결국 앞으로 스프링시큐리티를 애용해야 겠다는 생각과 함께 한개의 포스팅으로 정리할려고 했던 스프링시큐리티를 시리즈 형태로 나누어서 정리를 하기로 했습니다. 부디 이 포스팅이 스프링시큐리티를 공부하는 분들에게 많은 도움이 되었으면 하는 바램입니다. 추가적으로 이 포스팅의 방향을 설명하자면 최종적으로는 스프링시큐리티를 커스터마이징.. 2020. 2. 7.
[Spring] Web.xml 설정(세팅)하기 스프링에서 사용되는 web.xml파일은 Deployement Descriptor(배포 서술자)라고 불리어 집니다. 결국 어떤 프로젝트를 배포하게 되면 그 프로젝트에 대한 설정에 대한정보를 가지고 있는 파일이라고 이해하면 되는데 기본적인 설정정보를 가지고 있다보니 모든 Spring프로젝트는 실행되기전에 1차적으로 web.xml을 거쳐가게 됩니다. 그래야 어떠한 설정이 있는지 확인하고 그 설정에 맞게 동작하니깐요. 이 포스팅에서는 스프링의 설정값에 대한 정보가 담긴 web.xml파일의 작성법과 각 설정이 어떤한 의미를 가지고 있는지 알아보는 시간을 가지도록 하겠습니다. 공통부분 xml파일이라고 선언하는 부분이며 설정에는 한글이 들어가는 경우가 간혹 있기 때문에 인코딩 속성은 UTF-8을 권장합니다. 태그는 .. 2020. 1. 26.
[Spring] @ResponseBody, @RequestBody와 Ajax, JSON 오늘은 여러 어노테이션 중 @ResponseBody와 @RequestBody에 대해서 알아보고자 합니다. 이 두개의 어노테이션은 가장 대표적인 @Service, @Controller와 같은 대장급(?) 어노테이션을 제외한다면 가장 많이 사용하는 어노테이션이고 또 사용하는 방법도 무척이나 간단하여 한 번 알아두고 기억하고 있는다면 웹 개발에 있어서 많은 도움이 되리라 생각합니다. 우선 이 두개의 어노테이션의 공통 접점은 JSON이라는 데이터 타입입니다. JAVA에서는 JSON이라는 데이터 타입이 없기 때문에 프론트단에서 자바에게 JSON타입의 데이터를 전달해주거나 혹은 반대로 JAVA의 객체데이터를 JSON형태로 프론트단에 전달해야 하는 경우 각각 @RequestBody와 @ResponseBody가 그 역.. 2020. 1. 25.