24/02/08 Network(TCP/IP, UDP) SQL LV1, HashMap
◈ SQL(최댓값,최솟값 구하기*, 자동차 대여기록에서 장기/단기... *, 조건에
부합하는 중고거래 댓글 조회, 중복 제거하기*,동물 수 구하기, 동명 동물수
찾기, 이름에 EL이 들어가는 동물찾기)
● SELECT MAX 또는 MIN(COLUMN_NAME)
● SELECT DATE_FORMAT(COLUMN_NAME, '%Y-%m-%d')
IF(DATE_DIFF(END_DATE, START_DATE)>=29, 'X', 'Y')
● SELECT COUNT(*)
COUNT(DISTINCT COLUMN NAME)
- COUNT(*) 는 NULL을 포함하여 계산하지만
- 특정 COLUMN의 개수를 셀때는 NULL을 제외한다.
◈ Network(쉬운코드)
■ TCP / IP stack
● 인터넷이 발명되면서 함께 개발된 프로토콜 스택
APPLICATION: - 네트워크 기능을 사용하는데 목적 - 애플리케이션 레벨에서 구현/관리 ▼ PORT ▼ |
application layer ▼ PORT ▼ |
SYSTEM: - 하드웨어/펌웨어 OS레벨에서 구현/관리 - 네트워크 기능을 지원하는데 목적 |
transport layer internet layer link layer |
■ TCP(transmission control protocol)
● Internet protocol의 Unreliable(데이터 유실, 순서)을 → Reliable하게 해주는 Protocol
● PORT(number) : process와 연결된 data path, data channel
● Connenction : 프로세스간의 안정적이고 논리적인 통신 통로
- Connection(3-way)을 열고 데이터를 주고 받고 Connection(4-way)을 닫는다 (Connection - oriented)
● Socket : Internetaddress(Ip) + Port number, 인터넷 상에 존재하는 각 Port를 유니크하게 식별하기 위한 주소
■ UDP (user datagram protocol)
● connectionless : 연결을 맺지 않고 바로 데이터를 주고 받음
● unreliable : internet protocol을 거의 그대로 사용
◈ 백준- (20291번*, 1764번)
- 문자열을 읽어서 해결하는 문제를 파싱 이라고 하는것 같음....
- 해싱 : String기반으로 정보를 관리할때 해시(Hash)알고리즘 사용!
■ HashMap
● Map<String, Integer> map = new HashMap();
- key값은 String, value값은 Integer값으로 key : value 값으로 저장이 됨
● 중복을 허용하지 않음
● 풀이법은 Map에 확장자(key)와 횟수(value)값으로 넣어서 진행 + List<String>을 선언하여 확장자 이름만 따로 기입후
사전 순 정렬을 위하여 Collections.sort(list)실행.
● map.getOrDefault(x,0) key값에 x가 있으면 value값을 반환하고 없으면 0을 반환함
++) HashMap함수를 더 살펴보면 (put, get, getOrDefault 3개만 기억하자!)
- HashMap.put(key, value) : key/value값을 저장
- HashMap.get(key) : 해당 key값을 갖는 value반환
- HashMap.containsKey(String) : key값이 String이 있는지 여부 (Boolean 타입)
- HashMap.size() : key의 개수를 리턴
- HashMap.remove(String) : String에 해당하는 key값 삭제
+++) HashMap 과 TreeMap
- HashMap은 키의 순서를 보장x TreeMap은 순서를 보장