[WIL]20220731

god1hyuk·2022년 7월 31일
1

TIL / WIL

목록 보기
12/30

항해 3주차 종료

주특기 입문주가 끝이 났다. 역시나 너무 정신 없는 한 주였다. 아직 Spring에 대한 개념이 확실히 잡히지 않은 상태에서 미션수행이 순탄치 않았던 것 같다. 지난 주 목요일 발제가 되고 부터 최소 3일은 강의를 보았던 것 같다.

금주 WIL의 키워드이기도 한 (DI, Bean, IoC)와 Spring의 3계층이라 불리는 (Container, Service, Repository), Annotation들, 특히나 일반적인 Annotation과 lombok에서 생성해주는 annotation 구분도 잘 안되고 도대체 무엇을 의미하는지 알 수가 없었지만 다행히도 강의 실습을 토대로 어떻게 구현을 해서 제출은 무리 없이 했다.

이번 주 미션을 통하여 내가 보람을 느꼈던 점은 CRUD를 구현하기 위해 고민하고 또 고민하고 기존의 실습 소스에서 요구사항에 맞춰 변형을 할 때, 어느 정도는 내 의지대로 변화에 성공을 시킨 것이다.

아직은 내가 만든 API가 RESTful한 API가 맞는지 이렇게 접근하고 로직을 짜는 것이 맞는지 확신이 들진 않았던 것 같다.

지난 목요일 4주차 발제일에 발표한 미션은 3주차 미션이었던 CRUD 기능에 회원가입, 로그인, 댓글기능을 추가하는 것이다.

목요일은 주특기 관련해서 공부를 하지 못하고 화요일에 있을 항해톡 발표자료를 준비했고 금, 토, 일 3일 내내 강의와 학습자료를 공부하였다. 심화과정 1주차를 완강 했는데 지난주 미션 관련 강의에서 다뤘던 내용에 대한 상세한 개념에 대해 모두 알려주었다. 그 개념 강의를 듣느라 시간이 너무 많이 소요 되었지만 너무 많은 걸 배웠고 이제야 조금 보이기 시작한다.

오늘 밤, 회원가입/로그인에 대한 부분을 공부하고 내일부터는 과제작업 돌입이다.

금주의 키워드

  1. DI (Dependency Injection, 의존성 주입)
  • 어떤 객체가 사용하는 의존 객체를 직접 만들어 사용하는게 아니라, 주입 받아 사용하는 방법 (new 연산자를 이용해서 객체를 생성하는 것이라고 생각하면 됨)
  1. IoC (Inversion of Control, 제어의 역적)
  • 프로그램의 제어 흐름이 뒤바뀜
  • 강한 결합 → 느슨한 결합
  • Controller → Service → Repository

    Controller ← Service ← Repository
  • 용도에 맞게 필요한 객체를 그냥 가져다 사용
  • 사용할 객체가 어떻게 만들어 졌는지 알 필요가 없음
  1. Bean
  • Spring이 관리하는 객체

  • Spring IoC Container
    - Bean을 모아둔 통

  • Bean 등록 방법
    <@Component>
    클래스 선언 위에 설정
    Spring 서버가 뜰 때, Spring IoC Container에 저장

    <@Component 적용 조건>
    ComponentScan에 설정해 준 packages 위치와 하위 packages들
    @SpringBootApplication에 의해 default 설정이 되어있음

    <@Bean>
    직접 객체를 생성하여 Bean으로 등록 요청
    Spring 서버가 뜰 때, Spring IoC Container에 저장

  • Bean 사용방법
    <@Autowired>
    멤버 변수, 함수 선언 위에 @Autowired → Spring에 의해 DI됨

    <@Autowired 적용 조건>
    Spring IoC Container에 의해 관리 되는 클래스에서만 가능

    <@Autowired 생략 조건>
    Spring 4.2 버전부터 @Autowired 생략가능
    생성자 선언이 1개 일때만 생략가능
    (미숙하다면, @Autowired 생략X 추천)


    오는 화요일 항해톡 발표이다. 주제는 "SQL vs NoSQL" 열심히 준비한 만큼 잘 해냈으면 좋겠다!

    4주차도 이겨내자!

0개의 댓글