Controller로 ajax 등의 요청을 했을 때, json형식으로 return 해주는 방식은 크게 두 가지가 있다. 1. Controller return type을 String으로 하고, 별도의 Json API를 사용해 parsing해서 json 형식으로 return 해준다. 2. MappingJackson2JsonView를 사용해서 ModelAndView를 json 형식으로 반환해 준다. 1번의 경우에는 매우 귀찮게 일일이 map object에 담아서 for 돌려서 만들어 주는 방법도 있고 Gson 등 Json API들을 사용해서 만들어 주는 경우도 있다. 나의 경우 spring boot를 주로 사용하므로 jsonview를 bean에 등록하고 ModelAndView에 담아서 사용하는 것으로 사용한다..
회원가입 시 이메일 인증을 사용하면서 6자리를 만들어주는 난수발생기가 필요했다. import java.util.Random; public class HelloWorld{ public static void main(String []args){ StringBuffer key = new StringBuffer(); Random rnd = new Random(); for (int i = 0; i < 6; i++) { int index = rnd.nextInt(3); switch (index) { case 0: key.append(((int) (rnd.nextInt(26)) + 97)); break; case 1: key.append(((int) (rnd.nextInt(26)) + 65)); break; case..
프로젝트 도중 properties에 있는 값을 가져와 java static 변수로 초기화 해서 사용해야 하는 상황이 왔습니다. 하지만 아직도 저는 @value로 가져오는 값 초기화와 static 클래스 변수 초기화의 순서 차이를 뚜렷하게 알지를 못합니다. 저의 경우 static 블록으로 static 변수를 초기화 해주는 SET메소드를 불러와 static 클래스 변수를 초기화 하기 때문에 아래에 써내려갈 해결책과는 케이스가 달라서 저는 적용을 못했습니다. 이러한 해결책을 찾으시는 분들에게 도움이 되고자 링크를 적겠습니다. 1. bean으로 해결 https://stay-hungry.tistory.com/26 [Spring boot yml 파일에서 값 가져오기] Spring boot load data from..
Spring boot를 사용하다 보면 가끔 Port 8080 was already in use라는 오류가 나오곤 하는데 해당 포트는 웹에서 너가 이미 사용중이다.라는 뜻이다. 하지만 포트를 계속 잘 쓰다가 오류가 발생하는 경우가 있다. 내 경험상 해결방법은 첫째로는 아예 이클립스를 껏다가 켜보거나 컴퓨터를 껏다가 켜본다. 내 생각으로는 이클립스에 설치되어 있는 톰캣이 이클립스가 종료되면서 톰캣을 제대로 종료를 안해서 포트를 안닫고 나와 버려 다시 서버를 키면 포트가 사용중이다라는 오류가 발생하는것 같다. 첫번째 방법으로는 안된다면 어쩔수 없이 포트번호를 바꿔서 사용을 해야 합니다. 포트 변경 spring boot에서 대부분의 설정들은 resources 디렉토리 아래 application.propertie..
예전에 spring boot에 spring security를 이론은 제쳐두고 적용해서 글을 쓴적이 있는데 다시 프로젝트에 사용할 일이 있어서 오랜만에 제 글을 다시 보니 역시 뭐가 뭔지 하나도 모르겠더라고요;;; 다시 공부하는겸 이번 글은 간단하게 이론편으로 글을 올리고 예전적어둔 글을 적용편으로 사용하도록 하겠습니다. Spring Security(스프링 시큐리티)란? 스프링 시큐리티는 스프링 기반의 애플리케이션의 보안(인증과 권한,인가 등)을 담당하는 스프링 하위 프레임워크이다. 주로 서블릿 필터와 이들로 구성된 필터체인으로의 위임모델을 사용한다. 그리고 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서는 일일이 보안관련 로직을 작성하지 않아도 된다. 출처: https://cod..
기능설명 개인 포폴용도로 만드는 쇼핑몰 개발중 이미지 업로드는 필수였습니다. 이미지를 업로드 하는것 뿐만 아니라 같은 이미지를 또 활용할 수 있으므로 이름도 무작위로 변경하여 저장하였습니다. 썸네일 이미지를 따로 만들어 admin 페이지에서 상품목록을 볼때, user가 상품들이 모여져 있는 페이지에서 활용할 용도로 기능을 추가 했습니다. admin이 상품의 이미지를 업로드를 하지 않으면 미리 준비해둔 이미지로 대체하는것으로 했습니다. 폴더는 관리자가 상품을 언제 등록했는지 알수 있게 년/월/일로 나누어 폴더를 자동 생성할 수 있게 했습니다. 결과물 register.jsp Upload Choose file 저장경로    등록 AdminController.class //상품 등록 @PostMa..