Languages | Frameworks
@ControllerAdvice를 통한 예외처리 분리, 통합하기
@ControllerAdvice @ExceptionHandler가 하나의 클래스에 대한 것이라면, @ControllerAdvice는 모든 @Controller 즉, 전역에서 발생할 수 있는 예외를 잡아 처리해주는 annotation이다. 예를들어 모든 jsp(ex. header)에 같은 modelAttribute를 던져줘야 한다면, 아래와 같이 사용하면 된다. @ControllerAdvice public class AdviceController { @ModelAttribute("modelAttribute key값") public String getWhereIP() { return "modelAttribute value값"; }
[IntelliJ] 자주쓰는 단축키 정리
Ctrl + spacebar 자동 코드생성 ⌘Shift + R 또는 Alt + Shift + F10 코드 실행 CTRL + Alt + L 자동 줄 정렬 CTRL + Y 한줄 삭제 Alt + Enter 코드에서 오류가 발견된 경우 해당 오류 위에 커서를 놓고 Alt+Enter를 누르면 문제에 대한 수정 제안 목록이 표시됩니다. ⌘1 또는 Alt+1 도구 창을 열 때도 마우스가 필요하지 않습니다. ⌘1(MacOS) 또는 Alt+1(Windows/Linux)를 사용하면 프로젝트 창이 열리고 거기에 포커스가 위치합니다. ⌘E 또는 Ctrl+E 프로젝트 창은 원하는 파일로 이동하는 최선의 방법이 아닐 수 있습니다. ⌘E(MacOS) 또는 Ctrl+E(Windows/Linux)를 사용해 최근 실행했던 파일을 확인할..
Java) List와 ArrayList의 차이?
List list = new ArrayList (); 아무 생각없이 위 구조의 형식으로 항상 리스트를 생성하였었는데, 문득 List와 ArrayList의 차이가 뭐지? 하고 궁금해졌다. 그래서 검색을 해봤더니, ArrayList는 class고, List는 interface다. interface는 공통되는 메서드를 추출해 놓은 클래스로 생각하면 된다. 라는 글을 보았는데 궁금증이 해소되지 않았고 더 검색을 해보았다. ArrayList list = new ArrayList (); List list = new ArrayList (); 위의 두 코드는 모두 같은 결과를 도출하지만, List를 사용해 ArrayList를 생성하는 것은 유연성에서 효과를 볼 수 있다고 합니다. 그럼 어떤 유연성에서 효과를 본다는 말..
[Springboot] spring-security 적용기(2) - OAuth2 구글 소셜 로그인
이 글은 인프런 - 최주호 강사의 스프링부트 시큐리티 & JWT 강의의 내용을 포함하고 있습니다. 저번 포스팅에서는 spring-security를 사용하여, 일반 로그인 기능을 간단하게 알아보았습니다. 이번 포스팅에선, 저번 기능에 살을 덧붙여서 소셜로그인 기능을 구현해보도록 하겠습니다.(저번 포스팅 참고) 먼저 구글 창에 google api 콘솔을 입력해서 들어갑니다. 다음, 아래그림처럼 보이는 곳의 아래방향 화살표를 클릭해 새프로젝트를 생성해줍니다! 만들기를 통해 생성한 뒤, 아래 그림처럼 생성한 프로젝트를 선택해줍니다. 다음 왼쪽의 OAuth 동의 화면 탭에서 User Type을 외부로 설정해줍니다. 만들기를 누르면, 아래처럼 OAuth 동의 화면이 뜨는데, 애플리케이션 이름만 적어주고 하단의 저장..
@Autowired, @Component, @Service, @Repository 등 스프링 어노테이션에 관해..
Spring 공부를 하다보면, 해당 어노테이션들을 마주할 수 있을것이다. @Autowired는 컨테이너에 등록된 Bean을 주입받아 사용하는 어노테이션(의존성 주입 방식에는 3가지 방식이 있는데, 생성자 주입 방식을 권고함) **생성자 주입 방식 예시** @Component public class WebProject { private Developer developer; @Autowired public WebProject(Developer developer) { this.developer = developer; } } @Component는 DI(의존성 주입)을 통해 해당 클래스를 Bean으로 등록해주는 어노테이션 (@Service, @Controller, @Repository 등등)