본문 바로가기

Weekly I Learnd

[W.I.L]주특기 심화 (feat.항해99)

[기간] 03/26 (금) ~04/01 (목)

[목표] 심화 강의를 익힌 후 배운 것을 토대로 주어진 과제 만들기 

 

[느낀점]

Repository, Service, Controller를 사용하는 이유를 잘 알 수 있었고 로그인을 구현할때 스프링 시큐리티의 도움을 받아서 로그인을 구현할 수 있다는 것, 그리고 직접 소셜 로그인을 구현해 볼 수 있어서 좋았다. 심화가 들어오면서  Repository는 db에서 데이터를 가져오는 것, Service는 Controller가 받아온 클라이언트의 요청을 받아서 처리한 후 Controller에 다시 보내주고 , Controller는 클라이언트에 정보를 보내주고 요청을 받아오는 역할을 한다는 개념을 조금더 잘 이해하여 3가지를 심화에서 활용 할 수 있어서 좋았다. 영속성 컨텍스트나 페이징, DI, IoC등 이론적인 부분을 조금 더 이해해볼 시간을 가지고 활용할 수 있도록 공부를 해야겠다고 느꼈다.

 

[배운것]

-ALLINOneController의 문제점 

기본에서 사용 했던 repository와 service 그리고 Controller를 사용하지 않고 그기능들을 다 담은 하나로만 돌리는 것인데 코드가 길어서 가독성이 떨어지고 비효율적이다  그래서 3계층으로 구분하여 코드를 짜야 한다. 

-DI(의존성 주입의 이해)

bean으로 ioC컨테이너에 저장을 하고 컨테이너에서 꺼내서 가져다 사용하는 식으로 사용하여 강한 결합을 끊어준다. 

-쿠키와 세션

-쿠키는 저장을 하지 않아 쿠키를 삭제후 다시 서버를 사용하게 되면 저장이 되어 있지 않지만 세션은 인증을 

 

 

-스프링 시큐리티 프레임 워크 

스프링 서버에 필요한 인증 및 인가를 위한 기능을 제공해준다. 그래서 개발 수고를 덜어준다.

-소셜 네트워트 OAuth

생기게된 계기 : 매번 다른 사이트마다 회원가입을 해야하면 아이디와 비밀번호를 기억해야 하고 사용자들이 번거로움을 느껴 사용자들이 비밀번호를 제공하지 않고  웹 사이트나 어플리케이션에서 제공하는 정보를 사용 하는 기능이다. 

-Junit

단위 테스트

프로그램을 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지 검사하고 이를 통해 문제 발생 시 정확하게 어느 부분이 잘못되었는지를 재빨리 확인할 수 있게 해준다.

출처: 단위 테스트 (위키백과)

-페이징 

컴퓨터가 메인 메모리에서 사용하기 위해 2차 기억 장치로부터 데이터를 저장하고 검색하는 메모리 관리 기법

위키백과

 

-JPA의 연관관계

일대다 @OneToMany Order (1) : Food (N) 배달 주문 1개에 음식 여러개 선택 가능
일대일 @OneToOne Order (1) : Coupon (1) 배달 주문 1개 주문 시, 쿠폰 1개만 할인 적용 가능
다대다 @ManyToMany User (N) : Restaurant(N) 고객은 음식점 여러개 찜 가능 음식점은 고객 여러명에게 찜 가능
다대일

 

-영속성 컨텍스트

  • JPA
    • 객체 - ORM - DB
    • 객체 - 영속성 컨텍스트 매니져 (entity context manager) - DB
  • 영속성 컨텍스트 매니져
    • 객체 ↔ DB 의 소통을 효율적으로 관리

 

 

 

-

 

[이번주 과제]