bitcamp

    🚀 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.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[] 사용 인스턴..

    🚀 bitcamp TIL (21.07.27)

    📌 알게 된 개념들 클래스를 로딩하는 시점을 파악하라 필드 초기화, 스태틱 초기화 블럭, 인스턴스 초기화 블럭, 생성자에 대한 이해를 한다. 그림을 그린다 = 시각적으로 남겨라 기억에 오래 남는다. 메모리는 2차원이 아니다 바이트배열의 집합이다 상대적인 주소 = offset (용어기억) new = 인스턴스 생성 + 부가 정보(어떤 클래스의 어떤 인스턴스필드인지등) 기억하자! 즉 안에 인스턴스 필드가 없어도 인스턴스가 heap에 생성된다. 레퍼런스 변수를 선언할 때는 클래스를 로딩하지 않는다. // 예) A obj; static필드 , instance필드 = 자동 초기화 됨 , 로컬변수는 자동 초기화 안됨 코드 타입 숫자로 한다 => 상수로 지정 (의미있는 변수 이름으로) 실무 => 일단 인스턴스 메서드로..

    🚀 bitcamp TIL (21.07.26)

    📌 21일차(2021-07-26,월) 실전 프로젝트(eomcs-java-project) 07-a. 의존 객체 다루기 : 인스턴스 필드에 직접 주입 07-b. 의존 객체 다루기 : 생성자로 주입 📌 알게 된 점 문맥에 따라 클라이언트가 다르게 쓰일 수 있다. 객체 != 인스턴스 (무조건 이렇게 단편적으로 외우지 말라.) 의존객체를 인스턴스와 연결시키는데 클래스로 메서드를 호출하던 인스턴스로 호출하던 다 의존객체다. 그림은 중요한걸 강조하기 위해서 그리는거다 모든 상세한것은 그리는게 아냐 핵심은 강조하고 싶은것을 그려라 일시적인 의존관계(dependency) / 지속적인 의존관계(association) 여러 메서드에서 사용하는 의존객체라면 일시적인 관계(파라미터)가 아니라 지속적인 관계(인스턴스필드)로 설정..