interface
나는 누군가의 자식이며, 사회적인 역할로서 학생이기도 하다.
class A extends Parents implements Police, Customer // 상속은 하나만 가능하다.
참고
https://velog.io/@hkoo9329/자바-extends-implements-차이
예시 1
삼성
냉장고, 에어컨, TV
기능 : 전원 켜짐/꺼짐, 채널 변경, 음량 조절
냉장고 : 켜짐, 꺼짐
에어컨 : turn on, turn off
TV : power on, power off
// 다형성
RemoteController rc1 = new 냉장고();
RemoteController rc2 = new 에어컨();
RemoteController rc3 = new TV();
다형성은 추상화를 하는 과정이다.
- 결합도를 낮추기 위함.
- 모듈화를 한다.
- 외부의 영향을 받지 않고 유연하게 움직일 수 있는 모습 구현 가능.
- 변환이 용이하다.
// interface에서
RemoteController rc;
// class에서 초기화
rc = new 냉장고();
예시 2
경찰관 A, B, C
소매치기를 당했을 때 민원을 처리하는 방식이 동일해야 한다.
Police A = new 경위();
Police B = new 순경();
Police C = new 경장();
실습
- Repository, Service의 역할?
member package : 회원 관리와 관련된 것만 들어간다.
config package : 설정 관련
cf. Framework는 new를 안 쓰려고 하는거다.
개발 회사
인사과 역할 - AppConfig(구현에 대한 관심사를 관리)
Service 업무에 변경이 생기지 않는다.
기술 면접에서 스프링 부트가 왜 편한지 물어본다.
xml : DOM parsing 방식
에러
import org.apache.catalina.core.ApplicationContext;
이 코드 때문에 ApplicationContext가 인식이 안 됨.
import org.springframework.context.ApplicationContext;
이 코드로 다시 import 해주었다.
web browser → dispatcher servlet → test code → service → repository(memory) → DB(H2)
- Spring Framework는 layered architecture를 지향한다.
요청(req)이 들어오면
- controller(presentation layer)
- service(Business layer)
- repository(Persistence layer)
- DB(Database layer)
지금까지 배운 내용들을 보지 않고 스스로 주석과 함께 만들어 볼 수 있어야 한다.
jwt, 소셜 로그인
실습
회원 관리(생성, 단건 조회)를 appConfig로 관심사를 분리하고 확인하기
Configuration, Bean annotation을 사용하여 ApplicationContext 실습하기
'TIL' 카테고리의 다른 글
[코드스테이츠] Day07 BE (0) | 2023.07.05 |
---|---|
[코드스테이츠] Day06 BE (0) | 2023.07.03 |
[코드스테이츠] Day05 BE (0) | 2023.06.30 |
[코드스테이츠] Day04 BE (0) | 2023.06.29 |
[코드스테이츠] Day02 BE (0) | 2023.06.28 |