1์ฐจ ํ๋ก์ ํธ๊ฐ ๋๋์ ์ค๋๋ง์ ๊ฐ์ธ๊ณต๋ถ๋ฅผ ํ๋ค.
์บ ํ ๊ธฐ๊ฐ๋์ ๋ชจ๋ ํ๋ก์ ํธ์์ mongoDB
๋ฅผ ์ฌ์ฉํ๋ค. ๋น ๋ฅธ ๊ฐ๋ฐ์ ์์ด์ ์ ๋ง ์ข์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ผ๋ ์๊ฐ์ด ๋ ๋ค. ์ง๊ธ๊น์ง RDBMS
๋ฅผ ์ด์ฉํด์ ์งํํ ํ๋ก์ ํธ๋ ๋ณธ์ธ์ด ์คํค๋ง ๊ตฌ์ฑ์ ์ํด๋ฌ์ ๊ต์ฅํ ๋ง์ ์๊ฐ์ ERD
๋ฅผ ๊ทธ๋ฆฌ๋๋ฐ ์๋นํ๋๋ฐ mongoDB
๋ ์ผ๋จ ์งํํ๊ณ ์ดํ ์ ์ฐํ๊ฒ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์ด ๋งค์ฐ ๋น ๋ฅด๋ค.
์ด๋ ๊ฒ mongoDB
์ ๊ด์ฌ์ด ์๊ฒจ์ ์ง๊ธ๊ป ์ญ ๊ณต๋ถ ์ค์ธ springboot
์ ์ฐ๋์์ผ๋ณด๊ณ ์ถ์๋ค.
์ผ๋จ ์จ๋ณด์.
web
๊ณผ mongoDB
๋ฅผ ์ถ๊ฐํ๋ค.implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
implementation 'org.springframework.boot:spring-boot-starter-web'
mongoDB
์ ์ฐ๊ฒฐ์ ์ค์ ํ๋ค. (.yml)spring:
data:
mongodb:
host: localhost
port: 27017
database: testdb
Document Schema
๋ฅผ ์ ์ํ๋ค.@Document("user")
@Data
@NoArgsConstructor
public class UserDoc {
@Id
private String id; // ObjectId
private String name;
private int age;
public UserDoc(String name, int age) {
this.name = name;
this.age = age;
}
}
JPA๋ ๋๊ฐ๋ค ... ์ฉ๋ค ...
MongoRepository
๋ฅผ ํ๊ณ ์ฌ๋ผ๊ฐ๋ฉด CrudRepository
๊ฐ ๋์จ๋ค. wooooow....
public interface UserDocRepository extends MongoRepository<UserDoc, String> {
public Optional<UserDoc> findByName(String name);
}
@Slf4j
@RestController
@RequiredArgsConstructor
public class UserApiController {
private final UserDocRepository userDocRepository;
@GetMapping("/api/save")
public List<UserDoc> save() {
List<UserDoc> userList = List.of(new UserDoc("kim", 26), new UserDoc("lee", 25));
return userDocRepository.saveAll(userList);
}
}
MongoRepository
์ธํฐํ์ด์ค์ ๋ถ๋ชจ ํด๋์ค๋ฅผ ๋ณด๊ณ ๋ฏธ์๊ฐ ์ง์ด์ก๋ค.
์ด๊ฒ ๋ฐ๋ก ์ธํฐํ์ด์ค ์ถ์ํ์ ํ์ธ ๊ฒ์ธ๊ฐ.. ๋๋ mongoDB
๋ฅผ ์ฌ์ฉํ๊ณ ์์ง๋ง mysql
์ ์ฌ์ฉํ ๋์ ํฌ๊ฒ ๋ค๋ฅธ๊ฒ ์๋ค.
๋ด๊ฐ ๊ธฐ์ตํ ๊ฒ์ @Document
์ Stringํ์
id
, DB์ document ํด๋์ค์ ๊ฒฝ๋ก๊ฐ _class
๋ก ์ ์ฅ๋๋ค๋ ๊ฒ !
UserDocRepository
์ ์ ์ํ findByName
์ ์ฌ์ฉํด์ ์ ์ฅ๋ UserDoc
์ ์ฐพ์๋ณธ๋ค.
์ฟผ๋ฆฌ์คํธ๋ง์ผ๋ก name๊ฐ์ ๋ฐ์ ์กฐํํ๋ API๋ฅผ ๊ตฌํํ๋ค.
@GetMapping("/api/read")
public UserDoc read(@RequestParam("name") String name) {
return userDocRepository.findByName(name).orElseThrow(IllegalArgumentException::new);
}
V~ery good
ํ๋ ์์ํฌ์ ๊ฐ์ฌ ๋ ๊ฐ์ฌ ^^ ๐