전체 글 (482) 썸네일형 리스트형 읽기 좋은 코드가 좋은 코드다 1장 - 표면적 수준에서의 개선 특정한 단어를 사용하라 : get 대신 fetch나 download 꼭 그래야 하거나 좁은 의미 단순 사용이 아닌경우에는 tmp와 같은 보편적인 이름의 사용을 피하라 구체적인 이름을 이용하라 : ServerCanStart()는 CanListenOnPort()에 비해 의미가 모호하다. 변수명에 중요한 세부 정보를 덧붙여라 : ~_ms이거나 ~_size 사용범위에 따라 이름의 길이를 조절하라. 대문자나 밑줄 등을 의미 있는 방식을 활용하라 이름에 정보 담기 재치 있는 이름보다 명확하고 간결한 이름이 더 좋다. retval이라는 이름은 정보를 제대로 담고 있지 않다. 대신 변수 값을 설명하는 이름을 사용하라. tmp라는 이름은 대상이 짧게 임시적으로만 존재하고, 임시적 존재 자.. 내 삶의 주인으로 산다는 것 내 삶의 주인으로 산다는 당연한 말이지만 그렇게 살고 있지 않다고 느낀다. 다시 생각해 보면 결국 지금의 나는 순간순간을 적극적으로 선택한 결과인 건 변함이 없다. 하고자 하는 일과 하고 있는 일, 오늘이나 지금이 맞게 가고 있는지 뒤돌아볼 겨룰 없이 지내는 것도 방법이지만 가끔은 잘 하고 있나 멈춰서 곰곰히 생각해보고 싶은 때가 있다. 나중에 때가 되면 이걸, 저걸, 뭘 하고 싶다고 하는데 감흥이 없다. 예전에는 때가 아니라고 생각했고 지금은 당장에라도 할 수 있는데 안하는거라는 생각이 든다. 정해진 루틴에 지내다보면 익숙해져 루틴을 벗어나기가 두렵다. 실패에 대한 걱정과 두려움이 앞선다. 정말 원하는게 무엇인지, 이대로 괜찮은지, 더 나아지려면 어떻게 해야 할지 고민해볼 필요가 있다. 인생에 정답은 .. [java-기초-11-02] 기본 API 클래스 정규 표현식과 Pattern 클래스 문자열이 정해져 있는 형식으로 구성되어 있는지 검증해야 하는 경우에 정규표현식을 사용하면 된다. 기호 설명 [ ] 한 개의 문자 [abc] a, b, c 중 하나의 문자 [^abc] a, b, c 이외의 하나의 문자 [a-zA-Z] a~z, A~Z 중 하나의 문자 \d 한 개의 숫자, [0-9]와 동일 \s 공백 \w 한 개의 알파벳 또는 한 개의 숫자, [a-zA-Z_0-9]와 동일 ? 없음 또는 한 개 * 없음 또는 한 개 이상 + 한 개 이상 {n} 정확히 n개 {n,} 최소한 n개 {n,m} n개에서부터 m개까지 ( ) 그룹핑 - (02|010)-\d{3,4}-\d{4} 기호 설명 (02|010) 02 또는 010 - - 포함 \d{3,4} 3자리 또는 4자리 .. [java-기초-11-01] 기본 API 클래스 자바 API 도큐먼트 자바에서 제공하는 API(Application Programming Interface)는 라이브러리라고 부르기도 하고 프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모음을 말한다. java api java.lang과 java.util 패키지 자바에서 가장 많이 사용하는 패키지는 java.lang 패키지와 java.util, java.time 패키지이다. java.lang 패키지 java.lang 패키지는 자바 프로그램의 기본적인 클래스를 담고 있는 패키지로 import 없이 클래스와 인터페이스를 사용할 수 있다. 클래스 용도 Object 자바 클래스의 최상위 클래스로 사용 System 표준 입력 장치(키보드)로부터 데이터를 입력받을 때 사용 표준 출력 장치(모니터)로 출력하기.. [java-기초-06-부록] 애너테이션 애너테이션 표준 애너테이션 4가지 @Override 오버라이딩을 올바르게 했는지를 컴파일러가 확인한다. public Parent { void parentMethod() { } } class Child extends Parent { @Override void parentmethod() { } // 조상 메서드의 이름을 잘못 적음. } @Deprecated 사용을 권장하지 않는 필드나 메서드에 붙인다. @Deprecated public int getDate() { return normlize().getDayOfMonth(); } javac -Xlint:deprecation Test.java 실행 시 Deprecated 경고를 표시해줌 @FunctionalInterface 함수형 인터페이스로 하나의 추상 메서.. 이펙티브 자바 - 7장 : 람다와 스트림 람다와 스트림 아이템 42 : 익명 클래스보다는 람다를 사용하라 특정 함수나 동작에 사용하는 인터페이스를 함수 객체라하며 메서드를 하나만 담은 인터페이스를 의미한다. 익명 클래스 방식은 코드가 너무 길어서 자바는 함수형 프로그래밍에 적합하지 않았다. 람다식이 나오면서 문백을 살펴 타입을 추론해주어 한결 간략한 코드가 된다. public class Item42 { public static void main(String[] args) { List words = new ArrayList(); Collections.sort(words, new Comparator() { public int compare(String s1, String s2) { return Integer.compare(s1.length(), s.. 이펙티브 자바 - 6장 : 열거 타입과 애너테이션 6장 열거 타입과 애너테이션 자바에서는 특수한 목정의 참조 타입이 있는데 하나의 클래스의 일종인 열거 타입이고, 인터페이스의 일종인 애너테이션이다. 아이템 34 : int 상수 대신 열거 타입을 사용하라 정수, 문자열 열거 패턴의 단점 public static final int APPLE_FUJ = 0; public static final int APPLE_PIPPIN = 1; public static final int ORANGE_NAVEL = 0; public static final int ORANGE_TEMPLE = 1; int i = (APPLE_FUJI - ORANGE_TEMPLE) / APPLE_PIPPIN; // 사과 주스를 만들려고 했지만 오렌지를 잘못 첨가했는데 오류가 아니다. 정수 열거.. [java-기초-10] 예외 처리 예외와 예외 클래스 자바에는 에러 이외에 예외라고 부르는 오류가 있고 예외가 발생되면 프로그램은 곧바로 종료할 수도 있고 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있다. 예외는 일반 예외(Exception)와 실행 예외(Runtime Exception)가 있다 일반 예외는 컴파일 예외라고도 하며 컴파일 과정에서 예외 처리 코드가 필요한지 검사한다. 실행 예외는 컴파일하는 과정에서 예외 처리 코드를 검사하지 않는 예외를 말한다. 실행 예외 자바 컴파일러가 체크하지 않기 때문에 오로지 개발자의 경험에 의해서 예외 처리 코드를 삽입해야 한다. NullPointerException null 값을 갖는 참조 변수로 객체 접근 연산자인 도트(.)를 사용했을 때 발생하는데 객체가 없는 상태에서 객체를 사용하.. 이전 1 ··· 33 34 35 36 37 38 39 ··· 61 다음