개발공부(173)
-
[Spring] AOP ③ - @Pointcut, @Around...
Interface를 이용한 자동 메서드 주입은 AOP를 몰랐기 때문에 제가 붙인 풀어서 쓴 이름이고 AOP에 대해 이어서 얘기해보겠습니다. 개발할 때 중복이 많다면 좋은 코드가 아니라고 합니다. 흔히 클린코드의 특성 중 하나도 중복성 최소화가 포함됩니다. 따라서 아노테이션과 XML 파일을 사용해 AOP 구현방법을 이전 글에서 다루어 보았는데 연장되는 내용으로 스프링의 추가 기능 @Pointcut이 있습니다. pointcut 지정 아노테이션 @Pointcut 해당 아노테이션을 사용하면 말이죠 핵심 메서드의 경로를 공통 메서드에 일일이 쳐넣을 필요가 없습니다. 단 @Pointcut를 선언한 메서드를 담아주기만 하면 될 뿐. 말로 설명하는 것보다 바로 코드를 보시죠. 보시면 @Before() 괄호 내에 일일이..
2020.09.24 -
[Spring] Interface를 활용한 자동 메서드 실행 ② AOP
Interface를 활용한 자동 메서드 실행 1편에서 Java 클래스와 Interface를 사용해 직접 구현해봤습니다. 이번 시간은 스프링에 있는 자동화 기능을 사용해 구현해보겠습니다. 우선 이런 기능은 AOP라고 통용됩니다. AOP(Aspect-Oriented Programming) : 관점 지향 프로그래밍이란? AOP는 스프링 기본 개념 DI, IoC과 더불어 중요합니다. 이름이 '관점 지향'이라 왠 관점이냐 라는 거부감이 듭니다. 하지만 전혀 어렵지 않습니다. 은행 웹사이트 기능을 예시로 들어보겠습니다. 방문자(Client)는 계좌이체나 예적금 상품가입 혹은 계좌개설 등 목적을 수행하기 위해 웹사이트를 방문했을 것입니다. 계좌이체, 예적금 상품가입, 계좌개설의 핵심 기능은 행위 목적 그대로 각기 다..
2020.09.24 -
[Spring] Interface를 활용한 자동 메서드 실행 ①
Interface에 공통된 메서드를 선언해놓고 각각의 클래스에서 Override(상속)한 뒤 공통된 메서드를 추가해 각각의 클래스 메서드가 실행될 때 같이 실행시키고자 합니다. 그러나 같이 실행시킬 메서드를 Main 클래스에 일일이 입력한다면 번거로움이 크기 때문에 Execute(실행)할 클래스를 따로 생성해줍니다. 그리고 delegate(대기자) 객체를 만들어 추가된 메서드와 함께 실행할 수 있는 merge용 메서드를 하나 생성합니다. 실행 클래스에는 delegate 객체를 의존으로 주입합니다. 데이터 타입이 Calculator인 이유는 Calculator가 부모 클래스이기 때문입니다. 인스턴스명은 delegate로 설정해주고 생성자에 의존 주입을 해줍니다. 메서드를 만들 때 실행시킬 부모 클래스의 f..
2020.09.22 -
[Spring] bean 객체의 생애
오늘 강의에서 배운 내용은 bean 객체의 생애입니다. bean은 xml 파일에 JSTL로 생성하거나 Java 클래스에 아노테이션으로 자동 생성할 수 있습니다. 참고사항으로 context라는 스프링에 자주 나오는 syntax인데요, 직역하면 맥락, 흐름이란 의미를 가지고 있지만 스프링이나 Java 프로그래밍 분야에선 기본, 베이스, 최상위, 흐름의 시작점이라는 의미로 쓰입니다. 예시로 contextpath는 폴더 또는 디렉토리의 최상위 경로를 의미합니다. 1. bean 객체의 생애 그럼 bean으로 생성된 객체가 생성되고 소멸하기까지 단계를 예제를 통해 알아보겠습니다. 총 4단계로 이루어져 있습니다. 1) 객체 생성 2) 의존 설정 3) 초기화 4) 소멸 1) 객체 생성 bean은 xml 파일에 JSTL..
2020.09.22 -
[Spring 재수강] - Maven Project로 Member 관리 시스템 만들기 (1)
#Spring #Maven #관리시스템 1. Member 클래스 생성 코로나로 인해 대형 학원이 휴강에 들어가며 끊겼던 수업을 3주 뒤인 지금 비대면 강의로 듣고 있습니다. 바뀐 강사님은 선실습-후이론 방식의 수업을 하시는데 지난 강의와 달리 새로워 좋습니다. 첫 번째 실습 프로젝트인 Member 관리 시스템(회원 관리 시스템)입니다. 먼저 필요한 정보와 생성자를 만들어 줄 Java 클래스 name : Member를 만들어 줍니다. 필요한 정보는 id, email, password, name, date(Date 클래스 API) 입니다. private 변수 선언을 해줍니다. 그리고 생성자(constructor)를 만들어 주는데 빈(empty) 것 하나와 필드 변수가 내재되어 있는 것 두 개를 만들어줍니다...
2020.09.15 -
[Spring] - 요청 처리(@Request/Get/PostMapping)
#요청 처리방식 #@RequestMapping, @GetMapping, @PostMapping 1. RequestController를 만들어 클라이언트 요청 처리 1) Request 이동 경로 클라이언트의 요청이 들어오면 DispatcherServlet으로 도착한다. Handler Mapping이 컨트롤러를 검색하고, 찾은 Controller의 해당되는 메서드를 Handler Adapter가 URI를 기준으로 찾는다. Controller는 Service, DAO(개발자 작성)를 거쳐 DB에 접근해서 데이터를 가져오고 View까지 인도해준다. 2) RequestController 생성 Java 클래스는 src/main/java에 생성된다. 패키지명 com.spring.web GroupId와 Artifact..
2020.09.08