목록분류 전체보기 (767)
Mini
* setter없이 수정하는법 setter사용 X, 비즈니스 로직으로 stockQuantity값수정 //==비즈니스 로직==// /** * 재고증가 * @param quantity */ public void addStock(int quantity){ this.stockQuantity+=quantity; } /** * 재고 줄이기 * @param quatity */ public void removeStock(int quatity){ int restStock = this.stockQuantity - quatity; if(restStock

*테스트 어노테이션 @RunWith(SpringRunner.class) //JUnit 실행할때 스프링이랑 같이 실행해줘 @SpringBootTest //Spring boot 띄운상태로 테스트 돌려줘. (없으면 Autowired 안됨) @Transactional public class MemberServiceTest { * 회원가입검사 Transactional 문제 : Test 내의 Transactional은 기본값이 롤백 => insert 쿼리등 확인불가 해결 1 : Transactional(Rollback=false) 해결2: em 받고, em.flush @Autowired EntityManager em; @Test public void 회원가입() throws Exception{ //given Mem..
@Transactional(readOnly=true) 읽기전용모드 => 속도up 문제:쓰기가안됨 해결:쓰기해야되는 메소드위에 @Transactional(readOnly=false) package jpabook.jpashop.service; import jpabook.jpashop.domain.Member; import jpabook.jpashop.repository.MemberRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional;..
@Repository @PersistentContext em사용법 익히기 package jpabook.jpashop.repository; import jpabook.jpashop.domain.Member; import org.springframework.stereotype.Repository; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import java.util.List; @Repository //component scan => 자동으로 스프링빈으로 등록해줘 public class MemberRepository { @PersistenceContext //EntityManager만들어서 주입해줘..

* Setter제거 문제 : Setter 무분별허용 => 오브젝트가 어디서 수정됬는지 모름 => 유지보수어렵 해결? : ??? 뒷강의(어플개발강의)에서 Setter없이 개발하는것을 보여주겠다. *LAZY(지연로딩) ※ 절대 Eager을 사용하면 안된다. 문제 : @XToOne 은 기본값이 즉시로딩(Eager) => 연관된애들 다땡겨옴, N(결과쿼리)+1(Order 쿼리) 문제. 해결 : @XToOne(fetch=FetchType.LAZY) 1. 패키지에서 C Shift F : OneToOne, ManyToOne 모두 찾기 2 . fetch 변경 @OneToOne(fetch = LAZY,mappedBy = "delivery") private Order order; *컬렉션 초기화 문제 문제 : 메소드초기화..
테이블, 기본키, 기본키자동생성 @Entity @Id @GeneraedValue @Entity //Member 테이블 만들어줘. public class Member { @Id //Long id를 키로 해줘. @GeneratedValue //기본키 자동으로 생성해줘(1씩증가) private Long id; private String name; private Address address; } @Embeddable package jpabook.jpashop.domain; import lombok.Getter; import javax.persistence.Embeddable; @Embeddable //내장가능 @Getter public class Address { private String city; priva..
package jpabook.jpashop; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HelloController { @GetMapping("hello") //hello라는 url이오면, 호출해라 public String hello(Model model) { //hello.html안의 -- data에 hello!!로 렌더링해라. model.addAttribute("data","hello!!"); return "hello"; //resources..
12869번: 뮤탈리스크 (acmicpc.net) 12869번: 뮤탈리스크 1, 3, 2 순서대로 공격을 하면, 남은 체력은 (12-9, 10-1, 4-3) = (3, 9, 1)이다. 2, 1, 3 순서대로 공격을 하면, 남은 체력은 (0, 0, 0)이다. www.acmicpc.net /* * bfs algorithm * 1.초기화 * 2.종료조건 * 3.next * 4.next 방문체크 * 5.visit[next] 갱신 */ *핵심로직 1. visit[체력][체력][체력] = 최단거리(공격횟수) 1.1 idx에 각각 체력저장. 2.v[0][0][0] 에 방문했다? -> bfs이므로 -> 최초 체력 0,0,0으로 만든애가 최단거리임. -> 출력. 끝. #include using namespace std;..