자바로 자체적인 DB를 구축해보자!(2024.04.08)

YJ·2024년 4월 8일
post-thumbnail

수업

인터페이스

기능을 추가하는 것이 아니라, 껍데기를 만들고 해당 껍데기로 클래스를 구현하는 것. 만약에, 클래스에 다른 기능을 추가하면 SOLID 원칙 위반.

interface Phone {
	boolean getIsOn();
}

위 코드에는 사실 public abstract가 숨겨져있다.

interface Phone {
	public abstract boolean getIsOn();
}	

다중 인터페이스

구현체는 여러 개의 인터페이스를 구현할 수 있다.

접근제어자 class 클래스이름 implements 인터페이스1, 인터페이스2.. {
// 필드
// 생성자
// 인터페이스1에 대한 구현 메소드 (추상 메소드 오버라이딩)
// 인터페이스2에 대한 구현 메소드 (추상 메소드 오버라이딩)
}

내 상위에 있는 친구들은 나보다 공개범위가 넓어서는 안된다.
여기서 답이 나온다.
인터페이스는 public abstract 를 숨기고 있기에,
인터페이스를 구현한 클래스의 메서드는 무조건 public을 사용해야한다.

  • 리스코프 치환 원칙
    자식과 부모는 상위 하위 관계 위치에 있는 것은 서로 자리를 바꿀 수 있어야한다.

IntelliJ의 OpenIn -> explorer
소스 코드(.java)
=> 바이트 코드(.class)
=> 기계어
=> 실행

.class: 파일 형식(<= 빌드 결과물, out에 저장되어 있음)
class: 선언 방법

Q. 바이트 코드만 있으면 프로그램이 실행이 될까?
A. 안된다. 여기서 등장하는 개념이 Resources

소스 코드 - 리소스 파일
이어주는 작업인 링킹

소스 코드 => 바이트 코드 - #링킹 - 리소스

면접에서 링킹 에 대해 물어보는 경우가 많다.

링킹과 링커

  • 링킹(Linking): 여러 개의 코드와 데이터를 모아서 연결하여 메모리에 로드될 수 있고 실행될 수 있는 한 개의 파일로 만드는 작업
    이 파일이 메모리에 로딩되어 실행된다. 링크는 컴파일시에 수행되는 경우도 있고, 로딩시에 수행되는 경우도 있고, 실행시에 수행되는 경우도 있다.

  • 링커(Linker): 링킹을 담당하는 프로그램
    링커는 소프트웨어 개발에서 독립적인 컴파일을 가능하게 하는 아주 중요한 역할을 담당한다

9. 자바 컬렉션 API

API란?

두 개의 다른 시스템이 서로의 연산을 보여주지 않고 연결시켜주는 것

자바 컬렉션 API가 API랑 같은 건가?

Hash: 빠르게 검색하기 위함
검색의 목적이란?
: 빠르게 정보를 찾기 위해서

RDBMS

  • HashMap을 사용하자.

프로젝트 번외편

  • 비밀번호 암호화 vs 복호화
  • K&R 스타일 vs BSD(알만) 스타일 vs 호스만 스타일
  • 출력(실행 결과)
    Readme.md에 실행결과와 출력 결과 작성
  • 로그아웃
  • collaborate 추가
profile
dev

0개의 댓글