🌱스프링(Spring Framework)의 특징 DI(의존성 주입) DI를 통해 객체간의 의존성 관리 객체 간 결합을 낮춰 유연한 코드 작성 IoC(제어의 역전) 객체의 생성과 관리를 Framework가 담당 애플리케이션의 느슨한 결합 도모 AOP(Aspect-Oriented Programming) 트랜잭션이나 로깅,보안 등 여러 모듈에서 공통적으로 사용하는 기능을 모듈화 경량(Light-weighted) 자원을 적게 사용하면서도 필요한 기능을 제공 전자정부 표준 프레임워크의 기반 기술 🌱스프링(Spring Framework) 버전 별 특징 Spring 3.x Java5 지원 (제네릭스, 애노테이션 등 추가) Bean 설정을 XML형태로 관리 가능해짐 SpEl(Spring-expression Langua..
1편에 이어 2편에서는 본격적으로 토큰을 얻어와 사용자의 정보를 DB에 저장하려고 한다 ! 🧐1편으로 이동 https://record1996.tistory.com/24 😇순서 3. Code로 token 얻어오기 이전글의 2.사용자에게 로그인 요청 후 사용자가 동의를 누른 후 url을 확인해보면 code를 반환하는 것을 확인 할 수 있다 이 code를 가지고 서버에 요청을 보낸 후 token값을 가져오는 작업이 필요하다 3-1. getToken 메소드 생성 KakaoService interface @Service public interface KakaoService { public String getToken(String code) throws Exception ; } KakaoServiceImpl cla..
프로젝트에서 카카오 로그인 API로 간편 로그인 서비스를 구현하였으나 사실 OAuth가 무엇인지, API가 정확히 무엇인지,토큰은 또 뭔지... 아무것도 모르는 상태로 그냥 '기능 구현'만 성공 했었다(왜 돌아가는지도 모름😊) 아직도 잘은 모르지만 OAuth에 대한 생활코딩님의 강의를 듣고, 포스팅 정리를 하고 나니 조금은 동작 순서를 이해했기 때문에 어떻게 구현했는지 정리를 위해 포스팅 해보려고 한다 감자(나)를 위한 OAuth2 정리 https://record1996.tistory.com/18 [CS] OAuth2 란? 감자(나)를 위한 OAuth2 개념 정리 👀OAuth2 란? OAuth는 인증과 권한 부여를 위한 개방형 표준 프로토콜 사용자가 자신의 개인정보를 애플리케이션과 안전하게 공유 할 수 ..
기본적으로 hibernate는 엔티티를 수정( insert,update )할 때 모든 필드를 수정한다 ! 즉, 2개의 필드가 있다고 가정할 때, 하나의 필드가 null값이 등록 되거나 필드가 수정되지 않아도 해당 필드의 쿼리가 생성되는 것이다 @DynamicInsert와 @DynamicUpdate는 null값이 등록되면 쿼리가 생성되는 것을 막아준다 ! 👀사용 이유 위의 설명만 봤을땐 "그럼 모든 엔티티에 @DynamicInsert와 @DynamicUpdate를 붙이면 되겠네??" 싶지만 (나는 그렇게 생각해서 프로젝트 엔티티에 모두 붙였다 😇ㅎ) hibernate가 모든 필드를 수정하는 이유가 있다고 한다 👉모든 필드를 사용 시 INSERT,UPDATE 쿼리가 항상 같기 때문에 쿼리를 미리 생성해두고 ..
🐣 @ControllerAdvice란? Spring Framework에서 제공하는 기능 예외처리,모델 객체 전달,바인딩 설정 등의 전역적으로 사용되는 작업을 할 수 있음 ✔️범위 지정 방법 Admin class에만 지정 @ControllerAdvice(annotations = Admin.class) 특정 패키지에 속한 클래스에 지정(여러개도 가능) @ControllerAdvice(basePackages = "com.mycompany.admin") 🐥@ExceptionHandler 전역에서 발생되는 예외를 처리 할 때 사용된다! 범위도 지정이 가능한데, @ExceptionHandler(SQLException.class) -> SQLException이 발생할 경우만 해당 method 실행 @Exception..
프로젝트에서 아무 생각없이 편해보여 인터셉터를 적용했는데 자세히 알고 싶어 정리해보려고 한다 ! 💭인터셉터(Interceptor) 란? 한국어로 '가로챈다'는 의미 그대로 요청과 응답 처리를 가로채어 전,후에 특정 작업을 수행하는 기능 예를 들어 로그인 응답을 가로채어 회원 등급을 확인 후 등급에 맞는 페이지로 이동 시킬 수 있다 ✅적용 방법 1.인터셉터(Interceptor) 생성 import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.htt..