AWS에서 진행하려고 하다보니 비용 문제도 있어서 튜터님이 시연하며 설명하시는 걸 들었다. 쿠버네티스는 도커(꼭 도커가 아니더라도) 기반으로 생성된 컨테이너들을 관리하는 도구이다. 가상머신마다 도커를 심고 스케일아웃할 때 관리가 번거로워지기 때문에 필요하다. 아무래도 구성은 스프링 클라우드와 매우 비슷한 느낌이었고, 일부를 섞어쓰는 경우도 있다고 하셨다.
JAVA를 다루는 마지막 스터디 시간이었다.
상속, toString 오버라이딩, interface 등 전체적으로 리뷰하는 실습이 여러 차례 진행됐다.
항상 스터디하면 똑같은 프로젝트에 계속 만들어서 해왔는데 분명 라이브러리 lombok 추가해뒀는데도 오늘 갑자기 어노테이션이 먹통이었다... 에러가 계속 나서 뭔가 했는데 생성자 안 만들어줬다고 난 에러였다. 그래도 자동으로 생성자 만들어주는 기능이 있으니 덜 귀찮았다.
// Parent.java
@Getter
@Setter
public class Parent {
String name;
boolean gender;
public Parent() {
}
public Parent(String name, boolean gender) {
this.name = name;
this.gender = gender;
}
@Override
public String toString() {
System.out.println("name: " + name);
return gender ? "gender: woman" : "gender: man";
}
}
// Child.java
@Getter
@Setter
public class Child extends Parent {
int age;
String nickname;
public Child() {
}
public Child(String name, boolean gender, int age, String nickname) {
super.name = name;
super.gender = gender;
this.age = age;
this.nickname = nickname;
}
@Override
public String toString() {
System.out.println(super.toString());
System.out.println("age: " + age);
System.out.println("nickname: " + nickname);
return null;
}
}
// Inheritance.java
public class Inheritance {
public static void main(String[] args) {
System.out.println("Inheritance");
Parent parent = new Parent("yj",true);
System.out.println(parent);
System.out.println("----------");
Child child = new Child("mj",false,23,"MJ");
System.out.println(child);
}
}
// Calc.java
public interface Calc {
public static final double PI=Math.PI;
int ERROR = -99999999;
public abstract int add(int num1, int num2);
int sub(int num1, int num2);
int mul(int num1, int num2);
int div(int num1, int num2);
}
// Calculator.java
public abstract class Calculator implements Calc {
@Override
public int add(int num1, int num2) {
return num1 + num2;
}
@Override
public int sub(int num1, int num2) {
return num1 - num2;
}
}
// CompleteCalc.java
public class CompleteCalc extends Calculator {
@Override
public int mul(int num1, int num2) {
return num1 * num2;
}
@Override
public int div(int num1, int num2) {
if(num2 ==0) {return ERROR;} else {return num1/num2;} //잘못 이해하고 예외 처리한 부분
}
}
// InterfaceTest.java
public class InterfaceTest {
public static void main(String[] args) {
CompleteCalc calc = new CompleteCalc();
int num1=5;
int num2=0;
System.out.println(calc.add(num1,num2));
System.out.println(calc.sub(num1,num2));
System.out.println(calc.mul(num1,num2));
System.out.println(calc.div(num1,num2));
}
}
SAVE 💾
다형성 인터페이스 다운캐스팅 등 이 부분들은 진짜 그 자바 강의 문제가 너무 골고루 잘 다뤄서 혹시 애매하면 그 문제 복습하면 될 것 같다. 스터디도 끝나고 진짜 프로젝트가 내일부터 시작인 게 점점 느껴진다... 무섭기도 하고 떨리기도 하고 설렌다. 기한 안에 잘 맞춰서 진행할 수 있기를@@!!!