본문 바로가기

Language/Java8

[Java] 객체지향 생활체조 (Object Calishenics) Object Calisthenics Jeff Bay 라는 사람이 ThoughtWorks Anthology 라는 공학 에세이 모음집에서 등장한 개념이라 한다. 객체지향 프로그래밍을 잘하기 위한 9가지 체크리스트라 보면 될듯 하다. 1. One level of indentation per method 한 메서드에 오직 한 단계의 들여쓰기만 한다. Why? 메소드에 들여쓰기가 많아지면 가독성이 떨어진다. 객체지향의 사상 중, 하나의 메소드는 한 가지 기능만 담당한다를 위반할 수 있다. example ❌ String board() { StringBuilder sb = new StringBuilder(); for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) .. 2023. 10. 25.
[Java] Enum 활용하기 Enum 특정 값들만을 가질 수 있는 타입을 정의할 때 사용된다. 예를 들어, HTTP code의 경우, 각 코드들과 의미가 일대일로 대응되고, 종류가 정해져있으므로, 이를 enum으로 정의할 수 있다. 이렇게 해 두면, 이 타입의 변수는 정의된 값들 중 하나만을 가질 수 있게 되어 코드를 더 안전하게 만들 수 있다. 또한, 자체적으로 클래스이므로, 메소드나 필드를 가질 수 있어 상수를 정의할 때도 사용할 수 있다. ex // enum 정의 public enum Status { OK(200, "요청 성공"), MULTIPLE_CHOICE(300, "하나 이상의 응답 가능"), BAD_REQUEST(400, "서버가 요청을 이해할 수 없음"), NOT_FOUND(404, "요청받은 리소스를 찾을 수 없음".. 2023. 10. 24.
[Java] Functional Interface Functional Interface란? Functional Interface는 Java에서 함수형 프로그래밍을 가능하게 하는 인터페이스다. 이 인터페이스는 오직 하나의 추상 메서드를 가지고 있어야 하며, 람다 표현식이나 메서드 참조를 사용해서 간단하게 인스턴스를 생성할 수 있다. Java 8에서 도입된 이 기능은 코드를 더 간결하고 이해하기 쉽게 만들어준다. Java에서 제공하는 Functional Interfaces Runnable Descriptor: () -> void Method: void run() ex Runnable runnable = () -> { System.out.println("running"); } //사용 runnable.run(); Consumer Descriptor: (T) .. 2023. 10. 24.
[Java] Google Java Style Guide 번역 원본 링크 1. Introduction 이 문서는 Google의 Java 프로그래밍 언어에 대한 소스 코드 표준의 정의로 작용합니다. Java 소스 파일은 여기에 명시된 규칙을 준수하는 경우에만 Google Style 로 간주됩니다. 다른 프로그래밍 스타일 가이드처럼, 다루는 문제는 형식의 미적 측면 뿐 아니라 다른 유형의 규칙이나 코딩 표준도 포함합니다. 그러나 이 문서는 우리가 일관성 있게 따르는 명확하고 엄격한 규칙에 주로 중점을 둡니다. 그리고 명확하게 집행할 수 없는 조언은 피합니다.1.1 용어 설명 이 문서에서는 아래와 같이 용어가 정의됩니다. class 라는 용어는 "보통의" 클래스, "enum" 클래스, 인터페이스나 어노테이션 타입을 포괄적으로 의미합니다. 클래스의 "member"라는 용어.. 2023. 10. 17.