2024년 마지막날에 쓰려고 했던 회고글을 이제서야 올린다.과제 전형이 겹쳐 미루다가 드디어 작성한다. 나의 2024년 == 우아한테크코스2024년을 한 단어로 정의하자면 무조건 "우아한테크코스"일 것이다.개발뿐만 아니라 모든 내 경험과 성장은 우테코로부터 기반했다.우테코 합격 후 했던 고민들이 무색하게, 2024년 겪었던 모든 경험들이 나를 성장시키는 연료가 되었다. 흐르는 대로 살아보기갓 25살이 된 나는 가장 불안한 시기를 지났다.자신감도 없고 자존감도 낮았다. 쉽게 불안해했다. 와중에 완벽주의적 성향도 강했다.이런 상태로 우테코에 들어갔을 땐, 마음에 소용돌이가 치는 것 같았다.경쟁이 없는 환경에서도 나는 1등을 하고 싶었다. 하지만 이렇게 스스로를 몰아붙이며 10개월을 버티는 건 말도 안..
중단 함수는 코틀린 코루틴의 핵심이다.코루틴을 중단한다는 건 실행을 중간에 멈추는 것을 의미한다.코루틴은 중단되었을 때 Continuation 객체를 반환한다. Continuation을 이용하면 멈췄던 곳에서 다시 코루틴을 실행할 수 있다.코루틴과 반대로 스레드는 저장이 불가능하고 멈추는 것만 가능하다.코루틴과 스레드는 확연히 다르다. 코루틴이 훨씬 강력한 도구다. 중단했을 때 코루틴은 어떤 자원도 사용하지 않는다.코루틴은 다른 스레드에서 시작할 수 있고, Continuation 객체는 직렬화와 역직렬화가 가능하며 다시 실행될 수 있다. 재개중단 함수는 말 그대로 코루틴을 중단할 수 있는 함수다.즉, 중단 함수가 반드시 코루틴이나 다른 중단 함수에 의해 호출되어야 한다. suspend fun mai..
왜 중단이 필요한지, 중단이 어떤 것인지 알아보기 위해 시퀀스의 작동 방식과 시퀀스 빌더를 알아보자. 시퀀스의 특징 코틀린에서는 제너레이터 대신 시퀀스를 생성 할 때 사용하는 시퀀스 빌더를 제공한다.코틀린의 시퀀스는 List나 Set과 같은 컬렉션이랑 비슷한 개념이지만, 필요할 때마다 값을 하나씩 계산하는 지연(lazy) 처리를 한다.요구되는 연산을 최소한으로 수행한다.무한정이 될 수 있다. (-> while(true))메모리 사용이 효율적이다.sequence()라는 함수를 이용해 값을 순차적으로 계산하고 필요할 때 반환하는 빌더를 정의한다.시퀀스의 람다 표현식 내부에서는 yield() 함수를 호출하여 시퀀스의 다음 값을 생성한다.val seq = sequence { yield(l) yiel..
코틀린 장점멀티플랫폼에서 작동시킬 수 있기 때문에 코틀린을 사용하는 모든 플랫폼에서 사용할 수 있다.기존 코드 구조를 광범위하게 뜯어고치지 않고 코루틴을 도입할 수 있다. 안드로이드에서의 코루틴 사용흔한 애플리케이션 로직은 다음과 같다.하나 이상의 소스(API, 뷰 구성요소, 데이터베이스, 설정, 다른 애플리케이션)로부터 데이터를 얻어온다. 데이터를 처리한다.가공된 데이터로 무엇인가를 한다. (화면에 보여주기, 데이터베이스에 저장, API로 전송) 기존의 구현 방식과 코루틴을 사용한 예제를 비교하여 두 방법이 어떻게 다른지 알아보자.예제 상황 - API로 뉴스를 가져와서 정렬한 후, 화면에 띄운다. 1) 가장 간단한 방법fun onCreate() { val news = getNewsFromApi()..