본문 바로가기

스파르타코딩클럽(내일배움캠프)

스파르타코딩클럽 11주차 5일

728x90

[스프링]

https://wildeveloperetrain.tistory.com/49

 

관습적인 추상화 Service, ServiceImpl 구조를 사용해야 할까?

Service interface와 ServiceImpl class 구조를 사용하는 이유? 대부분의 프로젝트는 Service를 만들 때 MemberService와 같이 서비스를 인터페이스로 설계하고, MemberServiceImpl 라는 구현체인 클래스를 생성해서

wildeveloperetrain.tistory.com

 

Controller와 Service사이에 Interface를 넣어서

public class PostCommentServiceImpl implements CommentService
public class StoryCommentServiceImpl implements CommentService

 

이런식으로 넣어서 같은 commentservice를 가지지만 포스트와 스토리 간의 댓글을 가질수 있다.

interface가 정말중요!!

 

@Service에 @Component가 있다.

빈을 등록하려면 @Component에 빈을 등록하고

빈을 사용하려면 @xargconstructor 를 사용해야한다.

 

추상화적용 github : https://github.com/karlema/midterm_apply_abstract

 

[SQL]

%연산자 쓸때 꼭 like앞에 붙여줘야함!!

 

1주차 숙제 정답

 

SELECT *from orders o2

WHERE email like '%naver.com'

AND payment_method = 'kakaopay'

AND course_title ='웹개발 종합반'

 

2주차 시작

1. users에 name과 숫자로 정렬

SELECT name, COUNT(*) from users u

group by name

 

 

2.name의 숫자카운팅하고 숫자를 오름차순 정렬

SELECT name, COUNT(*) from users u

group by name

order by COUNT(*)

 

*참고 쿼리 실행 순서

from → group by → select → order by

 

3. orders라는 table에 payment_method라는 필드에 접근해서 그중 웹개발종합반의 카운트를 내림차순으로 정렬하라

SELECT payment_method , COUNT(*) from orders o

WHERE course_title ='웹개발 종합반'

group by payment_method

order by COUNT(*) dsec

 

4. course_id별 '오늘의 다짐'에 달린 평균 like 개수 구해보기

 

SELECT course_id, ROUND(avg(likes),1) FROM checkins c

group by course_id

 

*참고 : 처음할때는 show table로 테이블 보고 참고해서 보기

 

5. 약자로 쿼리문 날리기

SELECT payment_method, COUNT(*) as cnt from orders o

WHERE o.course_title ='앱개발 종합반'

GROUP by payment_method

 

필드 이름 변경 : Count -> cnt

프로그래밍 변수 이용 orders o

 

728x90