프로그램, 특히 db에서 pw를 반환해주면 안된다.

	private ArrayList<MemberDTO> selectAll(MemberDTO memberDTO){ // 코드의 결합도가 낮아짐 ★
		ArrayList<MemberDTO> datas = new ArrayList<>();
		if(memberDTO.getMemberCondition().equals("ALL")) {
			for (int i = 0; i < this.datas.size(); i++) {
				MemberDTO data = new MemberDTO();
				data.setMemberId(this.datas.get(i).getMemberId());
				// Passwd 반환 금지
				// data.setMemberPasswd(this.datas.get(i).getMemberPasswd());
				data.setMemberName(this.datas.get(i).getMemberName());
				datas.add(data);
			}
		}
		
		return datas;
	}
	public MemberDTO selectOne(MemberDTO memberDTO) {
		for(int i=0;i<this.datas.size();i++) {
			if(this.datas.get(i).getMemberId().equals(memberDTO.getMemberId())) {
				if(this.datas.get(i).getMemberPasswd().equals(memberDTO.getMemberPasswd())){
					MemberDTO data = new MemberDTO();
					data.setMemberId(this.datas.get(i).getMemberId());
					// Passwd 반환 금지
					// data.setMemberPasswd(this.datas.get(i).getMemberPasswd());
					data.setMemberName(this.datas.get(i).getMemberName());
					return data;
				}
				System.out.println(" [로그] MemberDAO.selectOne() 해당하는 비밀번호가 없습니다.");
				return null;
			}
		}
		System.out.println(" [로그] MemberDAO.selectOne() 해당하는 아이디가 없습니다.");
		return null;
	}

백단에서 로그인 부분 코딩시

// 로그인
			else if (command == 2) {
				// 입력받기
				// 아이디
				String memberId = this.client.getMemberId();
				// 비밀번호
				String memberPasswd = this.client.getMemberPasswd();
				
				MemberDTO mDTO = new MemberDTO();
				mDTO.setMemberId(memberId);
				mDTO.setMemberPasswd(memberPasswd);
				
				// 찾으면 값, 못찾으면 null
				MemberDTO member = this.mDAO.selectOne(mDTO);
				
				// 백단에서 pw를 막기도 함
				//member.setMemberPasswd(null);

하지만 이렇게하면 db에서 막는것에 비해 보안이 살짝 떨어지기도 한다.

update와 delete 모두 하나를 잡아서 수정/삭제 하기때문에 selectOne의 느낌을 포함한다.

기능 추가