목록spring (28)
관심쟁이 영호
오늘부터 HTML을 공부할 것이다. 웹 기초라고 보면 된다. HTML은 건물을 짓을 때, 기초 골격이라고 생각하면 된다. 해당 포스팅은 유튜브의 ZeroCho님을 보고 포스팅한 것이다. HTML 공부 다음에는 CSS공부를 할 것이다. 두 공부는 초중급정도만 해둘 생각이다. 목표는 1~2주만에 모든 것을 공부하고 자바스크립트로 넘어가는 것이다. 화이팅! 아 참고로 html은 본 내용은 엄청 대충 다룰 예정이다..
오늘은 이전에 만들었던 코드부분을 직접 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. 상품 도메인 기능 및 개발 순서 (1) 기능 - 상품 등록 - 상품 목록 조회 - 상품 수정 (2) 순서 상품 엔티티 개발(비즈니스 로직 추가) -> 상품 리포지토리 개발 -> 상품 서비스 개발, 상품 기능 테스트 이렇게 될 예정이다. 2. 구현 시작. (1) ItemRepository 생성 // ItemRepository.class @Repository @RequiredArgsConstructor public class ItemRepository { private final EntityManager em; public void save(Item item){ if(item.getId() =..
아키텍처를 살펴보면 Controller와 Repository를 연결해주는 Service가 필요하다. 1. Service Pakage를 생성한다. 코드를 입력해준다. // MemberService.class //Repository와 똑같이 @Conponent를 가지고 있다. 똑같이 spring Component scan 단계를 거치도록 하기 위함인 듯 하다. @Service @Transactional(readOnly = true) //데이터 변경은 기본적으로 트랜잭션안에 있어야 한다. @RequiredArgsConstructor // 자동 주입 public class MemberService { //@Autowird를 추가한다면, //EntityManager의 @PersistenceContext와 똑같이 ..
1. Getter와 Setter 실무에서는 Getter를 이용하여 데이터 조회를 하는 경우가 상당히 많다. 그래서 Getter를 열어두지 않으면 많이 힘들다. 그래서 열어두는 것이 좋다. 반면에, Setter는 데이터를 잘못 바꾸는 경우가 있어서 열어두었다가 어느 부분에서 어떻게 데이터가 업데이트 되었는지 파악하기가 힘든 경우가 있다. 그래서 꼭 필요한 경우가 아니라면 Setter를 닫아두는 것을 추천하신다. -> 변경전용 비지니스 메서드가 필요하다. 2. 엔티티 식별자 엔티티의 식별자는 id, PK 컬럼명은 member_id를 사용해주는 이유는, 엔티티는 타입이 있어서 id필드 만으로 쉽게 구분할 수 있지만, 테이블은 타입이 없다. 그래서 구분이 상당히 힘들다. 그리고 관례상 테이블은 테이블명 + id..
Context란? 어떠한 대상에 대한 모든 정보를 가지고 있는 것이 Context다. 그럼 영속성 Context란? 영원히 저장해야하는 Context를 말한다. Spring에서의 영속성 Context는 이렇게 이해할 수 있다. 자바를 이용해서 데이터를 조회하거나 입력할 때, 직접적으로 DB에 요청하는 것이 아니다. 중간에 영속성 컨텍스트라는 것이 있고, 영속성 컨텍스트에 호출을 하게 되면 영속성 컨텍스트가 DB에 직접가서 받아오거나 입력한다. 왜 필요한걸까? 1. 트랜잭션을 지켜 "쓰기 지연"을 제공한다. 이 말은 어떠한 값을 입력할 때, Insert가 따로 동작하면 모든 것을 한번에 처리할 수 있도록 도와준다는 말이다. 모종의 이유로 따로 동작하다가 1개는 insert되고, 다른 하나는 insert가 ..