전체 글

전체 글

    [에러] org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'securityConfig' defined in file

    문제 SecurityConfig.class 를 만들고 controller 단위 테스트 실행 시 NoSuchBeanDefinitionException 이 발생하였다. 에러문 전체 더보기 Failed to load ApplicationContext java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132) at org.springframework.test.context.support.DefaultT..

    예외처리 - @ExceptionHander, @ControllerAdvice, @RestConrollerAdvice

    웹 어플리케이션 개발에 있어서 예측 가능한 유저의 행동을 제어하고 서버가 다운되는 것을 막기 위해 여러가지 예외처리가 필요하다. 예외 처리 하는 다양한 방법 메소드 내에서 예외 상황을 예측해서 처리하는 try-catch 문을 이용하는 방법 요구사항에 의한 예외처리 ( ex ) validation : 특정값이 0 ~ 255범위가 아니면 유효하지 않은 값으로 판단하고 예외처리 스프링 시큐리티에서 인터셉터로 잡아서 UnautorizedException 같은 예외 처리 예외 처리 적용의 문제 예외처리를 적용하다 보면 코드가 엄청나게 복잡해지고, 코드가 복잡해지면 유지보수하기 어려워진다. 비즈니스 로직에 집중하기 어렵고, 비즈니스 로직과 관련된 코드보다 예외 처리를 위한 코드가 더 많아지는 경우도 생긴다. 이런 ..

    git stash

    [문제 상황] 한 브랜치에서 다른 브랜치로 옮기려면 워킹 디렉토리에 흔적이 있어서 커밋을 날리고 다른 브랜치로 이동 해야 한다. 하지만 커밋 날리기에는 흔적을 남기기 싫고 그냥 다른 브랜치에 이동하고싶을때가 있다. 그러면 어떻게 해야 할까? [문제 해결방법] git stash를 명령어 통해 워킹디렉토리를 깨끗이 저장 할 수 있다. 그래서 다른 브랜치로 쉽게 이동 할 수 있다. → 버전관리가 되고 있는 파일들만 가능 git stash 작업 도중 커밋을 할 수는 없는 상태지만, 브랜치 전환을 하거나 커밋 변경을 해야할때 임시적으로 저장할 수 있는 명령어 commit되기 이전 작업 중 파일과 git add로 추가된 파일 까지 모두 stash 영역으로 저장되며 수정분량은 제거 된다 단, git add 명령어로 ..

    Lombok

    Lombok Java에서 자주 반복되는 코드(Getter, Setter, 생성자 등.. )들을 어노테이션을 통해 자동으로 생성해 주는 라이브러리이다. 코드를 깔끔하게 작성하여 가독성이 좋은 장점이 있지만, Annotation의 무분별한 사용은 오히려 문제가 될 수 있다. @, Annotations @Getter,@Setter 클래스의 맴버 변수들에 대한 getter, setter 메소드를 생성한다. 생성된 메소드들은 기본적으로 public AccessLevel를 통해 접근제한자를 설정해 줄 수 있다. (PRIVATE, PROTECTED...) 원하는 변수에만 Getter 혹은 Setter를 설정해줄 수 있다. @Getter public class Member { private String name; @S..

    Gradle Wrapper

    이전 포스팅에서는 Gradle에 대해서 알아보았다. Gradle 포스팅 바로가기 이번에는 Gradle에서 적극적으로 사용하는 것을 권장하는 Gradle Wrapper에 대해 알아 보았다. Gradle Wrapper Gradle Wrapper의 기능 이미 존재하는 프로젝트를 새로운 환경에 설치할때 별도의 설치나 설치과정 없이 곧 바로 빌드 할 수 있게 해준다. Gradle Wrapper를 적극적으로 사용할 것을 권장한다. Java나 Gradle를 설치할 필요가 없다. 로컬에 설치된 Gradle 또는 Java의 버전도 신경 쓸 필요가 없다. 공식문서에서는 Wrapper를 선언 된 버전의 Gradle을 호출하여 필요한 경우 다운로드하는 스크립트라고 정의한다. 즉, Wrapper의 작동은 필요한 파일을 Temp..

    Gradle

    Build (빌드) 내가 개발한 앱을 Web Server에 배포하기 위해서는 Build라는 과정을 거칠 수 밖에 없다. 빌드란 소스코드 파일을 실행가능한 소프트웨어 산출물로 만드는 일련의 과정을 말한다. 즉, 소스 코드 파일(.java, .c)을 실행 코드(.jar, .exe, .a) 로 변환하는 과정이라고 할 수 있다. 빌드의 단계 중 컴파일이 포함이 되어 있는데 컴파일은 빌드의 부분집합이라 할 수 있다. 빌드 과정을 도와주는 도구를 빌드 툴이라 한다. 참고 빌드와 컴파일의 차이 컴파일은 특정 프로그래밍 언어를 다른 프로그래밍 언어로 옮기는 것 컴파일러에 의해 소스코드가 바이너리코드로 변환되는 과정 .java → .class 빌드는 독립(standalone) 소프트웨어 가공물로 변환하는 과정 소스코드 ..