배운것들을 잘 활용해서 프로젝트를 만들 수 있을까?
지금까지 배웠던걸 적재적소에 넣어서..
오늘 배운 것만 해도 그렇고 그때그때 생각이 날까
-> 튜터님 : 문법은 막 그렇게 자세하게 알지는 않는다
어느 상황에 쓰고 어떻게 쓰는지를 안다
물고기 잡는 법을 아는거랑 같은 말인가
왜 조장인것..
! JPA를 하기 위해서는 엔티티 클래스 객체를 만들어야 함
! DB의 한 로우는 해당하는 엔티티 클래스의 한 객체다!
! 생성자를 통해서 만듬
보통 강의를 들으면서 프로젝트 안에 주석으로 메모를 정리하기 때문에,
를 올릴 생각이다.
JWT 다루기
로그 설정 = 로깅 한다
로깅 : 어플리케이션이 동작하는동안 프로젝트의 상태나 동작 정보를 시간 순으로 기록하는 것
@Slf4j
@Component : 필요한 곳에서 사용할 수 있게 Bean으로 등록,
가져오는법 :
생성자 주입
private final JwtUtil jwtUtil;
public AuthController(JwtUtil jwtUtil) {
this.jwtUtil = jwtUtil;
}
Lombok
@RequiredArgsConstructor ?
회원가입 구현
Spring MVC 배울 때 index, login, signup 이름 뒤에 html 붙은거 찾아주는거 배웠음
@Enumerated : Enum타입을 데이터베이스에 저장할때 사용
비밀번호는 암호화를 해야 한다
회원가입 API
회원가입 페이지 : GET
회원가입 : POST
Spring data Jpa 사용하기 때문에 extends JpaRepository
ADMIN_TOKEN : 일반 사용자인지, 관리자인지 구별하기 위해
보통은 관리자 페이지 따로 구현함
@GeneratedValue(strategy = GenerationType.IDENTITY) // autoIncresement
AOP
:공통된 기능을 재사용하는 기법
= 횡단 관심사
OOP : 비즈니스 로직의 모듈화
AOP : 인프라 혹은 부가기능의 모듈화
AOP 적용 방식
고려해야 할 것
@Aspect로 클래스 감싸고 @Around로 메서드 감싸기
joinPoint.proceed() 해서 전체 / 특정 메서드 실행 로깅 확인 가능!
@Before @After
h2로 변경??
advice 리턴값이 object인데 보통 어떤 식으로 사용하시나요?
-> 보통 joinPoint를 리턴하는식으로 사용한다.
joinPoint를 리턴받은 result를 암호화 시켜줄 수도 있다.
적용 시점이 마음대로 하는게 편하다. AOP 프록시가 성능 저하를 일으킨다?
참고자료