[Java] ์ž๋ฐ”์˜ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Object-Oriented Programming) + ArrayList - ์˜ˆ์‹œ ์ฝ”๋“œ ํ’€์ด

2021. 3. 3. 20:59ใ†๊ฐœ๋… ์ •๋ฆฌ ์ž‘์—…์‹ค/Java

728x90
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š”? ์ฃผ๋‹ˆํ•˜๋ž‘ ์ž…๋‹ˆ๋‹ค.

์˜ค๋Š˜์€ ๊ฐ์ฒด์ง€ํ–ฅ + List์™€ ArrayList๋ฅผ ๋ฐฐ์šด ๊ฒƒ์ด์—์š” List์™€ ArrayList๋Š” ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์ด๊ณ ,
์ด๊ฒƒ์„ ์ด์šฉํ–ˆ๋˜ ์ฝ”๋“œ ์˜ˆ์‹œ๋ฅผ ๋ถ„์„ ํ•ด ๋ณด๋ฉด์„œ ๊ณต๋ถ€ ํ•ด ๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

๊ทธ๋Ÿผ ๋ฐ”๋กœ ์‹œ์ž‘ ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!

 

 

 

๐Ÿ“Œ ๊ต์œก ๊ณผ์ • ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ (๊ฐ์ฒด์™€ ์ปฌ๋ ‰์…˜ list ๋ฐฐ์—ด ์‚ฌ์šฉ)

   ๐Ÿ“ ArrayAndList02.java (Main)


