๐ ๋ค์ด๊ฐ๋ฉฐ
์ด๋ฒ ๊ธ์์๋ ArrayList๋ฅผ ํ์ฉํด ๊ฐ๋จํ ํ์๊ฐ์
ยท๋ก๊ทธ์ธ ์์ฉ ๋ฌธ์ ๋ฅผ ํ์ด๋ณธ๋ค. ์์ด๋ ์ค๋ณต ๊ฒ์ฌ, ๋น๋ฐ๋ฒํธ ์ํธํ๊น์ง ๋ฃ์ด, ๋ฐฐ์ด ๊ฒ๋ค์ ํ๋๋ก ์ฎ์ด๋ณด์.
์ ๋ฐฐ์ด์ด ์๋๋ผ ArrayList? ์ผ๋ฐ ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ ๊ณ ์ ์ด์ง๋ง, ArrayList๋ ์ถ๊ฐยท์์ ยท์ญ์ ๊ฐ ์์ ๋กญ๋ค. ํ์์ด ๋๊ณ ์ฃผ๋ ์ํฉ์ ์ ํฉํ๋ค.
์ ์ฒด ๊ตฌ์กฐ๋ ์ธ ํด๋์ค๋ก ๋๋๋ค.
| ํด๋์ค | ์ญํ |
|---|
User | ํ์ ๋ฐ์ดํฐ(id, pw)๋ฅผ ๋ด๋ ๊ฐ์ฒด |
UserField | DB(ArrayList) + ์ค๋ณต๊ฒ์ฌยท์ํธํยทํ์๊ฐ์
ยท๋ก๊ทธ์ธ ๋ก์ง |
UserMain | ์ค์ ๋ก ์คํํ๋ ์ง์
์ |
1. User ํด๋์ค โ ๋ฐ์ดํฐ ๊ฐ์ฒด
id์ pw๋ง ๋๊ณ , private ํ๋์ ์ ๊ทผํ ์ ์๋๋ก ๊ธฐ๋ณธ ์์ฑ์์ Getter/Setter๋ฅผ ๋ง๋ ๋ค.
1
2
3
4
5
6
7
8
9
10
11
12
13
| package day16;
public class User {
private String id;
private String pw;
public User() {}
public String getId() { return id; }
public void setId(String id) { this.id = id; }
public String getPw() { return pw; }
public void setPw(String pw) { this.pw = pw; }
}
|
2. UserField ํด๋์ค โ ๋ก์ง ๋ชจ์
DB (ArrayList)
1
2
| ArrayList<User> users = new ArrayList<>(); // User ๊ฐ์ฒด๋ค์ ์ ์ฅ
Scanner sc = new Scanner(System.in);
|
์์ด๋ ์ค๋ณต๊ฒ์ฌ
1
2
3
4
5
6
7
8
9
| public User checkId(String id) {
User user = null;
for (int i = 0; i < users.size(); i++) {
if (users.get(i).getId().equals(id)) {
user = users.get(i); // ์ค๋ณต์ด๋ฉด ๊ทธ ๊ฐ์ฒด ๋ฐํ
}
}
return user; // ์ค๋ณต ์์ผ๋ฉด null ๋ฐํ
}
|
๐ก ์ค๋ณต์ด๋ฉด ํด๋น User ๊ฐ์ฒด๋ฅผ, ์์ผ๋ฉด null์ ๋ฐํํ๋ค. ์ด ๋ฐํ๊ฐ์ ๋ก๊ทธ์ธยทํ์๊ฐ์
์์ชฝ์์ ํ์ฉํ๋ค.
์ํธํ (๋จ๋ฐฉํฅ)
1
2
3
4
5
6
7
| public String encrypt(String pw) {
String en_pw = "";
for (int i = 0; i < pw.length(); i++) {
en_pw += (char)pw.charAt(i) * 3; // ์์คํค์ฝ๋ ร 3
}
return en_pw;
}
|
โ ๏ธ pw๋ฅผ ํ๋ฌธ์ผ๋ก ์ ์ฅํ๋ฉด ๋ณด์ ์ํ์ด ์์ด, ๊ฐ๋จํ ์์คํค์ฝ๋ ร 3์ผ๋ก ๋จ๋ฐฉํฅ ์ํธํํ๋ค. (์ค๋ฌด์์๋ BCrypt ๋ฑ ๊ฒ์ฆ๋ ํด์๋ฅผ ์จ์ผ ํ๋ค.)
ํ์๊ฐ์
1
2
3
4
| public void makeId(User user) {
user.setPw(encrypt(user.getPw())); // ์ํธํํ pw๋ก ๊ต์ฒด
users.add(user); // ArrayList์ ์ถ๊ฐ
}
|
๐ก ํ๋์ ๋ฉ์๋์ ๋ชจ๋ ๊ธฐ๋ฅ์ ๋ชฐ์๋ฃ์ง ๋ง์. ์ค๋ณต๊ฒ์ฌ๋ ๋ณ๋ ๋ฉ์๋๋ก ๋นผ๊ณ , ํ์๊ฐ์
์ โ์ํธํ + ์ถ๊ฐโ๋ง ๋ด๋นํ๊ฒ ํ๋ค.
๋ก๊ทธ์ธ
1
2
3
4
5
6
7
8
9
| public boolean logIn(String id, String pw) {
User user = checkId(id); // ์์ด๋ ์กด์ฌ ํ์ธ
if (user != null) { // ์์ด์ผ ๋ก๊ทธ์ธ ๊ฐ๋ฅ
if (user.getPw().equals(encrypt(pw))) { // ์ํธํ ํ ๋น๊ต
return true;
}
}
return false;
}
|
3. UserMain ํด๋์ค โ ์คํ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| package day16;
public class UserMain {
public static void main(String[] args) {
UserField uf = new UserField();
User newUser = new User();
User checkUser = uf.checkId("easydong02"); // โ ์ค๋ณต ๊ฒ์ฌ
if (checkUser == null) { // ์์ผ๋ฉด ๊ฐ์
System.out.println("์ฌ์ฉ ๊ฐ๋ฅํ ์์ด๋");
newUser.setId("easydong02");
newUser.setPw("1234");
uf.makeId(newUser);
System.out.println("ํ์๊ฐ์
์ฑ๊ณต!");
} else {
System.out.println("์ค๋ณต๋ ์์ด๋");
}
checkUser = uf.checkId("easydong02"); // โก ๊ฐ์ ์์ด๋ ์ฌ๊ฒ์ฌ
if (checkUser == null) {
System.out.println("์ฌ์ฉ ๊ฐ๋ฅํ ์์ด๋");
} else {
System.out.println("์ค๋ณต๋ ์์ด๋"); // ์ด๋ฒ์ ์ค๋ณต!
}
}
}
|
๋์ ํ๋ฆ์ ์ด๋ ๋ค.
1
2
| โ easydong02 ๊ฒ์ฌ โ ์์ โ ๊ฐ์
โ "์ฌ์ฉ ๊ฐ๋ฅํ ์์ด๋" + "ํ์๊ฐ์
์ฑ๊ณต!"
โก easydong02 ์ฌ๊ฒ์ฌ โ ์ด๋ฏธ ์์ โ "์ค๋ณต๋ ์์ด๋"
|
์ถ๋ ฅ ๊ฒฐ๊ณผ: โ์ฌ์ฉ ๊ฐ๋ฅํ ์์ด๋โ โ โํ์๊ฐ์
์ฑ๊ณต!โ โ โ์ค๋ณต๋ ์์ด๋โ ์ธ ๋ฌธ์ฅ์ด ์ ๋์จ๋ค.
๐ ์ ๋ฆฌ
1
2
3
4
| ArrayList ํ์ ๊ด๋ฆฌ
โโ User ๋ฐ์ดํฐ ๊ฐ์ฒด (id, pw + Getter/Setter)
โโ UserField DB(ArrayList) + checkId ยท encrypt ยท makeId ยท logIn
โโ UserMain ์คํ: ๊ฐ์
โ ์ฌ๊ฒ์ฌ๋ก ์ค๋ณต ํ์ธ
|
| ๊ฐ๋
| ํ ์ค ์ ์ |
|---|
| ArrayList | ํฌ๊ธฐ๊ฐ ์ ๋์ ์ธ ๋ฆฌ์คํธ (add/get/size) |
| ์ญํ ๋ถ๋ฆฌ | ํ ๋ฉ์๋๊ฐ ํ ๊ฐ์ง ์ผ๋ง ํ๋๋ก |
| ๋จ๋ฐฉํฅ ์ํธํ | ๋ณต์ ๋ถ๊ฐ๋ฅํ๊ฒ pw๋ฅผ ๋ณํ |
ํ์๊ฐ์
ยท๋ก๊ทธ์ธ์ด ์ฒ์์ ์ด๋ ค์ ๋ณด์์ง๋ง, ๋ฐฐ์ด ๊ฒ๋ค(ํด๋์คยทArrayListยท๋ฉ์๋ยท์กฐ๊ฑด๋ฌธ)์ ์ฐจ๊ทผ์ฐจ๊ทผ ์กฐํฉํ๋ ์ถฉ๋ถํ ๋ง๋ค ์ ์์๋ค. ์ค๋ฌด์์๋ ๋ณธ์ธ์ธ์ฆยท๋น๋ฐ๋ฒํธ ๊ท์น ๋ฑ์ด ๋ํด์ง์ง๋ง, ๊ธฐ๋ณธ ๊ณจ๊ฒฉ์ ์ด์ ๊ฐ๋ค.
Comments powered by Disqus.