TIL

[코드스테이츠] Day03 BE

yerinpark 2023. 6. 29. 13:38

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)이 들어오면

  1. controller(presentation layer)
  2. service(Business layer)
  3. repository(Persistence layer)
  4. 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