[스프링 입문] AOP
·
Back-End/Spring
[작성일: 2023. 05. 24] AOPAOP가 필요한 상황모든 메소드의 호출 시간을 측정하고 싶다면?공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern)회원 가입 시간, 회원 조회 시간을 측정하고 싶다면?   MemberService회원 조회 시간 측정 추가@Transactionalpublic class MemberService { private final MemberRepository memberRepository; public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; } pub..
[스프링 입문] 스프링 DB 접근 기술(2)
·
Back-End/Spring
[작성일: 2023. 05. 22] JPAJPA는 기존의 반복 코드는 물론이고 기본적인 SQL도 JPA가 직접 만들어서 실행해준다.JAP를 사용하면 SQL과 데이터 중심의 설계에서 객체 중심의 설계로 패러다임을 전환할 수 있다.JAP를 사용하면 개발 생산성을 크게 높일 수 있다.  Build.gradleJDBC 관련 코드는 주석처리 해주고 JPA, h2 데이터베이스 관련 라이브러리를 추가한다.spring-boot-starter-data-jpa는 내부에 jdbc 관련 라이브러리를 포함하기 때문에 jdbc는 제거해도 상관없다.dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation '..
[스프링 입문] 스프링 DB 접근 기술(1)
·
Back-End/Spring
[작성일: 2023. 05. 17]  H2 데이터베이스 설치나는 지금 데이터베이스로 dbeaver를 쓰고 있기는 하지만 강의를 더 완벽하게 흡수하기 위해 똑같이 h2를 설치해서 사용해보기로 했다. 강의에서는 1.4.200 버전을 사용하고 있기도 하고, 최근 버전을 사용하면 일부 기능이 정상 동작 하지 않는다고하여 1.4.200 버전을 설치하면 된다.  https://www.h2database.com/html/download-archive.htm  (window 기준) 패키지를 다운받았다면 압축을 풀고 bin 폴더의 h2.bat을 실행해주면 H2콘솔 창이 인터넷으로 연결된다.  데이터베이스 파일 생성 방법최초 한 번은 JDBC URL을 jdbc:h2:~/test로 접속한다. 그 이후부터는 jdbc:h2:t..
[스프링 입문] 회원 관리 - 웹 MVC 개발
·
Back-End/Spring
[작성일: 2023. 05. 16] 회원 웹 기능 - 홈 화면 추가HomeControllerlocalhost:8080을 입력하면 home.html을 보여준다.기존에 있던 static의 index.html은 무시된다.@Controllerpublic class HomeController { @GetMapping("/") public String home() { return "home"; }}  home.html Hello Spring 회원 기능 회원 가입 회원 목록      회원 웹 기능 - 등록회원 등록 폼 개발MemberController기존의 컨트롤러에 아래의 코드를 ..
[스프링 입문] 스프링 빈과 의존관계(2)
·
Back-End/Spring
[작성일: 2023. 05. 15] 컴포넌트 스캔과 자동 의존관계 설정자바 코드로 직접 스프링 빈 등록하기회원 서비스와 회원 리포지토리의 @Service, @Repository, @Autowired 애노테이션을 제거하고 진행해야 한다.XML로 설정하는 방식도 있지만 최근에는 잘 사용하지 않는다.DI에는 필드 주입, setter 주입, 생성자 주입이 있다.의존관계가 실행중에 동적(런타임 중에 바뀌는 것)으로 변하는 경우는 거의(아마도 99%) 없으므로 생성자 주입을 권장한다.setter 주입은 누구나 호출할 수 있게 열리기 때문에 권장하지 않는다.실무에서는 주로 정형화(일반적인) 된 컨트롤러, 서비스, 리포지토리 같은 코드는 컴포넌트 스캔을 사용한다.정형화 되지 않거나 상황에 따라 구현 클래스를 변경해야 ..
[스프링 입문] 스프링 빈과 의존관계(1)
·
Back-End/Spring
[작성일: 2023. 05. 15]  컴포넌트 스캔과 자동 의존관계 설정스프링 빈 등록하고 의존관계 설정하기회원 컨트롤러가 회원서비스와 회원 리포지토리를 사용할 수 있게 의존관계를 준비한다.Controller : MemberService를 통해서 회원가입 하고 MemberService를 통해 데이터를 조회할 수 있어야 하는데 이런 관계를 의존관계라고 한다. MemberController생성자에 @Autowired가 있으면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서 넣어준다.이렇게 객체 의존관계를 외부에서 넣어주는 것을 DI(Dependency Injection), 의존성 주입이라고 한다.이전 테스트에서는 개발자가 직접 주입했지만 이번에는 @Autowired에 의해 스프링이 주입해준다.@Contro..