<aside> 🔐 스프링 프레임워크는 어떤 특징 혹은 장점을 가지고 있나요? (3가지 이상)
</aside>
객체지향 프로그래밍 (OOP) 에 기반
서버 개발 시 크게 3계층으로 나누어 구현 가능 (Controller, Service, Repository)
클래스 1개를 선언하여 재사용 가능
모듈화가 잘 되어 있어, 필요한 모듈들만 레고처럼 조립하여 사용 가능
ex) 스프링 시큐리티, 스프링 타임리프 등
DI (의존성 주입) 지원
비즈니스 로직에 집중하게 해 줌
웹 서버에서는 비즈니스 로직이 가장 중요한 구현 부분
비즈니스 로직 외에 다른 부분은 스프링 프레임워크가 쉽게 구현 가능하도록 도움을 줌
그 외 가능한 답변들
<aside> 🔐 스프링에서 DI (의존성 주입) 를 사용하는 이유가 무엇인가요? 예를 통해 설명 해 보세요.
</aside>
강한 결합의 문제점을 해결하기 위함
예)
Repository1 객체 생성 시 DB 접속 id, pw 를 받아서 DB 접속 시 사용
public class Repository1 {
public Repository1(String id, String pw) {
// DB 연결
Connection connection = DriverManager.getConnection("jdbc:h2:mem:springcoredb", id, pw);
}
}
Controller 5 개가 각각 Service1 을 생성하여 사용
Repository1 생성자 변경에 의해..
⇒ 모든 Contoller 와 모든 Service 의 코드 변경이 필요해짐
<aside> 🔐 스프링 시큐리티를 사용해 회원관리하는 방법을 순서도를 통해 정리해 보세요.
</aside>
회원가입
로그인
로그인 이후 로그인 상태 유지 방법
<aside> 🔐 개발자 테스트 코드 작성 시 장/단점과 테스트 종류 별 (단위 테스트, 통합 테스트, E2E 테스트) 로 특징은?
</aside>