Tech
Python, Java, AI/ML, Vim, Web, CS 이론 등 소프트웨어 개발 및 엔지니어링 기록
Java - Data Structure - Double Linked List
Java에서 Linked List를 만들었습니다. Node for DoubleLinkedList 우선 를 아래와 같이 설계했습니다. 얘를 외부에 따로 만들어줘도 문제가 없기는 한데, 저는 내에 으로 만들 겁니다. Java - DoubleLinke...
python - class - Math method
python에서 class의 기본 연산자를 지원하는 method를 정의합니다. 테스트해보면 잘 되는 것을 알 수 있습니다.
Java - Check class A is subClass of class B
java에서 class instance a가 class B의 instance인지 확인하려면 보통 를 사용합니다. 의 경우 runtime 시에 발생하는 type checking이며, 아래와 같이, 사용할 수 있습니다. 그러나, 의 경우 앞서 말한 ...
Java - Covariant Return Type
Covariant Return Type은 "함께 변하는 Return Type"이라고 해석할 수 있습니다. 기존의 java에서는 subClass에서 Method Overriding이 발생할 때, superClass에서의 Method와 Return ...
Java - Generic Programming - Type Bound
Type Bound는 Generic Programming을 사용할 때, "특정 타입을 상속받는 객체"만 허용되도록 제한하는 것을 말합니다. 다음 코드에서 는 type parameter인 TS가 "List를 상속받는다"라는 것을 의미하죠. List...
Java - Generic Programming - Wild Card
Java에서 Abstract Class인 는 에게 상속됩니다. 따라서, 아래와 같이, 변수가 객체를 가리킬 수 있죠. 그렇다면, 변수로 Instance를 가리키는 것 또한 가능할까요? 아래 코드를 실행해 보면 그렇지 않은 것을 알 수 있습니다. ...
python - OOP - ABC(Abstract Base Class)
ABC(Abstract Base Class)는 "구현되지 않고, 선언만 되어 있는 method가 포함된 class"를 말합니다. 구현되어 있지 않고 선언만 되어 있다는 것은, 이 ABC를 상속받은 Child Class에서 해당 method를 정의...
python - OOP - new, init, repr, str
python class 정의시 다음 4가지 method를 설명합니다. - : 보통 을 생성자라고 알고 있지만, 사실 메모리를 확보해주는 진짜 생성자는 입니다. 아래 코드에서는 이 부분에서 생성될 수 있는 Object의 개수를 제한하고, 추가로 생...
python - package and import
python으로 개발을 길게 하는 일이 종종 있는데, 귀찮아서 그냥 한 파일 내에 모든 함수를 우겨넣고 진행하는 경우들이 많습니다. 뛰어난 개발자라면 어떤 짓을 해도 문제가 없습니다만, 보통의 사람들은 모두 그렇지 않고요, 그냥 저렇게 해버리면 ...
Gradle - Build Tool
Build Tool 일반적으로 build tool은 "소스코드들을 실행가능한 어플리케이션으로 자동으로 변환해주는 도구"라고 생각하시면 됩니다. 원래의 소스 코드들을 모두 텍스트로 되어 있는데, 이를 컴파일하고, 다른 코드들에 흩어져 있는 패키지들...
Java - interface - default method
interface에서는 method를 선언만 할 수 있고 정의할 수는 없지만, 를 사용하면 정의할 수도 있습니다. Wrap-up interface의 모든 구현체에 동일하게 포함되는 method임에도, interface에서는 method를 정의할 ...
python - OOP - multiple Inheritance
python - multiple Inheritance python에서는 multiple inheritance(다중 상속)이 가능합니다. 다중 상속은 말 그대로 "2개 이상의 class를 상속받는 것"을 말하죠. 다음 코드에서 class 는 Cla...
python - collections - deque가 list보다 항상 빠른가?
python - collections - deque나 list보다 빠를까? 결론부터 말하자면, Queue로 쓰이는 경우에만 가 보다 빠릅니다. 일단 deque는 list처럼 와 같이 index에 따른 접근이 불가하기 때문에, 중간에 있는 값에 접...
VScode - Disable Compact Folder
VScode의 Explorer 부분에서 폴더 안에 폴더가 1개만 있는 경우 1줄로 나오는 경우가 있습니다. 이럴 때는 다음 순서로 처리해주면 됩니다. - Setting() - 검색창에 "compact folder"를 치면, 아래가 나오는데 체크를...
VScode - Workbench indentation more
Explorer 부분에 여러 폴더와 파일이 존재하는데요, nested인 경우 들여쓰기 폭이 너무 작아서 구별이 되지 않아서, 얘를 늘렸습니다. setting 들어가셔서 아래 부분을 손 보면 됩니다. 저는 추가로 같은 경로라는 것을 표시해주는 색깔...