Spring&SpringBoot
-
인프런 스프링 입문 11 / AOPSpring&SpringBoot 2022. 12. 18. 21:52
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 AOP AOP가 필요한 상황 - 모든 메소드의 호출 시간을 측정하고 싶을 때? - 공통 관심 사항 vs 핵심 관심 사항 - 회원 가입 시간, 회원 조회 시간을 측정하고 싶을 때? - 문제 > 문제 회원가입, 회원 조회에 시간을 측정하는 기능은 핵심 관심 사항이 아니다. > 시간을 측정하는 로직은 공통 관심 사항이다. > 시간을 측정하는 로직과 핵심 비즈니스의 로직이 섞여서 유지보수가 어렵다. > 시간을 측정하는 로직을 별도의 공통 로직으로 만들기 매우 어렵다. > 시간을 측정하는 로직을 변경할 때 모든 로직을 찾아가면서 변경해야 한다. AOP 적용 - AOP: Aspect Oriented Programming > 공통 관심 사항(c..
-
인프런 스프링 입문 10 / JPA, 스프링 데이터 JPASpring&SpringBoot 2022. 12. 15. 16:50
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 스프링 DB 접근 기술 JPA - JPA는 기존의 반복 코드는 물론이고, 기본적인 SQL도 JPA가 직접 만들어서 실행해준다. - JPA를 사용하면, SQL과 데이터 중심의 설계에서 객체 중심의 설계로 패러다임을 전환을 할 수 있다. - JPA를 사용하면 개발 생산성을 크게 높일 수 있다. 1. build.gradle 파일에 JPA, h2 데이터베이스 관련 라이브러리 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter..
-
인프런 스프링 입문 09 / 스프링 JDBCTemplateSpring&SpringBoot 2022. 12. 14. 23:56
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 스프링 DB 접근 기술 스프링 JDBCTemplate - 순수한 JDBC와 동일한 환경설정 - 스프링 JDBCTemplate과 MyBatis 같은 라이브러리는 JDBC API에서 본 반복 코드를 제거, SQL은 직접 작성 @Configuration public class SpringConfig { private final DataSource dataSource; public SpringConfig(DataSource dataSource) { this.dataSource = dataSource; } @Bean public MemberService memberService() { return new MemberService(member..
-
인프런 스프링 입문 08 / 스프링 DB 접근, H2, JDBCSpring&SpringBoot 2022. 12. 6. 22:13
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 스프링 DB 접근 기술 H2 데이터베이스 설치 - https://www.h2database.com/html/download-archive.html - 1.4.200 버전 platfrom-dindependent 다운로드 - 압축 해제 후 h2.bat 실행 - 최초 접속(연결) 후 JDBC URL 변경 후 다시 연결 > jdbc:h2:tcp://localhost/~/test - cmd창에서 파일 확인하기 dir + 파일이름 dir test.mv.db C:\Users\USER>dir test.mv.db C 드라이브의 볼륨: Windows10 볼륨 일련 번호: 98DC-2E82 C:\Users\USER 디렉터리 2022-12-06 오후 0..
-
인프런 스프링 입문 07 / 회원관리 예제Spring&SpringBoot 2022. 12. 6. 15:12
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 회원관리 예제 - 웹 MVC 개발 회원 웹 기능 - 홈 화면 추가 - homecontroller (controller) 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"; } } - home.html (template) Hello Spring 회원 기능 ..
-
인프런 스프링 입문 06 / 스프링 빈 등록 2 가지Spring&SpringBoot 2022. 12. 4. 15:45
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 스프링 빈과 의존관계 - 스프링 빈을 등록하는 2가지 방법 > 컴포넌트 스캔과 자동 의존관계 설정 > 컴포넌트 스캔 원리 : @Component 애노테이션이 있으면 스프링 빈으로 자동 등록 > 자바 코드로 직접 스프링 빈 등록하기 1. 컴포넌트 스캔과 자동 의존관계 설정 - 회원 컨트롤러에 의존관계 추가 package hello.hellospring.controller; import hello.hellospring.service.MemberService; import org.springframework.stereotype.Controller; @Controller public class MemberController { privat..
-
인프런 스프링 입문 05 / 회원 관리 예제, junit 테스트하는 방법Spring&SpringBoot 2022. 12. 4. 14:28
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 회원 관리 예제 - 백엔드 개발 비즈니스 요구사항 정리 - 데이터 : 회원ID, 이름 - 기능 : 회원 등록, 조회 - 아직 데이터 저장소 선정되지 않음(가상 시나리오) - 일반적인 웹 어플리케이션 계층 구조 > 컨트롤러 : 웹 MVC의 컨트롤러 역할 > 서비스 : 핵심 비즈니스 로직 구현 > 비즈니스 도메인 객체를 가지고 핵심 비즈니스 로직이 동작하도록 구현한 계층 > 예) 회원은 중복 가입이 안 된다 > 리포지토리 : 데이터베이스 접근, 도메인 객체들 DB에 저장하고 관리 > 도메인 : 비즈니스 도메인 객체 > 예) 회원, 주문, 쿠폰 등 주로 데이터베이스에 저장하고 관리 - 클래스 의존관계 > 아직 데이터 저장소가 선정되지 않..
-
JSON이란? JSON 기초 정리Spring&SpringBoot 2022. 12. 3. 13:48
JSON, JavaScript Object Notation - JSON은 더 쉽게 데이터를 교환하고 저장하기 위해 만들어진 텍스트 기반의 데이터 표준 - XML의 대안으로 더 쉽게 데이터를 교환하고 저장 - 가볍고 읽기 편함, key-vlaue 쌍으로 구성 - JSON은 텍스트 기반, 어떤 프로그래밍 언어에서도 JSON 데이터를 읽고 사용할 수 있음 > JSON에서 받은 object를 언어에 맞게 변환해서 사용하고 다시 데이터를 변환해서 JSON에 저장 가능 > 프로그래밍 언어와 운영체제에 독립적 JSON VS XML - 공통점 : 1) 데이터를 저장하고 전달하기 위해 고안 2) 계층적 데이터 구조 3) 다양한 프로그래밍 언어에 의해 파싱 4) XMLHttpRequest 객체를 이용하여 서버로부터 데이터..