TIL231122 D03 클래스

jericho·2023년 11월 22일

TIL

목록 보기
3/62

오늘은 git 세션이 있었다. vscode 터미널에서 git 명령어를 사용하여 깃헙에 push, pull 하는 과정까지 진행했다. 본격적인 협업을 위한 브랜치 활용은 추후에 예정되어 있다고 했다. 깃을 처음 접했을 때부터 소스트리로 사용했기에 CLI를 통한 깃 사용은 영 와닿지 않는다. 원하는 파일 스테이징부터 변경사항 체크 등등 GUI가 훨씬 용이하다는 생각이다. 물론 특수하게 동작시켜야 할 필요가 있어서 툴에서 지원하지 않는다면 명령어를 조합하여 사용할 일이 있을 수 있겠지만, 지금 사용 단계에서는 소스트리로 마음이 기운다. 물론 익숙해진다면 커밋, 푸쉬하는 건 IDE 터미널에서 바로 처리하는 것이 훨씬 가볍고 빠르긴 하겠다. 다만 이것도 IDE에서 깃을 지원하기 때문에... 명령어에 이점이 있을까 모르겠다.

오늘은 클래스 개념을 주로 봤다.
코틀린은 생성자가 프라이머리, 세컨더리로 나뉘어있고, 오브젝트와 컴패니언 오브젝트 구조로 스태틱 비슷하게 사용하게 되어있다. 데이터 클래스도 따로 있는데, 오브젝트나 데이터 클래스나 구조체같은 느낌이 있다. 자세한 것은 다뤄봐야 알 것 같다.
그리고 자식이 사용하려면 부모 클래스와 메서드 등에 open 키워드를 미리 붙여줘야 가능하다. 상속에 있어 기본값이 폐쇄적?이라는 느낌이다. 또한 override 키워드를 붙여줘야만 오버라이드가 가능하다는 것도 그렇다. 무조건 명시적으로 나타내라는 코틀린의 철학인가보다. 프로퍼티 오버라이드도 가능하다는데.. 프로퍼티는 그냥 값을 할당하면 되지 왜 오버라이드 하는지는 잘 모르겠다.
익스텐션이 간단하다는 것은 꽤 편리하다고 생각된다. 다만 이것저것 확장해놓고 이런 메서드를 만들었었나 하는 상황이 생길 것 같다. 추상화에 대해선 꼭 필요한 것인가 싶다. 그냥 바디를 빈 블록으로 만들어놓고 오버라이드 하는 것과 다를 바 없는 것이 아닌가 해서 말이다. 물론 내가 모르는 심오한 뜻이 있겠지. 성능상의 이점이라든가. 인터페이스로 명세서와 같이 나타내는 것도 특이점인 것 같다.
마지막으로 코틀린의 접근 제한자에는 private, protected, public 말고도 internal이 있다. 같은 모듈에서 접근할 수 있다는데, 모듈은 같이 컴파일 되는 모든 파일로, 앱이 하나의 모듈일 수 있다고 한다. 아직은 잘 모르겠는 개념이다.
원래부터 클래스 개념은 모르는 부분이 많았는데, 이번에 코틀린으로 프로젝트를 하면서 확실하게 익혀봐야겠다.

0개의 댓글