반응형
📚 KEYWORD
인터페이스
implements 라는 키워드에서 볼 수 있듯이, 구현해야 하는 공통적인 규약
기능 자체보다는 규약에 초점을 둔다.
API
Application Programming Interface
데이터가 있고 클라이언트가 있을 때
클라이언트가 원하는 형태로 데이터를 잘 조합해서 상호작용할 수 있게 하는 인터페이스
각자의 접근 권한에서 필요한 것만 연계하기 라는 말이 좋았다.
꽃으로 예를 들면 꽃들이 있고 클라이언트가 필요한 정보를 꽃다발로 주문 했을 때 전달해주는 꽃집 직원과 같다고 할 수 있다.
JAVA COLLECTION
- Collection
- List - ArrayList, Vector, LinkedList
- Set - HashSet, TreeSet
- Map - HashMap, TreeMap, HashTable
HASH
인덱스 기반으로 O(1)로 빠르다.
🤔 THINK
인터페이스를 사용해야 하는 이유
추상 클래스와 비교해서 설명하면
만약 동물이라는 부모 클래스가 있을 때
모든 동물들이 수영을 할 수 있는 것은 아니므로
수영 메서드를 모든 자식 동물들이 구현해야하는 것은 논리적으로 맞지 않다.
이 때 swimmable 이라는 인터페이스를 구현해놓고
수영을 할 수 있는 동물들에게만 해당 인터페이스를 구현하라고 하면 논리적으로 맞는 형태 이다.
이처럼 필요없는 규약을 모든 클래스에게 상속을 해야할 이유가 없을 때, 또는 규약만 공통적으로 묶어 놓을 때 하면 좋을 것 같다.
💬 ETC
회원 서비스 프로젝트
https://github.com/youhyeoneee/java-practice/tree/main/src/day04
Java의 HashMap을 사용하여
DB가 없을 때 대체할 수 있는 DAO를 구현해보았다. (with 진언님)
다시 페어프로그래밍 하는 느낌이었다. ㅎ.ㅎ
- 이슈라기보단 고민 ?!
아이디를 키로, 아이디, 이름, 비밀번호를 값으로 한 HashMap을 사용하여 UserDB를 구현하였다.
아이디가 이미 키에 있는데 값에 또 나와서 중복되는 게 좀 우려되었지만, 이 또한 회원의 한 묶음의 정보라고 생각되어서 값으로 넣었다.
PK와 같은 auto incrument id를 사용할 수도 있었을 것 같다.
반응형
'기타 > TIL' 카테고리의 다른 글
[TIL] 24.04.30 (0) | 2024.05.02 |
---|---|
[TIL] 24.04.29 (2) | 2024.04.30 |
[TIL] 24.04.05 (0) | 2024.04.08 |
[TIL] 24.04.04 (0) | 2024.04.04 |
[TIL] 24.04.03 (0) | 2024.04.03 |