스프링 핵심원리 기본편 - 새로운 할인 정책 개발 적용과 문제점 Test 실행 단축키 : CTRL + SHIFT + T ALT + enter 후 import static 누르면 아래와 같이 코드가 간결해 짐 실패하는 경우도 TEST해보는 것이 좋고, VIP와 BASIC으로 나누어 TEST진행 인터페이스를 의존하라는 의미 NullPointException 발생 이유 .discount(Member, itemPrice); 에서 DiscountPolicy에 값이 없기 때문에 개발 공부/Spring 2023.12.18
스프링 핵심원리 기본편 - 주문과 할인 도메인 설계 MemoryRepository가 DBRepository로 변경되고 DiscountPolicy가 정액에서 정률로 변경되도 주문 서비스 구현체를 변경할 필요가 없다는 의미 enum 타입은 == 쓰는것이 맞음 개발 공부/Spring 2023.12.14
사이드 프로젝트 - JPA Repository / Service Spring Data JPA 에서는 간단한 CRUD 기능을 공통으로 처리하는 인터페이스를 제공 새로운 레코드 생성, 불러오기, Count 세기 등 간단한 CRUD기능들은 별도로 구현하지 않아도 제공되는 메소드를 호출하기만 한다면 사용 가능 위의 코드에서 JpaRepository를 상속 받았는데 , 제네릭 정보 안에 Domain 폴더 내에 만들었던 Album Entity와 Album ID(PK)타입인 Long을 입력하면 어떤 Entity를위한 Repository인지 정보가 있기 때문에 albumRepository에서 작업시 어떤 테이블에 데이터를 넣어야 할지 Spring이 알게 됨 사용자가 직접 정의하는 CRUD메서드 @Repository 어노테이션을 추가해서 스프링 빈으로 등록하여 IoC에서 관리하게 함.. 개발 공부/Spring 2023.12.08
사이드 프로젝트 - Domain (Jpa) Domain - Album 코드 구현 생성자 & Getter Setter 만들면 Album Table이 DB에 생성된다 Domain - Photo 코드 구현 photo의 FK 설정 album의 FK 설정 개발 공부/Spring 2023.12.08
스프링 입문 - DB접근 기술 generated by default as identity : 값을 세팅하지 않고 insert하면 db가 자동으로 id값을 채워줌 순수 JDBC 자바는 DB로 연결하기 위해 JDBC드라이버가 필요하다 build.gradle에 라이브러리 추가 implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeOnly 'com.h2database:h2' import 필요 -> build.gradle에서 아래의아이콘 누르면 import됨 db 접근 준비 완료 스프링을 통해 dataSource를 주입 받아야 함 통합 테스트 Spring Framework 에서 DB Connection을 사용할 때는 DataSourceUtils를 통해 connect.. 개발 공부/Spring 2023.11.29
스프링 입문 - 회원관리 예제로 웹MVC개발 (조회) memberService.findMembers( ) : 멤버를 다 꺼내올 수 있음 member리스트를 모델에 담아 화면에 넘김 template에 memberList를 만들어 주어야함 ${members} : 모델안에 있는 값(객체)을 꺼냄 -> member에 담아 id와 name을 출력해줌 th:each 이 과정을 반복 서버를 껐다 켜면 데이터가 지워짐 (메모리에 담겨 있기 때문에 자바를 끄면 사라짐) -> DB나 파일에 저장필요 개발 공부/Spring 2023.11.27
스프링 입문 - 회원관리 예제로 웹MVC개발 (등록) 도메인 첫번째 localhost8080 들어오면 호출됨 home.html이 호출 됨 첫번째 도메인 localhost8080요청이 오면 controller의 "/"를 찾아보고 Mapping된게 있으면 호출하고 끝남 기존에 만들었던 index.html은 무시됨 name과 name이 mapping된다 [과정] 브라우저에서 members/new 요청(Get방식) Controller의 members/new를 찾아주고 createForm()이 호출. createMemberForm으로 이동 리턴하면 viewResolver를 통해 createMemberForm.html이 선택되고 타임리프 템플릿이 렌더링함. get : url에 엔터쳐서 요청하는 방식 (조회할 때) post방식: 데이터를 form에 넣어서 전달하는 방식.. 개발 공부/Spring 2023.11.27