<aside> 💡
Why: 과제 제출 시에는 아래 질문을 고민해보고 답변을 함께 제출해주세요.
</aside>
Q. Spring Security를 적용했을 때 어떤 점이 도움이 되셨나요?
A. 보안과 관련하여 체계적으로 옵션을 제공해주는 Spring Security 사용함으로서 회원과 관련된 인증/인가에 대한 처리를 비교적 편리하게 구현 할 수 있었습니다.
Q. Spring Security를 사용하지 않는다면 어떻게 인증/인가를 효율적으로 처리할 수 있을까요?
A. 웹 컨테이너에 사용자의 정보를 저장하는 Session 또는
웹 브라우저에 사용자의 정보를 저장하는 Cookie를 사용하여 인증/인가 체크하고, page redirect하는 방식으로 처리해야 합니다.
Q. IoC / DI 에 대해 간략하게 설명해 주세요.
A. IoC(Inversion of Control)란 “제어의 역전(제어의 흐름을 바꾼다)”이라는 의미로, 메소드나 객체의 호출 작업을 개발자가 결정하는 것이 아니라 외부에서 결정되는 것을 의미합니다. Spring의 경우 제어의 흐름을 사용자가 컨트롤 하는 것이 아니라 Spring framework이 작업을 처리하게 됩니다.
DI(Dependency Injection)란 Spring의 의존 관계 주입 기능으로 객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식을 말합니다. 의존성 주입을 통해서 모듈 간의 결합도가 낮아지고 유연성이 높아지는 특징이 있습니다.
※Spring에서는 객체를 Bean이라고 부르며, 프로젝트가 실행 될 때 사용자가 Bean으로 관리하는 객체들의 생성과 소멸에 관련된 작업을 자동적으로 수행해주는데 이때 객체가 생성되는 곳을 Bean컨테이너라고 부릅니다.
Q. AOP에 대해 설명해 주세요.
A. AOP(Aspect-Oriented Programming) 관점 지향 프로그래밍이라 지칭하며 핵심적인 관점(개발자가 적용하고자 하는 핵심 비즈니스 로직)과 부가적인 관점(핵심 로직을 수행하기 위해 필요한 DB연결, 로깅, 파일 입출력 Etc..)으로 나눠보고 해당 관점을 기준으로 모듈화 하겠다는 의미를 말합니다.