본문 바로가기

전체 글140

쏘카 CTO님 오픈토크 다녀온 썰.ssul 나를 3번 떨어트린 회사에서 오픈토크를 한다더라 SSAFY 활동이 끝나고 동문회를 가입했는데 어느 날 문자가 왔다. "쏘카 류석문 CTO님과 함께 나누는 IT 트렌드 이야기" 신청해볼까 고민하던 찰나 동기들이 같이 가자고 해서 지원을 하게 되었다. 추첨을 통해 오픈토크 이후에 CTO님과 소규모 대화 시간을 가질 수 있었는데 쏘카에 3번 떨어졌다고 어필한 덕분인지(?) 뽑힐 수 있었다. 처음으로 쏘카에게 합격을 받은 순간이었다. 그래서 저는 왜 떨어트리셨ㄴ... 시간 변동성이 없는 개발자가 되자 오픈토크에서 다양한 이야기를 들을 수 있었는데 그중에서 인상 깊었던 내용을 적어보려 한다. 나는 요즘 좋은 개발자는 무엇일까, 좋은 코드는 무엇일까에 대한 고민들을 하고 있는데 류석문 CTO님께서 마침 이 이야기를.. 2022. 8. 28.
코루틴은 왜 빠른 걸까요? 1. 요약 2. Thread 2-1. 스레드를 사용하는 이유 2-2. 스레드의 문제점 3. Coroutine 3-1. 코루틴의 동작 방식 3-2. 코루틴과 스레드의 비교 1. 요약 🧑‍💻: 코루틴이 빠르다, 가볍다라고들 하는데 그 이유가 무엇일까요? 👨🏻‍🦱: 코루틴은 동시성 프로그래밍이며 작업마다 스레드를 생성해서 사용하는 것이 아니라 스레드 안에서 루틴을 만들고 교환하여 자원 낭비가 덜 하기 때문입니다. 2. Thread 2-1. 스레드를 사용하는 이유 코루틴이 빠른 이유를 알아보기 전에 우선 코루틴을 사용하지 않고 스레드를 사용하는 상황을 알아보자. 안드로이드에는 메인 스레드라는 놈이 있다. (만약 스레드가 무엇인지 잘 모른다면 일꾼 정도로 생각하면 된다. 어떠한 작업을 하는 일꾼) 메인 스레드는 .. 2022. 8. 27.
화면을 회전할 때 viewModel의 onCleared가 호출되지 않는 이유 1. 요약 2. viewModel 2-1. 개념 2-2. viewModel은 언제 파괴될까? 1. 요약 🧑‍💻: Activity의 onDestroy가 호출되면 viewModel의 onCleared가 호출된다고 하셨는데 그러면 화면을 회전할 때 왜 viewModel의 onCleared가 호출되지 않을까요? 👨🏻‍🦱: if문으로 화면을 회전하는 경우를 따로 처리해주었기 때문입니다. 코드 내부를 들여다보면 알 수 있습니다. 2. viewModel 2-1. 개념 viewModel에 대해서는 예전에 자세히 정리해둔 포스팅이 있다. 요약하자면 "viewModel은 Activity와 독립적인 생명주기를 가지기 때문에 Activity가 onDestory 되어도 데이터를 유지할 수 있게 해준다"이다. 2-2. onDes.. 2022. 8. 26.
좋은 코드란 무엇일까? 1. 면접에서 질문을 받았다 2. 책에서 답을 찾아보자 3. 책에 있는 좋은 예시들 3-1. 이름에 정보 담기 3-2. 주석 3-3. 코드 분량 줄이기 3-4. 테스트와 가독성 4. 느낀 점 💡 1. 면접에서 질문을 받았다 "본인이 생각하는 좋은 코드와 나쁜 코드는 무엇인가요?" 이번에 면접에서 받았던 질문이다. 평소 나름의 규칙대로 고민을 하며 코드를 짜 왔기에 대답을 잘할 수 있을 거라 생각했다. 하지만 지금 내 답변을 돌이켜보면 만족스럽지 못한 대답이였던 것 같다. 뭔가 딱 정의를 내려서 말하기 애매하다고 해야할까. 그래서 다시 한번 고민해보기로 했다. 나에게... 좋은 코드란...? 2. 책에서 답을 찾아보자 원래 같았으면 인터넷에서 정보를 찾아보려고 했을 텐데, 이번에는 책에서 찾아보기로 했다... 2022. 7. 31.
Kotlin 확장 함수(Extension Function)를 아시나요? 1. 요약 2. Extension 3. Extension Function 3-1. 개념 3-2. 예제 4. Extension Property 4-1. 개념 4-2. 예제 5. 퀴즈 5-1. 확장 함수는 오버라이딩이 가능할까? 5-2. 확장 함수는 오버로드가 가능할까? 5-3. 멤버 메서드 이름과 확장 함수 이름이 같으면? 확장 함수가 실행될까? 5-4. 확장 함수는 프로젝트 안의 모든 곳에서 사용할 수 있을까? 5-5. 확장 함수는 정적 바인딩 된다? 1. 요약 🧑‍💻: Kotlin Extension을 아시나요? 👨🏻‍🦱: 네. 상속이나 디자인 패턴 없이 클래스를 간단하게 확장할 수 있는 방법입니다. 실제로 클래스 내부에 메서드나 프로퍼티가 생성되는 것은 아니며, 정적 바인딩 된다는 특징이 있습니다. 2.. 2022. 7. 16.