- 회원 웹 기능 - 등록
- 회원 웹 기능 - 조회
- H2 데이터베이스 설치
- 순수 JDBC
2fe17a4aafb1fc0616b81627fb590db669c93784
<스프링 입문 강의 - 17강 회원 웹 기능 - 등록>
* 회원 등록 기능 구현
HTML | Event | Mapping | Response |
home.html | 회원가입 버튼 클릭 | (get) members/new | members/createMemberForm.html |
members/createMemberForm.html | 이름 입력 후 등록 클릭 | (post) members/new | redirect:/ |
home.html |
- [궁금] 왜 "/"를 return하지 않고 "redirect:/"를 return할까?
=> request에 필요한 정보가 있을 수 있으므로 클라이언트가 다시 요청하도록 만듦
=> 권한이 없을 경우 처리 등을 할 수 있음
https://jjunii486.tistory.com/31
<스프링 입문 강의 - 18강 회원 웹 기능 - 조회>
* 회원 리스트 구현
HTML | Event | Mapping | return |
home.html | 회원 목록 버튼 클릭 | (get) /members | members/memberList.html |
members/memberList.html |
<스프링 입문 강의 - 9강 H2 데이터베이스 설치>
* 순수 Jdbc
- 애플리케이션에서 DB를 연결할 때 필요한 기술
- 20년 전 개발자들이 개발한 방식
- 스프링이 중복을 제거하여 JdbcTemplate을 제공
- SQL 쿼리까지 대신 만들어주는 JPA
- JPA도 오래된 기술이지만, 스프링에서 편리하게 사용할 수 있도록 한 번 감싼 기술
* H2 데이터베이스 설치
- [버전] 해당 강의에서는 특정 버전으로 설치해야한다고 함 (Lecture Note에 기재되어있음)
- [에러] 이전에 설치했던 이력이 있어서 정상동작하지 않음
- [해결] test.mv.db를 삭제하고 시도
- [에러] 그럼에도 정상 동작하지 않음 (Database not found ~)
- [해결] 스프링 서버가 동작중이라 종료 및 H2 콘솔 재시작하니 해결됨
<스프링 입문 강의 - 20강 순수 JDBC>
* JDBC 세팅
- build.gradle에 추가
1) implementation 'org.springframework.boot:spring-boot-starter-jdbc'
2) runtimeOnly 'com.h2database:h2'
- application.properties
1) spring.datasource.url=jdbc:h2:tcp://localhost/~/test
2) spring.datasource.driver-class-name=org.h2.Driver
3) spring.datasource.username=sa
* JDBC 코드 추가
- JdbcMemberRepository 생성
- 복붙... (매우 길다)
* SpringConfig
- SpringConfig에서 memberRepository를 MemoryMemberRepository -> JdbcMemberRepository로 수정
- 스프링을 사용하는 이유다 -> 자바의 다형성을 활용 (인터페이스를 두고 구현체를 바꾸는 것)
* 개방-폐쇄 원칙(OCP, Open-Closed Principle)
- SOLID 원칙 중 하나
- 확장에는 열려있고, 수정/변경에는 닫혀있다
- 스프링 DI 사용하면 다형성을 활용해서 조립 코드만 조금 수정할 뿐, 어플리케이션 코드 전체를 수정할 필요가 없다
'프레임워크 > Spring' 카테고리의 다른 글
[인프런][스프링 입문] 25~27 강 (0) | 2022.03.09 |
---|---|
[인프런][스프링 입문] 21~24강 (0) | 2022.03.08 |
[인프런][스프링 입문] 13~16 강 (0) | 2022.03.04 |
[인프런][스프링 입문] 9~12 강 (0) | 2022.02.07 |
[인프런][스프링 입문] 5~8 강 (0) | 2022.02.06 |