항해 3주차 회고

Lee·2022년 1월 30일
0

항해99

목록 보기
20/50

주특기 기초 주차

개요 및 특이사항

이번 주의 과제는 spring을 사용해 CRUD를 구현하는 능력울 기르는 것을 중점적으로 요구한 것 같다. 처음 사용해보는 것이라 여러가지 잔실수를 많이 했는데 이것은 점차적으로 개선해야 할 것 같다.
privite으로 변수를 선언하고 Getter와 Setter를 안 쓰거나 @controller를 적용 안하고 사용하는 등의 문제가 발생했을 때 주의를 기울여야 할 것 같았다.

API

테이블

진행사항

요구사항에서 GET과 POST만을 요구했으나 하는 김에 PUT과 DELETE도 구현하기로 하였고 정확하게 작동하는 것을 확인했다. 그리고 html파일이 3개가 필요했는데 모달창을 이용해 1개로 줄였으나 가시성 문제로 다음에 html을 여러개 사용할 경우 다른 방법을 써야겠다는 생각을 했다.

추가과제 및 마무리

기본 요구사항을 구현하고 시간이 남아 추가 요구사항인 필터 라이브러리를 적용해보기로 했다. XSS를 방어하는 lucy xss filter를 적용하기로 했는데 작동 방식은 둘째치고 어떻게 동작시키는지 이해를 못해 많은 시간을 투자하게 되었다. 구글의 도움을 받아 어떻게 설치를 했는데 동작을 하지않아 다시 찾아보니 JSON입력에는 적용이 되지 않는다는 사실을 알게되어 관련된 설정을 하고 동작시켰다.

github 주소 : https://github.com/galaxian/springweek1

스프링 이론

DI, IoC, bean

  1. 객체(B)를 사용하는 객체(A)가 객체(B)를 new로 직접 생성하는 방식을 일반적으로 배웠다. 이 방식은 객체(A)가 객체(B)에 대한 의존성이 높은 강한 결합이고 객체(B)가 변경 되었을 경우 객체(A)의 내용도 변해야 한다.
  2. 스프링에서는 이 문제를 해결하기 위해 의존성 주입(DI)를 제공한다. 이것은 객체를 spring이 생성해 사용하려는 객체(A)에 주입시켜주는 방식으로 용도에 맞게 필요한 객체를 가져다 쓰게 하고 객체(B)의 내용이 변경되는 것은 객체(A)가 신경쓰지 않는다.

2의 경우를 제어의 역전(IoC)라고 부르며 사용자가 객체를 관리하는 것이 아닌 스프링에게 위임해 컨트롤을 넘기게 된다.

스프링의 Ioc 컨테이너가 관리하는 자바 객체를 bean이라는 용어를 사용한다. bean은 사용자가 아닌 스프링이 생성 및 관리를 하며 @Component,와 @Bean을 사용해 스프링에게 권한을 넘길 수 있다.

profile
발전하고 싶은 백엔드 개발자

0개의 댓글