본문 바로가기
728x90

카테고리252

[이펙티브자바]item11.equals를 재정의하려거든 hashCode도 재정의하라. equals를 재정의한 클래스 모두 hashCode도 재정의 해야 한다. 재정의할때에는 좋은 hashcode 작성 요령 같은 키워드로 찾아서 작성해주자. ide 의 도움을 받아 정의하는 방법도 괜찮다. 2023. 1. 17.
[이펙티브자바]item10.equals는 일반 규약을 지켜 재정의하라. 아래와 같은 상황에서는 equals 를 재정의하지 않는게 최선이다. 각 인스턴스가 본질적으로 고유하다. 싱글톤 오브젝트같은 경우에 equals 가 필요할까?enum 일때는?? 굳이 필요없다. 논리적 동치성을 검사할 일이 없다 객체의 동일성이 논리적으로 일치할 경우 굳이 equals 를 재정의 하지 않아도 된다.ex) 문자열 같은 상위클래스에서 재정의한 equals 가 하위 클래스에서도 딱 들어 맞는다 set, list 같은 상속하여 만들때 클래스가 private 이거나 package-private 이고 equals 를 호출할 일이 없다. public 은 equals 를 호출하지 않는다라는걸 보장하지못하지만 private 는 다르다. 각 인스턴스가 본질적으로 고유하다. equlas 를 재정의 안하는걸 추천.. 2023. 1. 17.
[이펙티브자바]item9.try-finally보다는 try-with-resources를 사용하라. InputStream, OutputStream, Connetion 등의 자바 라이브러리를 직접 close() 해줘야하는 경우가 있다 왜 이것들은 close()를 해주고 다른객체들은 GC가 수거해 갈까? 메모리를 관리하며, 더이상 필요없는 객체는 GC가 수거해 가는데, Stream의 경우에는 외부 자원을 가져와서 쓰기때문에, 하드데이터 GC가 이를 알지 못해 close 를 통해서 처리한다. 외부 라이브러리를 쓸때 한번씩 더 체크해야할 상황인듯. 기존 try finally 방식도 나쁘지는 않다고 생각하지만, 코드가 더 깔끔하고, 실수할 여지가 없는 try-with-resources 를 사용하자. *참고로 코틀린은 use 를 사용한다 2023. 1. 17.
[이펙티브자바]item8.finalizer와 cleaner 사용을 피하라. finalize? 가비기컬렉션의 수행될 때 실행되는 메소드를 정의할 수 있다고 한다. leak 을 방지하기 위한 기술이였던거 같다. cleaner? finalize 의 대안책으로 덜 위험하지만, 예측할 수 없고, 느리고, 일반적으로 불필요하다. --- 사용안하는 이유 즉시 수행된다는 보장이 없음.(가비지 컬렉터 알고리즘에 따라 다름) 성능문제 정말 필요한 상황이 아니라면 쓰지말자. 자원의 close 가 필요한 상황에 안전망 같은 경우에 사용은 가능하지만 안쓰는게 나을듯. 추후 업데이트 하겠지만, 잘 쓰지 않은 부분이라 크게 와닿지 않은 부분. 그래서 어떻게? item9 에서 나오겠지만 try with resources 를 사용하면 될듯하다. 2023. 1. 17.
MAC 사용중인 포트 찾기, Kill 하기 터미널 열고 lsof -i :포트번호 ex: lsof -i :12345 kill 하기 kill -9 pid ex: kill -9 7417 2023. 1. 16.
mysql 인덱스 확인, mysql 실행계획, 테이블 데이터 용량 확인 쿼리가 너무 느린부분이 있어 실행계획을 살펴보다 또 볼 날이 있을 듯 하여 올림. === 명령어. 인덱스 확인: SHOW INDEX FROM ; ex:SHOW INDEX FROM stop_orders; 인덱스 추가: //인덱스 정렬은 8.0부터 가능하다. CREATE INDEX ON ( 칼럼명1, 칼럼명2, ... ); 또는 ALTER TABLE ADD INDEX (칼럼명1, 칼럼명2, ...); ex: ALTER TABLE stop_orders ADD INDEX index_stop_orders_on_order_id (order_id desc); 인덱스 삭제: ALTER TABLE DROP INDEX ; ALTER TABLE stop_orders DROP INDEX index_stop_orders_on_.. 2023. 1. 16.
L3, L4 스위치(Switch) 등 간략히 - 네트워크 보다보면 l3, l4 스위치라는 말을 자주하게되는데 간략히 알아보자. - 스위치? - 영어단어 그대로 바꾸는걸 말한다. 패킷을 어느쪽으로 보내주는 역할(스위치 장비) - 여러 장비를 연결하고 데이터 통신을 중재, 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송하는 통신 네트워크 장비. - 네트워크 7계층을 나눠보면 각 계층을 하나하나의 layer 라 부르기도 한다. - l7 스위치 - l7 즉 layyer 7 애플리케이션 계층, 로드밸런서라고도 함(서버 부하 분산 기기) 정직적인 헬스체크를 이용하고 감시함 - l7, l4 스위치 차이 - 로드밸런서는 l7, l4 스위치도 존재, l4 스위치는 인터넷 계층을 처리하는 기기로 스트리밍 관련 서비스에서는 사용할 수 없다. - l4 는 ip.. 2023. 1. 15.
TCP/IP 4계층, 3 way handshake, 4 way handshake - 네트워크 - 노드와 링크가 서로 연결되어 있거나 연결되어 있지 않은 집합체를 의미 - 처리량 - 링크를 통해 전달되는 단위 시간당 데이터양 - 단위: bps(bits per second) 초당 전송, 수신되는 비트 수 - 대역폭 - 네트워크 연결을 통해 흐룰 수 있는 최대 비트 수 - RTT(Round Trip Time) 또는 latency - 두 장치를 왕복하는 데 걸린 시간 - 네트워크 토폴로지와 병목 현상 - network topology 는 노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태 - 버스토폴로지 - 중앙 통신 회서 하나에 여러개의 노드가 연결되어 공유하는 네트워크 구성 - 설치비용 적고, 신뢰성 우수, 노드 추가 삭제가 쉽다. - 스푸핑이 가능한 문제점 - 스푸핑: L.. 2023. 1. 15.
네트워크 토폴로지 그리고 LAN, MAN, WAN 간략히 네트웤크 토폴로지 노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태 - 버스토폴로지 - 중앙 통신 회서 하나에 여러개의 노드가 연결되어 공유하는 네트워크 구성 - 설치비용 적고, 신뢰성 우수, 노드 추가 삭제가 쉽다. - 스푸핑이 가능한 문제점 - 스푸핑: LAN 상에서 송신부 패킷을 송신과 관련 없는 디른 특정 노드에 악의적으로 패킷이 오도록 하는 행위. - 중앙회선에 문제가 생기면 전부다 문제가 됨. - 스타 토폴로지 - 중앙 노드에 모두 연결된 네트워크 구성 - 노드추가 삭제 쉽다, 패킷 충돌 가능성 낮음. 에러발생을 쉽게 캐치가능 - 중앙노드에 장애가 발생하면 전체 네트워크 사용불가, 비용이 고가이다. - 트리 토폴로지 - 트리구조 - 추가 삭제가 보통(leaf 쪽은 쉬울지몰라도 중.. 2023. 1. 13.
728x90