강의/스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 (7) 썸네일형 리스트형 AOP AOP란 AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불립니다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것입니다. 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말합니다. 개념으로는 이해가 안 될 수 있으니 어떤 경우에 어떻게 사용하는지를 알아보도록 하겠습니다. AOP 사용 예제 모든 메서드의 작업 시간을 측정하고 싶은 상황이라고 가정해보겠습니다. 모든 메서드가 시작되는 부분에 시간을 확인하는 코드와, 메서드가 끝나는 부분에 시간을 확인하는 코드를 입력하고 끝나는 시간에서 시작 시간을 빼서 작업 시간을 확인할 수 있습니다. 이런 번거로운 일.. 회원 Controller 세팅 Controller 세팅 회원 가입, 회원 등록, 회원 조회 기능을 각각 구현하였습니다. @Controller public class MemberController { private final MemberService memberService; @Autowired public MemberController(MemberService memberService) { this.memberService = memberService; } // 회원가입 화면으로 이동 @GetMapping("/members/new") public String createForm(){ return "members/createMemberForm"; } // 회원 등록 @PostMapping("/members/new") public Str.. 스프링 빈을 등록하는 2가지 방법 스프링 빈을 등록하는 방법은 2가지가 존재합니다. 1. 컴포넌트 스캔과 자동 의존관계 설정 2. 자바 코드로 직접 스프링 빈 등록하기 이 2가지 방법에 대하여 각각 알아보도록 하겠습니다. 컴포넌트 스캔과 자동 의존관계 설정 @Component 애노테이션이 있으면 스프링 빈으로 자동 등록됩니다. @Controller 컨트롤러가 스프링 빈으로 자동 등록된 이유도 컴포넌트 스캔 때문입니다. @Component 를 포함하는 다음 애노테이션도 스프링 빈으로 자동 등록됩니다. @Controller @Service @Repository 자바 코드로 직접 스프링 빈 등록하기 이때까지 @Service, @Repository, @Autowired annotation을 이용하여 자동으로 빈을 등록했다면 이번에는 직접 등록해.. 회원 Service 생성 및 Test Service 세팅 Service에는 핵심 비즈니스 로직이 존재하는 곳입니다. 회원 가입 (join 메서드)을 살펴보면 validateDuplicateMember 메서드를 이용하여 중복을 체크하는 기능이 있습니다. 중복이 존재하지 않으면 회원 정보를 저장하고, 회원 id를 반환하도록 구현을 하였습니다. @Service annotation을 통해 해당 클래스를 bean으로 등록 하여 해당 클래스가 Service로 사용됨을 Spring Framework에 알려줍니다. package com.example.hellospring2.service; import com.example.hellospring2.domain.Member; import com.example.hellospring2.repository.Memb.. 회원 Repository 생성 및 Test 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현 회원은 중복가입이 안된다. 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인: 회원 주문 쿠폰 처럼 데이터베이스에서 저장되고 관리되는 비즈니스 도메인 객체임 Member doamin 설계 회원가입을 할 때 사용하는 회원에 대한 객체이다. 회원 id (내부용), 회원 이름에 대한 정보를 담고있다. 이 domain을 어떻게 사용할 지 추가적으로 확인해보자. package com.example.hellospring2.domain; public class Member { private Long id; private String name; public Long getId() { return id; } public v.. 스프링 웹 개발 스프링을 이용해서 웹을 개발할 때 3가지 방법이 존재합니다. 정적 컨텐츠 MVC와 템플릿 엔진 API 이 3가지 방법이 어떤 것인지, 동작원리는 어떻게 되는지에 대해서 알아보도록 하겠습니다. 정적 컨텐츠 html 그 자체를 어떠한 조작없이 바로 보여주는 형태입니다. static 폴더에 html 파일을 두고 해당 주소로 접속을 하게 되면 우리가 작성한 html 그대로를 보여주는 형태입니다. 구현 static/hello-static.html 파일을 생성하고 아래의 내용을 복사 붙여넣기를 해 봅시다. 정적 컨텐츠 입니다. 스프링 서버를 구동 후 localhost:8080/hello-static.html 에 들어가보면 아래와 같은 화면을 볼 수 있을 것입니다. 정적 컨텐츠의 동작 순서 1. 웹 브라우저에서 lo.. 프로젝트 생성 spring boot 프로젝트 생성 spring.io 에서 초기 세팅이 가능합니다. https://start.spring.io 위 사이트에 접속 후 아래와 같이 초기 세팅을 진행한 후에 다운로드를 받습니다. 다운로드 받은 파일 압축을 풀고 intellij 에서 builde.gradle 파일을 open 합니다. java 11 version 다운로드 - 프로젝트는 11 version으로 다운 받았고, 나는 java 8 version을 사용하고 있었기에 11 version으로 변경을 진행합니다. (다운로드 방법은 아래 참고1, 참고2를 확인 바람) 참고1 - java 11 다운로드 방법 https://studee.tistory.com/85 자바 설치 1. https://www.oracle.com/kr/java.. 이전 1 다음