본문 바로가기
자료 구조/기본 개념

[자료 구조] 11. Set 인터페이스 예제 : 고유 사용자 ID 관리 시스템

글: Song hyun 2024. 5. 10.
728x90
반응형

[자료 구조] 11. Set 인터페이스 예제 : 고유 사용자 ID 관리 시스템

 

예제 개념: 고유 사용자 ID 관리 시스템

상황 설명: 웹사이트에 접속하는 사용자의 ID를 관리하는 시스템을 개발합니다. 사용자 ID는 고유해야 하며 중복을 허용하지 않습니다. 시스템은 사용자가 로그인할 때마다 ID를 체크하고, 새로운 사용자 ID를 등록할 때 중복을 방지합니다.


1. 풀이 코드와 작성한 코드를 비교하며 느낀 점

 

(좌) 선생님의 풀이 코드 (우) 내가 작성한 코드


2. 풀이 코드

// 시스템 실행 
public void run() {
	// 동작 - 스캐너 활용 
	// 실행 흐름 만들기 --> while , if 
	// 결과 -> 정상 유저 등록 
	//      -> 이미 등록된 사용자 입니다. 
	Scanner scanner = new Scanner(System.in);
	while (true) {
		System.out.println("사용자 아이디를 입력 하세요");
		String input = scanner.nextLine(); // String 값 입력 받기 
		if("exit".equals(input)) {
			System.out.println("시스템을 종료 합니다.");
			break; // while 종료 
		}
		boolean isRegistered = registerUserID(input);
		if(isRegistered) {
			System.out.println("새로운 사용자가 등록 되었습니다" + input);
		} else {
			System.out.println("이미 등록된 사용자 입니다" + input);
		}
	}
	scanner.close();
	 
}

 

3. 내가 작성한 코드

package Structure.ch06;

import java.util.HashSet;
import java.util.Scanner;

public class UniqueUserIDSystem {
	
	private HashSet<String> userIDs;
	
	public UniqueUserIDSystem() {
		this.userIDs = new HashSet<String>();
	}
	
	// 사용자 ID 등록 기능
	// 정상적으로 들어가면 true
	// 중복 발생하면 false
	public boolean registerUserID(String userID) {
		if(userIDs.add(userID)==false) {
			System.out.println("이미 등록된 사용자입니다.");
			System.out.println("------------------");
			return false;
		} else {
			System.out.println("성공적으로 등록되었습니다.");
			System.out.println("------------------");
			return userIDs.add(userID);
		}
	}
	
	// 시스템 실행
	public void run() {
		// 동작 - 스캐너 활용
		// 실행 흐름 만들기 -> while, if
		// 결과 -> 정상 유저 등록
		int count =0;
		while(count<2) {
			System.out.println("------------------");
			System.out.println("로그인을 시작합니다. ID를 입력해주세요 : ");
			
			Scanner scanner = new Scanner(System.in);
			String userID=scanner.next();
			registerUserID(userID);
			count++;
			
		}
		System.out.println(userIDs);
		
	}
	
	private Scanner next() {
		// TODO Auto-generated method stub
		return null;
	}

	// 코드 테스트
	public static void main(String[] args) {
		UniqueUserIDSystem system =new UniqueUserIDSystem();
		system.run();
		
	} // end of main

}
728x90
반응형