[Spring] 스프링이란? 스프링을 이해하기 위한 방법과 실습
- Language/Spring
- 2018. 6. 16.
스프링이란
스프링은 자바 엔터프라이즈 애플리케이션 개발에 사용되는 애플리케이션 프레임워크다. 애플리케이션 프레임워크는 애플리케이션 개발을 빠르고 효율적
으로 할 수 있도록 애플리케이션의 바탕이 되는 틀과 공통 프로그래밍 모델, 기술 API를 제공해준다.
스프링을 이해하기 위한 방법
스프링은 자바를 기반으로 한 기술이다. 스프링이 자바에서 가장 중요하게 가치르르 두는 것은 바로 객체지향 프로그래밍이 가능한 언어라는 점이다. 스프링이 가장 관심을 많이 두는 대상은 오브젝트다. 스프링을 이해하려면 먼저 오브젝트에 깊은 관심을 가져야 한다. 오브젝트에 대한 관심은 오브젝트의 기술적인 특징과 사용 방법을 넘어서 오브젝트의 설계로 발전하게 된다. 객체지향 설계(object oriented design)의 기초와 원칙을 비롯해서, 다양한 목적을 위해 재활용 가능한 설계 방법인 디자인 패턴, 좀 더 깔끔한 구조가 되도록 지속적으로 개선해나가는 작업인 리팩토링, 오브젝트가 기대한 대로 동작하고 있는지를 효과적으로 검증하는 데 쓰이는 단위 테스트와 같은 오브젝트 설계와 구현에 관한 여러 가지 응용 기술과 지식이 요구된다. 스프링은 오브젝트를 어떻게 효과적으로 설계하고 구현하고, 사용하고, 이를 개선해나갈 것인가에 대한 명쾌한 기준을 마련해 준다.
자 이제 스프링이 관심을 갖는 대상인 오브젝트의 설계와 구현, 동작원리에 더 집중해보자 그러면 자연스럽게 스프링이 무엇인지도 알 수 있을 것이다.
스프링을 이해하기 위한 실습
사용자 정보를 JDBC API를 통해 DB에 저장하고 조회할 수 있는 간단한 DAO를 하나 만들어 보자.
사용자 정보를 저장할 User클래스를 만든다. 리스트는 id, name, passwrod 세개 의 프로퍼티를 가진 User 클래스다.
package user.domain; public class User { String id; String name; String password; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } | cs |
이제 MySql을 이용하여 User 오브젝트에 담긴 정보가 실제로 보관될 DB의 테이블을 하나 만들어보자.
create table users ( id varchar(10) primary key, name varchar(20) not null, password varchar(10) not null ) | cs |
다음으로 사용자 정보를 DB에 넣고 관리할 수 있는 DAO 클래스를 만들어보자.
package user.dao; public class UserDao { public void add(User user) throws ClassNotFoundException, SQLException { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection(jdbc:mysql://localhost/toby_spring", "root", "asdf"); PreparedStatement ps = con.prepareStatement("insert into users(id, name, password) value(?,?,?)"); ps.setString(1, user.getId()); ps.setString(2, user.getName()); ps.setString(3, user.getPassword()); ps.execute(); ps.close(); con.close(); } public User get(String id) throws ClassNotFoundException, SQLException { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost/toby_springe", "root", "asdf"); PreparedStatement ps = con.prepareStatement("select * from users where id = ?"); ps.setString(1, id); ResultSet rs = ps.executeQuery(); rs.next(); User user = new User(); user.setId(rs.getString("id")); user.setName(rs.getString("name")); user.setPassword(rs.getString("password")); rs.close(); ps.close(); con.close(); return user; } } |
add()메소드는 사용자를 추가한 것이고 get()메소드는 사용자 정보를 가져오는 메소드이다.
DAO의 기능이 올바르게 작동되는지 확인하려면 웹 애플리케이션을 만들어 서버에 배치하고, 웹 브라우저를 통해 DAO기능을 사용하는 것이다 간단한 DAO의 기능을 시험하기 위해서 이러한 짓을 하는건 너무 부담이 크다. 그래서 get() 메소드 밑에 바로 main() 메소드를 만들어 실행해 보자
public static void main(String[] args) throws ClassNotFoundException, SQLException { UserDao dao = new UserDao(); User user = new User(); user.setId("kang3"); user.setName("현수"); user.setPassword("1234"); dao.add(user); System.out.println(user.getId() + "등록 성공"); User user2 = dao.get(user.getId()); System.out.println(user2.getName()); } } | cs |
'Language > Spring' 카테고리의 다른 글
[SpringBoot] 스프링부트 Gradle 프로젝트 빌드하고(jar파일 생성) 실행하는법 (0) | 2021.11.11 |
---|---|
[Spring] 스프링 부트의 라이브러리 의존관계와 View 환경 (0) | 2021.11.10 |
[Spring]스프링 부트 사이트를 이용해 스프링 프로젝트(Gradle) 생성하는법, IntelliJ 셋팅 방법 (0) | 2021.11.08 |
[Spring] 스프링의 이해를 위한 스프링 정의 풀이해석 (0) | 2019.08.27 |
[Spring] UserDao분리 실습으로 알아본 리팩토링과 메소드 추출 (0) | 2018.06.16 |