TIL

    🚀 bitcamp TIL (21.08.10)

    📌 31일차(2021-08-09,월) 자바 객체지향 문법(eomcs-java/com.eomcs.oop) ex07: 추상 클래스와 추상 메서드 자바 기본 클래스 사용법(eomcs-java/com.eomcs.basic) ex01: Object 클래스 사용법 📌 알게 된 점 전길남박사 - 아시아 최초의 인터넷 망 팀 버너스 리 - tcp/ip 해시 값 = 원본 파일과 같은 파일인지 비교한다. object toString() equals() hashCode() getClass() clone() finalize() notify() notifyAll() wait() hashCode를 오버라이딩하면 인스턴스가 다르더라도 인스턴스 변수의 값이 같으면 같은 해시값으로 리턴된다. clone()의 제약조건 clone() 오..

    🚀 bitcamp TIL (21.08.09)

    📌 31일차(2021-08-09,월) 자바 객체지향 문법(eomcs-java/com.eomcs.oop) ex07: 추상 클래스와 추상 메서드 📌 알게 된 점 객체지향 분석 설계에서는 인스턴스 필드를 다루는 인스턴스 메서드를 연산자라고 한다. 추상화가 무너진다? > 적절하게 접근을 통제함으로서 해결 ex) 환자정보 - 키, 몸무게, 성별 등등 만약 키 몸무게가 무효한 값이라면 치명적이다. (추상화가 무너진다) 향후 변경가능성에 대해서 어떤 구조로 작성하는게 유지보수에 도움을 주는가? 가능한 최소한의 터치로 바꾸게끔 필드보다 메서드를 통한 변경이 유지보수가 좋다. lombok - 실무에서 쓴다. (게터 세터를 보다 더 간결하게 작성하기 위함) 만들어놓고 보니까 아 겹치네 수퍼클래스로 정의하자 추상클래스의 레..

    🚀 bitcamp TIL (21.08.06)

    📌 30일차(2021-08-06,금) 실전 프로젝트(eomcs-java-project) 10-c. 리팩토링 : ArrayList를 직접 사용하기 10-d. 리팩토링 : LinkedList를 직접 사용하기 10-e. 리팩토링 : Generalization + 다형성 + 의존 객체 주입(Dependecy Injection) 10-f. 리팩토링 : 메서드 이동 10-g. 리팩토링 : 인터페이스 적용 📌 알게 된 점 객체지향의 핵심은 클래스 관계도이다. 구조를 바꾸는 이유?? 더 유지보수하기 쉽게 바꾸기 위하여 구조에 대한 정답은 없다 , 현재 상황에서 어느 방법이 더 유지보수하기 쉽냐를 판단 초보자들의 흔한 실수 : 메서드는 public 필드는 private 공개여부에 따라 달라진다. 특정 클래스 내부에서만 ..

    🚀 bitcamp TIL (21.08.05)

    📌 29일차(2021-08-05,목) 실전 프로젝트(eomcs-java-project) 10-a. 자료 구조 다루기 II : 데이터 처리 코드를 캡슐화 📌 알게 된 점들 캡슐화 - 복잡한 코드를 분리하여 메서드에 감춘다. (핵심) 복잡한 코드를 단순화시키자. 캡슐화의 이점 - 메서드를 이용하는 측에 영향을 주지 않으면서 기능의 구현을 변경할 수 있다. (핸드폰 기능들 내부 구조 몰라도 된다. 잘 동작해서 쓰기만 하면 된다.) 교체가 쉽고 유지보수가 쉽다. 사용자 UI 중심 클래스 / DAO 데이터 처리를 하는 클래스로 분리 (높은 응집도 : 한 클래스가 한 기능에 집중하게 만든다) 어떤 경우에 클래스를 합치는지 어떤 경우에 클래스를 분리해야하는지? 책임할당 소프트웨어 설계패턴 GRASP(객체지향 밑바닥 ..

    🚀 bitcamp TIL (21.08.03 ~ 21.08.04)

    📌 27일차(2021-08-03,화) 실전 프로젝트(eomcs-java-project) 08-b. Composite 디자인 패턴 : 적용 후(계속) 08-c. Composite 디자인 패턴 : 익명 클래스 활용 08-d. Composite 디자인 패턴 : 스태틱 멤버를 인스턴스 멤버로 전환 📌 알게 된 점 패턴 = 유사한 형태 이러이러한 내용으로 하니까 잘 되더라 클래스 상속관계 의존관계를 어떻게 설계할 것인가? 처음부터 제로베이스에서 시작하는거 아니다. 우리가 필요한것은 선배들의 경험을 내 것을 받아들이고 실무경험을 쌓고 우리만의 방법을 찾는 것이 순서다. 무조건 내가 처음부터 창시한다? nono 직접 접근하지말고 상속받은 슈퍼클래스의 타이틀을 호출하라 삭제 = 삭제는 보이드 대신 메뉴 객체를 준다. ..

    🚀 bitcamp TIL (21.07.30)

    📌 25일차(2021-07-30,금) 자바 객체지향 문법(eomcs-java/com.eomcs.oop) ex06: c ~ * : 다형성(다형적 변수, 오버로딩, 오버라이딩)(계속) ex08: a ~ b : 캡슐화(private, (default), protected, public) 📌 알게된 점 객체지향 분석/설계에서는 메서드를 operator라고 부른다. (국제적으로) data 입출력을 통해 중간에 연산을 수행하는 역할 s에 대해 compute()라는 연산을 수행 (s라는 데이터에 대해서 compute()를 수행) 인스턴스를 만들 때 주의사항 다른 클래스를 상속하고 있는지 확인한다. 슈퍼 클래스의 인스턴스까지 같이 만든다. (어떤 접근제어자라도 만든다) 생성자를 호출한다. 상속받았다고 해서 기존 클래스..

    🚀 bitcamp TIL (21.07.29)

    📌 24일차(2021-07-29,목) 자바 객체지향 문법(eomcs-java/com.eomcs.oop) ex05: h ~ * : 상속 문법(계속) ex06: a ~ c : 다형성(다형적 변수, 오버로딩, 오버라이딩) 📌 알게 된 개념 메모리 설계도 = 새 데이터 타입 정의 데이터(project) vs 기능묶음(업무)(ProjectHandler) 어떤 것에 중심이냐에 따라 클래스를 따로 짠다. 데이터를 추상화, 기능을 추상화 실세계 => 데이터로 추상화 (환자 정보를 데이터로 저장) 물리적 : 환자 , 제품(Product) 개념적 : 주문 , 날짜 물리적,개념적인 것을 추상화시킨다. API문서 >> 문서화 자신이 짠 코드를 문서화하면 가장 좋다. 나 이외에 다른 사람이 내가 만든 코드를 유지보수 한다면? ..

    🚀 bitcamp TIL (21.07.28)

    📌 23일차(2021-07-28,수) 자바 객체지향 문법(eomcs-java/com.eomcs.oop) ex04 인스턴스 멤버와 스태틱 멤버 활용예 ex05 a ~ g : 상속 문법 📌 알게 된 개념 생성자란 ? 인스턴스를 생성한 후 재대로 쓸 수 있도록 유효한 값으로 초기화 시키는 일을하는 메서드 변수를 쓰기전에 유효한 값으로 초기화를 시켜놔야하는 경우 남이 만든 클래스에 생성자를 사용할 때 메뉴얼을 보고 적절한 생성자를 선택해서 사용하라. 인스턴스를 만들고 적절한 생성자를 선택해서 유효한 값을 설정한 후 사용하라 어떤 생성자가 있고 이런 값을 줘야한다 메뉴얼이 나와있다 그것을 보고 쓰면 된다. JDK 8 까지 String 클래스는 문자열을 저장할 때 char[] >> 9 부터 byte[] 사용 인스턴..