전체 글

전체 글

    [NetWork] 인증방식 JWT, Session, Cookie 정리

    서론 현재 REST API를 적용시키면서 데이터와 비즈니스 로직을 명확히 구분해 나가는 방식으로 개인 프로젝트를 진행하고 있다. 따라서 기존에는 회원가입에서 사용하던 Session과 Cookie를 이용한 인증 방식에서 JWT(JSON Web Token)을 사용하게 되었고, 이 용어들을 정리하고 개인 프로젝트를 진행하기로 하였다! Cookie 등장배경 HTTP는 인터넷상에서 데이터를 주고받기 위한 서버/클라이언트 모델을 따르는 프로토콜이다. 클라이언트가 서버에게 요청을 보내면, 서버는 응답을 보냄으로써 데이터를 교환한다. HTTP는 비연결성 및 무상태성이라는 특징을 가지고 있다. HTTP는 요청 처리 후 연결을 끊어버리기 때문에, 클라이언트의 상태 정보 및 현재 통신 상태가 남아있지 않다. 이 비연결성의 ..

    [MVC] DTO 역할 구분, 프로젝트 흐름도 분석

    서론 이전에 Entity와 Dto를 분리하고 사용하는 방법에 대해 확인해 보았다. 이후, Dto를 활용하는데 Dto는 역할과 책임을 명확히 하기 위해 requestDto와 responseDto로 나눌 수 있다는 사실을 알게 되었다. 여기서 Dto는 어디서 Entity가 치환이 되는 것이며, 어디서 반환되는 것일까? 이번 포스팅에는 DTO의 역할을 정리하고, Dto와 Entity가 사용되는 부분을 데이터 흐름도를 그려서 확인해 보며 정리하는 시간을 가지려고 한다. Dto의 역할 Dto (Data Transfer Object) 클래스는 주로 데이터 전송에 사용되는 객체이다. 보통 데이터베이스의 엔티티와 1:1로 매핑되는 경우가 많은데, 이 경우 DTO 클래스는 엔티티의 필드와 유사한 구조이다. 하지만 엔티티..

    [JPA] Entity를 Dto로 변환(리턴)의 중요성

    서론 엔티티를 Dto로 리턴해야 하는 이유는 무엇일까? 하나의 엔티티에서 여러 개의 Dto를 만들면 이름 짓기도 애매해지고 Dto가 여러 개여서 유지보수도 힘들어 보일 수 있다. 하지만 왜 Dto를 만들어서 코드를 작성하는 것이 더 좋은 것일까? 에 대해 이번 포스팅에서 그 이유를 정리해 보도록 하자. Entity 우선 Entity를 자세히 모르는 분은 JPA 도메인 설계, 엔티티에 관한 포스팅을 읽어보는 것을 추천드린다. https://cobi-98.tistory.com/57 [JPA] 도메인 설계, 엔티티 매핑 요구사항 분석 기능목록 회원 기능 회원 등록 회원 조회 상품 기능 상품 등록 상품 수정 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 기타 요구사항 상품은 재고 관리가 필요하다. ..

    [Java] 함수 파라미터의 final 키워드를 사용하는 이유

    요청 데이터를 담고 있는 객체(requestDto) 인프런 jpa 강의에서 Entity를 dto로 변환하여 리턴하는 방식의 중요성을 배웠다. 이후 Dto를 요청 및 응답에 필요한 데이터만 포함시키도록 request, response로 구분하여 프로젝트를 진행하였다. 여기서 Dto를 관리하는 방식을 찾던 도중, Dto를 관리하는 클래스에서 변수명에 final을 사용하는 부분을 볼 수 있었다. 함수의 파라미터에 final을 사용하는 것은 이전 프로젝트를 하면서도 본적이 있지만 넘어갔던 부분이라 Dto에 대해 알아보는 김에 같이 알아보기로 하였다 ! final 키워드란? final 키워드를 사용하면 해당 변수는 값을 변경할 수 없다. 따라서 함수 내부에서 실수로 변수의 값을 변경하는 것을 방지할 수 있다. 또..

    [Git] Git Hooks, git commit 전 코드를 수정해보자.

    프로젝트 효율성 높이기 위한 방안 탐색 프로젝트의 스파게티 코드 리팩토링을 진행하는 도중, 코드의 서식이 맞지 않아 가독성이 떨어지는 것 과 사용되지 않는 import문이 늘어나면서 프로젝트의 코드가 효율적으로 관리되지 못한다는 사실을 깨달았다. 현재 나는 이를 위해 인텔리제이의 단축키 ctrl + alt + l (코드 서식 수정) ctrl + alt + o (사용하지 않는 import 문 제거) 를 사용하여 내 코드를 수정하며 git에 저장하고 있었다. 하지만 이 부분을 자동으로 git commit 명령 이전에 내 코드를 보고 수정해 주는 자동화 기능은 없을까? 라는 생각을 가지고 방안을 탐색하였고, git hook을 발견했다. 그래서 commit이나 push 등의 git 명령어 동작 전에 코드 품질을..