/**
 * 사용자 관련 인터페이스
 */
package org.springframework.samples.kyuriboard.dao;

import java.util.List;

import org.springframework.dao.DataAccessException;
import org.springframework.samples.kyuriboard.domain.User;

/**
 * @author DAMI(archy712@naver.com)
 *
 * User 도메인 클래스에 대한 처리
 */
public interface UserDao {
	
	
	/**
	 * 주어진 사용자ID로 사용자를 반환한다. 
	 * @param userId 사용자ID
	 * @return User 사용자
	 * @throws DataAccessException
	 */
	User getUserByUserId(String userId) throws DataAccessException;
	
	
	/**
	 * 주어진 사용자ID와 비밀번호로 사용자를 반환한다.
	 * @param userId 사용자ID
	 * @param passwd 사용자 비밀번호
	 * @return User 사용자
	 * @throws DataAccessException
	 */
	User getUserByUserIdAndPasswd(String userId, String passwd) throws DataAccessException;
	
	
	/**
	 * 주어진 사용자를 입력한다.
	 * @param user 사용자
	 * @throws DataAccessException
	 */
	void insertUser(User user) throws DataAccessException;
	
	
	/**
	 * 주어진 사용자를 수정한다.
	 * @param user 사용자
	 * @throws DataAccessException
	 */
	void updateUser(User user) throws DataAccessException;
	
	
	/**
	 * 사용자 리스트를 반환한다.
	 * @return java.util.List 사용자 리스트
	 * @throws DataAccessException
	 */
	List getUserList() throws DataAccessException;
	

}
