본문 바로가기

TIL14

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.
TIL - 24.01.15 (팀 프로젝트 회고) 팀 프로젝트는 어떻게 진행됐는가 일주일에 걸친 팀 프로젝트가 끝이 났다. 그동안 배웠던 내용을 기반으로 개인 프로젝트를 시행하고, 이어서 진행한 팀 프로젝트였다. 팀원은 총 3명이였으며 (다른 조는 4명이다.) 팀장님은 (이하 팀장)상당한 코드적 지식을 가지고 계신 분이셨다. 팀장의 주도하에 프로젝트의 개요, ERD, 와이어프레임을 작성하고 팀장이 제안한 패키지 구조를 사용해 작업에 착수했다. 팀장이 제공해준 여러 코드를 참고하며 내 파트의 코드를 작성했다. 팀 프로젝트가 끝나고 팀 프로젝트는 전반적으로 팀장의 주도하에 진행됐다. 아무래도 팀원과 팀장 간의 지식의 깊이 차이가 꽤 났고, 잘 하는 팀원이 이끌어주면 프로젝트를 완성하는데 큰 도움이 되기 때문이다. 하지만 이런 방식은 스스로의 학습에는 큰 도.. 2024. 1. 15.