1 분 소요

안녕하세요. Nerd-Lee입니다.
공부 내용은, 인프런 박매일님의 [NarP Series]MVC 프레임워크는 내 손에[나프1탄] 을 참고하였습니다.
MVC 1단계인, Servlet 환경으로만 만들어보고, MVC 2단계로 넘어가고
나중에는 Spring Framework를 사용하는 방식의 강의입니다.
MVC 1단계는, Controller + Model 만을 사용하는 방식입니다.


1. 한글처리 방법

  • 영어와는 다르게 한글은 한글자당 2byte를 가지고 있다. 영어는 1byte다. (이건 알고 있는 내용이니깐..)
    이름에 한글을 입력하게 되면 다음과 같이 출력이 된다.


  • 그럼 한글이 깨지지 않게 하는 방법을 한 번 알아보도록 하자.
  • 방법은 간단하다. 클라이언트에서 온 데이터는 request를 통해 전달받기 때문에, request의 인코딩 방식을 utf-8 로 변경해주면 된다.
  • request.setCharacterEncoding("utf-8");를 추가해주자
@WebServlet("/memberInsert.do")
public class MemberInsertController extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		request.setCharacterEncoding("utf-8");
		// 1. 클라이언트에서 넘어온 파라미터 수집(VO에 하나의 정보로 묶어서 넣어주면 된다.)
		String id = request.getParameter("id");
		String password = request.getParameter("password");
		String name = request.getParameter("name");
		int age = Integer.parseInt(request.getParameter("age"));
		String email = request.getParameter("email");
		String phone = request.getParameter("phone");
		
		// vo 수집은, 생성자로 해도 되고, Setter로 해도 된다.
		//MemberVO vo = new MemberVO(id, password, name, age, email, phone);
		MemberVO vo = new MemberVO();
		vo.setId(id);
		vo.setPassword(password);
		vo.setAge(age);
		vo.setName(name);
		vo.setEmail(email);
		vo.setPhone(phone);
		
		System.out.println(vo.toString());
	}
}

2. 데이터 베이스 연결

  • 데이터베이스를 연결하기 위해서는, URL과, user, password가 필요하다.
  • user와 password는 데이터베이스를 만들 때 생성한 이름과 암호를 변수에 넣어주면 되고
    주소는 다음과 같이 찾을 수 있다.
  • Data Source Explorer - SQL 데이터베이스 오른쪽 마우스 클릭 - Properties - Driver Properties 를 누르면, URL이 나온다.
  • 해당 URL을 복사해서, 변수에 저장한다.
  • 그리고, DB회사에서 제공해주는 driver를 다운받거나, 전자정부 프레임워크를 사용한다면
    maven - repository - mysql - mysql-connector-java - 원하는 버전 에서
    mysql-connector-java-versionWEB-INF - lib 폴더에 복사해주면 된다.
  • 그 다음, Driver를 로딩해줘야 한다. MySQL은 com.mysql.jdbc.Driver 이다.
  • Class.forName("com.mysql.jdbc.Driver") 을 try catch 문을 이용해, Driver 클래스를 찾고
    DriverManager.getConnection(URL, user, password); 를 해주면 되는데, getConnection은, 데이터베이스 연결정보들을 반환한다.
    그게 바로 Connection 클래스형태로 반환을 하기 때문에, conn이란 변수에 반환된 값을 대입하면 된다.

3. 데이터베이스 Driver란?

  • 대표적인 데이터베이스로, MySQL, ORACLE, MS-SQL이 있다.
    그런데 만약 이 회사들이 사용하는 API가 다르다면 어떻게 될까?
    MySQL로 만들어진 프로젝트에서 갑자기 MS-SQL로 바뀐다..? 그럼 하나하나 다시 전부 바꿔줘야하는가? 그건 아니다.
    그래서 각자 프로그램에서 제공하는 것이 Driver다.
    자바에서 제공하는 interface를 가지고, 각 DB 회사들은 자신들만의 클래스를 만든다.
    그럼 해당 회사들이 그 클래스들을 제공하도록 하는 것이 바로 Driver가 된다.
    그래서 자바 개발자들은, JDBC(java.sql)만 알면 되고, 각 회사에 맞는 Driver만 있으면 사용이 가능해진다.

  • 연결이 되는 지 안되는 지는 다음 강의에서, insert 쿼리를 만들면서 확인을 해볼 것이다.


이 글이 도움이 되셨다면 댓글 부탁드립니다^^
다음 글로 찾아오겠습니다!