본문 바로가기

공부 및 활동/스프링 강의 정리15

[스프링 입문] 7. AOP 1. AOP가 필요한 상황 백엔드 구현에서의 관심사항은 두 가지 사항으로 나뉜다. 공통 관심사항(cross-cutting concern)과 핵심 관심사항(core concern)으로 나뉘는데, 회원 가입, 회원 조회와 같은 비즈니스 로직과 같은 경우가 핵심 관심사항이고, 이러한 기능 외에 회원 가입이나 회원 조회의 기능을 실행하는데 걸리는 시간을 측정하는 것과 같은 기능은 공통 관심 사항으로 분류된다. 이렇게 모든 메서드에 대한 호출 시간을 측정하고 싶을 때, 우리는 기존 모든 메서드의 시작과 끝에 시간을 측정하는 코드를 추가하여 이를 구현해야 한다. 회원 가입과 회원 조회의 기능의 호출 시간을 구하기 위해서는 회원 서비스에 다음과 같은 코드를 작성해야 한다. @Transactional public cl.. 2021. 10. 23.
[스프링 입문] 6. 스프링 DB 접근 기술 2 1. JPA JPA를 사용하면 기존의 반복 코드를 줄일 수 있으며 기본적인 SQL도 JPA가 직접 만들어서 DB에 접근할 수 있다는 장점이 있다. JPA를 사용하면, SQL과 데이터 중심의 설계에서 객체 중심의 설계로 패러다임을 전환을 할 수 있다. JPA를 사용하면 개발 생산성을 크게 높일 수 있다. build.gradle // implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' build.gradle에 추가한다. 해당 라이브러리에서 jdbc와 관련된 라이브러리는 주석처리를 해준다. 라이브러리를 추가하고 gra.. 2021. 9. 27.
[스프링 입문] 6. 스프링 DB 접근 기술 1 1. H2 데이터베이스 설치 이번 강의에서는 교육용 Database인 H2를 사용한다. H2 가볍고 용량이 작다는 장점 웹 화면으로 콘솔 화면 또한 제공하여 사용하기 편리하다. 설치 주소 : H2 위 사진에서 연결을 바로 누른다. (변경할 것 x) 이제 왼쪽 맨위에 빨간색 버튼을 눌러 밖으로 나간 후, 명령프롬프트에서 test.mv.db파일이 생성되었는지 확인한다. 위 파일이 생성된 것을 확인한 후, 웹 콘솔창으로 돌아가 다음과 같이 JDBC url를 변경한다. 이전에는 파일을 통해 H2에 접근했다면 이제부터는 소켓을 통해 접근한다. 파일로 접근하는 방식은 애플리케이션과 웹 콘솔이 동시에 동작시 오류가 생길 위험이 있지만, 소켓을 통해 H2에 접속하면 여러 군데서 접근이 가능하다. 테이블 작성 Membe.. 2021. 9. 27.
[스프링 입문] 5. 회원 관리 예제 - 웹 MVC 개발 1. 회원 웹 기능 - 홈 화면 추가 기존에는 localhost:8080으로 홈 화면 접속 시 static의 index.html을 띄웠지만, 이번에는 홈 화면을 띄우는 컨트롤러를 만들어 직접 작성한 홈 화면을 띄워본다. controller/HomeController 파일 생성 package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home(){ return "home"; .. 2021. 9. 26.
[스프링 입문] 4. 스프링 빈과 의존관계 1. 컴포턴트 스캔과 자동 의존관계 설정 의존 관계 : Member Controller가 Member Serivce를 통해서 회원가입, 조회할 수 있어야 한다. (Controller가 Service 의존) 회원 컨트롤러에 의존관계 추가 package hello.hellospring.controller; import hello.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @Controller public class MemberController { private final MemberSer.. 2021. 9. 26.
(회원 관리 예제) 회원 서비스 테스트 mac : window 단축키 관련 ^ : ctrl ⬆ : shift 위에서 아래모양 : alt 이전 내용 다시 실행 : shift + f10 Create New Test : Ctrl + shift + t OK이후 Test에서는 메소드 이름을 한글로 적어도 된다. (실제 많이 사용된다.) 중복 정리 MemberServiceTest MemberService memberService = new MemberService(); @Test public void 중복_회원_예외(){ // given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); // whe.. 2021. 9. 26.