package com.test.collection;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class ArrayAndList02 {

	// "๊ต์œก๊ณผ์ •" ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ 
	public static void main(String[] args) {
		CourseService service = new CourseService();
		Scanner kb = new Scanner(System.in);
		// ๊ณ„์†ํ•ด์„œ ์‹คํ–‰๋œ๋‹ค.
		while(true) {
			// ๋ช…๋ น(String)์„ ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค
			System.out.println("cmd >");
			String cmd = kb.nextLine();
			//	๋ช…๋ น์— ํ•„์š”ํ•œ ์ฒ˜๋ฆฌ๋ฅผ service ์—๊ฒŒ ๋„˜๊ธด๋‹ค.
			//	์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์ด ๋ฌด์—‡์ธ์ง€ ํ™•์ธํ•˜๊ธฐ : ๋“ฑ๋ก, ์ˆ˜์ •, ๊ฒ€์ƒ‰
			if( cmd.equals("exit")) {// ๊ฐ™์€์ง€ ๋น„๊ตํ•œ๋‹ค.
				break;// stop while
			}
			// ์œ„์— ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ด๋‹ค...
			// ๋ชฉ๋ก๋ณด๊ธฐ -> "list"
			if( cmd.equals("list")) {
				// ๋ณด์—ฌ์ค„ ๋ฐ์ดํ„ฐ๋“ค์ด ์–ด๋””์— ์žˆ๋‚˜, ๋ˆ„๊ตฌ์—๊ฒŒ ์š”์ฒญํ•ด์•ผ ํ•˜๋‚˜
				String result = service.getAll();
				System.out.println(result);
			}
			// ๋“ฑ๋กํ•˜๊ธฐ,์ถ”๊ฐ€ํ•˜๊ธฐ
			if( cmd.equals("new")) {
				// form ์ž…๋ ฅ๋ฐ›๊ธฐ
				Course course = new Course();
				System.out.println("๊ณผ์ •๋ช… > ");
				course.setName(kb.nextLine());// ์ €์žฅํ•  ๋ฌธ์ž์—ด์„ ์ „๋‹ฌ
				System.out.println("๋ถ„๋ฅ˜๋ช… > ");
				course.setCategory(kb.nextLine());
				service.regist(course);
				
			}
			if( cmd.equals("search")) {
				// ๊ฒ€์ƒ‰์–ด ์ž…๋ ฅ ๋ฐ›๊ธฐ
				System.out.println("๊ฒ€์ƒ‰์–ด > ");
				Course course = new Course();
				course.setName(kb.nextLine());
				// ์„œ๋น„์Šค์—๊ฒŒ ์ „๋‹ฌํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›๋Š”๋‹ค.
				List<Course> list = service.get(course);// ArrayList.get(index)
				if( list != null && list.size() > 0) {
					for(int i=0; i<list.size();++i) {
						Course c = list.get(i);
						System.out.println("("+i+")"+c.getName()+"-"+c.getCategory());
					}
					// ์ˆ˜์ •,์‚ญ์ œํ•˜๋ ค๋ฉด ์–ด๋Š ๊ฒƒ? ์„ ํƒ
					System.out.println("edit or del else enter");
					String sub = kb.nextLine();
					if( sub.isEmpty() ) {
						System.out.println("์ง€๋‚˜๊ฐ„๋‹ค.");
					}else {
						// ๊ณต๋ฐฑ์ด ํฌํ•จ๋œ ๋ฌธ์ž์—ด์„ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ์ชผ๊ฐ ๋‹ค/๋‚˜๋ˆˆ๋‹ค
						String[] splited = sub.split(" ");
						int idx = Integer.parseInt(splited[1]);
						Course op = list.get(idx);// ์ˆ˜์ • ๋˜๋Š” ์‚ญ์ œ์˜ ๋Œ€์ƒ์ด ๋˜๋Š” ๊ฒƒ์„ ๊บผ๋‚ธ๋‹ค
						if( splited[0].equals("edit")) {
							System.out.println("(์ˆ˜์ •)๊ณผ์ •๋ช… > ");
							op.setName(kb.nextLine());
							System.out.println("(์ˆ˜์ •)s๋ถ„๋ฅ˜๋ช… > ");
							op.setCategory(kb.nextLine());

						}
						if( splited[0].equals("del")) {
							service.remove(op);
						}
					}
					
				}
				
			}
			//	๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„์„œ ๋ชจ๋‹ˆํ„ฐ์— ์ถœ๋ ฅํ•œ๋‹ค.
		}
		
		System.out.println("exit");
		kb.close();
	}

 

 

 

 

 

   ๐Ÿ“ CourseService.java 


package test_210303;

import java.util.List;

// "๊ต์œก ๊ณผ์ •"์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ๋‹ด๋‹น
public class CourseService {
	
	private CourseDAO dao;	 // "๊ต์œก๊ณผ์ •"๋“ค์ด ์ €์ •๋˜๋Š” ๊ฐ์ฒด
	// DAO๋Š” ์ฐฝ๊ณ  ๊ฐœ๋…์œผ๋กœ ๋„ฃ๊ณ , ๋นผ๋Š” ์—ญํ• ๋งŒ ๋‹ด๋‹น (Storage)
	
	public CourseService() {
		// ํ•„๋“œ์˜ ํ•„์š”ํ•œ ์ดˆ๊ธฐํ™” ์ž‘์—…์„ ์ƒ์„ฑ์ž๊ฐ€ ํ•œ๋‹ค.
		this.dao = new CourseDAO();
	}

	public String getAll() {
		// ์ €์žฅ๋œ Course๋“ค์„ ๋ชจ๋‘ ๋ชจ์•„ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด์„ ๋งŒ๋“ ๋‹ค.
		String s = "";
		
//		if ( dao == null) {
//			System.out.println("dao is null");

		//dao์— ์žˆ๋Š” Course ์ •๋ณด๋“ค์„ ๋ฐ›๋Š”๋‹ค.
		List<Course> list = dao.selectAll();
			if ( list == null || list.size() < 1) { // list๊ฐ€ null์ด๊ฑฐ๋‚˜, ๊ธธ์ด๊ฐ€ 1๋ณด๋‹ค ์ž‘์œผ๋ฉด ์ฆ‰, 0์ด๋ฉด (Data๊ฐ€ ์—†๋‹ค๋ฉด)
				s = "๋“ฑ๋ก๋œ ๊ณผ์ •์ด ์—†์Šต๋‹ˆ๋‹ค!";
			} else {								// list ์•ˆ์— Data๊ฐ€ ์žˆ๋‹ค๋ฉด
				for ( Course c : list) {			// list์˜ ์š”์†Œ์ธ Course๋ฅผ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด Course ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜ c์— ๋„ฃ๋Š”๋‹ค.
					// ๋ฌธ์ž์—ด ์ƒ์„ฑ(ํ•ฉ์น˜๊ธฐ): + ์—ฐ์‚ฐ ๋ฐฉ๋ฒ•๊ณผ StringBuilder();, StringBuffer(); ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ์กด์žฌ.
					s += c.getName() + c.getCategory();
					
				}
			}
			return s;
}


	public void regist(Course course) {
		// ํ™•์ธ, ์ถ”๊ฐ€์ •๋ณด๋ฅผ ๋”ํ•˜์—ฌ ์ €์žฅํ•  ์ค€๋น„๋ฅผ ํ•ด ์ค€๋‹ค.
		dao.save(course);
		
	}

	public List<Course> get(Course course) {
		// TODO Auto-generated method stub
		if ( course != null) {
			if ( course.getName() != null && course.getName().length() > 0) {
				return dao.findByName(course.getName());
			}
		}
		return null;
	}
	public void remove(Course op) {
		// ์‹ค์ œ Course ๋ฐ์ดํ„ฐ๋“ค์€ dao ์— ์žˆ์œผ๋ฏ€๋กœ
		dao.delete(op);
	}
}

 

 

 

 

 

   ๐Ÿ“ CourseDAO.java 


package bitcamp_210303;

import java.util.ArrayList;
import java.util.List;

// Course Info Storage
public class CourseDAO {

	private List<Course> storage;
	
	public CourseDAO() {
		this.storage = new ArrayList<Course>(); // List๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ผ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ๊ตฌํ˜„์ฒด์ธ ArrayList๋ฅผ ์‚ฌ์šฉํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
		
	}
	
	public List<Course> selectAll() {
		// ํ˜„์žฌ ์ €์žฅ๋œ ๋ชจ๋“  ๊ฒƒ์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ Method
		// ์ƒ์„ฑ์ž์— ์˜ํ•ด ์ดˆ๊ธฐํ™”๋œ storage๋Š” null์ด ๋ฐ˜ํ™˜๋  ์ผ์€ ์—†๋‹ค.
		
		
		
		return this.storage;
	}

	public void save(Course course) {
		// List์— ์ถ”๊ฐ€ํ•˜๋Š” ๋™์ž‘
		this.storage.add(course);
		
	}

	public List<Course> findByName(String name) {
		// ๊ฒ€์ƒ‰์—์„œ๋Š” ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์„ ์ฐพ์„ ๊ฒƒ์ธ์ง€, ํฌํ•จ๋˜๋Š” ๊ฒƒ์„ ์ฐพ์„ ๊ฒƒ์ธ์ง€ ์ •ํ•ด์•ผ ํ•œ๋‹ค.
		// ๋‘˜ ์ค‘์— ๋ญ˜ ํ•ด์•ผ ๋ ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด ์ผ๋‹จ, ์ผ์น˜๋กœ ๊ฐ€์ž!
		// ๊ฒ€์ƒ‰์€ ๋ฐ˜๋ณต์ด๋‹ค ๋ฐ˜๋ณตํ•˜๋Š” ๋ฌธ์žฅ์„ ๋งŒ๋“ค๊ณ , ์•ˆ์— ์กฐ๊ฑด์„ ํ‘œํ˜„ํ•œ๋‹ค.
		List<Course> result = new ArrayList<Course>();
		for (Course c : storage) {	// storage์•ˆ์— ์žˆ๋Š” course๋“ค์„ ํ•˜๋‚˜์”ฉ ๋นผ์„œ c๋ณ€์ˆ˜์— ๋„ฃ๋Š”๋‹ค.
			if(c.getName().equals(name)) {
				//๋ณต์‚ฌ ์ƒ์„ฑ์ž: ํ™œ์šฉ
//				Course course = new Course();
//				course.setName(c.getName());    // c๋Š” storage์— ์žˆ๋Š” ๊ฒƒ ํ•˜๋‚˜๋ฅผ course๋Š” ์œ„์—์„œ ๋ฐฉ๊ธˆ ์ƒ์„ฑํ•œ ๊ฐ์ฒด๋ฅผ ํ•„๋“œ๊ฐ’์„ ์ €์žฅ.
//				course.setCategory(c.getCategory());
				result.add(new Course(c));				// ํ˜„์žฌ ์ด ์ฝ”๋“œ๋Š” Storage์˜ ์ €์žฅ๊ฐ’์„ result์— ๋„ฃ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.
			}
		}
		return result;
	}

	public void delete(Course op) {
		this.storage.remove(op);
		
	}

	public void update(Course op) {
		Course ori = this.storage.get(0);
		ori.setName(op.getName());
		ori.setCategory(op.getCategory());
	}

}

 

 

 

 

 

 

 

   ๐Ÿ“ Course.java


package test_210303;

public class Course {
	
	private String name;
	private String category;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getCategory() {
		return category;
	}
	public void setCategory(String category) {
		this.category = category;
	}
}

 

 

 

๐Ÿ“Œ ์ฝ”๋“œ ๋ถ„์„


ArrayAndList01 12 ~ 16 Line

์œ„์˜ ์ฝ”๋“œ๋Š” CourseServcie๋ผ๋Š” ์ฐธ์กฐํ˜• ์ž๋ฃŒํƒ€์ž… service ๋ณ€์ˆ˜์— CourseService ๊ฐ์ฒด(Class)๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋„ฃ์–ด์ค€๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๊ฒŒ ๋˜๋ฉด CourseService๋ผ๋Š” Class๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•ด์ค˜์•ผ ํ•œ๋‹ค๋Š” ์  ์žŠ์ง€ ๋งˆ์„ธ์š”!

CourseService service = new CourseService();์— ๋Œ€ํ•œ Memory ์ƒํƒœ๋„

์œ„์˜ 0x100์€ Memory์˜ ์ฃผ์†Œ๊ฐ’(์ฐธ์กฐ๊ฐ’)์ด๊ณ , ์ฃผ๋‹ˆํ•˜๋ž‘์ด ์ž„์˜๋กœ ์ ์–ด๋‘” ๊ฒƒ์ž„์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ฃผ์„ธ์š”!

๊ทธ ๋‹ค์Œ 16๋ฒˆ์งธ ์ค„์„ ๋ณด๋ฉด ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’์„ ๋ฐ›๊ธฐ ์œ„ํ•ด Scanner ํ•จ์ˆ˜๋ฅผ kb๋ณ€์ˆ˜์— ๋„ฃ์–ด ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค๊ณ  ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

ArrayAndList01, 18 ~ 22 Line

while๋ฌธ์— true๊ฐ’์„ ์ค˜์„œ break๋ฅผ ๋งŒ๋‚˜์ง€ ์•Š์œผ๋ฉด ํ‰์ƒํ† ๋ก ๋Œ์•„๊ฐ€๋Š” ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค @_@

๊ทธ๋Ÿฐ ๋‹ค์Œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด๋‹ฌ๋ผ๊ณ  ์ถœ๋ ฅ์„ ํ•˜๊ณ  ์žˆ๊ณ , 22๋ฒˆ์งธ ์ค„์— ์œ„์—์„œ ์ž…๋ ฅ๊ฐ’์„ ๋ฐ›๊ธฐ ์œ„ํ•ด ์„ ์–ธํ–ˆ๋˜ Scanner Method๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ nexLine Method๋ฅผ ํ˜ธ์ถœํ•ด์„œ ๋ฌธ์ž์—ด์„ ๋ฐ›์•„ ๋ฌธ์ž์—ด ์ฐธ์กฐ ํƒ€์ž…์˜ cmd๋ณ€์ˆ˜์— ๋„ฃ์–ด์ฃผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

ArrayAndList01, 24 ~ 26 Line

25๋ฒˆ์งธ ์ค„์„ ๋ถ„์„ํ•ด ๋ณด๋ฉด if๋ฌธ์— ์กฐ๊ฑด์‹์œผ๋กœ cmd ์ฆ‰, ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ๊ฐ’์ด ๋ฌธ์ž์—ด exit์™€ ๊ฐ™๋‹ค๋ฉด? ์ด๋ผ๊ณ  ๋ฌผ์–ด๋ณด๊ณ  ์žˆ๋„ค์š”!

์ด๋ ‡๊ฒŒ ๋˜๋ฉด 26๋ฒˆ์งธ break๋ฌธ์„ ๋งŒ๋‚˜ ์ž์‹ ์ด ์†ํ–ˆ๋˜ ๋ฐ˜๋ณต๋ฌธ ์ฆ‰, while๋ฌธ์„ ๋ฒ—์–ด๋‚˜๊ฒŒ ๋˜๊ณ , ํ”„๋กœ๊ทธ๋žจ์€ ์ข…๋ฃŒ ๋ฉ๋‹ˆ๋‹ค.

 

ArrayAndList01, 30 ~ 35 Line

๋‹ค์‹œ if๋ฌธ์„ ๋งŒ๋‚˜๊ณ , ์กฐ๊ฑด์‹์—๋Š” cmd ์ฆ‰, ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’์ด ๋ฌธ์ž์—ด list์™€ ๊ฐ™๋ƒ๊ณ  ๋ฌป๊ณ  ์žˆ๋„ค์š”! ๋งŒ์•ฝ ๊ทธ๋ ‡๋‹ค๋ฉด? if๋ฌธ์œผ๋กœ ์˜์˜ฅ! ๋“ค์–ด ๊ฐ‘๋‹ˆ๋‹ค!

32๋ฒˆ์งธ ์ค„์„ ๋ณด๋‹ˆ ๋ฌธ์ž์—ด ์ฐธ์กฐ ํƒ€์ž… result ๋ณ€์ˆ˜์— service.getAll();์„ ํ˜ธ์ถœํ•˜๊ณ  ์žˆ๋„ค์š”. ์ด๊ฒƒ์€ ๋ฌด์Šจ ๋œป์ด๋ƒ๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์œ„์—์„œ ์„ ์–ธํ–ˆ๋˜ ์ฐธ์กฐ ํƒ€์ž… ๋ณ€์ˆ˜ service๊ฐ€ ์žˆ์—ˆ์ฃ ? ๊ทธ๊ฑธ ๋งŒ๋“ค๋ฉด์„œ CourseService๋ผ๋Š” ๊ฐ์ฒด(Class)๊ฐ€ ๋งŒ๋“ค์–ด ์ง„๋‹ค๊ณ  ๋ง์”€ ๋“œ๋ ธ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฐ์ฒด์•ˆ์— getAll์ด๋ผ๋Š” Method๊ฐ€ ์žˆ์„ ๊ฒƒ์ธ๋ฐ, ๊ทธ๊ฒƒ์„ ํ˜ธ์ถœํ•ด์„œ ๊ทธ ๊ฐ’์„ result์—๊ฒŒ ๋„ฃ๊ฒ ๋‹ค! ๋ผ๋Š” ์˜๋ฏธ๊ฐ€ ๋˜๊ฒ ๋„ค์š”!

๊ทธ๋Ÿผ! getAll Method๋ฅผ ๋งŒ๋‚˜๋Ÿฌ ๊ฐ€๋ด์•ผ ๊ฒ ์–ด์š”!

 

 

CourseService, 16 ~ 18 Line

getAll์ด๋ผ๋Š” Mehotd๋Š” public์œผ๋กœ ์ ‘๊ทผ ์ œํ•œ์ž๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์œผ๋‹ˆ ์–ด๋””์„œ๋“  ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๊ฒ ์ง€์š”? ์ ‘๊ทผ ์ œํ•œ์ž๋ฅผ ์ž˜ ๋ชจ๋ฅด์‹ ๋‹ค๋ฉด [Java] ์ž๋ฐ”์˜ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐํŽธ ์•ˆ์— ์ˆ˜๋ก๋œ ์ ‘๊ทผ ์ œํ•œ์ž ๋‚ด์šฉ์— ๊ด€์‹ฌ์„ ๊ฐ€์ ธ ์ฃผ์„ธ์š”. 

๊ทธ ๋‹ค์Œ ์ž๋ฃŒํ˜• ํƒ€์ž…์€ ์ฐธ์กฐํ˜•์ธ ๋ฌธ์ž์—ด ํƒ€์ž…์œผ๋กœ ๋˜์–ด ์žˆ๊ณ , return๊ฐ’์€ ์—†๋„ค์š”. ์ธ์ž(๋งค๊ฐœ๋ณ€์ˆ˜) ์ฆ‰, ์ž…๋ ฅ๊ฐ’๋„ ๋”ฐ๋กœ ์—†์Šต๋‹ˆ๋‹ค.

์ด Method์— ๋“ค์–ด์˜ค๊ฒŒ ๋˜๋ฉด s๋ผ๋Š” ๋ฌธ์ž์—ด ๋ณ€์ˆ˜์— ๊ณต๋ฐฑ์ด ์ž…๋ ฅ์ด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ArrayAndList01 32๋ฒˆ์งธ ์ค„์—์„œ result์—๋Š” ๊ณต๋ฐฑ์ด ๋“ค์–ด๊ฐ€๊ฒ ๋„ค์š”!

String result = service.getAll();์— ๋Œ€ํ•œ Memory ์ƒํƒœ๋„

๊ทธ ๋‹ค์Œ ArrayAndList01dp 34๋ฒˆ์งธ ์ค„์ด result๊ฐ€ ์ถœ๋ ฅ๋˜๋‹ˆ ์ง€๊ธˆ๊นŒ์ง„ ๊ณต๋ฐฑ์ด ์ถœ๋ ฅ์ด ๋˜๊ฒ ๋„ค์š”!

 

 

ArrayAndList01, 36 ~ 46 Line

๋‹ค์‹œ ์šฐ๋ฆฌ๋Š” if๋ฌธ์„ ๋งŒ๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

cmd ์ฆ‰, ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’์ด new๋ผ๋Š” ๋ฌธ์ž์—ด๊ณผ ๊ฐ™๋ƒ๊ณ  ๋ฌผ์–ด๋ณด๊ณ  ์žˆ๋„ค์š”! ๋งž๋‹ค๋ฉด? if๋ฌธ์œผ๋กœ ์˜์˜ฅ! ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค!

39๋ฒˆ์งธ ์ค„์„ ๋ณด๋ฉด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์žˆ์–ด์š”! ์ด๋ ‡๊ฒŒ ๋˜๋ฉด Course๋ผ๋Š” Class๊ฐ€ ๋˜ ํ•˜๋‚˜ ์ƒ์„ฑ๋˜๊ฒ ์ง€์š”?

Course course = new Course(); ์— ๋Œ€ํ•œ Memory ์ƒํƒœ๋„

service ๋ณ€์ˆ˜๋Š” Course ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜๋ผ๋Š” ์ !

40๋ฒˆ์งธ ์ค„์—์„œ "๊ณผ์ •๋ช…์„ ์ž…๋ ฅ ํ•ด ์ฃผ์„ธ์š”" ๋ผ๊ณ  ๋ฌป๊ณ  41๋ฒˆ์งธ ์ค„์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด(kb.nextLine())์„ course๊ฐ์ฒด์— setName Method (Setter)์—๊ฒŒ ๋„ฃ์–ด์ฃผ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”! Setter์— ๋Œ€ํ•ด์„œ ๋ชจ๋ฅด์‹ ๋‹ค๋ฉด  [Java] ์ž๋ฐ”์˜ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐํŽธ์— ๊ด€์‹ฌ์„ ๊ฐ€์ ธ ์ฃผ์„ธ์š”!

setter๋Š” ์‰ฝ๊ฒŒ ๋งํ•ด course ๊ฐ์ฒด์— ํ•„๋“œ (์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜)์˜ ์ ‘๊ทผ ์ œํ•œ์ž๊ฐ€ Private์ด๋ผ ๋งŒ๋“ค์–ด ์ค€ ๊ฒƒ์ด์—์š”. Private๋Š” ๊ฐ™์€ Class๊ฐ€ ์•„๋‹ˆ๋ฉด ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— setter๋ฅผ ํ†ตํ•ด main Method์—์„œ ๊ฐ’์„ ์กฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ ํ•œ๋‹ต๋‹ˆ๋‹ค!

๊ทธ๋Ÿผ Setter๋ฅผ ๋งŒ๋‚˜๋Ÿฌ ๊ฐ€๋ด์•ผ ๊ฒ ์–ด์š”!

Course, 5 ~ 6 Line

์—ญ์‹œ private์œผ๋กœ ๋˜์–ด ์žˆ์ฃ ?

 

Course, 24 ~ 25 Line

Setter, Getter ์—ญ์‹œ Method์ž…๋‹ˆ๋‹ค. ์ด Setter๋Š” ์ธ์ž(๋งค๊ฐœ๋ณ€์ˆ˜) ์ฆ‰, ์ž…๋ ฅ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ–ˆ๋˜ ๊ณผ์ •๋ช…์„ ์ž…๋ ฅ๋ฐ›์•„ ๊ทธ๊ฒƒ์„ ์ง€์—ญ๋ณ€์ˆ˜ name์—๊ฒŒ ๋„˜๊ฒจ์ฃผ๊ณ , ๊ทธ ์ง€์—ญ๋ณ€์ˆ˜ name์€ this.name ์ฆ‰, ์œ„์˜ private์œผ๋กœ ์ง€์ •๋œ ํ•„๋“œ(์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜)์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

์œ„์—์„œ๋„ ์ด์•ผ๊ธฐ ํ–ˆ์ง€๋งŒ, private์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์–ด ์ง์ ‘ ์ฐธ์กฐ๊ฐ€ ๋ถˆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— setter๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์  ์žŠ์ง€ ๋งˆ์„ธ์š”!

๊ฒฐ๊ณผ์ ์œผ๋กœ ArrayAndList01์— 41๋ฒˆ์งธ ์ค„์€ ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’์„ ์ด ๊ณณ course ๊ฐ์ฒด (Class)์— ํ•„๋“œ name์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

Course ๊ฐ์ฒด setCategory Method์— ๋Œ€ํ•œ Memory ์ƒํƒœ๋„
ArrayAndList01, 42 ~ 43 Line

๋‹ค์‹œ Main Method๋กœ ์™€์„œ ๋ณด๋‹ˆ ์ด๋ฒˆ์—๋Š” ๋ถ„๋ฅ˜๋ช…์„ ์ž…๋ ฅํ•ด๋‹ฌ๋ผ๊ณ  ํ•˜๋„ค์š” ๊ทธ๋ฆฌ๊ณ , ์œ„์™€ ๋™์ผํ•˜์ง€๋งŒ, set๊ฐ€ Name์ด ์•„๋‹Œ Category๋กœ ์ „๋‹ฌ์„ ํ•˜๋Š” ๊ฒƒ์ด์—์š”.

category๋„ private๋กœ ์ง€์ •๋œ ํ•„๋“œ์ธ ๊ฒƒ ํ™•์ธ ํ•˜์…จ์ฃ ? ๊ทธ๋ ‡๋‹ค๋ฉด Name๊ณผ ๋™์ผํ•œ ์ด์œ ๋กœ setter๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

Course, 30 ~ 32 Line

์œ„์˜ setName๊ณผ ๋ณ„๋ฐ˜ ๋‹ค๋ฅผ๊ฒŒ ์—†๋Š” ๊ฒƒ์ด์—์š”. ์—ญ์‹œ ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’์„ ์ธ์ž(๋งค๊ฐœ๋ณ€์ˆ˜) ์ฆ‰, ์ž…๋ ฅ๊ฐ’์œผ๋กœ ๋ฐ›์•„ ์ง€์—ญ ๋ณ€์ˆ˜ category์— ์ „๋‹ฌํ•˜๊ณ , ๊ทธ๊ฒƒ์„ ํ•„๋“œ category์—๊ฒŒ ์ „๋‹ฌ ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด์—์š”.

Course ๊ฐ์ฒด setCategory Method์— ๋Œ€ํ•œ Memory ์ƒํƒœ๋„
ArrayAndList01,45 Line

์—ฌ๊ธฐ์„œ๋Š” ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜ service๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” CourseService ๊ฐ์ฒด ์•ˆ์— regist Method๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ, ์ž…๋ ฅ(์ธ์ž, ๋งค๊ฐœ๋ณ€์ˆ˜)๊ฐ’์œผ๋กœ course๋ฅผ ๋„˜๊ฒจ ์ฃผ๋„ค์š”. course๋Š” 39๋ฒˆ์งธ ์ค„์—์„œ ์„ ์–ธํ–ˆ๊ณ , setName๊ณผ setCategory๋ฅผ ํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’์„ ๋ฐ›์•˜์œผ๋‹ˆ, ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ณผ์ •๋ช…๊ณผ ๋ถ„๋ฅ˜๋ช…์„ ์ž…๋ ฅ ๋ฐ›๊ฒŒ ๋˜๊ฒ ๋„ค์š”! ๊ทธ๋Ÿผ regist๋ฅผ ๋งŒ๋‚˜๋Ÿฌ ๊ฐ€๋ด์•ผ ๊ฒ ์–ด์š”!

 

CourseService, 38 ~ 42 Line

regist Method๋Š” Course ์ฐธ์กฐํ˜• ํƒ€์ž…์˜ course๋ฅผ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ๋ฐ›๊ณ  ์žˆ์–ด์š”! course๋ฅผ Main Method์—์„œ ์„ ์–ธ(ArrayAndList 39๋ฒˆ์งธ ์ค„)ํ•  ๋•Œ ์ž๋ฃŒํ˜•์„ Course๋กœ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด์—์š”! ๊ทธ๋ ‡๋‹ค๋ฉด ์—ฌ๊ธฐ์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ–ˆ๋˜ ๊ณผ์ •๋ช…๊ณผ ๋ถ„๋ฅ˜๋ช…์ด ๋“ค์–ด์žˆ๋Š” ๊ฒƒ์ด๊ณ , ๊ทธ๊ฒƒ์„ dao ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” CourseDAO์˜ sava Method๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ์ฃผ๋Š” ๊ฒƒ์ด์—์š”.

 

CourseService, 5 ~ 9 Line

dao๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ ์™œ CourseDAO๋ฅผ ๊ฐ€๋ฅดํ‚จ๋‹ค๊ณ  ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•˜์‹œ์ง€ ์•Š๋‚˜์š”? ๋ฐ”๋กœ ์—ฌ๊ธฐ daoํ•„๋“œ๋ฅผ ์„ ์–ธํ•  ๋•Œ, ์ž๋ฃŒํ˜• ํƒ€์ž…์„ ์ฐธ์กฐํ˜•์œผ๋กœ CourseDAO Class์˜ ์ฃผ์†Œ๊ฐ’์ด ๋“ค์–ด๊ฐ€๊ฒŒ ์„ ์–ธํ•œ ๊ฒƒ์ด์—์š”. 

๊ทธ๋Ÿผ Save Method๋ฅผ ๋งŒ๋‚˜๋Ÿฌ ๊ฐ€๋ด์•ผ๊ฒ ์–ด์š”!

 

CourseDAO, 25 ~ 27 Line

์—ฌ๊ธฐ save Method๊ฐ€ ์žˆ๋„ค์š”! public์ด๋‹ˆ ์–ด๋””์„œ๋“  ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๊ณ , void ์ฆ‰, ๋ฐ˜ํ™˜๊ฐ’์€ ์—†๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ์ž…๋ ฅ๊ฐ’์œผ๋กœ Course ์ž๋ฃŒํ˜• ํƒ€์ž… course๋ฅผ ๋ฐ›๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”. ๊ทธ๋Ÿผ ์–ด๋–ค ๊ฐ’์ด ๋“ค์–ด์˜ฌ๊นŒ์š”? ๋ฐ”๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ณผ์ •๋ช…๊ณผ ๋ถ„๋ฅ˜๋ช…์ด ๋“ค์–ด์˜ค๋Š” ๊ฒƒ์ด์—์š”.

์ด ์ž…๋ ฅ๊ฐ’์ด storage๋ผ๋Š” ํ•„๋“œ๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” add Method๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ, ์ธ์ž๊ฐ’์œผ๋กœ ์ถ”๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”.

 

CourseDAO, 9 ~ 12 Line

storage ํ•„๋“œ๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” ๊ณณ์€ ๋ฐ”๋กœ List<Course>์˜€๋˜ ๊ฒƒ์ด์—์š”. Course๋ฅผ ์ž๋ฃŒํ˜•์œผ๋กœ ํ•˜๋Š” List๋ผ๋Š” ๋œป์ด๊ณ , ์ด๊ฒƒ ์—ญ์‹œ private์ด๋„ค์š”.

๊ทธ๋ฆฌ๊ณ , 11๋ฒˆ์งธ ์ค„์„ ๋ณด๋ฉด CourseDAO ๊ฐ์ฒด์˜ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ์žˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ storage ํ•„๋“œ์— ์ž๋ฃŒํ˜• ํƒ€์ž…์ด Course์ธ ArrayList๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋„ฃ์–ด์ฃผ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”. add๋ผ๋Š” Method๋Š” ์ด๋ฏธ ์ž๋ฐ”์—์„œ ์ œ๊ณตํ•˜๋Š” API๋ž๋‹ˆ๋‹ค. ๋”ฐ๋กœ ์„ ์–ธ ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ์—์š”. List๋ฅผ ๋งŒ๋“ค๋ฉด 

import๋ฅผ ํ•ด์ค˜์•ผ ํ•˜๊ณ , java.util.ArrayList๋ฅผ ํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ, ์ด ์•ˆ์— ๋“ค์–ด ์žˆ๋Š” ๊ฒƒ์ด๋ž๋‹ˆ๋‹ค. add๋Š” ๋ง ๊ทธ๋Œ€๋กœ ์ถ”๊ฐ€๋ฅผ ํ•˜๊ธฐ ์œ„ํ•œ Method๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด์—์š”. ๊ทธ๋ ‡๋‹ค๋ฉด CourseDAO Class 27๋ฒˆ์งธ ์ค„์„ ๋‹ค์‹œ ๋ณด๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ณผ์ •, ๋ถ„๋ฅ˜๋ช…์„ ๋ฐ›์•„ ์ถ”๊ฐ€๋ฅผ ํ•˜๋Š”๋ฐ, ๊ทธ๊ฑธ storage๋ผ๋Š” ํ•„๋“œ์— ์ถ”๊ฐ€ํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ ์ž…๋‹ˆ๋‹ค.

 

 

ArrayAndList01, 48 ~ 54 Line

ํ—ˆ๋ฒŒ๋‚˜๊ฒŒ ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋Š” ๊ฒƒ์ด์—์š”. ์ด๋ฒˆ์—” ๋‹ค์‹œ Main์œผ๋กœ ๋Œ์•„์˜ต๋‹ˆ๋‹ค!

์ด๋ฒˆ์—” ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒ€์ƒ‰์–ด๋ฅผ ์ž…๋ ฅ ํ•ด ์ฃผ์„ธ์š”์—์„œ ๋ฐ›์•˜๋˜ ์ž…๋ ฅ๊ฐ’์ด search์™€ ๊ฐ™๋‹ค๋ฉด if๋ฌธ์œผ๋กœ ์˜์˜ฅ! ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์ด์—์š”.

์ฐธ๊ณ ํ•ด์•ผ ํ•  ๊ฒƒ์€ equals๋Š” ๋น„๊ต ๋ฌธ์ž์—ด์ด ์™„์ „ํžˆ ๊ฐ™์•„์•ผ์ง€๋งŒ, ์ฐธ(True)๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์—์š”.

 

51๋ฒˆ์งธ ์ค„์„ ๋ณด๋‹ˆ ์ด๋ฒˆ์—” ๊ฒ€์ƒ‰์–ด๋ฅผ ์ž…๋ ฅ ํ•ด ๋‹ฌ๋ผ๊ณ  ํ•˜๊ณ  ์žˆ์–ด์š”! search๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๋ณด๋‹ˆ ๋ฌด์–ธ๊ฐ€ ๊ฒ€์ƒ‰์„ ํ•˜๋Š” ๊ณณ์ด๋ผ๋Š” ์˜ˆ์ƒ์ด ๋˜์ง€์š”?

Course ์ฐธ์กฐํ˜• ํƒ€์ž… course๋ณ€์ˆ˜์— Course ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋„ฃ๊ณ  ์žˆ์–ด์š”! ๊ทธ๋ ‡๋‹ค๋ฉด course ๋ณ€์ˆ˜๋Š” Course Class์˜ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ฒ ๋„ค์š”?

์ฃผ์˜ํ•  ๊ฒƒ์€ ArrayAndList01 39๋ฒˆ์งธ ์ค„์—์„œ ์ƒ์„ฑํ•œ ๊ฒƒ๊ณผ ๋‹ค๋ฅธ ๊ฒƒ์ž„์„ ๊ผญ ์ฐธ๊ณ  ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด์—์š”!

ArrayAndList01, 52๋ฒˆ์งธ ์ฝ”๋“œ์— ์˜ํ•œ Memory ์ƒํƒœ๋„

๊ทธ ๋‹ค์Œ course ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฅดํ‚ค๊ณ  ์žˆ๋Š” Course ๊ฐ์ฒด์˜ setName Method(Setter)๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ, ์ž…๋ ฅ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฒ€์ƒ‰์–ด๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”. SetName์œผ๋กœ ๋‹ค์‹œ ๊ฐ€๋ด์•ผ๊ฒ ์–ด์š”!

 

Course, 24 ~ 25 Line

์œ„์—์„œ ์„ค๋ช…ํ–ˆ๋“ฏ ์ด๋ฒˆ์—๋„ ๊ฒ€์ƒ‰์–ด๋กœ ์ž…๋ ฅ๋œ ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋ฐ›์•„์„œ ๊ทธ๊ฒƒ์„ ๋‹ค์‹œ ํ•„๋“œ๋กœ ๋ฐ˜ํ™˜ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด์—์š”!

ArrayAndList01 ์ฆ‰, Main Method๋กœ ๋Œ์•„๊ฐˆ๊ฒŒ์š”!

์ด๋ฒˆ์—” 54๋ฒˆ์งธ ์ค„์ธ ๊ฒƒ์ด์—์š”. Course ์ž๋ฃŒํ˜• ํƒ€์ž… List ์ž๋ฃŒํ˜• ๋ณ€์ˆ˜ list์— service ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” CourseService ๊ฐ์ฒด์— get Method๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ, ์ž…๋ ฅ๊ฐ’์„ course๋ฅผ ์ฃผ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”. course๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฒ€์ƒ‰์–ด์ธ ๊ฒƒ ์žŠ์œผ์‹œ๋ฉด ์•ˆ๋˜๋Š” ๊ฒƒ์ด์—์š”!

์ž! ๊ทธ๋Ÿผ get Method๋ฅผ ๋งŒ๋‚˜๋Ÿฌ ๊ฐ€๋ด์•ผ ๊ฒ ์–ด์š”!

CourseService, 44 ~ 52 Line

์—ฌ๊ธฐ get Method๋Š” Course ์ž๋ฃŒํ˜• ํƒ€์ž… List๋ฅผ ์ž๋ฃŒํ˜•์œผ๋กœ ๋ฐ˜ํ™˜๊ฐ’์„ ๋ฑ‰์–ด์ฃผ๊ณ  ์žˆ๋„ค์š”! ์ž…๋ ฅ๊ฐ’์œผ๋กœ๋Š” Course ํƒ€์ž… ๊ฐ’์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Course๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฒ€์ƒ‰์–ด์˜€๋˜ ๊ฒƒ์ด์—์š”. ๊ทธ๊ฒƒ์ด 46๋ฒˆ์งธ course ์ง€์—ญ ๋ณ€์ˆ˜์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๊ณ , ๊ทธ๊ฒŒ null์ธ์ง€ ์•„๋‹Œ์ง€ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ•ด ์ค๋‹ˆ๋‹ค. 47๋ฒˆ์งธ if๋ฌธ์€ course๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” Course ๊ฐ์ฒด์— getName Method(Getter)๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๊ทธ ๊ฐ’์ด null์ด ์•„๋‹ˆ๊ณ , getName Method์˜ ๊ธธ์ด๊ฐ€ 0๋ณด๋‹ค ํฌ๋‹ค๋ฉด ์ฆ‰, getName์€ setName์—์„œ ์ž…๋ ฅ๋œ ํ•„๋“œ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์ฝ์–ด์˜ค๋Š” ์—ญํ• ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— setName์— ์•„๋ฌด ๊ฐ’์ด ์—†๋‹ค๋ฉด ์ด if๋ฌธ์— ๋“ค์–ด๊ฐˆ ์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒƒ์ด์—์š”. ๋‹ค์‹œ ๋งํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒ€์ƒ‰์–ด๋กœ ์ž…๋ ฅํ•œ ๊ฐ’์ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ  ์žˆ๊ณ , ์žˆ๋‹ค๋ฉด dao ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” CourseDAO ๊ฐ์ฒด์— findByName Method๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ, course๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” Course ๊ฐ์ฒด์•ˆ์— findByName Method๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ๊ทธ ์ž…๋ ฅ๊ฐ’์œผ๋กœ course ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” Course ๊ฐ์ฒด ์•ˆ์— getName Method ์ฆ‰, Getter์˜ ๊ฐ’์„ ์ฃผ๋Š” ๊ฒƒ์ด์—์š”.

์•„๊นŒ ์œ„์—์„œ setName์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฒ€์ƒ‰์–ด๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค๊ณ  ํ–ˆ์–ด์š”. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— getName์œผ๋กœ ๋‚˜์˜ค๋Š” ๊ฒƒ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฒ€์ƒ‰์–ด์ธ ๊ฒƒ์ด์—์š”. ๊ทธ๊ฒƒ์„ findByName Method์— ๋„ฃ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

CourseDAO, 31 ~ 46 Line

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฒ€์ƒ‰์–ด๊ฐ€ ์ธ์ž(๋งค๊ฐœ๋ณ€์ˆ˜)๋กœ ๋“ค์–ด์˜ค๊ฒŒ ๋˜๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ๋ด์•ผ๊ฒ ์–ด์š”!

๋จผ์ € List ์•ˆ์— ์ž๋ฃŒํ˜•์ด Course๋งŒ ๋ฐ›๋Š” Genneric์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”. <์ž๋ฃŒํ˜• ํƒ€์ž…> ์ด๋ ‡๊ฒŒ ์ ํ˜€ ์žˆ๋Š” ๊ฒƒ์„ Genneric์ด๋ผ๊ณ  ํ•˜๊ณ , Gennric์„ ์“ฐ๋ฉด ๊ทธ ์ž๋ฃŒํ˜•๋งŒ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค๋ผ๋Š” ์˜๋ฏธ๊ฐ€ ๋œ๋‹ค๋Š” ์  ์ฐธ๊ณ  ํ•˜์‹œ๊ธฐ ๋ฐ”๋ผ๋Š” ๊ฒƒ์ด์—์š”!

์ž ๊ทธ๋Ÿผ List ์ž๋ฃŒํ˜• ํƒ€์ž…์ธ result๋ณ€์ˆ˜์— ArrayList ์ž๋ฃŒํ˜•์— Course์ž๋ฃŒํ˜•๋งŒ ๋ฐ›๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋„ฃ๊ฒ ๋‹ค๋Š” ์˜๋ฏธ๋ผ๋Š” ๊ฒƒ ์•„์‹œ๊ฒ ์ฃ ?

์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์— ํ•˜๋‚˜์ธ List ๋“ฑ์€ ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

36๋ฒˆ์งธ ์ค„์„ ๋ณด๋‹Œ๊นŒ for๋ฌธ์„ ๋งŒ๋‚˜๊ณ  ์žˆ์–ด์š”! ์กฐ๊ฑด์€ Course ์ž๋ฃŒํ˜• ํƒ€์ž… c ๋ณ€์ˆ˜์— Storage ๊ฐ’์„ ํ•˜๋‚˜ํ•˜๋‚˜ ๋„ฃ์œผ๋ฉด์„œ ๋ฐ˜๋ณต ํ•˜๊ฒ ๋‹ค๊ณ  ํ•˜๋Š” For - each๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋„ค์š”! Storage๋Š” ๊ต์œก ๊ณผ์ •์„ ๋ชจ๋‘ ๋‹ด๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜ ์ž…๋‹ˆ๋‹ค. storage ํ•„๋“œ (์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜)๋Š” CourseDAO Class์—์„œ ArrayList<Course>๋ฅผ ๋‹ด๋Š” ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜๋กœ ์ดˆ๊ธฐํ™”๊ฐ€ ๋˜์—ˆ์–ด์š”.

storage๋Š” ArrayAndList01์— 45๋ฒˆ์งธ ์ค„์„ ๋ณด๋ฉด service ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” CourseService ๊ฐ์ฒด์— regist Method๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด์„œ course๋ผ๋Š” ์ž…๋ ฅ๊ฐ’์„ ์ „๋‹ฌํ•˜๊ณ  ์žˆ์–ด์š”. save Method๋Š” CourseDAO์˜ 25 ~ 29๋ฒˆ์งธ ์ค„์— ์žˆ๋Š”๋ฐ, ๊ทธ ๊ฐ’์„ ์ž…๋ ฅ ๋ฐ›์•„ storage List์— add Method๋ฅผ ํ†ตํ•ด course๊ฐ’์„ ์ž…๋ ฅ์„ ํ•ด์ฃผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค! ๊ทธ๋ ‡๋‹ค๋ฉด storage์— ์ €์žฅ๋˜๋Š” ๊ฐ’์€ course๋ผ๋Š” ๊ฐ’์ด ๋  ๊ฒƒ์ด๊ณ , course๋ผ๋Š” ๊ฐ’์€ ArrayAndList01์˜ 41, 43๋ฒˆ์งธ ์ค„์„ ๋ณด๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ณผ์ •๋ช…๊ณผ ๋ถ„๋ฅ˜๋ช…์„ ์ž…๋ ฅ๋ฐ›์•„ ๊ฐ Setter์—๊ฒŒ ์ „๋‹ฌํ•ด ์ฃผ๊ณ , ๊ทธ๊ฒƒ์„ ๊ฐ ํ•„๋“œ์— ์ €์žฅ ํ•ด ์ฃผ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”!

๊ฒฐ๊ตญ storage์—” ์‚ฌ์šฉ์ž๊ฐ€ ๋“ฑ๋กํ•œ ๊ณผ์ •๋ช…๊ณผ ๋ถ„๋ฅ˜๋ช…์ด ๋“ค์–ด์žˆ๊ฒ ์ง€์š”? ๊ทธ๋ฆฌ๊ณ ๋‚˜์„œ if๋ฌธ์„ ๋งŒ๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. c๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” ๊ฐ์ฒด๋Š” For๋ฌธ ์กฐ๊ฑด์‹์—์„œ ์ง€์ •์„ ํ•ด ์ค€ ๊ฒƒ์ด์—์š”. ์ฆ‰, Course๋ฅผ ๊ฐ€๋ฅดํ‚ค๊ณ  ์žˆ๊ณ , Course ๊ฐ์ฒด ์•ˆ์— getName Method๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ, ๊ทธ Method๊ฐ€ ๊ฐ€์ง„ ๊ฐ’๊ณผ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ๋“ค์–ด์˜จ ๊ฐ’์ด ๊ฐ™์€์ง€ ํ™•์ธํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”. Name ํ•„๋“œ(์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜)์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋“ฑ๋กํ•œ ๊ณผ์ •๋ช…์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜์–ด ์žˆ์–ด์š”!

๊ทธ ๋‘˜์„ ๋น„๊ตํ•ด์„œ ๊ฐ™๋‹ค๋ฉด? result ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” ArrayList<Course>์•ˆ์— add Method๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ Course๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š”๋ฐ, ์ธ์ž ๊ฐ’์„ c๋ณ€์ˆ˜(๊ณผ์ •๋ช…)๋ฅผ ์ฃผ์–ด List์— ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”. ๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ if๋ฌธ์ด ๊ฑฐ์ง“์ด๋ผ๋ฉด result๊ฐ’์„ ๋ฐ˜ํ™˜ ํ•ด ์ฃผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

ArrayAndList01, 48 ~ 78 Line

๊ทธ ๋‹ค์Œ์—” if๋ฌธ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’์ด search์ธ์ง€ ๊ฒ€์‚ฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰์„ ํ•˜๋Š” ๋ถ€๋ถ„์ด๋ผ๋Š” ๊ฒƒ์„ ๋ˆˆ์น˜์ฑŒ ์ˆ˜ ์žˆ๊ฒ ์ง€์š”?

52๋ฒˆ์งธ ์ค„์— Course ์ž๋ฃŒํ˜• ํƒ€์ž… course ๋ณ€์ˆ˜์— Course ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋„ฃ์–ด์ฃผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ , course ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” Course ๊ฐ์ฒด์˜ setName Method๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ, ๊ทธ Method์— ์ž…๋ ฅ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฒ€์ƒ‰์–ด๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ์žˆ๋„ค์š”!

Course ๊ฐ์ฒด๋ฅผ 3๋ฒˆ์งธ ์ƒ์„ฑ ์ค‘

์ฐธ๊ณ ๋กœ course ๋ณ€์ˆ˜์— Course ๊ฐ์ฒด๋ฅผ 3๋ฒˆ์งธ ์ƒ์„ฑ ์ค‘์ž…๋‹ˆ๋‹ค. course ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” ๊ฐ์ฒด ์ฃผ์†Œ๋Š” 3๋ฒˆ์งธ ๋ฐ”๋€Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

54๋ฒˆ์งธ ์ค„์„ ๋ณด๋‹ˆ Course ์ž๋ฃŒํ˜•๋งŒ ๋ฐ›๋Š” List ์ž๋ฃŒํ˜• list๋ณ€์ˆ˜์— service ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” CourseService ๊ฐ์ฒด์˜ get Method๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ, ์ธ์ž(๋งค๊ฐœ๋ณ€์ˆ˜) ์ฆ‰, ์ž…๋ ฅ๊ฐ’์œผ๋กœ course ๊ฐ์ฒด๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” Course ๊ฐ์ฒด์— ์•„๊นŒ setName์œผ๋กœ ๊ฒ€์ƒ‰์–ด๋ฅผ Nameํ•„๋“œ๋กœ ์ „๋‹ฌํ•œ ๊ฐ’์„ ์ „๋‹ฌ ํ•ด ์ฃผ๊ณ  ๊ทธ๊ฒƒ์„ list ๋ณ€์ˆ˜์— ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค! ๊ฒฐ๊ตญ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฒ€์ƒ‰์–ด๊ฐ€ Listํ˜• list ๋ณ€์ˆ˜์— ๋‹ด๊ธด๋‹ค๋Š” ๊ฒƒ ์•„์‹œ๊ฒ ์ฃ ?

 

56๋ฒˆ์งธ ์ค„์— ๋ณด๋‹ˆ if๋ฌธ์ด ์žˆ๋„ค์š”! ์กฐ๊ฑด์‹์€ list ๊ฐ’์ด null๊ฐ’์ด ์•„๋‹ˆ๊ฑฐ๋‚˜, list์˜ ํฌ๊ธฐ๊ฐ€ 0๋ณด๋‹ค ํฌ๋‹ค๋ฉด ์ธ๋ฐ, List๋Š” ๊ฐ€๋ณ€๊ธธ์ด์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ํ•˜๋‚˜ํ•˜๋‚˜ ๋ฐฐ์—ด์ด ๋Š˜์–ด๋‚œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋˜๋Š” ๊ฒƒ์ด์—์š”. ๊ทธ ๋ง์ธ ์ฆ‰์Šจ, ์ด if๋ฌธ์€ null ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฒ€์ƒ‰์–ด๊ฐ€ ์—†๋‹ค๋ฉด ์ด if๋ฌธ์„ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ์ด์•ผ๊ธฐ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

for๋ฌธ์ด ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”. list ํฌ๊ธฐ ๋งŒํผ ๋Œ๊ฒŒ ๋˜๋„ค์š”! ๊ฒ€์ƒ‰์–ด๋ฅผ ์–ผ๋งˆ๋‚˜ ์ž…๋ ฅํ–ˆ๋ƒ์— ๋”ฐ๋ผ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋Š” ๋‹ฌ๋ผ์ง€๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์—์š”.

Course ์ž๋ฃŒํ˜• c ์ฐธ์กฐ ๋ณ€์ˆ˜์— list๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” service.get(course);์˜ ๊ฐ’์„ ๋„ฃ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”! ๊ฒฐ๊ตญ ๊ฒ€์ƒ‰์–ด๋ฅผ ๋‹ด๋Š” ๋ณ€์ˆ˜๊ฐ€ ๋˜๊ฒ ์ง€์š”?๊ทธ๊ฒƒ์„ i๋ฒˆ์— ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด๊ฒ ๋‹ค๊ณ  ํ•˜๋‹ˆ ๊ฒ€์ƒ‰์–ด๊ฐ€ 3๊ฐœ๊ฐ€ ์ €์žฅ ๋˜์—ˆ๋‹ค๋ฉด ์ด for๋ฌธ์€ 3๋ฒˆ์„ ๋Œ๊ฒƒ์ด๊ณ , ํ•˜๋‚˜ํ•˜๋‚˜ ๋นผ์„œ c๋ณ€์ˆ˜์— ์ €์žฅํ•˜๊ฒŒ ๋˜๊ฒ ๋„ค์š”! ๊ทธ๋Ÿฐ ๋’ค ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒ€์ƒ‰ํ•œ ๊ณผ์ •๋ช…(c.getName();)๊ณผ ๋ถ„๋ฅ˜๋ช…(c.getCategory();)์„ ์ถœ๋ ฅํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”!

๊ทธ๋ฆฌ๊ณ , 61๋ฒˆ์งธ ์ค„์—์„œ ๋ฌป์Šต๋‹ˆ๋‹ค. edit or del else enter๋ผ๊ณ  ๋ฌธ์ž์—ด ๋ณ€์ˆ˜ sub์— ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’์„ ๋„ฃ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋’ค if๋ฌธ์„ ๋งŒ๋‚˜๊ฒŒ ๋˜๋„ค์š”!

sub.isEmpty() ๋ผ๊ณ  ์กฐ๊ฑด์‹์ด ๋˜์–ด ์žˆ๋Š”๋ฐ, ์ด๊ฒƒ์€ sub์— ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์ด 0์ด๋ƒ๊ณ  ๋ฌป๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค! 0์ด๋ผ๋ฉด ์ง€๋‚˜๊ฐ„๋‹ค๋ผ๋Š” ๋ฌธ๊ตฌ๋ฅผ ์ถœ๋ ฅํ•˜๊ฒŒ ๋˜๊ฒ ๊ณ , ์•„๋‹ˆ๋ผ๋ฉด(else) String ๋ฐฐ์—ด ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜ splited์— sub.split(" ")์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ–ˆ๋˜ ์ž…๋ ฅ๊ฐ’์„ ๊ณต๋ฐฑ์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ ํ˜น์€ ๊ตฌ๋ณ„ํ•ด์„œ ๊ทธ๊ฒƒ์„ splited ๋ณ€์ˆ˜์— ๋„ฃ๊ฒ ๋‹ค๋ผ๋Š” ์˜๋ฏธ๊ฐ€ ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ •์ˆ˜ํ˜• ๋ณ€์ˆ˜ idx์— Integer ์•ˆ์— ์žˆ๋Š” parseInt Method๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ, ์ธ์ž๊ฐ’์œผ๋กœ splited ๋ฌธ์ž์—ด ๋ฐฐ์—ด์— Index Number 1์˜ ๊ฐ’์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ Course ์ž๋ฃŒํ˜• op๊ฐ์ฒด์— list๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฐ’๋“ค์„ ๊บผ๋‚ด๋Š”๋ฐ, ์ธ์ž๊ฐ’์œผ๋กœ idx๋ฅผ ์ฃผ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š” idx๋Š” ๊ณต๋ฐฑ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฑฐ ์•„์‹œ์ฃ ? ์ฆ‰, list์— ๋“ค์–ด๊ฐ„ idx๋Š” ๊ณต๋ฐฑ์˜ ๊ฐœ์ˆ˜ ๋งŒํผ list์˜ ๊ฐ’์„ ๊บผ๋‚ด op์— ์ €์žฅํ•˜๊ฒŒ ๋˜๊ฒ ๋„ค์š”!

๊ทธ๋ฆฌ๊ณ  ๋งŒ๋‚œ if๋ฌธ! splited ๋ฌธ์ž์—ด ๋ฐฐ์—ด์˜ 0๋ฒˆ Index์˜ ๋‚ด์šฉ์ด edit๊ณผ ๊ฐ™๋ƒ๊ณ  ๋ฌป๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”. ๋งž๋‹ค๋ฉด "์ˆ˜์ •"์ด๋ผ๋Š” ๊ธฐ๋Šฅ์ด ์ž‘๋™ํ•˜๊ฒŒ ๋˜๊ณ , ์ˆ˜์ •ํ•  ๊ณผ์ •๋ช…๊ณผ ๋ถ„๋ฅ˜๋ช…์„ ์ž…๋ ฅ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ฐ’๋“ค์„ op๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” Course ๊ฐ์ฒด์— ๊ณผ์ •๋ช…์€ setName์œผ๋กœ ๋ถ„๋ฅ˜๋ช…์€ setCategory๋กœ ๋ณด๋‚ด ๊ฐ ํ•„๋“œ์— ๊ฐ’์„ ์ž…๋ ฅํ•˜๊ณ , service ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” CourseService ๊ฐ์ฒด ์•ˆ์— update Method๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ, ์ž…๋ ฅ๊ฐ’์œผ๋กœ ์ˆ˜์ •์„ ์œ„ํ•ด ์ž…๋ ฅ ๋ฐ›์•˜๋˜ ๊ณผ์ •๋ช…๊ณผ ๋ถ„๋ฅ˜๋ช…์„ ์ „๋‹ฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด์ œ update Method๋ฅผ ๋งŒ๋‚˜๋Ÿฌ ๊ฐ€๋ด์•ผ ๊ฒ ์–ด์š”!

CourseService, 58 ~ 62 Line

 

update Method๋Š” ์ž…๋ ฅ๊ฐ’์œผ๋กœ Course ์ž๋ฃŒํ˜• ํƒ€์ž… op๋ฅผ ์ž…๋ ฅ ๋ฐ›๊ณ , ๊ทธ๊ฒƒ์„ dao ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” CouseDAO ๊ฐ์ฒด์— update Method๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ, ์ž…๋ ฅ๊ฐ’์œผ๋กœ op๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”. update Method๋ฅผ ๋งŒ๋‚˜๋Ÿฌ ๊ฐ€๋ด์•ผ ๊ฒ ์–ด์š”!

 

CourseDAO, 53 ~ 58 Line

 

์ด Method ์—ญ์‹œ ์ž…๋ ฅ๊ฐ’์œผ๋กœ Course ์ž๋ฃŒํ˜• ํƒ€์ž… ๊ฐ’์„ ๋ฐ›๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”. ๊ทธ๋ฆฌ๊ณ , ์•ˆ์œผ๋กœ ๊ฐ€๋ณด๋‹ˆ Course ์ฐธ์กฐ ํƒ€์ž… ori ๋ณ€์ˆ˜์— storage ํ•„๋“œ์— 0๋ฒˆ์งธ ๊ฐ’์„ ๊บผ๋‚ด ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด์—์š”.

ori๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” Course ๊ฐ์ฒด์— setName Method๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์ธ์ž๊ฐ’์œผ๋กœ op.getName ์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ–ˆ๋˜ ์ˆ˜์ • ๊ณผ์ •๋ช…์„ ์ „๋‹ฌํ•ด์„œ Course ๊ฐ์ฒด์˜ Name ํ•„๋“œ์— ์ €์žฅํ•˜๊ณ , setCategory๋Š” Category ํ•„๋“œ์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด์—์š”. ๋ฐ˜ํ™˜๊ฐ’์€ ์—†์œผ๋‹ˆ ๋‹ค์‹œ Main์œผ๋กœ ๊ฐ€๋ด…๋‹ˆ๋‹ค!

 

ArrayAndList, 70 ~ 82 Line

if๋ฌธ์„ ๋งŒ๋‚œ ๊ฒƒ์ด์—์š” splited ๋ฌธ์ž์—ด ๋ฐฐ์—ด 0๋ฒˆ์งธ ๊ฐ’์ด del๊ณผ ๊ฐ™๋ƒ๊ณ  ๋ฌป๊ณ  ์žˆ๊ณ , ๋งž๋‹ค๋ฉด service ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” CourseService ๊ฐ์ฒด์— remove Method๋ฅผ ํ˜ธ์ถœํ•ด์„œ op๋ผ๋Š” ๊ฐ’์„ ์ „๋‹ฌ ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด์—์š”.

remove Method๋ฅผ ๋งŒ๋‚˜๋Ÿฌ ๊ฐ€์•ผ๊ฒ ์–ด์š”!

CourseService, 53 ~ 57 Line

์ „๋‹ฌ ๋ฐ›์€ ์ž…๋ ฅ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  dao(Course DAO ๊ฐ์ฒด)์•ˆ์— delete Method๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์žˆ์–ด์š”! ์ž ๊น delete๋ฅผ ๋งŒ๋‚˜๋Ÿฌ ๊ฐ€๋ณผ๊นŒ์š”?

 

CourseDAO, 48 ~ 51 Line

์ด Method๋Š” ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’ (๊ณผ์ •๋ช…๊ณผ ๋ถ„๋ฅ˜๋ช…์„ ๋‹ด๊ณ  ์žˆ๋Š” op๋ณ€์ˆ˜)๋ฅผ ๊ฐ€์ง€๊ณ  storage ํ•„๋“œ (List<Course>)์•ˆ์— ๊ฐ’์„ ์‚ญ์ œํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”. ๋ฐ˜ํ™˜๊ฐ’์€ ์—†์œผ๋‹ˆ ์ง€์šฐ๊ณ  ๋ ์ž…๋‹ˆ๋‹ค~

 

ArrayAndList01, 90 ~ 99 Line

์œ„์— 25๋ฒˆ์งธ ์ค„์—์„œ ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’์ด exit์˜€๋‹ค๋ฉด ์ž์‹ ์ด ์†ํ–ˆ๋˜ ๋ฐ˜๋ณต๋ฌธ while์„ ๋น ์ ธ ๋‚˜์™€ ์ด ๊ณณ์œผ๋กœ ๋ฐ”๋กœ ์˜ค๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์—์š”!

exit๋ผ๊ณ  ์ถœ๋ ฅ๋œ ๋’ค ํ‚ค๋ณด๋“œ ์ž…๋ ฅ ์žฅ์น˜๋ฅผ ํ•ด์ œ ์‹œํ‚ค๊ณ  ๋์ด ๋‚ฉ๋‹ˆ๋‹ค!

728x90
๋ฐ˜์‘ํ˜•