1. 주특기 숙련 주차 / 스프링의 시작
알고리즘 주간이 끝나고 주특기 주차에 들어갔다. 내가 실무에서 직접적으로 사용할 툴을 다루고 어떤 일을 하는지 웹개발 미니 프로젝트 전에 익히는 숙달주차로서 스프링의 기본적인 개념을 배우기 시작했다. 서블릿, MVC 디자인모델, 컨트롤러, 서비스, 레포지토리, 데이터베이스, DI, IoC, Bean 등등 많은 개념이 쏟아져 나오고 그에 따른 코드 작성법도 배우고 있다. 알고리즘 주차와 다른 점은 알고리즘은 내가 생각하는 것에 따라 방법론이 생성되고 어떤 방법을 사용하는지 고민하는 것이었다면 이번 스프링 입문 주차는 많은 개념들을 단기간에 숙달하고 이에 따른 코드들을 최대한 익히는 것에 중점을 두고 있다. 솔직히 버거워지고 있다고 생각한다. 이해를 하는데 오래 걸리는 개념은 어쩔 수 없이 외우고 넘어가야 하는데 과제를 할 때 이에 따른 문제점이 생기고 있다. 이해를 해야 과제를 할 수 있는데 이해가 안 되서 응용이 힘든 것 같다. 최대한 어떤 개념인지 알고 넘어 가야할 것 같다.
2. DI, IoC, Bean
DI
DI, 의존성 주입은 컨테이너에서 관리하는 객체를 지정하여 컨테이너에서 생성된 객체를 받아서 사용하도록 만드는 프로그래밍 방식이다. 빈을 정의할 때 객체 간의 의존 관계를 명시해 스프링이 자동으로 주입받도록 한다. 즉, DI는 개발자가 컨테이너에서 관리될 객체를 지정할 때 의존객체를 지정하는 작업을 의미한다.
IoC
Ioc, Inversion of Control은 제어 역전을 의미한다. 일반적으로 자바 프로그램에서는 각 객체들이 프로그램의 흐름을 결정하고 각 객체를 직접 생성자를 통해 조작하여 모든 작업을 사용자가 제어하는 구조였다. 예를 들어 어떤 객체가 필요하면 그 객체를 new 생성자를 통해 생성하고 메소드 호출을 직접했다. 하지만 IOC 개념이 나혼 이후 객체의 생성을 특별한 관리 위임 주체에게 객체의 생성을 맡기게 되었다. 이 경우 사용자가 직접 객체를 생성하지 않고 객체의 생명주기를 컨트롤하는 주체는 다른 주체가 된다. 즉, 사용자의 제어권을 다른 주체에게 넘기는 것을 IoC 제어 역전이라고 한다.
Bean
스프링 IoC 컨테이너가 관리하는 자바 객체를 빈이라고 한다. 제어 역으로 인해 객체에 대한 권한이 스프링에 위임 되어 스프링에 의해 생성되고 관리되는 자바 객체들을 빈이라고 한다. 스프링 프레임워크에서는 스프링 빈을 지정해주기 위해 빈 어노테이션을 쓰거나 생성자에 필드값에 자바 객체를 받아와 생성자에 오토와이어드 어노테이션을 사용한다.
3. 스프링 숙련 주차 시작, 고난의 연속
스프링 숙련주차가 이틀이 지났지만 이해를 전혀 못한 부분이 있다. 스프링 시큐리티 프레임워크와 jwt 토큰 사용이다. 강의에서 보안 부분은 깊게 설명하기 어려워 개념만 설명하고 넘어갔지만 과제에서 로그인 토큰을 사용하여 과제 로그인 인증을 검사하는 로직을 요구한다. 필자는 이에 엄청난 고난을 겪고 있다. 시큐리티에 관하여 전혀 알지 못하는 필자는 시큐리티가 어떤 방식으로 작동이 되고 어떻게 로그인을 허락하는지, 토큰을 어떻게 생성하고 그것을 클라이언트에게 보내주고 다시 그것을 검사하는 지에 대해 전체적인 개념 자체가 부족한 느낌이다...... 열공 해야된다 ㅜㅜ 매니저님께 물어봐야하는데 시간이 안 맞으신가보다 후,...
'항해99 7기 활동' 카테고리의 다른 글
항해99 5주차 WIL (0) | 2022.06.12 |
---|---|
항해99 4주차 WIL (0) | 2022.06.05 |
항해99 2주차 WIL (0) | 2022.05.22 |
항해99 3주차 스프링 입문 S.A (0) | 2022.05.20 |
항해99 1주차 WIL (2) | 2022.05.15 |