처음부터 차근차근

[TIL - 240102] Java 다형성, 추상 클래스, 인터페이스 & 알고리즘 공부 본문

TIL

[TIL - 240102] Java 다형성, 추상 클래스, 인터페이스 & 알고리즘 공부

HangJu_95 2024. 1. 2. 23:32
728x90

 

오늘 한 일

  • Java 다형성, 추상 클래스, 인터페이스 공부
  • 알고리즘 정렬 공부 진행
  • 코딩테스트 내용 정리
  • Typescript Class 정리 진행

Java 다형성, 추상 클래스, 인터페이스

  • 자바의 다형성과 abstract, interface에 대해 공부하였습니다.
  • Typescript도 비슷하기 때문에 도움이 많이 되었습니다.
  • 객체 지향적으로 어떻게 코드를 짜는지 도움이 되었습니다.

항상 프로젝트를 진행하다가 implements 나, Class 앞에 붇어있는 abstract, 그리고 static에 대해서 몰라서 뭔지 모르겠다~ 하고 넘겼는데, 이번에는 제대로 공부한 것 같습니다.

NestJS, 그리고 다른 외부 라이브러리 또한 Class 형태로 구성되어 있는 경우가 많은데, 상속이나 구현을 많이 사용합니다.

이제는 어떻게 객체 지향 코드를 읽어야하는지 알 것 같고, 또한 NestJS or 외부 라이브러리를 찾아서 구현이 어떻게 되어있는지 잘 파악할 것 같습니다.

(추가로 자바 공부하는 거 은근히 재밌다.. Typescript를 더 잘 알 수 있는 느낌..?)

알고리즘 정렬 공부 진행

  • Quicksort, mergesort, heapsort를 공부
  • 정렬을 어떻게 구현하는지 직접 Typescript를 통해 구현

Typescript를 통해 알고리즘을 구현해보았습니다. 특히 Class 내 메서드로 구현하였는데, 이것들을 총 정리하여 모듈이나 패키지 형태로 만들어서 사용하면 어떨까 싶습니다.

알고리즘 공부를 통해 코딩테스트에서 정렬 문제가 나올 때 더욱 빠르게 풀 수 있을 것 같습니다.

코딩테스트 내용 정리

  • Lv3 네트워크 문제를 DFS를 통해 구현
  • Lv1 체육복 문제를 탐욕법으로 구현해보기.

탐욕법이나 동적 계획법이 코딩테스트 문제로 많이 나온다고 하길래 한번 문제를 풀어보았지만, 자신의 힘으로 풀지 못했습니다.

해당 알고리즘에 대해 더욱 공부를 해야겠다는 생각이 들었고, 알고리즘 정의를 하면 문제를 많이 풀어보는 수밖에 없는 것 같습니다.

그리고 DFS 문제를 하나 받았는데, DFS 구현 방법을 까먹고 다시 한번 펼쳐 봤습니다.

계속해서 문제를 풀고, 복습하는 시간을 가져야 한다고 생각했습니다.

Typescript Class 정리

  • Typescript의 Class 정리
  • NestJS를 주력으로 삼고 있기 때문에, 이 부분을 확실히 정리해야 한다고 생각했습니다.

현재 제가 Backend에서 사용하는 언어는 Typescript입니다. 이를 위해 언어 기본을 조금 더 공부해야 한다는 생각을 했습니다.

(implements나.. abstract, private 모르고 쓰는건 좀 아닌 것 같다..)