본문 바로가기

전체 글42

TIL - 24.01.23 이번 주 팀 프로젝트에서 프로젝트를 수행하던 중 아래와 같은 코드를 작성했다. fun getByIdOrNull(commentId: Long) = commentRepository.findByIdOrNull(commentId) ?: TODO("NoSuchEntityException()") @Transactional fun updateComment(postId: Long, commentId: Long, request: CommentRequest): CommentResponse{ // TODO: 댓글을 작성한 사용자만 댓글 수정 가능해야 함 val donate = donateRepository.findByMemberIdAndPostId(request.memberId, postId) val donationAmou.. 2024. 1. 23.
TIL - 24.01.18 AOP에 대해서 AOP는 핵심 로직과 부가 기능을 분히하고 모듈화한 프로그래밍 패러다임 중 하나다. 메소드 혹은 객체별로 부가적인 기능들을 모듈화해서 사용하는 것을 말한다. 중복된 코드를 하나의 모듈로 정리하는 방식이라고 할 수 있겠다. 여기서 부가기능은 로깅, 보안, 트랜잭션 등이 있다. 사실 이전 과제에서 @Transactional 어노테이션을 사용했었는데, 이게 AOP를 적용한 것이다. 만약 @Transactional 어노테이션을 사용하지 않았더라면 아래 코드를 트랜잭션을 거는 모든 코드에 추가했어야 했다. class SomeService { fun doTransaction() { val tx = em.getTransaction(); tx.begin(); ... // DB 관련 로직 ... tx.c.. 2024. 1. 18.
TIL - 24.01.17 인증과 인가에 대하여 이전 팀 프로젝트에서도 그렇고, 개인 과제에서도 그렇고 인증과 인가에 대해 자세하게 학습하지 못한 상태에서 코드를 작성해왔다. 인증과 인가에 대해 좀 더 알아보았다. 1. 인증의 종류 1) 쿠키 / 세션 기반 인증 쿠키란? 쿠키는 브라우저에 저장되는 작은 데이터. 클라이언트 상태정보를 저장하기 위해 사용함. 서버에서 전송되어 클라이언트(브라우저)에 저장되고 이후 같은 서버에서 요청이 있을 때마다 자동으로 서버로 쿠키값 전송함. 이름, 값, 유효시간, 도메인, 경로정보 등이 포함 세션이란? 세션은 서버 측에서 클라이언트의 상태를 유지하는 기술. 클라이언트에게 고유의 세션 ID를 부여하여 클라이언트 정보 확인. 이 때 세션 ID를 부여하기 위해 쿠키 사용함. 즉 클라이언트가 로그인 시 .. 2024. 1. 17.
샤ㅣ 보호되어 있는 글 입니다. 2024. 1. 16.