목록Bank-End/인프런- Spring 공부 (26)
관심쟁이 영호

이번에는 주문취소에 대해서 살펴볼 예정이다. 주문취소를 보는 이유는 DB에서 값을 가져와서 데이터를 변경해주는 작업이기 때문이다. 여기서 문제가 있다. 만약, 물품이 10개가 있다. A라는 사람이 1개의 물품을 주문함과 동시에 B라는 사람이 10개의 물품을 주문할 수도 있다. 이렇게 된다면, DB에도 문제가 생기고 결제서비스와 같은 직접 돈과 연관되어 있는 문제면 엄청난 파장이 생길 것이다. 어쨌든 살펴보자. 홈화면에서 "주문 내역"을 눌러준다. 그러면 위와같은 페이지가 나온다. 페이지에 해당하는 매핑 컨트롤러로 가보자! 페이지는 "http://localhost:8080/orders" 이다. // OrderController.class @Controller @RequiredArgsConstructor p..

이번에는 "주문하기"에 대한 코드를 살펴보자. 주문하기는 Member, item, order 등등 모든 테이블과 엔티티가 엮어있기 때문에 조금더 생각을 해야한다! 어쨋든, 홈화면에서 주문하기 버튼을 클릭해보자. 그렇게 되면, localhost:8080/order로 넘어가게 된다. 화면은 아래와 같다. 여기서 Controller에 매핑이 되어있을 것이다. 해당 url이 매핑되어 있는곳으로 가보자! ※ 주문 회원, 상품명을 클릭하면 리스트가 콥보박스처럼 드롭다운된다. @Controller @RequiredArgsConstructor public class OrderController { private final OrderService orderService; private final MemberService..

이전 시간에는 데이터베이스에 테이블을 어떻게 생성하는지 살펴보았다. 이번 시간에는 웹에서 데이터를 생성할 때를 살펴보자. 회원가입을 해보자. 위 그림과 같이 생성했다. "Submit" 버튼을 눌렀을 때, 어떤일이 일어날까!? - 먼저 해당화면을 구성하는 html을 살펴보자. 이름 Incorrect date 도시 거리 우편번호 Submit 위와 같이 구성되었다. 여기서 태그에 주목을 하면, "" 이렇게 코드가 짜여져 있다. 자세한 이해를 하고 싶다면, html의 form태그의 기능을 살펴보자! action 으로 "/members/new"라고 적혀있다. "/members/new"라고 매핑이 되어있는 곳으로 해당 폼정보를 던진다는 뜻이다. method는 폼정보를 post형태로 던진다는 뜻이다. 이렇게 던지면,..

이전 시간에는 웹사이트에서 요청했을때, 어떤방식으로 인식하고 넘어가는지 살펴보았다. 그럼 이번시간에는 회원가입을 했을때, 데이터가 어떻게 넘어가고 어떻게 내부에서 움직이는지 살펴보자. Spring이 시작이 되면, 테이블을 생성한다. 어디에서 테이블을 생성하라는 코드가 있을까? 이것을 알기 위해서는 먼저 JPA에 대한 지식이 있어야 한다. JPA에 대한 지식은 다른 글에 있다. https://bestkingit.tistory.com/106 Spring Boot ㅣ JPA, ORM에 관해서 ORM? ORM은 Object Relational Mapping이다. 데이터베이스에 저장된 테이블 형식의 데이터를 모델링하여 자바에서 사용할 수 있도록 클래스로 바꿔주는 것이다!! 거꾸로도 가능하다! ]ORM를 알아보기 ..

이제부터는 모든 코드를 하나하나 뜯어보고, 어떤일이 일어나있는 지, 왜 그렇게 되는지 완벽하게 분해분석을 할 예정이다. 1. H2 서버를 시작해주고, 프로젝트를 실행해준다. - 해당 내용에 대한 설정은, application.yml에 표시되어 있다. spring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver - 여기서 url로 설정되어 있다. 2. url : localhost:8080으로 접속해준다. 그럼 홈화면이 뜬다. - 왜 localhost:8080인가? 이 이유는 yml에 설정이 되어 있기 때문이다. yml에 server.port에 대한 설정이 없으면 ..

이번 시간은 user 테이블을 만들어볼 계획이다. 코드를 바로 보자. // User.java @Entity //User 클래스가 스프링이 시작할 때, MySQL에 테이블을 생성한다. public class User { @Id //Primary key //프로젝트에서 연결된db의 넘버링 전략을 따라간다. -> 오라클이나 mysql에 따라 바뀐다는 뜻이다. @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; // 시퀀스, auto_increment @Column(nullable = false, length = 30) private String username; // 아이디 @Column(nullable = false, length = 10..