스프링 데이터 엑세스의 여러가지 방법을 과거의 방법부터 알아보자. 순수 JDBC JDBC Template JPA 스프링 데이터 JPA 방법 1. 순수 JDBC - 고대의 개발자들이 고생고생한 방법. 그랬구나 하고 참고만 하자. - 순서 build.gradle 파일에 jdbc, h2 데이터베이스 관련 라이브러리 추가 + build gradle 스프링 부트 데이터베이스 연결 설정 추가 Jdbc 리포지토리 구현 DataSource를 통해 Connection을 연결한다. sql문을 작성한다. (String) PrepareStatement에 Connection과 sql문을 담음. PrepareStatement에 담긴 sql에 파라미터로 전달받은 값을 넣는다. PrepareStatement.excuteUpdate(..
1. 홈 화면 추가 - localhost:8080 을 입력하면 나타나는 홈 화면을 만들 것이다. - 기존에 localhost:8080 를 입력하면 resources > static > index.html 을 보여줬다. - 하지만 Controller에 해당 주소("/")를 매핑하면 우선순위가 Controller > static 이므로 home.html로 이동한다. 이전글(https://laugh4mile.tistory.com/186?category=919488) 참고. 2. 등록 - MemberController에 메소드 생성 + 관련 html 작성. - MemberForm 클래스 생성. 이때 반드시 html의 input name="name"과 setter가 매칭되어야 한다. - ex) name - set..
1. DI 란? - 생성자에 @Autowired 가 있으면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서 넣어준다. - 이렇게 객체 의존관계를 외부에서 넣어주는 것을 DI (Dependency Injection), 의존성 주입이라 한다. - DI에는 필드 주입, setter 주입, 생성자 주입 이렇게 3가지 방법이 있다. 의존관계가 실행중에 동적으로 변하는 경우는 거의 없으므로 생성자 주입을 권장한다. Question 생성자 주입을 권장하는 이유는 무엇인가요? Answer 1. 순환 참조 방지 필드 주입이나 수정자 주입으로 DI할 경우 참조순환이 발생할 수 있다. 이는 실제로 메소드를 실행하기 전까지는 에러가 나는지 알 수 없다. 하지만, 생성자 주입을 통하여 DI할 경우 어플리케이션 실행단계에서 순..
1. 비즈니스 요구사항 정리 - 매우매우 간단히 진행할 거임. 데이터 : 회원 ID, 이름 기능 : 회원 등록, 조회 DB는 아직 정해지지 않음 - 일반적인 웹 애플리케이션 계층 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 (ex. ID 중복검사) 레포지토리 : DB 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체 (ex. 회원, 주문, 쿠폰 등등 주로 DB에 저장하고 관리됨) - 클래스 의존관계 DB가 정해지지 않았기 때문에, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계. 향후에 RDB로 할지, JPA로 할지 구체적인 기술이 선정되면 바꿔끼울것임. 따라서 인터페이스를 정의하는것. 개발을 진행하기 위해서 초기 개발 단계에서는 구현체..
1. 정적 컨텐츠 - static 폴더에 html 파일 작성하면 끝. (ex. hello-static.html) - 해당 주소를 입력하면 Tomcat은 Controller에 관련 컨트롤러가 존재하는지 찾아본다. -> 없다. - 관련 컨트롤러가 존재하지 않으면 static/hello-static.html을 찾는다. 있으면 반환한다. 2. MVC와 템플릿 엔진 - MVC 란 : Model, View, Controller - controller에 메서드 작성 + template에 매핑되는 html 작성 - 해당 주소를 입력하면(@RequestParam() 이 있다면 쿼리스트링을 통해 넘겨줘야함) Tomcat은 Controller에 관련 컨트롤러가 존재하는지 찾아본다. -> 있다. - 모델에 정보를 담아 Vie..
0. IntelliJ 설치, Java 11 설치 1. h2 데이터베이스 1.4.200 버전 설치 https://www.h2database.com/html/download.html Downloads Downloads Version 2.0.202 (2021-11-25) Windows Installer (SHA1 checksum: f6f6f91c67075a41ce05bdfc4499ee987dacb02e) Platform-Independent Zip (SHA1 checksum: e4a6c2e54332304cb4acbe48b55f9421c7f4b870) Version 1.4.200 (2019-10-14), Last Stable Windows Installe www.h2database.com - 설치 후 윈도우는 ..
Q. 프로젝트 생성시 의존성 설치는 뭘 할까? Spring Boot DevTools Lombok Spring Data JPA MySQL Driver SpringSecurity Spring Web Q. MySQL 환경세팅 - 권한 설정 및 한글설정(utf-8) https://www.youtube.com/watch?v=GuHhQP0897s&list=PL93mKxaRDidECgjOBjPgI3Dyo8ka6Ilqm&index=5 Q. application.properties 와 application.yml의 차이 https://youtu.be/G6fgEiI_pEA?t=83 => 들여쓰기로 인해 중복되는 코드가 줄어진다. Q. Git 세팅 github 레포지토리 생성 git 설치 프로젝트 우클릭 -> Git Bas..
response 는 Data(MessageConverter) 와 HTML(ViewResolover) 가 있다. ViewResolver html파일을 응답할지 Data를 응답할지 결정해야 하는데 html 파일(우리가 쓰는건 jsp파일)을 응답하게 되면 ViewResolver가 관여하게 된다. 예를들어 설명하자면 DispatcherServlet이 컴포넌트를 스캔하다 A라는 클래스가 떴다. A 클래스는 hello() 라는 함수가 있다. hello()함수는 String "hello" 를 리턴한다. 이제 요청한 쪽으로 "hello"라는 메시지가 reponse 될것이다. 근데 "hello"라는 메시지가 아니라 hello 라는 파일을 받고 싶으면 어떡해? 이때 ViewResolver가 관여를 하여 hello의 앞에 ..
- Total
- Today
- Yesterday
- 다익스트라
- 문자열
- Spring Boot
- react native
- 알고리즘
- G5
- 리액트
- g4
- 그리디
- 코딩새내기
- 백준
- SWEA
- DFS
- 리액트 네이티브
- java
- 자바
- Spring
- laugh4mile
- S3
- 구현
- react
- 백트래킹
- PriorityQueue
- S2
- 현꾸라지
- BFS
- 우선순위큐
- 객체지향
- 시뮬레이션
- map
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |