Springboot DSA 수업 정리 - (1)

‘2024-12-30 수업 정리’
Group ID: 도메인의 역순 (com.naver)
Artifact ID : 서비스 (프로젝트명)
Maven 프로젝트 -> 외부라이브러리 자동으로 다운받고 관리할 수 있는 프로젝트
자바 버전 변경하고싶은 경우(STS 기준) 프로젝트 우클릭 -> properties -> java build path -> Libraries -> JRE xx
switch (option) {
case 1 -> {
System.out.print("학생 이름을 입력하세요: ");
String name = scanner.nextLine();
System.out.print("학생 전공을 입력하세요: ");
String major = scanner.nextLine();
controller.addStudent(name, major);
}
자바의 신문법으로써 switch문을 줄여서 쓰는 방법이다.
case 1 : {
System.out.print("학생 이름을 입력하세요: ");
String name = scanner.nextLine();
System.out.print("학생 전공을 입력하세요: ");
String major = scanner.nextLine();
controller.addStudent(name, major);
break;
}
위의 코드와 동일하다
사용자가 보는 화면 -> StudentManagementApp(UI) -> controller(Java, Spring) -> Repository(DB)
StudentManagementApp StudentController StudentRepositoryImpl 의존성 X
객체지향 설계의 5대 원칙(SOLOD)
- SRP (Single Responsibility Principle): 단일책임 원칙
- 하나의 클래스는 하나의 책임만 가져야 한다.
- OCP(Open/Closed Principle) : 개방-폐쇄 원칙
- 클래스, 모듈, 함수는 확장에 열려있고 수정에는 닫혀있어야한다.
- LSP(Liskov Substitution Principle) : 리스코프 치환 원칙
- 자식 클래스는 언제나 부모 클래스를 대체할 수 있어야한다.
- ISP(Interface Segregation Principle): 인터페이스 분리 원칙
- 클라이언트가 자신이 사용하지 않는 메서드에 의존하지 않도록 인터페이스를 분리해야 한다.
- DIP(Dependency Inversion Principle): 의존관계 역전 원칙
- 구체적인 구현 클래스가 아닌 추상화에 의존하도록 설계해야 한다.
파일로 저장하는 클래스를 추가로 만들었는데(확장), 원래 소스코드를 수정하는것은 좋은 코드가 아니다. (2번 원칙 위배) -> 구현체가 아닌 추상화에 의존하도록 변경해두면 된다.(느슨하게 의존하도록 해야함)