본문 바로가기

내일배움캠프/Today I Learned

[TIL] 나의 서른 여섯번째 회고록

Today Error


1) 의도 : Spring Security 프레임워크를 사용하여 로그인 기능을 구현하였다. 

2) 에러 발견 : maxRedirects url 포워딩이 너무 많이 된다는 말같다.

왼쪽의 사진과 같이 member테이블 select가 지속적으로 이루어지고 있는 것을 console로 확인.

무엇이 문제인지 알 수 없어 Class내에 자문을 구할 수 있는 팀원? 단원에게 물어보았고, 

해결을 할 수 없어 튜터님께 직접 여쭤보았다. 

 

3) 에러의 원인 : SecurityConfig.java파일에 formLongin().loginPage().permitAll() 해당 부분에서 

error발생 시 error 포워딩 처리를 해주지 않아서 그런 것 같다고 말씀해주셨다. 

말씀해주신 대로 failureUrl()를 사용하여 임의로 error발생시에 / 루트 url로 넘어가게 설정해줌 

튜터님 말씀대로 고쳤더니 귀신같이 로그인이 정상 작동 되었다. 

 

해당 Error를 만나게 되면서 PostMan을 사용하여 Back동작 확인을 한다는 것에도 한계가 있음을 느낄 수 있었다.


1일 1개념


프레임워크란?

  • 프레임워크는 자주 쓰일 만한 기능들을 한데 모아 놓은 유틸(클래스)들의 모음이다.
  • 애플리케이션 개발 시 필수적인 코드, 알고리즘, DB 연동과 같은 기능들을 위해 어느 정도 뼈대(구조)를 제공
  • 앱/서버 등의 구동, 메모리 관리, 이벤트 루프 등의 공통된 부분은 프레임워크가 관리해줌

라이브러리 

  • 라이브러리 : 특정 기능을 모아둔 코드, 함수들의 집합이며 코드 작성 시 활용 가능한 도구들을 의미

프레임워크 VS 라이브러리 차이점

제어 흐름에 대한 주도성이 누구에게/어디에 있는가에 있다.

프레임워크는 전체적인 흐름을 프레임워크가 쥐고 있으며, 사용자는 그 안에서 필요한 코드를 짜 넣으면된다. 

반면에 라이브러리는 사용자가 전체적인 흐름을 만들며 라이브러리를 가져다 쓰는 것이라고 할 수있다.

 

라이브러리는 라이브러리를 가져다가 사용하고 호출하는 측에 전적으로 주도성이 있으며

프레임워크는 그 틀안에 이미 제어 흐름에 대한 주도성이 내재(내포)하고 있다.

프레임워크는 가져다가 사용한다기보다는 거기에 들어가서 사용한다는 느낌/관점으로 접근한다.

 

제어의 역전이란?

어떠한 일을 하도록 만들어진 프레임워크에 제어의 권한을 넘김으로써 클라이언트 코드가 신경 써야 할 것을 줄이는 전략.

 

프레임워크에 정의 되어 있는 인터페이스 interface, 추상타입 abstract 을 나의 코드에서 구현, 상속 한후

프레임워크에 넘겨주는 것,  객체를 프레임워크에 주입하는 것을 의존을 주입 dependency injection 한다고 말한다.