본문 바로가기

개발 Note/SPRING

(4)
[SPRING] Spring AOP 1. AOP(Aspect Oriented Programming)란? 관점 지향 프로그래밍이라고 부른다. IOC가 낮은 결합도와 관련된 것이라면 AOP는 높은 응집도와 관련이 있다. 서비스들의 비즈니스 메소드들은 복잡한 코드로 구성되어 있는데 그 중 핵심 로직은 얼마 안되고 대부분 트랜잭션, 로깅 처리, 인증과 관련된 코드들이 있다. 이럴 때 비핵심이지만 꼭 필요하고 공통화할 수 있는 부분을 따로 빼서 관리(횡단 분리)하는 것이다. 2. AOP 용어 조인포인트(Joinpoint) : 클라이언트가 호출하는 모든 비즈니스 메소드, 조인포인트 중에서 포인트 컷 되기 때문에 포인트컷의 후보로 생각할 수 있다. 적용 시점. 포인트컷(Pointcut) : 특정 조건에 의해 필터링된 조인포인트, 수많은 조인포인트 중에..
[SPRING] Spring Boot 단위 테스트 (1) - Controller Spring Boot 단위 테스트에 대해 알아보자. 이 기능을 알기 전에는 아마도.. 직접 웹을 띄워 테스트를 하거나 API tester를 이용했던 것 같다. tomcat이 올라갈 때 까지 기다리고,, 에러나면 어디서 났는지 로그 보고,,찾고,, 인류발전 만만세,,😆 ❓ 단위테스트란? TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성하는 것을 말한다. (필수는 아님 => 그러나 지향해야한다.) ※ TDD? 테스트 주도 개발이다. 테스트 코드를 먼저 작성한 후 개발을 한다. 순서는 레드 그린 사이클을 따른다. 레드 그린 싸이클 1. RED: 항상 실패하는 테스트를 먼저 작성 2. GREEN: 테스트가 통과하는 프로덕션 코드를 작성 3. REFACTOR: 테스트가 통과하면 프로덕션 코드를 리팩토링 ❓..
[SPRING] Spring boot - 외부 jar 추가 후 테스트하기 해시 알고리즘(자바)을 jar로 만들고 프로젝트에 라이브러리 추가하여 구동하고 싶었다. 1. 모듈화할 Class 작성 사용자로부터 문자열을 byte 배열로 전환하여 이 데이터와 hash 전환할 타입(MD4, MD6, SHA-1, SHA-126...)을 파라미터로 받고 해시로 전환해주는 Util 클래스를 작성하였다. 2. JAR 배포 자바 프로젝트 우클릭 -> Export -> JAR file 선택 -> 경로 지정 후 저장 3. JAR를 추가하고자 하는 프로젝트 설정(Spring Boot , Gradle 기준) 1) 프로젝트에 libs 폴더를 추가하고(root 경로) 방금 만든 JAR를 추가한다. 2) build.gradle 세팅 dependencies { implementation 'org.springf..
[SPRING] Spring Security Spring Security란? 엔터프라이즈 애플리케이션에 대한 인증, 권한 부여 및 기타 보안 기능을 제공하는 프레임워크이다. filter 기반으로 동작하고 spring MVC와 분리되어 동작한다. Authenticate(인증) : 현재 사용자가 누구인지 확인 Authrize(인가) : 인증된 사용자가 어떤 서비스에 접근할 권한이 있는지 결정 Principal(접근 주체) : 보호받는 대상에 접근하는 유저 권한 : 인증된 주체가 애플리케이션의 동작을 수행할 수 있게 허락할지를 결정 [동작 살펴보기] 1. 로그인 요청 브라우저에서 아이디와 비밀번호를 입력하여 로그인을 요청한다. 2. UsernamePasswordAuthenticationToken 발급 AuthenticationFilter로 먼저 요청이 ..