[Clean Code] 3. 함수
·
Reference/CleanCode
📕 목차 1. 작게 만들어라! • 블록과 들여쓰기 2. 한 가지만 해라! • 함수 내 섹션 3. 함수 당 추상화 수준은 하나로! • 위에서 아래로 코드 읽기: 내려가기 규칙 4. Switch 문 5. 서술적인 이름을 사용하라! 6. 함수 인수 • 많이 쓰는 단항 형식 • 플래그 인수 • 이항 함수 • 삼항 함수 • 인수 객체 • 인수 목록 • 동사와 키워드 7. 부수 효과를 일으키지 마라! • 출력 인수 8. 명령과 조회를 분리하라! 9. 오류 코드보다 예외를 사용하라! • Try/Catch 블록 뽑아내기 • 오류 처리도 한 가지 작업이다. • Error.java 의존성 자석 10. 반복하지 마라! 11. 구조적 프로그래밍 12. 함수를 어떻게 짜죠? 1. 작게 만들어라! 더보기 아래 코드를 3분 동안 ..
[Effective-Java] Chapter7 #44. 표준 함수형 인터페이스를 사용하라
·
Reference/Effective-Java
자바가 람다를 지원하면서 API 작성 모범 사례가 크게 바뀌었다. 기존 템플릿 메서드 패턴에서 함수 객체를 매개변수로 받는 생성자와 메서드를 더 많이 만드는 것이 좋다. 📌 As-is. Templete method pattern [Effective-Java] Chapter4 #20. 추상 클래스보다는 인터페이스를 우선하라 자바가 제공하는 다중 구현 메커니즘으로 interface와 abstract class가 존재한다. 자바 8부터는 인터페이스에 default method를 지원하여 두 메커니즘 모두 인스턴스 메서드를 구현 형태로 제공할 수 있다 jaeseo0519.tistory.com LinkedHashMap을 이용해서 Cache를 구현해보자. public class Cache extends Linked..
[Linux] What is Linux?
·
DevOps/Linux
📕 목차 1. 리눅스를 써야 하는 이유 2. Basic Concept 1. 리눅스를 써야 하는 이유 특징 오픈소스 (무료) 다양한 플랫폼에 포팅 가능 GNU Software와 함께 배포 장점 대부분의 HW 지원 저렴한 성능 요구 사양 및 안정성 인터넷에 맞는 강력한 네트워크 구축 다양한 응용 프로그램 및 배포판(RedHat, Ubuntu, Fedora, CentOS, etc..) 창의적인 해법들 (ex. usb 메모리에 리눅스 라이브 부트 이미지 로드하여, 하드 디스크가 망가진 PC 부팅한 후 문제 분석 등) 다중 사용자 OS: 시스템의 개인 정보 보호와 안정성을 신뢰하여 팀원 전체가 로컬 및 원격에서 동시 작업 가능 🔍 사용 목적별 리눅스 배포판 목적 배포판 보안/해킹 방지 • 칼리(Kali) 리눅스 ..
[Effective-Java] Chapter7 #43. 람다보다는 메서드 참조를 사용하라
·
Reference/Effective-Java
💡 메서드 참조 쪽이 짧고 명확하다면 메서드 참조를 쓰고, 그렇지 않을 때는 람다를 사용하라 📌 메서드 참조(method reference) List people = Arrays.asList(new Person("안OO"), new Person("조OO"), new Person("양OO"), new Person("안OO")); 위 코드처럼 여러 사람이 있을 때, 이름을 key로 하는 사람 수 value를 나타내는 Map을 구해보자. Map counts = new HashMap(); for (Person person : people) { counts.merge(person.getName(), 1, (existingValue, providedValue) -> existingValue + providedVal..