목록코딩 (50)
관심쟁이 영호
오늘은 인터페이스에 관해서 공부를 할 예정이다. (출간된 "자바의 정석" 책을 참고했습니다.) 인터페이스란? - 추상 메서드의 집합이다. (추상 메서드 : 구현을 하지않은 메서드) - 모든 멤버가 public이다. - 구현된 내용이 하나도 없다. 이렇게 볼 수 있다. 그럼 추상클래스와 무엇이 다른가? 추상클래스는 구현된 메서드도 포함할 수 있다. (인터페이스도 JDK 1.8 version 부터는 구현된 상수, static 메서드와 같은 멤버변수를 가질 수 있다.) 인터페이스 선언방법 interface practice{ public static final FIRST = 1; public abstract abc(int num); } 위와 같이 인터페이스를 선언할 수 있다. 인터페이스의 구현 인터페이스를 구현..
이번에는 주문취소에 대해서 살펴볼 예정이다. 주문취소를 보는 이유는 DB에서 값을 가져와서 데이터를 변경해주는 작업이기 때문이다. 여기서 문제가 있다. 만약, 물품이 10개가 있다. A라는 사람이 1개의 물품을 주문함과 동시에 B라는 사람이 10개의 물품을 주문할 수도 있다. 이렇게 된다면, DB에도 문제가 생기고 결제서비스와 같은 직접 돈과 연관되어 있는 문제면 엄청난 파장이 생길 것이다. 어쨌든 살펴보자. 홈화면에서 "주문 내역"을 눌러준다. 그러면 위와같은 페이지가 나온다. 페이지에 해당하는 매핑 컨트롤러로 가보자! 페이지는 "http://localhost:8080/orders" 이다. // OrderController.class @Controller @RequiredArgsConstructor p..
오늘은 이전에 만들었던 코드부분을 직접 html을 만들고, css를 적용하고 실제로 동작을 시켜볼 예정이다. html, css수업이 아니기 때문에 코드에 대한 설명은 생략하셨다. 먼저 html과 css를 적용해야한다. 필요한 부분은 회원 가입, 회원 목록, 상품 등록, 상품 목록, 상품 주문, 주문 내역이다. 약간의 코드는 생략한다. 1. html 매칭시켜주기. //home Controller @Controller @Slf4j public class HomeController { @RequestMapping("/") public String home(){ log.info("home controller"); return "home"; } } - @RequestMapping("/") 이렇게 작성하면, 기본 ..
1. 구현 기능 - 회원 등록 - 회원 목록 조회 2. 구현 순서 - 회원 엔티티 코드 다시 보기 - 회원 리포지토리 개발 - 회원 서비스 개발 - 회원 기능 테스트 순서는 이렇게 할 것이다. 실무에서 하는 방법대로 하신다고 하시니, 숙지해두면 좋을 순서일 것이다. 1. 회원 리포지토리 구현 리포지토리는 이전에 포스팅한 글에서 언급했듯이, DB에 JPA기술을 사용하여 직접 접근하는 것이다. 회원 리포지토리라 함은, DB에 저장되어있는 회원정보를 GET, SET하는 기능이 있을 것이다. - repository pakage를 생성한다. - repository pakage에 MemberRepository를 생성했다. - 그리고 코드를 넣는다. // MemberRepository.class //스프링에게 이것이..
1. Getter와 Setter 실무에서는 Getter를 이용하여 데이터 조회를 하는 경우가 상당히 많다. 그래서 Getter를 열어두지 않으면 많이 힘들다. 그래서 열어두는 것이 좋다. 반면에, Setter는 데이터를 잘못 바꾸는 경우가 있어서 열어두었다가 어느 부분에서 어떻게 데이터가 업데이트 되었는지 파악하기가 힘든 경우가 있다. 그래서 꼭 필요한 경우가 아니라면 Setter를 닫아두는 것을 추천하신다. -> 변경전용 비지니스 메서드가 필요하다. 2. 엔티티 식별자 엔티티의 식별자는 id, PK 컬럼명은 member_id를 사용해주는 이유는, 엔티티는 타입이 있어서 id필드 만으로 쉽게 구분할 수 있지만, 테이블은 타입이 없다. 그래서 구분이 상당히 힘들다. 그리고 관례상 테이블은 테이블명 + id..
이번 게시글은 이전 수업의 연장으로 다른 엔티티를 살펴볼 예정이다. ※ 현재까지 느낀 바로는, 문서를 읽을 줄 아는 능력이 필수인 듯 한다. 그 의미는 UML을 읽을 줄 알아야한다. 1. 클래스를 완성시켜준다. - OrderItem, Item, Delivery, Address를 작성해준다. // OrderItem @Entity @Getter@Setter public class OrderItem { @Id @GeneratedValue @Column(name = "order_item_id") private Long id; private Item item; @ManyToOne @JoinColumn(name = "order_id") private Order order; private int orderPrice;..