본문 바로가기
GD's IT Lectures : 기초부터 시리즈/자바(JAVA) 기초부터 ~

[자바(JAVA)] 스프링 프레임워크

by GDNGY 2023. 4. 30.

31. 스프링 프레임워크

31.1. 스프링 프레임워크 개요

스프링 프레임워크(Spring Framework) 자바 기반의 오픈 소스 애플리케이션 프레임워크로, 엔터프라이즈급 애플리케이션 개발에 널리 사용됩니다. 스프링 프레임워크는 모듈화된 구조로 되어 있어 필요한 부분만 선택적으로 사용할 있으며, 다양한 기능을 제공합니다. 이번 섹션에서는 스프링 프레임워크의 주요 기능에 대해 알아봅니다.

 

31.2. 스프링 IoC 컨테이너 및 빈 관리

IoC(Inversion of Control) 컨테이너는 객체의 생명 주기와 의존성을 관리하는 역할을 합니다. 스프링에서는 (Bean)이라고 불리는 객체들을 컨테이너에 등록하고, 필요한 곳에서 의존성 주입(Dependency Injection, DI) 통해 사용합니다.

@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}

public class MyController {
    @Autowired
    private MyService myService;
}

 

31.3. 스프링 AOP

스프링 AOP(Aspect-Oriented Programming) 관심사를 분리하여 코드의 재사용성과 유지 보수성을 향상시키는 기술입니다. 트랜잭션 처리, 로깅, 보안 공통적인 기능을 분리하여 관리할 있습니다.

@Aspect
@Component
public class LoggingAspect {
    @Before("execution(* com.example.service.*.*(..))")
    public void logBefore(JoinPoint joinPoint) {
        System.out.println("메서드 호출 전: " + joinPoint.getSignature().getName());
    }
}

 

31.4. 스프링 MVC

스프링 MVC Model-View-Controller 패턴을 구현한 애플리케이션 개발 프레임워크입니다. 이를 통해 요청 처리, 데이터 처리, 응답 반환 애플리케이션 개발을 쉽게 있습니다.

@Controller
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/{id}")
    public String getUser(@PathVariable Long id, Model model) {
        User user = userService.findById(id);
        model.addAttribute("user", user);
        return "user";
    }
}

 

31.5. 스프링 데이터 및 트랜잭션 관리

스프링 프레임워크는 데이터베이스 연동 트랜잭션 관리를 쉽게 있는 기능을 제공합니다. 스프링 데이터(Spring Data) 다양한 데이터 저장소와의 통합을 지원하며, 특히 JPA(Java Persistence API) 사용한 데이터베이스 연동에 강점을 가지고 있습니다. 스프링의 트랜잭션 관리를 사용하면 선언적 트랜잭션을 지원하여 트랜잭션 처리를 단순화할 있습니다.

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String email;
    // getter, setter 생략
}

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}

@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;

    @Transactional
    public User createUser(User user) {
        return userRepository.save(user);
    }
}

 

이상으로 스프링 프레임워크의 주요 기능에 대해 알아보았습니다. 스프링 프레임워크는 IoC 컨테이너를 통한 객체 관리, AOP 통한 관심사의 분리, MVC 통한 애플리케이션 개발, 데이터 트랜잭션 관리 다양한 기능을 제공하며, 이를 활용하여 생산성 높은 애플리케이션 개발을 있습니다. 이러한 기능들을 이용하여 다양한 애플리케이션을 구현해 보세요.

 

반응형

댓글