TIL
🚀 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) 여러 메서드에서 사용하는 의존객체라면 일시적인 관계(파라미터)가 아니라 지속적인 관계(인스턴스필드)로 설정..
🚀 bitcamp TIL (21.07.23)
📌 20일차(2021-07-23,금) 실전 프로젝트(eomcs-java-project) 06-a. CRUD 구현하기(계속) : 회원/프로젝트/작업 CRUD 완성 06-b. CRUD 구현하기 : 리팩토링 인덱스 관련 멤버 레퍼런스 변수에 저장하거나 일치하는 인덱스를 찾거나 반복문 내에서 해결하거나 요구사항을 구현하는 방법은 여러가지! String format 쓰꺼나 String.format() 직접 식안에 변수 쓰거나 System.out.println("("+name+")") 1가지 방법 일관되게 써 index 기본값 -1로 설정 멤버 객체를 꺼내라 = 배열에서 객체를 꺼낼 수 없고 객체의 주소를 꺼낸다는 것을 줄여서 말함 왜 null로 초기화 시키는건가? 가비지가 되지않는다. 메모리 최적화 관련. 초기화..
🚀 bitcamp TIL (21.07.20)
📌 17일차(2021-07-20,화) 자바 객체지향 문법(eomcs-java/com.eomcs.oop) ex02 스태틱 필드, 인스턴스 필드, 로컬 변수 비교와 활용 스태틱 메서드, 인스턴스 메서드 비교와 활용 📌 알게된 점 바이트코드 = 기계어에 흡사하게 변환 메서드 호출하면 프레임은 자동적으로 만들어진다. 클래스는 언제 언로드되는가? JVM 종료될 때 클래스로더에 의해 강제적으로 언로드 스태틱 변수는 클래스가 로드될 때 만들어지고 언로드될 때 사라진다. 어디에 생성된다? 언제 생성된다? 언제 제거된다? 파악하자 인스턴스 변수가 사용될 때 이미 스태틱변수는 로딩중 new Test(); Heap 메모리에 인스턴스를 생성한다. Test t1 인스턴스의 주소를 넣을 레퍼런스 변수를 선언한다. Test t1 ..
🚀 bitcamp TIL (21.07.19)
📌 16일차(2021-07-19,월) 실전 프로젝트(eomcs-java-project) 04-d. 클래스 사용법 : 의존 관계 05-a. 인스턴스 사용법 : 클래스 필드와 클래스 메서드의 한계 05-b. 인스턴스 사용법 : 인스턴스 필드가 필요한 이유와 사용법 📌 알게된 점 의존관계 - 얘 없이는 동작할 수 없다. 상황 판단(저것 그것 거시기) -> 객체 객체를 만든다 -> 1. 인스턴스 , 2. 클래스 객체 = 인스턴스는 잘못된 개념이다. (x) 객체는 포괄적인 의미 의존하는 클래스 -> 의존 객체 소프트웨어 설계 = 굵은 것만 정의 -> 만들면서 추가 return; // 메서드 실행을 즉시 종료! 문자열이 빈 문자열을 확인하는 코드 xxx.length() == 0; xxx.equals(""); 메서드..
🚀 bitcamp TIL (21.07.14)
📌 13일차(2021-07-14,수) 자바 기초 문법(eomcs-java) com.eomcs.lanng.ex07 메서드 활용 call by value 와 call by reference JVM이 메모리 영역: Method Area, JVM Stack, Heap 클래스의 인스턴스 메모리 📌 알게 된 것들 도구에 의존하지 말라 알고 있다는 가정하에 툴을 쓰는것이지 모르는 상태에서 쓰면 안된다. 기능을 뺄건 없는지 확인한다. 보편적인 메서드명 ,변수명을쓴다. 그래야 유지보수 하기 쉽기 때문에 공통적으로 쓰려면 고정값으로 쓰지말고 파라미터로 받아서 유동적으로 처리하자(리팩토링) 실전프로젝트를 배운것들을 10분이내로 할 수 있도록 반복한다. "replace temp with query" 리턴 값을 한 번만 사용한..