
본 포스팅은 과거에 Vue JS를 공부하며 정리했던 내용입니다. 개인적으로 참고하기 위해 올려놓은 내용이고, 더 이상 프론트엔드 프로그래밍을 진행하지 않아 부정확한 내용이 있을 수 있습니다. 1. VueJS 프로젝트 생성 [ VueJS 프로젝트 생성 ] VueJS로 프로젝트를 실행하기 위해서는 vue-cli를 사용해야 한다. vue-cli는 npm 모듈로 제작되어 있기 때문에, node.js가 필수적으로 설치되어 있어야 한다. Node JS가 설치되어 있지 않다면 설치한 후에 아래의 내용을 진행하기 바란다. Node JS 콘솔 열기 vue-cli 설치(npm install -g @vue/cli) 원하는 위치로 이동 후 Vue 프로젝트 생성(vue init , ex) vue init webpack fron..

본 포스팅은 과거에 안드로이드 프로그래밍을 공부하며 정리했던 내용입니다. 개인적으로 참고하기 위해 올려놓은 내용이고, 더 이상 안드로이드 프로그래밍을 진행하지 않아 부정확한 내용이 있을 수 있습니다. 1. MVVM(Model-View-ViewModel) 패턴 [ MVVM(Model-View-ViewModel) 패턴이란? ] MVVM은 Model-View-ViewModel의 약자로, 각각은 아래와 같은 역할을 담당하며 이를 도식으로 나타내면 아래의 그림과 같다. Model: UI에 표시될 데이터와 상태 그리고 비지니스 로직을 담당한다. View: 화면에 표현되는 UI를 의미한다. ViewModel: 이벤트 처리나 Model과의 인터랙션 등을 담당한다. MVVM에서 가장 중요한 핵심은 DataBinding ..
1. Garbage Collection(가비지 컬렉션)의 성능을 높이는 코딩 방법 애플리케이션의 성능은 가비지 컬렉션의 빈도수와 지연 시간에 직접적인 영향을 받기 때문에, 가비지 컬렉션을 최적화하는 것은 상당히 중요하다. 그리고 이를 위해서는 크게 2가지 방법이 있다. Young 영역과 Old 영역의 힙 크기를 알맞게 조정하는 것 객체의 할당(Allocation)이나 Old 영역으로의 이동(Promotion) 등의 작업을 줄이는 것이다. 우선 힙의 크기를 조정하는 방법은 Trade-Off가 있다. 힙의 크기를 줄이면 GC의 빈도수가 많아질 것이고, 늘리면 GC의 지연 시간이 길어질 것이기 때문이다. 그렇기 때문에 첫 번재 방법은 수치를 조절해가고 테스트하며 자신의 애플리케이션에 맞는 최적의 설정을 찾는 ..

1. 다양한 Garbage Collection(가비지 컬렉션) 알고리즘JVM이 메모리를 자동으로 관리해주는 것은 개발자의 입장에서 상당한 메리트이다. 하지만 문제는 GC를 수행하기 위해 Stop The World에 의해 애플리케이션이 중지되는 것에 있다. Heap의 사이즈가 커지면서 애플리케이션의 지연(Suspend) 현상이 두드러지게 되었고, 이를 막기 위해 다양한 Garbage Collection(가비지 컬렉션) 알고리즘을 지원하고 있다. [ Serial GC ]Serial GC의 Young 영역은 앞서 설명한 알고리즘(Mark Sweep)대로 수행된다. 하지만 Old 영역에서는 Mark Sweep Compact 알고리즘이 사용되는데, 기존의 Mark Sweep에 Compact라는 작업이 추가되었..

1. Garbage Collection(가비지 컬렉션)이란? [ Garbage Collection(가비지 컬렉션)이란? ] 프로그램을 개발 하다 보면 유효하지 않은 메모리인 가바지(Garbage)가 발생하게 된다. C언어를 이용하면 free()라는 함수를 통해 직접 메모리를 해제해주어야 한다. 하지만 Java나 Kotlin을 이용해 개발을 하다 보면 개발자가 메모리를 직접 해제해주는 일이 없다. 그 이유는 JVM의 가비지 컬렉터가 불필요한 메모리를 알아서 정리해주기 때문이다. 대신 Java에서 명시적으로 불필요한 데이터를 표현하기 위해서 일반적으로 null을 선언해준다. 예를 들어 아래와 같은 코드가 있다고 가정하자. Person person = new Person(); person.setName("Ma..