JAP를 사용하는 이유를 알아보기 위해 일단 JAP가 생긴 배경과 기존 기술들과의 차이점을 먼저 알아보겠습니다.
Spring Framework로 개발할 때 Data Access Layer에서 사용하는 기술은 크게 3가지입니다.
1. JDBC
2. SQL Mapper (ex:MyBatis)
3. ORM (ex:JPA)
위의 기술들은 영속성을 구현하기 위해 나왔습니다.
이처럼 객체의 상태를 DB에 저장하면서 객체에게 영속성을 부여하고있다.



public Optional<Member> findByName(String name) {
        String sql = "select * from member where name = ?";
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {
            conn = getConnection();
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, name);
            rs = pstmt.executeQuery();
            if (rs.next()) {
                Member member = new Member();
                member.setId(rs.getLong("id"));
                member.setName(rs.getString("name"));
                return Optional.of(member);
            }
            return Optional.empty();
        } catch (Exception e) {
            throw new IllegalStateException(e);
        } finally {
            close(conn, pstmt, rs);
        }
    }