기간
2023/2/28 ~ 2023/3/02

수업
실시간 ZOOM 수업


Day 10(자바)

static
컴파일 시에 정적으로 메모리 생성

heap
인스턴스의 멤버변수(static이 아닌 것) 및 메소드 저장

stack
메소드 실행되면 쌓임 FILO
→ 메소드의 지역변수, 매개변수도 stack에 저장됨

상속
재사용하기 위해 쓰는 게 아님. 재사용은 부가적인 것
is a가 아니면 상속관계 X
추상화하기 위해 쓴다.

Car car = new Car(new Engine());

DI 주입
→ 컴포짓 패턴

아시아인 n1 = new 한국인(); //한국인-(아시아인)-지구인
n1.name //아시아인

지구인 n2 = new 한국인(); //한국인-아시아인-(지구인)
n2.name //지구인

구체적 행위가 다르다.
메소드에 파라미터로 주입돼도 의존성 주입

부모의 메서드가 오버라이드됨
→ 오버라이드: 무효화시킴

자식이 부모의 메서드를 오버라이딩(x) 재정의(0)

어노테이션은 JVM의 주석이다.

@Override를 달면 JVM이 해당 클래스를 조회할 때 해당 어노테이션으로 바로 감

싱글톤패턴 설계

class Doorman{
	//불변: setter가 없기 때문에
	private static instance = new Doorman();

	public static Doorman getInstance(){
		return instance;
	}

	private Doorman(){}
}

public main(String[] args){
	Doorman d = Doorman.getInsatance();
	//Doorman.getInstance = null; 할 수 없음
}

Day 11(자바 스크립트)

인터프리터 언어

타입 안 적는 이유: 런타임에 메모리 결정

null 대신 undefined

class User{
	private int id;
	private String username;
	private String password;

	//getter, setter, constructor
}
let user = {
	id: 1,
	username: "test",
	password: "1234"
}

console.log("id". user.id)

serializable 직렬화 및 역직렬화를 통해 통신 → json으로

json: javascript object notation

heap에 저장됨

원할 때 new 해서 띄우는 자바와는 다르게 자바스크립트는 다 뜸

그리고 자바스크립트는 타입을 보지 않기 때문에 배열에 여러 타입이 들어갈 수 있어서 느리다.

파이썬은 인터페이스 언어
→ 내부적으로 C언어로 실행됨

자바스크립트는 자바(객체 지향: 클래스를 1급 객체)와 다르게 모든 것을(메소드도) 1급 객체로 생각
→ 1급 객체: 최상단에 위치할 수 있는 코드
⇒ 1급 객체는 변수에 담을 수 있다.

자바에서는 클래스 안에 구현해야 쓸 수 있음
하지만 자바스크립트는 바로 호출 가능

class A{ //VO
	int num = 10;
}

호이스팅
→ 코드가 실행하기 전 해당 스코프의 최상단으로 끌어 올려진 것 같은 현상을 말한다.

profile
웹퍼블리셔의 백엔드 개발자 도전기

0개의 댓글