Spring의 MVC중 하나인 Service에 대해서 알아보자 Service를 결론부터 설명하자면 애플리케이션의 비지니스 로직을 포함하며 프레젠테이션 계층과 데이터 접근 계층 사이에서 중간 역할을 수행한다. 즉 데이터가공하는 애플리케이션의 핵심 기능, 규칙을 구현한다. 데이터베이스에 직접 데이터를 가공하다간 원본 데이터가 손실, 손상될수 있음으로 계층을 둔다. 서비스 계층의 주요 기능과 특징 1. 비지니스 로직의 캡슐화: 서비스 곛층은 비지니스 로직이나 비지니스 규칙을 구현하고, 이를 프레젠테이션 계층과 분리해서 애플리케이션의 유지 보수성과 확장성을 향상시킨다. 2. 재사용성 : 비지니스 로직을 서비스 계층에 구현함으로써, 동일한 로직을 애플리케이션의 다른 부분에서 재사용 할 수 있다. 3. 트랜잭션 관..
스프링 프레임 워크에서 데이터 베이스와 상호작용을 위해서 사용하는 것이 리파지토리이다. 리파지토리는 데이터를 영속적으로 저장하고 검색하는데 사용되며 객체 지향적으로 데이터를 다룰 수 있도록 도와준다. 1. Spring Data Repository Repository를 사용하면 데이터베이스 액세스 코드를 직접 작성하지 않아도 간편하게 데이터베이스와 상호 작용할 수 있다. import org.springframework.data.repository.Repository; public interface UserRepository extends Repository { User findByUsername(String username); void save(User user); void delete(User user)..
Spring boot를 생성하면 이놈이 생성되어 있다 뭐하는 디렉토리일까? 테스트 코드 작성의 중요성과 이유 테스트 코드를 먼저 작성하고 해당 테스트를 통과할 수 있도록 코드를 작성하는 방식을 TDD라고 부른다. 테스트 코드의 중요성을 알아보자 1. 테스트 코드의 중요성 버그 발견 및 예방 테스트 코드를 미리 작성해 둠으로써 코드의 기능이 예상대로 동작하지 않을 때 이를 빠르게 발견하고 수정할 수 있다. 테스트 코드는 버그를 사전에 예방하는 역할을 한다. 리팩토링 지원 코드를 리팩토링할 때, 테스트 코드가 있다면 개발자는 리팩토링 전과 후에도 기능이 올바르게 작동하는지를 검증할 수 있다. 이는 코드의 가독성과 유지보수성을 향상시키는 데 도움을 준다. 문서화 테스트 코드는 코드의 사용 예시를 제공하며, 프..
Spring Boot 의 MVC에 대해 알아보자 1. MVC 아키텍처란? Model-View-Controller의 약자로 소프트웨어 디자인 패턴이다. Model : 어플리케이션이 데이터와 비지니스 로직을 당담한다. View : 사용자에게 보이는 UI를 표현하며 모델의 데이터를 표시한다. Controller : 사용자의 입력을 처리하고, 그에 따른 모델의 업데이트 및 뷰의 갱신을 컨트롤 한다. 2. Spring Boot MVC의 특징은 뭐가 있을까? 2.1 자동 설정 자동 설정을 지원하기 때문에 @SpringBootApplication 애노테이션만 사용해도 기본적인 MVC를 사용할 수 있다.. 2.2 간단한 URL 매핑 @Controller 애노테이션을 사용해서 간단하게 URL을 매핑 할 수 있다. 202..
Entity 란? 데이터 베이스 테이블과 Mapping되는 자바 클래스를 말한다. 1. Entitiy Class 만들기 import jakarta.persistence.*; @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "username", nullable = false, unique = true) private String username; @Column(name = "email", nullable = false) private String email; @ManyToOne @JoinColumn(name = "user_id", nullable =..
MySQL을 Spring에 연결해보자 Spring boot는 JPA(Java Persistence API)를 사용해서 데이터 베이스를 관리하게 된다. ORM(Object-Relational Mapping) 기술을 표준으로 사용한다. JPA의 인터페이스 모음을 구현한 실제 클래스가 필요하다. MYSQL로 데이터베이스를 관리하자 JPA는 자바 객체와 데이터 베이스 간의 매핑을 간편하게 처리할 수 있는 API를 제공한다. 1. 의존성 추가 build.gradle에 의존성을 추가한다. MySQL 드라이버를 사용하기 위해서다. // build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' imp..