약 10분
읽기 설정
글자 크기
줄 간격
글꼴
8.1. 학생관리 프로그램
학생관리 프로그램은 객체지향 프로그래밍(OOP)의 기본 개념을 적용하여 설계된 웹 어플리케이션입니다. 이 프로그램을 통해 학생 정보를 생성, 읽기, 수정 및 삭제(CRUD) 작업을 수행할 수 있습니다. OOP의 원칙을 이해하고 적용하는 과정에서 학생 관리 프로그램이 왜 필요한지를 설명하겠습니다.
객체지향 프로그래밍 이해하기
객체지향 프로그래밍은 소프트웨어를 설계하고 개발하는 데 있어 중요한 패러다임입니다. OOP의 기본 개념을 이용하여 프로그램을 구성하면 유지보수성과 재사용성이 높아지고, 실제 세계의 문제를 보다 자연스럽게 모델링할 수 있습니다.
Class와 Object
- Class는 객체를 생성하기 위한 설계도입니다. 예를 들어, 학생을 나타내는
Student클래스를 정의할 수 있습니다. - Object는 클래스의 인스턴스로, 실제 데이터와 행동을 가집니다.
Student클래스의 인스턴스인student1,student2와 같이 생성됩니다.
// Student 클래스 정의
public class Student {
private String name; // 학생 이름
private int id; // 학생 ID
// 생성자
public Student(String name, int id) {
this.name = name;
this.id = id;
}
// Getter
public String getName() {
return name;
}
public int getId() {
return id;
}
}
이 클래스에서 name과 id 필드는 private 접근 제어자를 통해 캡슐화되어 있습니다. 이는 데이터 보호 및 코드 유지보수를 용이하게 합니다.
Inheritance와 Polymorphism
상속(Inheritance)은 하나의 클래스가 다른 클래스의 특성을 물려받는 기능입니다. 예를 들어, GraduateStudent라는 클래스를 만들어 Student 클래스의 속성과 메서드를 물려받을 수 있습니다.
다형성(Polymorphism)은 같은 메시지가 서로 다른 상황에서 다르게 동작하도록 하는 기능입니다. 이를 통해 서로 다른 학생 유형의 배열을 다룰 수 있습니다.
// GraduateStudent 클래스 정의
public class GraduateStudent extends Student {
private String thesis;
public GraduateStudent(String name, int id, String thesis) {
super(name, id);
this.thesis = thesis;
}
public String getThesis() {
return thesis;
}
}
Collection Framework
학생 정보를 보관하기 위해 List, Set, 또는 Map과 같은 Collection Framework를 사용할 수 있습니다.
List는 순서가 있는 자료구조로, 중복을 허용합니다.Set은 중복을 허용하지 않는 자료구조입니다.Map은 키와 값으로 이루어진 자료구조입니다.
import java.util.ArrayList;
import java.util.List;
public class StudentManagement {
private List<Student> students = new ArrayList<>();
// 학생 추가
public void addStudent(Student student) {
students.add(student);
}
// 모든 학생 정보 출력
public void printStudents() {
for (Student student : students) {
System.out.println(student.getId() + " : " + student.getName());
}
}
}
이제 학생 관리 프로그램의 데이터 구조를 기반으로 한 CRUD 작업을 구현해보겠습니다. 또한 JDBC를 통해 MySQL 데이터베이스와의 연결을 설정하고, Collection과 Stream API를 통해 데이터를 처리합니다.
실습
지금까지 생성한 구조를 바탕으로 학생 관리 프로그램의 CRUD 기능을 만드는 실습을 진행합니다. 다음과 같은 작업을 수행해보세요:
- 학생 추가 기능을 구현하고, 사용자가 입력한 데이터를 저장합니다.
- 학생 목록 출력 기능을 구현하여 현재 저장된 모든 학생을 보여줍니다.
- 학생 정보 수정 및 삭제 기능을 구현하여 ID 기준으로 검색할 수 있도록 만듭니다.
프로젝트
학생 관리 프로그램을 바탕으로 회원 관리, 게시판, 상품 관리 등의 프로젝트로 확장할 수 있습니다. 각 프로젝트에서 객체지향 설계 원칙을 유지하며 개발해보세요.
정리
이 실습을 통해 OOP의 기초 개념을 이해하고, Java에서의 객체 관리 방식을 배우셨습니다. Spring Boot 프레임워크를 학습할 때 이 과정을 통해 배운 내용들이 기본이 됩니다. 앞으로의 실습과 프로젝트에서는 이러한 개념들이 어떻게 활용될 수 있는지 살펴볼 예정입니다.
"""
// Student 클래스 정의
public class Student {
private String name; // 학생 이름
private int id; // 학생 ID
// 생성자
public Student(String name, int id) {
this.name = name;
this.id = id;
}
// Getter
public String getName() {
return name;
}
public int getId() {
return id;
}
}
// GraduateStudent 클래스 정의
public class GraduateStudent extends Student {
private String thesis;
public GraduateStudent(String name, int id, String thesis) {
super(name, id);
this.thesis = thesis;
}
public String getThesis() {
return thesis;
}
}
import java.util.ArrayList;
import java.util.List;
public class StudentManagement {
private List<Student> students = new ArrayList<>();
// 학생 추가
public void addStudent(Student student) {
students.add(student);
}
// 모든 학생 정보 출력
public void printStudents() {
for (Student student : students) {
System.out.println(student.getId() + " : " + student.getName());
}
}
}
댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨보세요.