300x250
반응형

Back-End/Spring 67

[Spring Boot] spring boot 1.X 와 2.X 차이점

spring boot 2 와 이전 버전의 차이점 1. Java 8 이 최소 버전이다. java9 를 지원하는 최초의 버전이다. 2. tomcat 8,5 가 최소버전이다. 3. Hibernate 5.2 가 최소 버전이다. 4. Gradle 3.4 가 최소 버전이다. 5. Spring Security 구성이 더 쉬워지고 Spring Security Oauth2가 Spring Security에 합쳐졌다. 보안 자동 구성은 더 이상 옵션을 노출하지 않고 가능한 한 Spring Security 기본값을 사용한다. -Spring Security5 사용자가 한 곳에서 명시적으로 환경설정을 할 수 있다. 이런 게 WebSecurityConfigurerAdapter 의 순서 문제를 막을 수 있다. 예를 들어 Actuat..

Back-End/Spring 2023.02.10

[Spring] 몽고 DB @Field 없을때 오류 org.springframework.data.mapping.PropertyReferenceException: No property log found for type

스프링부트 2.3.3 을 쓰게되면서 부터 라이브러리 사용법들이 조금 많이 달라졌다. 예를 들어 몽고db 가 있다. spring-data-mongodb:3.0.0 이후의 버젼이다. 몽고 db 쿼리 사용 예시이다. Date dateLogStartDate = new Date(); // date 조건검색 시작 Date dateLogEndDate = new Date(); // date 조건검색 종료 Query query = new Query(); query.with(Sort.by(Sort.Direction.DESC, "log_date")); // date 내림차순 Criteria criteria = Criteria .where("log_date").gte(dateLogStartDate).lte(dateLogEnd..

Back-End/Spring 2023.02.10

[Spring Security] Spring Boot로 만드는 Spring Security 로그인 구현 - JWT(2)

코드는 Github을 통해 확인할 수 있습니다. JWT 로그인 방식은 CSRF와 REST API에 대한 지식이 요구 됩니다. 목차 화면 구성 JWT(JSON Web Token) 소개 JWT 한계 코드 분석 - REST API 구현과 JWT 구현을 분리해서 설명합니다. 화면 구성 메인 페이지 로그인 페이지 프로필 페이지(토큰의 만료를 확인하기 위해 10초로 설정했다.) JWT(JSON Web Token) 소개 세션, 쿠키의 로그인 방식과 JWT의 가장 큰 차이점은 서버는 클라이언트의 상태를 완전히 저장하지 않는 무상태성(Stateless)을 유지할 수 있다는 점입니다. 세션을 사용하는 로그인 방식은 서버 메모리에 사용자 세션 값을 들고있으므로(서버가 아니라 DB에 넣더라도) 무상태성이라고 볼 수 없습니다...

Back-End/Spring 2023.02.10

[Spring Security] Spring Boot로 만드는 Spring Security 로그인 구현 - Session(1)

코드는 Github을 통해 확인할 수 있습니다. 과거에 사용했었지만 현재 Deprecate된 것은 다시 새롭게 구현했습니다. 일부 코드에 대해 좀 더 효율적인 방법으로 구현해놨습니다. 목차 페이지 별로 권한 주기 - 로그인을 구현하기 전 페이지 접근 시 로그인 권한이 필요한 페이지를 만듭니다. 회원가입과 비밀번호 암호화 설정 - Spring Security를 이용해 암호화 설정이 가능합니다. 로그인 기능 위임 및 Redirect 처리 - 로그인 처리를 Spring Security에게 맡기는 것을 배웁니다. 로그인이 되고나면 사용자가 접속 하려던 사이트로 이동하게 하는 Redirect 기능도 Spring Security가 대신 처리 해줍니다. 환경 구축 start.spring.io를 통해 위와 같이 설정하..

Back-End/Spring 2023.02.10

[Spring Boot] custom error page + 사이트 추천

웹사이트를 운영하다보면 404, 500 등의 에러페이지를 서버에서 기본으로 제공해주는 화면이 아닌 각 사이트의 디자인에 맞춰 변경해야 한다. * 각종 HTML / CSS등 여러 템플릿을 제공하는 사이트 주소는 가장 하단에 기재해 두었다. Tomcat 같은 경우 아래의 페이지를 기본으로 제공해준다. tomcat 404 error 나는 위 페이지를 변경하기위해 검색해보니 대부분 web.xml, pom.xml 등의 .xml 설정파일을 통해 셋팅하는 방식이 많았다. 하지만, 내 프로젝트의 개발환경이 .xml을 사용하지 않고 view 코드를 resource 하위 폴더가 아닌 spring.mvc.view.prefix 설정을 따르고 있었기때문에 정보찾기가 힘들었다. (공식 사이트도 이해하기가 힘들었다..) 기본적으로..

Back-End/Spring 2023.02.10

[Spring Boot] 정적자원(Static Resources, img; js; css 파일 등)에 대한 접근 설정

Spring Boot 개발 환경에서 정적 자원에 대한 접근 설정에 대해 이야기하고자 한다. 웹(WEB) 환경에서 클라이언트와 서버는 서로 자원들을 주고받는데, 이 자원들의 속성은 크게 '동적이냐 정적이냐'에 따라 동적 자원(Dynamic Resource)와 정적 자원(Static Resource)로 구분한다. ※ 동적자원 vs 정적자원 동적자원(Dynamic Resource)이란, 프로그램을 실행하기 위해 자원을 배당할 시 적용되는 기준에 따라 결정되는 배당기법이다. 가령 우리가 구글, 네이버와 같은 포털이나 유튜브에서 실시간으로 업로드되고 변하는 정보(뉴스나 날씨)를 볼 수 있는데, 이런 것들이 모두 동적 자원의 한 형태라고 볼 수 있다(좀 더 정확히 말하면, 동적 페이지를 열람하는 것이다). 실시간으..

Back-End/Spring 2023.02.10

[Spring] Spring Boot 시작 및 기초

이 글은 Maven이고 요즘은 gradle로 넘어가는 추세입니다. 1. hello1 프로젝트 1) 프로젝트 생성 STS의 메뉴: File - New - Spring Starter Project Name: hello1 Packaing: War Package: net.skhu Spring Boot Version: 가급적 위 버전과 가장 가까운 2.x.x 버전을 선택하자. spring boot가 계속 버전 업이 되면서, 호환성 문제가 발생하기도 한다. Spring Boot DevTools, Spring Web 체크 이 예제에서는 데이터베이스 연결을 하지 않을 것이기 때문에, 데이터베이스 항목들을 체크하지 않았다. Spring Web 항목: Spring Web MVC Spring Boot DevTools 항목:..

Back-End/Spring 2023.02.10

[Spring] JNDI lookup for name [spring.liveBeansView.mbeanDom...

Spring db 연동 후에 JNDI lookup for name [spring.liveBeansView.mbeanDomain] threw NamingException with message 로그 17:29:21.649 [localhost-startStop-1] DEBUG o.springframework.jndi.JndiTemplate - Looking up JNDI object with name [java:comp/env/spring.liveBeansView.mbeanDomain] 17:29:21.649 [localhost-startStop-1] DEBUG o.s.jndi.JndiLocatorDelegate - Converted JNDI name [java:comp/env/spring.liveBeans..

Back-End/Spring 2023.02.10

[Spring Boot] junit 기본 사용법

1. 테스트를 위한 계산기 작성 package Calculator; public class Calculator { int add(int i, int j) { return i+j; } int subtract(int i, int j) { return i-j; } int muliply(int i, int j) { return i*j; } int devide(int i, int j) { return i/j; } } 2. junit 테스트 케이스 생성 1) 클래스 생성 버튼 우측의 화살표 버튼을 눌러 JUnit Test Case 선택 2) JUnit Test 를 위한 JUnit 클래스 생성 Test 대상 Class뒤에 Test 를 붙여 이름을 짓는게 관례(Calculator+Test) 3. junit 테스트 케이..

Back-End/Spring 2023.02.10

[Spring Boot] DB 연동 및 Mybatis 설정

Spring Boot - ver 2.1.8 Gradle Java - ver 1.8 application.properties 내에 datasource 관련 설정값 선언 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://ip:3306/~?useSSL=false&serverTimezone=UTC spring.datasource.username=id spring.datasource.password=pw 스프링부트 앱을 구동시키는 main 메소드 내의 @SpringBootApplication 을 들어가보면 @EnableAutoConfiguration 어노테이션이 존재. 해당 어노테이션이 프로젝..

Back-End/Spring 2023.02.10
300x250
반응형