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

[자바(JAVA)] 자바 프레임워크 소개

by GDNGY 2023. 4. 30.

30. 자바 프레임워크 소개

30.1. 프레임워크 개요

프레임워크란 애플리케이션 개발 시 기본적인 구조와 공통적인 기능을 제공하는 소프트웨어 뼈대입니다. 프레임워크를 사용하면 개발자는 비즈니스 로직에 집중할 수 있고, 반복적인 작업을 줄이고 개발 속도를 향상할 수 있습니다. 자바 프레임워크는 웹 개발, 데이터베이스 연동, 보안 등 다양한 분야에서 사용됩니다.

 

30.2. 스프링 프레임워크

스프링 프레임워크(Spring Framework) 자바 기반의 오픈 소스 애플리케이션 프레임워크로, 엔터프라이즈급 애플리케이션 개발에 널리 사용됩니다. 스프링 프레임워크는 제어 역행(IoC, Inversion of Control) 원칙을 구현한 컨테이너와 다양한 모듈로 구성되어 있습니다. 주요 특징은 다음과 같습니다.

 

  • 의존성 주입(Dependency Injection, DI): 객체 간의 의존 관계를 설정하고 관리하는 기능입니다. 이를 통해 코드의 결합도를 낮추고 유지 보수를 용이하게 합니다.
public class MyService {
    @Autowired
    private MyRepository repository;
}

 

  • AOP(Aspect-Oriented Programming): 관심사의 분리를 통해 코드의 재사용성과 유지 보수성을 향상합니다.트랜잭션 처리, 로깅, 보안 공통적인 기능을 분리하여 관리할 있습니다.
@Aspect
public class LoggingAspect {
    @Before("execution(* com.example.service.*.*(..))")
    public void logBefore(JoinPoint joinPoint) {
        System.out.println("메서드 호출 전: " + joinPoint.getSignature().getName());
    }
}

 

30.3. 하이버네이트

하이버네이트(Hibernate)는 자바 기반의 객체 관계 매핑(ORM, Object-Relational Mapping) 프레임워크로, 객체 지향적인 자바 코드와 관계형 데이터베이스의 데이터를 매핑하는 데 사용됩니다. 이를 통해 개발자는 SQL 쿼리 없이 데이터베이스와 상호작용할 수 있으며, 데이터베이스의 종류에 상관없이 동일한 코드를 사용할 수 있습니다.

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

// 사용 예시
Session session = sessionFactory.openSession();
session.beginTransaction();

User user = new User();
user.setName("John Doe");
user.setEmail("john.doe@example.com");

session.save(user);
session.getTransaction().commit();
session.close();

 

30.4. 마이바티스

마이바티스(MyBatis)는 자바의 SQL 매퍼 프레임워크로, 자바 객체와 SQL 쿼리를 매핑해주는 역할을 합니다. 마이바티스를 사용하면 SQL 쿼리를 XML 파일이나 어노테이션을 통해 관리할 수 있으며, 쿼리 결과를 자동으로 자바 객체로 변환해 줍니다.이를 통해 복잡한 쿼리를 효과적으로 관리하고, 코드의 가독성과 유지 보수성을 높일 수 있습니다.

  • 마이바티스(MyBatis) Mapper XML 사용 예시
<!-- mapper.xml -->
<mapper namespace="com.example.mapper.UserMapper">
    <select id="getUserById" parameterType="long" resultType="com.example.User">
        SELECT * FROM users WHERE id = #{id}
    </select>
</mapper>

 

  • 자바메서 마이바티스(MyBatis) 쿼리 호출 예시
public interface UserMapper {
    User getUserById(long id);
}

// 사용 예시
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);

 

이상으로 자바 프레임워크에 대한 소개를 마칩니다. 스프링 프레임워크는 웹 애플리케이션 개발에 널리 사용되는 프레임워크로, 의존성 주입과 AOP를 통해 코드의 품질을 향상시킵니다. 하이버네이트와 마이바티스는 데이터베이스 연동을 쉽게 해주는 프레임워크로, ORM 및 SQL 매퍼의 기능을 제공합니다. 이러한 프레임워크를 사용하여 자바 애플리케이션 개발을 보다 효율적으로진행해 보세요.

반응형

댓글