목록분류 전체보기 (718)
쌓고 쌓다
의존관계 주입 방법 생성자 주입 수정자 주입(setter 주입) 필드 주입 일반 메서드 주입 참고 1. 의존관계 자동 주입은 스프링 컨테이너가 관리하는 스프링 빈이어야 동작한다. (Member 같은 클래스는 동작하지 않음.) 2. @Autowired의 기본 동작은 주입할 대상이 없으면 오류가 발생한다. -> @Autowired(required=false)로 해결하자. 생성자 주입 @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public Order..
https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 x를 x+n, x*2, x*3을 통해 y를 DFS로 만드는 것보다 y를 y-n, y/2, y/3 를 통해 x를 만드는 방식이 더욱 효율적이다. 왜냐하면 y를 /2, /3 할 때 딱 나눠 떨어지지 않는 경우를 가지를 칠 수 있기 때문이다. y를 /2 또는 /3으로 나누었을 때 딱 나누어 떨어지지 않으면 x를 x2 x3 하여 y를 만들 수 없기 때문이다. 또한 방문 여부를 통해 순환호출을..
컴포넌트 스캔 스프링은 설정 정보가 없어도 스프링 빈을 자동으로 등록해주는 "컴포넌트 스캔"을 제공한다. AutoAppConfig @Configuration @ComponentScan public class AutoAppConfig { } 설정 정보라 @Configuration 써주고, 스프링 빈을 등록하기위해 어노테이션이 부여된 클래스를 자동으로 IoC컨테이너에 등록하기위해 @ComponentScan 작성한다. + 컴포넌트 스캔 대상에서 제외 @ComponentScan(excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class)) 컴포넌트 스캔이 기존의 에제 코드에 사용된 @Config..
게시글에 달린 댓글 개수를 위한 필드와 컬럼을 수정한다. 1. Poster 필드 추가 @Entity public class Poster { @Column(name="comment_cnt") private int commentCnt; public int getCommentCnt() { return commentCnt; } public void setCommentCnt(int commentCnt) { this.commentCnt = commentCnt; } } 2. Poster 테이블 comment_cnt 컬럼 추가 ALTER TABLE poster ADD COLUMN comment_cnt int not null default 0; CommentService public class CommentService..
현재 내 Poster(게시글) 엔티티의 댓글 개수를 위한 commentCnt 변수가 있다. DB에 만든 poster 테이블의 스키마다. 여기서 보면 댓글 개수를 위해 commentCnt 컬럼을 만들었다. 저번에도 이 문제로 아하!하고 넘어갔는데 또 이런 문제가 발생했다. JPA에서 SELECT시 DB에 컬럼명을 comment_cnt로 조회를한다. 나는 필드명을 commentCnt로 했고 기본값으로 필드명과 동일하게 매핑이 될 줄 알았다...! 하지만 자바의 카멜 표기법은 DB에서는 _(언더바)로 변환된다. 또한 DB에서는 컬럼명을 commentCnt가 아닌 comment_cnt로 표기하는게 국룰이다! 해결하기위해 아래의 방법을 수행하여 정확히 매핑하자. 1. DB의 commentCnt 컬럼명 변경 ALT..
댓글 개수 증가를 위한 메서드를 작성하는데 이게 안되는것이다... getCommentCnt()의 결과로 개수(값)가 반환되어 나올것인데 여기에 +1 값을 원해서 ++를 붙였다. 증감 연산자인 ++ 또는 -- 는 변수들에 사용이 가능하지 값에는 사용이 불가능하다. 무슨말이냐!!?? 변수에 증감 연산자 int x = 5; x++; 바람직한 코드이다. 값에 증감 연산자 5++; 값 6을 갖지 않는다. 해결 방법
AppConfig @Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); } @Bean public OrderService orderService() { return new OrderServiceImpl(memberRepository(), discountPolicy()); } @Bean public DiscountPolicy discountPolicy() { re..
roleType VS role_type 자바는 단어와 단어 구별을 roleType 같은 카멜(Camel) 표기법을 사용한다. 데이터베이스는 관례상 role_type과 같은 언더스코어(_)를 사용한다. 아래와 같이 필드명을 "roleType"를 했다면 DB에 매핑되는 컬럼명은 "role_type"이 된다. @Column(name="role_type") String roleType 게시판 만들며 왜 이렇게 매핑이되나 싶었는데 궁금증 해결...! 데이터베이스 스키마 자동 생성 JPA는 엔티티의 매핑 정보를 통해 어떤 컬럼을 사용하는지 알 수 있으므로 맞는 방언으로 데이터베이스 스키마 자동 생성한다. ( 애플리케이션 실행 시점에 생성함 ) 옵션 설명 create 기존 테이블을 삭제하고 새로 생성 DROP + C..