TIL

    🚀 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.22)

    📌 19일차(2021-07-22,목) 자바 객체지향 문법(eomcs-java/com.eomcs.oop) ex01 객체 지향 문법 요약 정리 실전 프로젝트(eomcs-java-project) CRUD 구현하기(계속) 📌 알게된 점 정리 메서드안에 추가적인 값이 필요하면 파라미터로 값을 받아서 실행하면 된다. 원래 클래스명.메서드명(값1,값2.....) 메서드들이 서로 공유하는 값이 있다? 공유할 값을 담을 변수가 필요해 파라미터로 받는다? (가능은하지만 밑의 방법이 더 좋다.) 클래스 내에 변수로 공통적으로 뽑아낸다. 개별적으로 여러개 뽑아내? 그러면 인스턴스 변수로 만들어 서로 연관되어있는 메서드를 하나의 클래스로 묶으면 유지보수 하기 좋겠죠? 카드를 쓰는 사람이 카드를 관리해야지 다른 사람이 관리하면 ..

    🚀 bitcamp TIL (21.07.21)

    📌 18일차(2021-07-21,수) 자바 객체지향 문법(eomcs-java/com.eomcs.oop) ex01 객체 지향 문법 요약 정리 실전 프로젝트(eomcs-java-project) 05-c. 인스턴스 사용법 : 인스턴스 메서드가 필요한 이유와 사용법 📌 알게된 점 local 변수의 lifecycle 언제 생성되어서 언제 소멸되는지 어디에 만들어지는지? 메서드가 생성될 때, 메서드가 종료될 때, JVM stack 사용자 데이터 타입 => 인스턴스 필드(변수) non-static 변수 클래스 변수 - 클래스가 로딩될 때 한 번만 생성된다. (공용적으로 관리) new 연산자를 사용하면 heap에 클래스가 복제된다? 인스턴스 변수가 없으면요? 안만들어지나요? static 메서드와 instance 메서드..

    🚀 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.16)

    📌 15일차(2021-07-16,금) 실전 프로젝트(eomcs-java-project) 04-a. 클래스 사용법 : 메서드 분류 04-b. 클래스 사용법 : 새 데이터 타입 정의 04-c. 클래스 사용법 : 패키지로 클래스 분류 📌 알게 된 것들 배열을 넘깁니다 = 배열의 주소를 넘깁니다와 같은 말이다. 메서드 관리를 쉽게 하기 위해 클래스로 분류한다. 역할에 따른 분류 데이터 타입을 정의 (사용자정의) 메서드를 분류했으면 그에따라 메서드 이름도 바꾸어준다. (유동적으로) 자원을 닫는 일은 그 자원을 가지고 있는 클래스에서 해야 한다. (남의 지갑가지고 결제하는것과 같은 이치, 어처구니가 없다.) 사용기능에 대해 이거 왜 이래요? (물건 사용법이 있는데 자기 멋대로 사용해놓고 이거 왜 이렇게 안되요?) ..