본문 바로가기

분류 전체보기7

[레벨 0] 마무리하면서 4주간의 레벨 0을 마무리하면서이번 4주간의 레벨 0의 목표는 단순한 문법의 쓰임을 배우는 것을 넘어 코드가 어떻게 동작하는지, 왜 그렇게 사용해야 하는 지를 이해하는 것이였습니다. 초반 1~2주차는 계획했던 방향대로 비교적 잘 진행되었습니다. 무엇보다 JVM을 살펴보며 방대한 개념의 전체적인 흐름을 따라가 볼 수 있었고, 직접 JVM의 스택과 로컬 변수의 변화를 따라가 보았던 것이 기억에 남습니다. 반면 3~4주차는 아쉬움이 많이 남습니다. 부족한 실력으로 프로젝트까지 병행하려고 하다보니 결과적으로 학습과 프로젝트 모두 어중간해졌습니다. 특히 4주차의 중점 내용이자 레벨 0에서의 주요 목표 중 하나였던 어노테이션과 리플렉션을 원했던 만큼 깊게 공부하지 못한 점이 마음에 남습니다. 앞으로의 학습에서 다음.. 2026. 2. 11.
[레벨 0] 3주차 학습 기록 및 회고 3주차 학습을 마무리 하면서3학년 여름방학에 원하던 교육 프로그램에 지원했지만 아쉽게도 합격하지 못했습니다. 왜 떨어졌는지 스스로 돌아보며 고민한 끝에, 제 문제점 중 하나는 객체지향에 대한 고민이 부족했다는 점이라고 생각했습니다. 이를 계기로 객체지향사고프로세스라는 책을 읽게되었습니다. 책에서 특히 인상 깊었던 문장은 상속보다 합성을 사용하라는 내용이었습니다. 저는 아무런 고민없이 책의 내용을 근거로 합성은 새로운 도구고 상속은 사라져가는 피해야 할 도구라고 단정지었습니다. 하지만 최근 첫 안드로이드 프로젝트를 진행하며 상속은 나쁘다는 제 생각에 의심이 들기 시작했습니다. 리사이클러뷰를 사용하기위해 필요한 어댑터가 추상 클래스로 만들어져 있었기 때문입니다. 이를 보면서 왜 상속이 필요한 추상 클래스를.. 2026. 2. 9.
[레벨 0] 2주차 학습 기록 및 회고 2주차 학습을 마무리 하면서평일에 생각보다 진도를 나가지 못해서 주말동안 복습보다는 새로운 학습에 초점을 두었습니다. 갑작스러운 일정과 환경 변화로 인해 충분히 집중하지 못한 점은 아쉬움으로 남습니다. 하지만 바쁜 와중에도 학습의 끈을 놓지 않고 이어갔다는 점에 의의를 두고 싶습니다. 가장 인상 깊었던 내용은 확장 함수였습니다. 확장 함수를 통해서 사용 시점에 따라서 객체가 가지는 행위를 유연하게 추가할 수 있다는 것이 클래스를 가볍고 이해하기 쉽게 만든다는 것을 알았습니다. 앞으로 최대한 확장함수로 먼저 구현 후 중복이 발생하면 멤버 메서드로 바꾸는 연습을 해야겠습니다. 다음 주 역시 많은 시간 확보는 어렵겠지만 학습과 휴식의 경계를 명확히 구분하여 짧은 시간이라도 밀도 있게 집중하고자 합니다.화요일(.. 2026. 2. 1.
[레벨 0] 1주차 학습 기록 및 회고 1주차 학습을 마무리 하면서이번 주차의 목표는 코틀린 컴파일러와 JVM의 기본 동작 흐름을 파악해보는 것이였습니다. 만족스러웠던 점은 블랙박스와 같았던 개념들을 폭넓게 살펴보면서 조금은 친숙해진 느낌을 받았습니다. 다만 일주일이라는 짧은 시간동안 방대한 개념을 살펴보려 하다보니 깊게 파고들지 못한 것 같아서 아쉬움도 남습니다. 다음 주부터는 코틀린의 다양한 문법을 본격적으로 학습할 예정입니다. 1주차 학습한 내용들을 여기서 마무리 짓는 것보다 의문이 생기면 지속적으로 보충해 깊이를 더해가고 싶습니다.화요일(01.27)Fact(배운 것)JDK, JRE, JVM의 관계와 차이점자바의 Class Loader: Delegation Model 전까지가비지 컬렉션의 기초Finding(알게된 것)1. user/bin.. 2026. 1. 28.
[레벨 0] 학습 계획서 최종 목표레벨 0을 시작하면서 제가 중점적으로 학습 및 보완하고 싶었던 것은 다음과 같습니다.코틀린 문법을 왜 이런 기능이 필요했는 지에 집중하며 학습/복습하고 싶습니다.어노테이션과 리플렉션이 무엇이고 어떻게 동작하는 지 확인해보고 싶습니다.동작 원리에 의문이 생기면 직접 찾아보고 분석해볼 수 있는 힘을 기르고 싶습니다.학습 자료학습을 위해서 다음 자료/방법을 활용하려고 합니다.코틀린 컴파일러 개발자가 쓴 코틀린 인 액션을 통해 기능의 필요성에 집중하며 읽어보고 싶습니다.javap과 인텔리제이의 자바 디컴파일러를 활용해 어떻게 동작되는 지 직접 확인해보고 싶습니다.주차별 학습계획이번 기간동안 intelliJ와 gradle 없이 최대한 실습을 진행하려고 합니다.1주차: 코틀린 컴파일러/JVM의 기본적인 동.. 2026. 1. 27.
프래그먼트에서의 뷰 바인딩과 메모리 누수 안드로이드를 학습 중 만났던 여러 글과 AI 코드는 뷰 바인딩을 크게 두 가지 방식으로 사용하고 있었습니다.lateinit var를 활용하는 방식backing property를 활용하는 방식메모리 누수 확인 방식과 LeakCanary메모리 누수를 확인하기 위해 메인 액티비티에서 HomeFragment와 CafeFragment를 버튼으로 전환하도록 했습니다. 이때 Fragment 전환 시 백스택에 추가하도록 설정했습니다.실행 순서는 HomeFragment로 버튼 클릭을 통해 이동 후 CafeFragment로 이동하는 방식(버튼 클릭)이었습니다. MainActivity 코드class MainActivity : AppCompatActivity() { private lateinit var binding: .. 2026. 1. 22.