
빠른 프로그램을 작성하려 안달하지 말자. 좋은 프로그램을 작성하다 보면 성능은 따라오게 마련이다. ✔ 빠른 프로그램보다는 좋은 프로그램을 작성해야 한다. 성능 때문에 견고한 구조를 희생하지 말자. 좋은 프로그램은 정보 은닉 원칙을 따르므로 개별 구성요소의 내부를 독립적으로 설계할 수 있다. 따라서 시스템의 나머지에 영향을 주지 않고도 각 요소를 다시 설계할 수 있다. 프로그램을 완성할 때까지 성능 문제를 아예 무시하라는 뜻은 아니다. 구현상의 문제는 나중에 최적화해 해결할 수 있지만, 아키텍처의 결함이 성능을 제한하는 상황이라면 시스템 전체를 다시 작성하지 않고는 해결하기 불가능할 수 있다. ✔ 성능을 제한하는 설계를 피하라 개발이 완료된 후에 변경하기 가장 어려운 설계 요소는 바로 컴포넌트끼리 혹은 외..
백엔드가 희망 직무이지만,, 열정 갈아넣었던 안드로이드 프로젝트에서 썼던 기능들을 잊어버리지 않기 위하여,, 간만에 Retrofit2에 대해 다시 알아보겠습니다! 🙄 Retrofit이란? 안드로이드와 서버 간의 REST API 통신을 도와주는 라이브러리로, OkHttp에 기반을 두고 있습니다. (Retrofit은 OkHttp를 네트워크 계층으로 활용하고 그 위에 구축되었습니다!) 높은 성능과 가독성으로 통신 라이브러리 중 가장 많이 사용되는 대표적인 라이브러리입니다! 👍 Retrofit의 장점 Retrofit의 장점은 크게 3가지가 있습니다. 1. 성능이 좋습니다! OkHttp는 AsyncTask를 사용하여 AsyncTask의 3~10배의 성능 차이가 난다고 합니다. 2. 가독성이 뛰어나다! Annota..

정적 팩토리 메서드와 public 생성자는 각자의 쓰임새가 있으니 상대적인 장단점을 이해하고 사용하는 것이 좋다. 🔎 정적 팩토리 메서드? (static factory method) 클라이언트가 클래스의 인스턴스를 얻는 전통적인 수단은 public 생성자이지만, 그 외에도 생성자와 별도로 정적 팩토리 메서드를 제공할 수 있다. 즉, 정적 팩토리 메서드란 public 생성자와 별도로 해당 클래스의 instance를 반환하는 정적 메서드이다. 이 방식에는 장점과 단점이 모두 존재한다. 👍 정적 팩토리 메서드의 장점 1. 이름을 가질 수 있다. 생성자에 넘기는 매개변수와 생성자 자체만으로는 반환될 객체의 특성을 쉽게 알 수 없다. 메서드에 이름을 부여함으로써 반환될 객체의 특성을 쉽게 묘사할 수 있다. 한 클..

네이티브 메서드가 성능을 개선해주는 일은 많지 않다. 🔎 자바 네이티브 인터페이스 (Java Native Interface, JNI) 네이티브 메서드란 C나 C++ 같은 네이티브 프로그래밍 언어로 작성한 메서드를 말한다. JNI는 이렇게 Java 이외의 언어로 만들어진 네이티브 메서드를 Java와 상호작용할 수 있도록 연결해주는 인터페이스를 말한다. 즉, 자바 프로그램에서 네이티브 메서드(다른 언어로 작성된 메서드)를 호출하는 기술을 JNI라고 한다. ✔ 네이티브 메서드의 주요 쓰임 1. 레지스트리 같은 플랫폼 특화 기능을 사용한다. 2. 네이티브 코드로 작성된 기존 라이브러리를 사용한다. 3. 성능개선을 목적으로 성능에 결정적인 영향을 주는 영역만 따로 네이티브 언어로 작성한다. 4. 대체할 만한 자바..
- Total
- Today
- Yesterday
- 순열
- IMAGE
- Java
- 조합
- 토큰기반인증
- OS
- subset
- DevOps
- 아이템59
- 아이템61
- dp
- 운영체제
- 백준
- cicd
- 완탐
- BFS
- 그래프탐색
- Container
- 완전탐색
- EffectiveJava
- docker-compose
- docker
- Retrofit2
- 이펙티브자바
- springboot
- 알고리즘
- 아이템60
- BOJ
- dfs
- bruteforce
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |