기술독서

    [Clean Code] 2장 의미 있는 이름

    Intro 소프트웨어에서 이름은 언제나 쓰인다. 이 장에선 이름을 잘 짓는 간단한 규칙을 몇 가지 소개한다. 의도를 분명히 밝혀라 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 많다. 변수(함수, 클래스)의 이름은 따로 주석이 필요하지 않을 정도로 변수의 존재 이유, 기능, 사용 방법이 드러나야한다. 의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워진다. 의미를 함축하거나 독자가 사전지식을 가지고 있다고 가정하면 안된다. 예시 1 // Bad - d는 아무 의미도 드러나지 않음 int d; // 경과 시간(단위: 날짜) // Good int elapsedTimeDays; int daysSinceCreation; int daysSincedModification; int f..

    [자바의 정석] 5장 배열

    배열 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 배열이라고 한다. 배열의 선언과 생성 원하는 타입의 변수를 선언하고 변수 또는 타입에 배열임을 의미하는 대활호[]를 붙이면 된다. // 배열을 선언 int[] score; String[] name; // 배열을 생성 score = new int[5]; name = new String[4]; 배열의 길이와 인덱스 생성된 배열의 각 저장공간을 배열의 요소(element)라고 하며, 인덱스(index)는 배열의 요소마다 붙여진 일련번호로 각 요소를 구별하는데 사용된다. 인덱스의 범위는 0부터 배열길이 - 1까지다. 유효한 범위의 값을 index로 사용하면, 컴파일을 무사히 마쳤더라고 실행 시에 ArrayIndexOutOfBoundsException에러..

    [자바의 정석] 4장 조건문과 반복문

    조건문 조건문은 조건식과 문장을 포함하는 블럭으로 구성되어 있으며, 조건식의 연산결과에 따라 실행할 문장이 달라져서 프로그램의 실행흐름을 변경할 수 있다. if 문 if 문은 가장 기본적인 조건문이다. if (조건식) { // 조건식이 true일 때 수행될 문장 } 블럭 내의 문장이 하나뿐 일 때는 괄호를 생략할 수 있지만 가능하면 생략하지않고 사용하는 것이 바람직하다. if-else 문 else블럭은 조건식이 결과가 참이 아닐 때 else블럭의 문장을 수행하라는 뜻이다. if (조건식) { // 조건식이 true일 때 수행될 문장 } else { // 조건식이 false일 때 수행횔 문장 } 처리해야할 경우의 수가 셋 이상인 경우에는 if-else if 문을 사용한다. if (조건식 1) { // 조건..

    [자바의 정석] 3장 연산자 (Operator)

    연산자와 피연산자 연산자는 연산을 수행하는 기호(+, -, *, / 등)를 뜻하고, 피연산자는 연산자의 작업 대상(변수, 상수, 리터럴, 수식)을 뜻한다. 연산자의 종류 종류 연산자 설명 산술 연산자 + - * / % > 사칙 연산과 나머지 연산 비교 연산자 > = =< == != 크고 작음과 같고 다름을 비교 논리 연산자 && || ! & | ^ ~ AND와 OR로 조건을 연결 대입 연산자 = 우변의 값을 좌변에 저장 기타 (type) ?: instancoof 형변환 연산자, 삼항 연산자, instanceof연산자 산술 변환 산술 변환이란 연산 수행 직전에 발생하는 피연산자의 자동 형변환을 말한다. 두 피연산자의 타입을 같게 일치 시킨다(보다 큰 타입으로) 피연산자의 타입이 int보다 작은 타입이..

    [자바의 정석] 2장 변수

    변수 변수란? 프로그래밍에서의 변수는 값을 저장할 수 있는 메모리상의 공간을 의미한다. "변수란, 단 하나의 값을 저장할 수 있는 메모리 공간" 변수의 선언과 초기화 int age; // age 라는 이름의 변수 선언 변수타입은 변수에 저장될 값이 어떤 &#39;타입&#39;인지를 저장하는 것 변수이름은 메모리 공간에 이름을 붙여주는 것 📌 변수의 초기화 메모리는 여러 프로그램이 공유하는 자원이므로 전에 다른 프로그램에 의해 저장된 &#39;알 수 없는 값(쓰레기 값)&#39;이 남아있을 수 있기 때문에 반드시 초기화를 해주어야 한다. "변수의 초기화란, 변수를 사용하기 전에 처음으로 값을 저장하는 것" 예시 class Variable { publci static void main(String[] arg..

    [자바의 정석] 1장 자바를 시작하기 전에

    자바란 1996년 썬마이크로시스템즈에서 개발하고 발표한 객체지향 프로그래밍 언어이다. 운영체제에 독립적이라 운영체제의 종류에 관계없이 실행이 가능하다. 즉 이식성이 높다. 자바의 특징 운영체제의 독립적 객체지향 언어 비교적 배우기 쉬움 자동 메모리 관리(Garbage Collection) 네트워크와 분산처리를 지원 멀티쓰레드 지원 동적 로딩(Dynamic Loading) 지원 JVM(Java Virtual Machine) JVM을 직역하면 '자바를 실행하기 위한 가상 기계'라 할 수 있다. 일반적인 프로그램은 OS만 거치고 실행되는데 자바 애플리케이션은 JVM을 한 번 더 거쳐서 실행된다. 자바 애플리케이션은 JVM 하고만 상호작용을 하기 때문에 다른 OS에서도 프로그램의 변경 없이 실행이 가능하다. 단..