My footsteps

특정시간이후 코드 실행 setTimeout(funtion(){실행할코드},ms) 특정시간마다 코드 실행 setInterval (funtion(){실행할코드},ms) // 위에서 만든 안에 "5초 이내 구매시 사은품 증정" 이라는 문자가 있습니다. // 1초마다 5라는 문자를 1씩 감소시켜봅시다. // 0이 되면 를 안보이게 처리합시다. 5초 이내 구매시 사은품 증정! var sec = document.getElementById('sec'); var alert = document.getElementById('alert'); var count = 5; setInterval(function(){ // 누적뺄셈 count -= 1; //카운트가 0이 아닐때 if (count != 0){ //sec의 내용을 바꿔..

getElementByClassName쓸때는 꼭 인덱스 까지 적어줘야함 [0] [1] 이렇게. 중복 클래스명이 아니여도!!! document.getElementsByClassName('list-group')[0].classList.add('show'); 클래스명 하나 더 추가하는 문법 classList.add('추가할 클래스명') document.getElementsByClassName('list-group')[0].classList.toggle('show'); toggle : 클래스명 있으면 제거, 클래스명 없으면 추가 querySelectorAll도 인덱싱 붙어야함 [i] - $ = 쿼리셀렉터 같은거 - html안에 있는 내용 바꾸고 싶다면 $('.hello').html('메롱'); 이런식으로.. -..

스프링 데이터 JPA 생성자가 하나이면 오토와이어드 어노테이션 생략 가능 public interface SpringDataJpaMemberRepository extends JpaRepository, MemberRepository { //이렇게하면 스프링데이터jpa가 구현체를 만들어서 빈에 자동으로 등록해준다 @Override Optional findByName(String name); } @Configuration public class SpringConfig { private final MemberRepository memberRepository; @Autowired public SpringConfig(MemberRepository memberRepository){ this.memberRepositor..

@Transactional : 테스트 케이스에 이어노테이션이 있으면 테스트 완료후에 항상 롤백을해서 DB에 데이터가 남지 않으므로 다음테스트에 영향을 주지않음 단위테스트 : 자바코드만 실행해보는거 통합테스트 : 스프링 컨테이너랑 디비까지연동해서 테스트해보는거 * 순수한 단위테스트가 훨씬 더 좋은거다 jdbcTemplate // jdbc템플릿 사용방법(레퍼지토리에 임플리먼츠 받고) private final JdbcTemplate jdbcTemplate; @Autowired public JdbcTemplateMemberRepository(DataSource dataSource){ jdbcTemplate = new JdbcTemplate(dataSource); } 테스트케이스 잘작성하는게 굉장히 중요하다.. ..

- Optional을 쓰면 null일때도 감싸서 반환할수있기때문에 if조건문에서 null일때~ 이런조건문을 쓰지않아도 되서 훨씬 코드가 간결해진다 public class MemberService { //final:한번값을 설정하면 바꿀수없음.회원가입이라서 파이널로 했나봄 private final MemberRepository memberRepository = new MemoryMemberRepository(); public Long join(Member member){ Optional result = memberRepository.findByName(member.getName()); result.ifPresent(m ->{ throw new IllegalStateException("이미 존재하는 회원 이..