
● SQL을 직접 사용하는 것의 단점 - 지금까지는 직접 SQL을 작성해서 데이터 CRUD를 진행했다. [직접 SQL을 작성하는 것의 단점] 1. 사람이 직접 문자열을 작성하기 때문에 실수할 수 있고 또 그것을 인지하는 시점이 느리다. → 즉, 잘못된 SQL로 인한 오류가 컴파일 시점에 발견되지 않고 런타임 시점에 발견되는 것이다. 2. 특정 데이터베이스에 종속적이게 된다. ex) MySQL에서 PostgreSQL로 바뀌면 기존의 MySQL 쿼리를 전부 PostgreSQL에 맞게 바꿔야한다. 3. 반복 작업이 많아진다. 새로운 테이블을 만들 때마다 그에 맞는 CRUD 쿼리가 항상 필요하다. 4. JAVA의 객체와 데이터베이스의 테이블은 패러다임이 다르다. 서로 다른 패러다임 1 - 왼쪽이 JAVA의 객체..

● Spring bean을 등록하는 방법 1. @Configuration & @Bean : 외부 라이브러리, 프레임워크 등에서 만든 class를 등록할 때 사용 - JdbcTemplate은 외부 라이브러리이기에 @Configuration과 @Bean을 이용해 Spring bean으로 등록돼었다. (1). @Configuration - class에 붙이는 Annotaion - @Bean을 사용할 때 함께 사용해 주어야 한다. (2). @Bean - 메소드에 붙이는 Annotaion - 메소드에서 반환되는 객체를 Spring bean으로 등록한다. ex) UserRepository에 @Bean을 사용해보자 cf) 보통 @Configuration Annotaion은 config package 안에 넣어둔다. ..

● 도입 - Spring Container를 굳이 왜 사용하는 것일까? - 그냥 new 연산자를 이용해 직접 instance를 만들어 연결시켜주면 되지 않을까? - 아래의 예를 통해 알아보자 ex) - 책 이름을 메모리에 저장하는 API를 구현해야 한다. 단, 이때 Service, Repository는 Spring Bean이 아니어야 한다. - 그렇다면 아래와 같은 구조가 될 것이다. - 이때 새로운 요구사항이 들어왔다. - 책 이름을 더 이상 메모리에 저장하는 것이 아니라 MySQL 같은 DB에 저장해야한다. - 이때 Repository에서 JdbcTemplate을 바로 가져올 수 있다. - 그렇다면 아래와 같은 구조가 될 것이다. - 이런 상황(메모리 → DB로 저장 위치 변경)이라면 BookServ..

- 이전 글에서 만든 Service, Repository에는 Controller에서부터 시작된 JdbcTemplate를 직접 넣어주었다. - 여기서 UserController에 관해 몇 가지 의문점이 나올 수 있다. ● 의문점 1. static이 아닌 코드를 사용하려면 인스턴스화가 필요하다 - 일반적으로 JAVA에서 static이 붙지 않은 class를 사용하려면 먼저 해당 class의 instance를 만들어야한다. - 하지만 위의 사진에서 볼 수 있듯이 UserController의 Constructor(생성자)는 만들었지만 그 어디에도 해당 Constructor를 이용해 UserController의 instance를 만든적은 없다. - 그렇다면 도대체 어디에서 UserController의 instan..

@RestController public class UserController { // JdbcTemplate를 이용해 DB에 접근한다. private final JdbcTemplate jdbcTemplate; // jdbcTemplate을 생성자에 직접 넣어주지 않아도 spring이 알아서 jdbcTemplate을 넣어준다. public UserController(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } 1. API 진입 지점으로써 HTTP Body를 객체로 변환 @PutMapping("/user") public void updateUser(@RequestBody UserUpdateRequest request) { 2. 현재 유..

● 도입 - 하나의 API에서 너무 많은 기능을 수행하고 있으면 유지보수 및 오류 대응에 어려움이 있을 수 있다. - 아래의 UPDATE API만 보더라도 3가지의 기능을 담고 있다. @RestController public class UserController { // JdbcTemplate를 이용해 DB에 접근한다. private final JdbcTemplate jdbcTemplate; // jdbcTemplate을 생성자에 직접 넣어주지 않아도 spring이 알아서 jdbcTemplate을 넣어준다. public UserController(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } 1. API 진입 지점으로써 HTTP Bod..
- Total
- Today
- Yesterday
- OS
- node.js
- jpa
- MySQL
- 자료구조
- DART
- Phaser3
- SpringBoot
- java
- spring
- 코테
- MongoDB
- Advanced Stream
- Phaser
- SQL
- Spring Boot
- 코딩테스트
- 프로세스
- 빅데이터 분석기사
- API
- Java8
- git
- 알고리즘
- nosql
- 프로그래머스
- 운영체제
- Stream
- 메모리
- 빅데이터
- db
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |