본문 바로가기
728x90

전체 글249

DB 인덱스는 왜 대부분 B-Tree 를 쓸까 B-Tree vs Hash..링크공유.. 대부분의 디비는 hash index 보다는 B-Tree index 를 지원하는데 왜 그런지 궁금해서 찾아봄. https://www.youtube.com/watch?v=at2sMaNYqCE https://helloinyong.tistory.com/296 https://tech.kakao.com/2016/04/07/innodb-adaptive-hash-index/ MySQL InnoDB의 Adaptive Hash Index 활용 개요 MySQL의 InnoDB에는 Adaptive Hash Index 기능이 있는데, 어떤 상황에서 효과가 있고 사용 시 반드시 주의를 해야할 점에 대해서 정리하도록 하겠습니다. InnoDB B-Tree 인덱스 MySQL의 InnoDB의 대표적인 tech.kakao.com 정리가 감.. 2023. 1. 19.
인텔리제이 javadoc 만들기 추후 포트폴리오나, 필요에 의해 javadoc 을 만들어 제공해주면 더 좋을 것 같아, 사용법을 정리해본다. 주석같은경우 조금만 살펴보면 더 실용적으로 남길 수 있다. 인텔리제이 기준. Tools -> Generate javaDoc 클릭 Output directory 설정 후 ok 참고: https://dejavuhyo.github.io/posts/intellij-generate-javadoc/ IntelliJ Javadoc 생성 1. JavaDoc 메뉴 선택 dejavuhyo.github.io 2023. 1. 19.
클래스풀 (Classful IP Addressing) - 클래스풀 (Classful IP Addressing) - IP 주소는 네트워크 주소와 호스트 주소로 나뉜다. - *IP 주소 - 서로 통신하기 위한 네트워크 주소 - *네트워크 주소 - Host 들을 관리하기 위한 네트워크 범위를 지정하여 관리하기 위해 만듦 - 같은 네트워크는 같은 네트워크에 있다는걸 의미, 자유롭게 통신 가능 - *호스트 주소 - 호스트를 관리하기위한 것 - 네트워크 안에 고유 번호 같은 것 === - IPv4는 A, B, C, D, E 총 5개의 클래스로 네트워크 주소체계를 구분 지을 수 있음 - 크기에 따라 구분되어짐 - D, E 는 잘 사용되지 않음.(D는 멀티캐스트 통신, E는 예비용) - 옥텟의 크기에 따라 A, B, C 구분가능 - *옥텟: IPV4 주소체계 (32비트).. 2023. 1. 18.
IPv4 vs IPv6 차이점과 누가 더 빠를까? - IPv4 & IPv6 - IPv4 - 32비트 주소체계 8비트 단위로 점으로 나뉜다.ex) 172.58.49.44 - 각 8비트 단위를 옥텟 이라고 한다.4개의 옥탯으로 구성되어 있음. - IPv6 - 128비트 주소체계 16비트 단위로 콜론으로 나뉜다.ex) 2001:db8::ff00:42:8329 - 앞의 연속된 0 은 생략가능 - 앞64비트는 네트워크, 뒤 64비트는 인터페이스 주소를 나타냄 - IPSec 이 내장되어 있음 - 데이터 패킷을 암호화 하는 보안 네트워크 프로토콜 - https://aws.amazon.com/ko/what-is/ipsec/ - IPv4 보다 헤더 부분이 단순해 짐 - 차이점 - IPv4 는 체크섬이 있찌만 IPv6 는 체크섬이 없다. - 헤더 체크섬(Header Ch.. 2023. 1. 18.
[이펙티브자바]item13.clone 재정의는 주의해서 진행하라. 자꾸 Object 에 있는 메서드들을 오버라이딩할때 조심하라는데.. Object 은 구상클래스로서([Concrete class]: new 키워드를 통해 인스턴스를 만드는 클래스) 이러한 구상클래스는 내부구현이 되어 있어야 한다. 하지만 몇몇 메서드 들은 되어 있지 않다. clone, toString, hashCode, equals 등등 이러한 메서드 들은 오버라이딩할때 지켜야할 몇가지가 있다. 이러한 주의점들과 해결책들을 계속 말해주는것 같다. 근데 왜 다른것들은 final 이 아니라 오버라이딩을 가능하게 했을까? 음..편의성 떄문인가 입맛대로 수정할 수 있게끔?필요할때마다 다른 기능을 구현해야할 상황이 있어서 ===Cloneable 을 상속받아 clone 메서드를 override 하면 Cloneable.. 2023. 1. 18.
[이펙티브자바]item12.toString을 항상 재정의하라. 요즘 코틀린만 써서 toString을 재정의 안해서 편했는데,, toString 을 보기좋게 원하는 데이터를 볼 수 있도록, 재정의하도록 하자. ide 도움을 받아서 override 하면 될듯하다. 2023. 1. 17.
[이펙티브자바]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.
728x90