예외는 예외 상황에서 쓸 의도로 설계되었다. 예외는 오직 예외 상황에서만 써야 한다. 🙄 예외는 오직 예외 상황에서만 써야 한다. 예외는 절대로 일상적인 제어 흐름용으로 쓰여선 안 된다. 예외를 사용해서 성능이 좋아지더라도 자바 플랫폼이 꾸준히 개선되고 있으니 최적화로 얻은 상대적인 성능 우위가 오래가지 않을 수 있다. 반면 과하게 영리한 기법에 숨겨진 미묘한 버그의 폐해와 어려워진 유지보수 문제는 계속 이어질 것이다. 😊 잘 설계된 API -> 예외를 사용할 일이 X 잘 설계된 API라면 클라이언트가 정상적인 제어 흐름에서 예외를 사용할 일이 없게 해야 한다. 특정 상태에서만 호출할 수 있는 '상태 의존적' 메서드를 제공하는 클래스는 '상태 검사' 메서드도 함께 제공해야 한다. ( Iterator 인터..
표준 명명 규칙을 체화하여 자연스럽게 배어 나오도록 하자 자바 플랫폼은 명명 규칙이 잘 정립되어 있으며, 크게 철자와 문법, 두 범주로 나뉜다. 철자 규칙이나 문법 규칙을 어기면 다른 프로그래머들이 그 코드를 읽기 번거로울 뿐 아니라 다른 뜻으로 오해할 수도 있고 그로 인해 오류까지 발생할 수 있다. 🎈 철자 규칙 철자 규칙은 패키지, 클래스, 인터페이스, 메서드, 필드, 타입 변수의 이름을 다룬다. 철자 규칙을 어긴 API는 사용하기 어렵고, 유지보수하기 어렵다. 패키지와 모듈 각 요소를 점(.)으로 구분하여 계층적으로 짓는다. 요소들은 모두 소문자 알파벳 혹은 숫자로 이뤄진다. 조직 바깥에서도 사용될 패키지라면 인터넷 도메인 이름을 역순으로 사용한다. ex) edu.cmu, com.google, or..
빠른 프로그램을 작성하려 안달하지 말자. 좋은 프로그램을 작성하다 보면 성능은 따라오게 마련이다. ✔ 빠른 프로그램보다는 좋은 프로그램을 작성해야 한다. 성능 때문에 견고한 구조를 희생하지 말자. 좋은 프로그램은 정보 은닉 원칙을 따르므로 개별 구성요소의 내부를 독립적으로 설계할 수 있다. 따라서 시스템의 나머지에 영향을 주지 않고도 각 요소를 다시 설계할 수 있다. 프로그램을 완성할 때까지 성능 문제를 아예 무시하라는 뜻은 아니다. 구현상의 문제는 나중에 최적화해 해결할 수 있지만, 아키텍처의 결함이 성능을 제한하는 상황이라면 시스템 전체를 다시 작성하지 않고는 해결하기 불가능할 수 있다. ✔ 성능을 제한하는 설계를 피하라 개발이 완료된 후에 변경하기 가장 어려운 설계 요소는 바로 컴포넌트끼리 혹은 외..
백엔드가 희망 직무이지만,, 열정 갈아넣었던 안드로이드 프로젝트에서 썼던 기능들을 잊어버리지 않기 위하여,, 간만에 Retrofit2에 대해 다시 알아보겠습니다! 🙄 Retrofit이란? 안드로이드와 서버 간의 REST API 통신을 도와주는 라이브러리로, OkHttp에 기반을 두고 있습니다. (Retrofit은 OkHttp를 네트워크 계층으로 활용하고 그 위에 구축되었습니다!) 높은 성능과 가독성으로 통신 라이브러리 중 가장 많이 사용되는 대표적인 라이브러리입니다! 👍 Retrofit의 장점 Retrofit의 장점은 크게 3가지가 있습니다. 1. 성능이 좋습니다! OkHttp는 AsyncTask를 사용하여 AsyncTask의 3~10배의 성능 차이가 난다고 합니다. 2. 가독성이 뛰어나다! Annota..
- Total
- Today
- Yesterday
- IMAGE
- Container
- OS
- BOJ
- 백준
- 순열
- 아이템61
- 아이템59
- 완탐
- docker
- 완전탐색
- bruteforce
- dfs
- 토큰기반인증
- subset
- 알고리즘
- springboot
- Java
- 정처기
- dp
- 운영체제
- 이펙티브자바
- docker-compose
- 그래프탐색
- 조합
- Retrofit2
- 부분집합
- 아이템60
- EffectiveJava
- BFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |