300x250
반응형

Back-End 99

[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

[Lombok] Lombok @Getter,@Setter Annotation 인식 안됨 [해결]

Lombok이라는 라이브러리는 클래스 상단에 어노테이션을 입력해 기본적으로 생성되야 하는 메서드들을 생성해주는 것을 배워서 사용해 보려는데 jar파일도 다운 받아서 라이브러리에 넣어주고 @Getter, @Setter 정의를 해줬는데도 인식이 안되는 문제가 생겼다! 원래는 이렇게 @Getter, @Setter 를 클래스 상단에 작성을 하면 옆에 Project Explore에서 MessageVo 하단에 getter/setter 메서드들이 좌르르 생긴다. 근데 내 VO하단에는 안 생겼다 딱히 에러는 안 뜨는데 그냥 인식만 안되서 뭐가 문제인지 답답했다. 역시 구글링이 답이다 그래서 해결 방법은 간단하게 설치만 해주면 되는 것! 롬복 홈페이지에 가서 롬복.jar 파일을 다운 받았다는 가정하에 해결방법을 적어본다..

Back-End/그 외 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

eclipse로 개발할 때 maven으로 다운받은 jar의 소스와 javadoc을 자동으로 붙이기

eclipse로 개발할 때 보통 디컴파일러 jad를 설치하고 가져다 쓰는 라이브러리에서의 동작을 들여다 보는 것은 이미 개발에 필수가 된 것 같다. 이러한 개발 방법이 이제는 너무나 익숙해 져서 eclipse 없이 과연 개발할 수 있을까 싶다. 이제 vi로 java를 개발하는 것은 말도 안된다고 강하게 말할 수 있다. 정말 훌륭한 개발자라면 이런 툴에 의존하지 말아야 하겠지만, 이러한 툴의 도움이 개발에 크게 영향을 주는 것은 감출 수는 없다. 라이브러리 안의 클래스를 오픈해서 보면 디컴파일되어 소스가 보이는데, 그 디컴파일된 소스가 엉망인 경우가 많다. 라인도 맞지 않고. 그런 경우 인터넷에서 찾아서 소스를 다운 받고 그 jar 파일에 소스를 attach하여 보곤 했다. 요 짓을 필요할 때 마다 jar..

Back-End/그 외 2023.02.10
300x250
반응형