Helper Class
·
Backend/Spring
Helper Class란 ?객체 지향 프로그래밍 에서 헬퍼 클래스는 해당 애플리케이션이나 해당 클래스의 주요 목적이 아닌 일부 기능을 제공하는 데 사용한다. 위키피디아의 Helper Class 를 보면 다음과 같이 정의하고 있다. 게다가 단어의 의미에서도 알 수 있듯 도움을 주는 클래스다. 특정 작업을 수행하거나 여러 클래스에서 공통적으로 사용될 수 있는 보조적인 메서드나 기능을 제공하는 클래스다.일반적으로 특정 작업을 단순화하거나 반복적인 작업을 처리하는데 사용한다. 다양한 메서드를 제공하며, 상태를 유지하거나, 객체로서 다른 객체와 협력한다. 또한 서비스 클래스나 비즈니스 로직을 돕는 역할을 한다.Helper Class의 특징☑️ 보조적 역할 : 다른 클래스의 작업을 보조하는 역할을 하며, 복잡한 로..
ServiceHelper를 통한 Service 코드 책임 분리
·
Backend/Spring
Service를 작성하던 중 단일 책임의 원칙에 위반하는 코드를 작성했음을 알게 되었다. 따라서 어떻게 책임분리를 하는 것이 적절할것인가에 대한 고민을 하게 되었다.@Service@RequiredArgsConstructorpublic class UserService { private final UserRepository userRepository; @Transactional public void createUser(final UserCreateRequestDto userCreateRequestDto){ Users user = new Users( userCreateRequestDto.userName(), userCreateR..
BaseTimeEntity와 JPA Auditing: 왜 사용할까?
·
Backend/Spring
1. BaseTimeEntity란?BaseTimeEntity는 모든 엔티티에서 공통적으로 사용하는 생성일(createdAt)과 수정일(updatedAt) 필드를 자동으로 관리하는 추상 클래스다.@MappedSuperclass@EntityListeners(AuditingEntityListener.class)public abstract class BaseTimeEntity { @CreatedDate @Column(updatable = false, updatable = false) // 데이터 생성 이후에 생성일은 편집되지 않도록 설계 protected LocalDateTime createdAt; @LastModifiedDate @Column(nullable = false) p..
JPA와 영속성 컨텍스트
·
Backend/Spring
JPA 등장배경객체지향적인 프로그래밍과 관계형 데이터베이스(RDB)는 달라도 너무 다르다.상속, 다형성, 캡슐화, 참조 구조가 객체 세계에서는 너무나 자연스럽고 당연하지만 SQL로는 표현할 수 없다.예시로, 객체는 필드에 다른 객체를 참조하지만, DB는 외래키로 연결한다. 즉, 객체 모델과 테이블 모델이 매핑이 안 맞아서 개발자의 부담이 증가하게 되었다.JPA가 등장하기 전, 우리는 JDBC 기반으로 SQL을 직접 작성했고, DB가 변경되면 코드를 수동으로 수정해야하고 매우 반복적인 수작업을 필요로 했다. 따라서 이에 대한 해결책으로 ORM이 등장했다. ✅ ORM(Object-Relational Mapping)이란 ?객체와 RDB 테이블 사이를 자동으로 매핑해주는 기술객체를 중심으로 개발하고, SQL은 ..
[Spring 기초] 일정 관리 앱 만들기
·
Backend/Spring
이번 프로젝트를 하기 전에, JDBC에 대해 알아보았고, JDBC Template 을 도입하여 프로젝트를 구현했으며 DB 관련 로직을 처리해야 하는 코드가 많았기 때문에 인터페이스와 구현체를 통해서 전반적인 과제를 진행하였다. JDBC → JDBC Template → 인터페이스와 구현체에 대해서 차례로 알아보았다.🗒️JDBCJDBC(Java Database Connectivity)는 Java에서 데이터베이스(DB)에 접속하고, SQL을 실행하고, 결과를 받아오는 표준 API이다.✅ JDBC의 구조드라이버 로드DB 연결 (Connection)SQL 작성 및 실행 (Statement or PreparedStatement)결과 조회 (ResultSet)자원 해제 (close)✅ JDBC의 단점반복되는 코드가..
JWT 토큰 인증 이란?
·
Backend/Spring
인증(Authentication)과 인가(Authorization)✅ 인증 (Authentication)사용자의 신원을 확인하는 작업이다.✅ 인가(Authorization)인증된 사용자가 특정 리소스에 대한 접근 권한을 가지고 있는지 확인하는 과정으로 “어서와 ~” 로 기억해보자 !JWT의 경우, 사용자의 신원을 나타내는 정보를 안전하게 클라이언트와 서버 간에 주고받기 위한 방식으로 설계되었으므로 “인증”의 개념과 더 밀접하게 연관이 있다.JWT (Json Web Token) 이란 ?JWT(JSON Web Token)란 인증에 필요한 정보들을 암호화시킨 JSON 토큰을 의미한다. 그리고 JWT 기반 인증은 JWT 토큰(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별하는 방식이다J..