많은 사람들이 인프런의 (갓)김영한님의 강의를 수강 후, 첫 프로젝트로 CRUD게시판을 구현할 것이라고 생각한다.
이에 게시판 및 다양한 프로젝트 구현 전, CRUD를 확실하게 하고 가는 것이 좋다고 생각하여 이렇게 포스팅하게 되었다.
많은 분들에게 도움이 되면 좋겠다.
GradlePJ 설정 (PJ는 내가 자주 쓰는 프로젝트 줄임말이다)
build.gradle 파일에 필요한 의존성을 추가해준다
db 설정
User에는 내가 쓸 db의 이름설정 말고 당연하게, 이전에 mysql에서 생성할 때 쓰던 그 아이디로 User 및 PW를 입력해주면 된다.
그후, mysql 콘솔창에 위와같이 입력해주면 되는 것이다.
이렇게 한다면 에러가 뜰 것이다. 왜냐면, 설정을 제대로 하지 않았기 떄문이다.
url 경로를 한 번 확인해보면 정답을 알 수 있게된다.
spring:
datasource:
url: jdbc:mysql://localhost:3306/simpleboard?useSSL=false&serverTimezone=UTC
username: simplecrud
password: 1234
jpa:
hibernate:
ddl-auto: update
show-sql: true
이렇게 설정되어야 정상 작동하게 될 것이다.
왜냐하면 나는 mysql 콘솔에서 생성한 db의 이름이 simplecrud가 아니라 board였기 때문이다.
이렇게 되면 콘솔창에 있는 create문도 바꿔줘야한다. simpleboard
로 수정해주면 된다.
그러면 이와 같이 문제없이 정상 작동하는 것을 볼 수 있게 될 것이다.
초보자라면 일단 코드를 보고 따라 타이핑하고 이게 왜 이렇게 짠 코드인지 확인해보면서 학습하는 것을 권장드립니다. (필자도 핵 초보입니다)
자세한 코드는 https://github.com/sjMun09/simpleCrud 참고 바랍니다.
큰 로직을 model, view, controller로 나누는 것이다.
view는 클라이언트가 보는 ui, model은 app,data,data DB, 컨트롤러는 모델과 뷰를 컨트롤 하는 것입니다.
쉽게 말해서 좌측에 뷰, 우측에 모델이 싸우고 있는데 중간에 반장인 컨트롤러가 중재 및 협상을 한다고 이해하시면 됩니다. (이해를 돕기 위한 것임. 실제 이런 기능은 아님)
client가 보는 UI
비즈니스 로직을 수행(서비스가 알맞은 정보를 가공하는 과정)하고 db에 접근하는 DAO를 활용해서 결과 값을 받아옵니다.
사용자의 request을 처리한 후 지정된 view에 모델 객체를 넘겨주는 역할을 한다.
사용자의 요청이 진입하는 지점으로 reqeust에 따라 어떤 response를 결정을 Service에 넘겨주는 역할을 한다.
그 후 Service에서 실질적으로 처리한 내용을 View로 넘겨주는 것이다.
TODO:
를 달아두고 다 작성한 후 필요한 부분을 예외처리 해줬음.CRUD를 간단하게 알아봤습니다.
여기에 더 나아가 요구사항에 따라 기능이 더 복잡한 로직을 추가하거나 대표적인 서브 플젝인 게시판 등 다양한 프로젝트를 구현할 수 있을 것입니다.