부트캠프 일지

부트캠프 7일차와 배운 것

여름하인 2023. 12. 5. 20:59

오늘은 5주차까지의 강의를 마쳤고 코드카타도 11문제 풀었다.

 

일단 코드카타를 풀며 배운 건 toDouble()이나 toInt() 와 같은 자료형 변환 함수를 찾아다는 것이다. 다만, 이건 코드카타 이후에 들은 강의에서도 언급을 해주기도 해서 이것만을 통해 배운 사실이란 말은 어폐가 있을지도 모르겠다.

 

간단한 문제도 Kotlin을 배울수 있었었는데, 이후에 무엇을 배우게 될 지 기대되기도 하는 부분이다.

 

오늘 배운 강의에서 배운 내용은 예외처리, 널 세이프티,  Scope Function, 접근제한자, 확장함수, 비동기 프로그래밍(쓰레드, 코루틴) 이다.

 

예외처리는 Java와 다르지 않다. 심지어 Exception 클래스도 비슷하다! try~catch~finally의 예외처리 부분은 다른 언어에서도 비슷하니 넘어가자.

 

접근제한자는 다른 건 타 언어와 비슷하지만, internal은 약간 특기 할만하다 같은 모듈 내의 접근을 허용하는 접근을 가능하게 하는 제한자이고, 여기서 처음 봤다. 나중에 쓸 일이 있을지는 모르겠다.

 

널 세이프티엔 ?과 !!가 사용되는데 ?는 앞의 값에 null이 들어갈 수 있다는 것을 선언하고, !!는 Null이 아님을 보장한다.

이전에 사용한 readLine의 앞에 !! null이 아님을 보장한다는 뜻이였다. ?.는 해당 값이 Null이여도 안전한 호출을 보장하고, ?:은 ?.에서 Null 일 경우 대신할 것을 부르는 연산자이다. 만약을 대비한 프로그래머에게 유용한 툴임은 틀림없다.

 

Scope Function은 let, with, also, run, apply가 있다는 것을 배웠다. 반환하는 것과 접근 방식에 따라 사용할 수 있다.

 

  Scope에서 접근방식 this Scope에서 접근방식 it
블록 수행 결과를 반환 run, with let
객체 자신을 반환 apply also

수신객체는 다른 이름으로 바꿔서 사용을 할 수 있다는 것도 기억을 해두는 편이 좋겠다.

 

다른 언어에서 with 처럼 비슷한 것을 본 기억이 있지만, 실제로 자주적으로 사용한 경험이 없어서 앞으로 개발 할 때, 사용을 할지는 잘 알진 못하겠다.

 

확장함수는 클래스에 +를 사용해 메소드를 추가할 수 있는 방법이다. 편하지만, 이것을 사용하면 코드 유지보수때 힘들겠다는 생각이 들기도 하다.

 

비동기는 오랜만에 접해서 그런지 다소 머리의 정리가 필요하다. 그래서 이 내용은 내일 복습할 겸, 다루기로 하자. 비동기에 들어가니 갑자기 강의의 난이도가 확 올라서 깜짝놀랐다.

 

일단 오늘은 여기서 마치고, 내일은 비동기에 대해 정리하고, 추가 과제를 할 예정이다. 이것까지 다하면 이번주엔 뭘 할지가 고민이 된다.