본문 바로가기

Spring Introduction/스프링 입문

(11)
06. AOP 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술에 대해 공부하고, 정리한 내용입니다. 1) AOP가 필요한 상황 AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)는 특정 기능을 애플리케이션의 여러 부분에 걸쳐 적용할 때 매우 유용한 프로그래밍 패러다임입니다. 특히, 모든 메소드의 호출 시간을 측정하거나, 특정 작업(예: 회원 가입, 회원 조회 등)에 대한 성능 모니터링과 같은 공통 관심 사항을 처리할 때 AOP가 필요한 상황이 발생합니다. (1) 모든 메소드의 호출 시간 측정 예를 들어, 애플리케이션의 성능을 분석하고자 할 때 모든 메소드의 실행 시간을 측정하고 싶다고 가정해봅시다. 이 작업..
05. 스프링 DB 접근 기술 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술에 대해 공부하고, 정리한 내용입니다. 1) H2 데이터베이스 (1) 설치하기 H2 데이터베이스는 개발이나 테스트 용도로 사용하기 적합한 가벼운 DB입니다. 설치 방법은 다음과 같습니다. (1) 먼저 H2 데이터베이스 공식 홈페이지에 접속합니다. (2) 홈페이지에서 1.4.200 버전의 H2 데이터베이스를 다운로드 받습니다. (3) 윈도우 사용자는 다운로드 받은 폴더의 bin/h2.bat 파일을 실행하면, H2 콘솔이 실행됩니다. 이제 데이터베이스 파일을 생성해야 합니다. JDBC URL은 데이터베이스 파일이 위치하는 경로를 나타냅니다. 기본 설정된 JDBC URL을 사용하면 ..
04. 회원 관리 페이지 만들기 - 홈 화면, 회원 가입, 회원 조회 개발하기 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술에 대해 공부하고, 정리한 내용입니다. 1) 홈 화면 추가하기 (1) Controller를 통해 html 연결하기 이전에는 MemberController를 만들고, 컴포넌트 스캔 혹은 @Bean을 통해 의존 관계를 설정했습니다. 이번에는 홈 화면을 추가하는 방법에 대해 설명하겠습니다. 먼저, controller 패키지에서 HomeController 클래스를 생성합니다. @Controller public class HomeController { @GetMapping("/") public String home(){ return "home"; } } 이 클래스에는 @Controlle..
03. 스프링 빈과 의존관계 - (2) 자바 코드로 직접 스프링 빈 등록하기 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술에 대해 공부하고, 정리한 내용입니다. 1) 코드로 직접 등록하기 전 상태 되돌리기 이번에는 컴포넌트 스캔을 사용하지 않고, 자바 코드로 직접 `Service`와 `Repository`를 Spring Bean에 등록해보도록 하겠습니다. 그러기 위해서는 먼저 기존에 컴포넌트 스캔을 위해 적용했던 어노테이션들을 제거해야 합니다. (1) `MemberService`와 `MemberRepository` 클래스에서 `@Service`, `@Repository` 그리고 `@Autowired` 어노테이션을 제거합니다. (2) 이때, `MemberController`는 어노테이션을 제거하지 ..
03. 스프링 빈과 의존관계 - (1) 컴포넌트 스캔과 자동 의존관계 설정 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술에 대해 공부하고, 정리한 내용입니다. 1) 이전에 구현했던 내용들과 이번에 구현할 내용 지금까지는 MemberRepository와 MemberService를 만들었습니다. 이를 통해 다음 로직을 구현하고 테스트 코드를 작성했습니다. 멤버 객체 만들기 서비스를 통한 멤버 가입 리포지토리를 통한 멤버 정보 저장 및 조회 이제 이 로직을 웹 페이지에 적용하려고 합니다. 이를 위해서는 회원 가입 결과를 HTML 페이지로 표시해야 하므로, Controller와 View template가 필요합니다. MemberController를 만들어 사용하려고 합니다. MemberControlle..
02. 회원 관리 페이지 만들기 - (5) 회원 서비스 테스트 만들기 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술에 대해 공부하고, 정리한 내용입니다. 1) 테스트 코드의 또 다른 생성 방법 이전에는 Repository 기능을 테스트할 때, test package에 직접 repository package와 class를 생성했었습니다. 하지만 IDE의 기능을 활용하면 쉽게 test class를 생성할 수 있습니다. 생성 방법 1. 테스트하려는 클래스를 선택하면서 `Alt+Enter` 키를 누르고, `Create Test`를 선택합니다. 2. 테스트하려는 메서드를 선택하고 `OK`를 클릭합니다. 이렇게 하면 test package와 class가 자동으로 생성됩니다. 또한 선택한 메서드에는 `..
02. 회원 관리 페이지 만들기 - (4) 회원 서비스 개발 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술에 대해 공부하고, 정리한 내용입니다. 1) MemberService 클래스 만들기 이번에는 회원 서비스(MemberService) 클래스를 만들어보겠습니다. 회원 서비스는 주로 회원 리포지토리와 도메인을 활용하여 비즈니스 로직을 작성하는 역할을 합니다. ① 먼저 'service' 패키지를 생성하고, 이 패키지 내에 'MemberService' 클래스를 생성해야 합니다. ② 'MemberService' 클래스는 회원 리포지토리를 활용하기 때문에 'MemoryMemberRepository' 객체를 선언해야 합니다. 이를 'final' 키워드를 사용하여 선언하면, 이 객체는 한 번..
02. 회원 관리 페이지 만들기 - (3) 회원 리포지토리 테스트 케이스 작성 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술에 대해 공부하고, 정리한 내용입니다. 1) JUnit을 이용한 테스트 코드 작성 이번에는 이전에 구현한 기능들이 제대로 작동하는지 확인하기 위한 테스트를 진행하겠습니다. 테스트를 실행하는 방법을 생각해보면, 즉시 두 가지 방법이 떠오릅니다. Java의 main 메서드를 통해 실행 웹 애플리케이션의 컨트롤러를 통해 해당 기능을 실행 하지만 이러한 방법들은 준비하고 실행하는데 시간이 오래 걸리며, 반복적으로 실행하기 어렵다는 단점이 있습니다. Java에서 제공하는 'JUnit' 프레임워크를 이용해 테스트 코드를 작성하면 이러한 단점들을 해결할 수 있습니다. 그럼 지금부터 JUni..