숑숑이의 개발일기
[Java] #14 예외 처리
Backend/JAVA 2023. 6. 30. 00:24

본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 예외 개발자가 프로그램을 작성하는 과정에서 실수를 하거나 사용자가 잘못된 값을 입력시에 오류가 발생할 수 있다. 이 중 개발자가 해결할 수 있는 오류를 예외(exception)라고 하며, 이러한 예외가 발생했을 때 적절히 처리하는 것을 '예외 처리'라고 한다. 예외와 에러의 차이점 예외는 연산 오류, 숫자 포맷 오류 등과 같이 상황에 따라 개발자가 해결할 수 있는 오류를 말한다. '해결 할 수 있는'의 의미는 오류 자체를 수정할 수 있다는 것이 아닌 오류 발생시에 차선택을 선택하는 것을 말한다. 예외의 최상위 클래스는 Exception 클래스다. 에러는 자바 가상 머신 자체에서 발생하는 오류로 개발자가 해결할 수 없는 오류를 말..

article thumbnail
[프로젝트] 국비지원 1차 프로젝트 소소한 회고
Etc/Project 2023. 6. 27. 00:15

어느덧 국비지원학원에 다닌지 3개월이 거의 다 되어간다. 나는 프로젝트의 PM(조장)을 맡아 약 2주간 1차 프로젝트를 진행하게 되었다. 강사님께서 팀 배정은 원하는 사람들끼리 할 수 없고 랜덤이라고 말씀하셨다. 그 이유는 잘하는 사람들끼리 뭉쳐버리면 나머지 사람들이 붕 뜨거나, 막상 뭉쳐도 별 거 없다는 뜻으로 말이다. 조 배정이 랜덤이라 아쉬웠다. 개인적으로 나는 소통이 잘되고, 조금이라도 욕심이 있는 사람들과 함께 완성도 있는 프로젝트를 만들고 싶었기 때문이다. 일부 몇명은 출석률이 좋지 않았기에 더욱 걱정됐다. 한편으로는 세상에 내 맘대로 되는것은 없다고 그렇게 나는 랜덤으로 배정된 3명의 팀원과 함께 프로젝트를 진행하게 되었다. 프로젝트 요구사항 배운내용이 javascript와 jsp로 게시판 ..

[Java] #13 이너 클래스와 이너 인터페이스
Backend/JAVA 2023. 6. 6. 23:54

본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 이너 클래스 클래스 내부에 포함되는 이너 클래스(inner class)는 인스턴스 멤버 이너 클래스, 정적 멤버 이너 클래스, 지역 이너 클래스로 나뉜다. 인스턴스 멤버와 정적 멤버 이너 클래스는 클래스의 멤버인 반면, 지역 이너 클래스는 메서드 내에서 정의하며 지역 변수처럼 해당 메서드 내부에서만 한정적으로 사용되는 클래스다. 인스턴스 멤버 이너 클래스 인스턴스 멤버 이너 클래스는 인스턴스 내부에 멤버의 형태로 존재한다. 이때 자신을 감싸고 있는 아우터 클래스의 모든 접근 지정자의 멤버에 접근할 수 있다. 이너 클래스는 독립적으로 사용할 수 없고, 반드시 아우터 클래스를 이용해야만 사용할 수 있다. class 아우터 클래스 {..

article thumbnail
[Java] #12 추상 클래스와 인터페이스
Backend/JAVA 2023. 6. 4. 02:17

본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 추상 클래스 추상 메서드(abstract method)는 메서드의 본체가 완성되지 않은 미완성 메서드를 말한다. 메서드의 기능을 정의하는 중괄호 자체가 없으며, 고로 명령어의 끝을 알리는 세미콜론(;)으로 끝나야 한다. 추상 메서드를 1개 이상 포함하고 있는 클래스는 반드시 추상 클래스(abstract class)로 정의되어야 한다. 추상 클래스의 형식 또한 추상 메서드 구문과 비슷하게 class 앞에 abstract를 붙여 표현한다. abstract class A { abstract void abc(); void bcd() { // ... } } 추상 클래스의 특징 추상 클래스는 내부의 미완성 메서드 떄문에 객체를 직접 생성할..

[Java] #11 자바제어자 2 - final, abstract
Backend/JAVA 2023. 6. 1. 23:50

본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. final 제어자 final 제어자는 필드, 지역 변수, 메세드, 클래스 앞에 위치할 수 있다. 어디에 위치하느냐에 따라 의미가 달라진다. final 변수 final 변수는 한 번 대입된 값을 수정할 수 없다. (상수) class A1 { int a = 3; final int b = 5; } class A2 { int a; final int b = 5; A2 () { b = 7;// final로 선언했기 때문에 대입 불가능 } } final 필드의 초기화는 반드시 생성자에서 진행한다. final 필드도 선언과 값의 대입을 분리해 표기할 수 있지만 생성자에서는 값을 대입해야 한다. 이는 final 필드가 일반 필드와 달리 강제 초..

article thumbnail
[Java] #10 클래스의 상속과 다형성
카테고리 없음 2023. 5. 31. 23:45

본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 클래스의 상속은 부모 클래스의 멤버를 내려받아 자식 클래스 내부에 포함시키는 자바의 문법 요소다. 클래스 상속의 개념과 문법적 특징 상속의 개념 상속을 이해하기 위해 간단한 예시를 들어보자. 대학생 클래스와 직장인 클래스가 있을 경우, 대학생 클래스에는 이름, 나이, 학번 필드와 먹기, 잠자기, 등교하기라는 메서드가 있고 직장인 클래스에는 이름, 나이, 사번 필드와 먹기, 잠자기, 출근하기라는 메서드가 있다. 사람이라면 누구나 이름과 나이가 있고, 먹고 자야 하므로 두 클래스 모두 이름, 나이 필드와 먹기, 잠자기 메서드를 공통으로 포함하고 있다. 결국 사람의 속성과 기능에 각 특성을 고려한 기능을 추가한 것이 각 클래스가 되는..

[Java] #9 자바 제어자 1 - 접근지정자, static
Backend/JAVA 2023. 5. 28. 16:49

본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 이번에는 대표적인 자바의 제어자 중 접근 지정자와 static에 대해서 알아보자 접근 지정자(modifier) 자바 제어자는 클래스, 필드, 메서드, 생성자 등에게 어떠한 특징을 부여하는 문법 요소다. '빨간색 사과', '맛있는 사과'와 같이 클래스나 멤버 등을 꾸며주는 형용사라고 생각하면 된다. 접근 지정자는 자바 제어자의 한 종류로 클래스, 멤버, 생성자 앞에 위치할 수 있고, 사용 범위를 정의하는 역할을 란다. 접근 지정자는 멤버와 생성자 앞에 붙어 있을 때와 클래스 자체에 붙어 있을 때를 나눠 생각해야 한다. 멤버 및 생성자의 접근 지정자 멤버 및 생성자에는 public, protected, default, private..

[Java] #8 클래스 외부 구성 요소
Backend/JAVA 2023. 5. 25. 23:02

본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 패키지 패키지(package)는 비슷한 목적으로 생성된 클래스 파일들을 한 곳에 모아 둔 폴더를 의미한다. 1개의 프로젝트에 1개의 패키지를 생성할 수도 있고, 여러 개의 패키지를 생성할 수도 있다. 패키지를 아예 생성하지 않아도 문법적으로는 전혀 문제가 없다. 패키지의 생성하지 않았을때 package 구문은 포함되지 않는다. 패키지가 있을 때는 소스 코드의 첫 번째 줄에 반드시 package 패키지명이 명시되어 있어야 한다. 패키지 사용으로 얻을 수 있는 장점은 클래스명의 충돌을 방지할 수 있다는 것이다. 일반적으로 협업시에 패키지명에는 회사의 URL주소를 사용하므로 패키지명으로 사용하면 두 회사가 클래스명을 똑같이 만들어도 ..

[Java] #7 클래스 내부 구성 요소
카테고리 없음 2023. 5. 24. 22:44

본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 필드 필드와 지역 변수의 구분 필드(field)는 클래스에 포함된 변수로, 객체의 속성값을 지정할 수 있다. 지역 변수는 메서드에 포함된 변수를 말한다. 즉, 클래스의 중괄호 안에 선언된 변수를 필드, 메서드의 중괄호 안에 선언된 변수는 지역변수라고 한다. 필드는 힙 메모리에, 지역 변수는 스택 메모리에 생성된다. 스택 메모리의 변수(지역변수)는 자신이 선언된 메서드의 중괄호가 닫혀 메서드가 종료되면, 그 메서드 안에 선언된 모든 지역 변수가 메모리에서 삭제된다. 필드와 지역 변수의 초깃값 둘의 또 다른 차이점은 초깃값이다. 필드는 직접 초기화 하지 않아도 강제로 초기화된다. 반면, 지역 변수는 직접 초기화 하지 않으면 빈 공간..

[Java] #6 클래스와 객체
카테고리 없음 2023. 5. 22. 23:24

본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 클래스의 개념 객체는 사용할 수 있는 실체를 의미하며, 클래스는 객체를 만들기 위한 설계도와 같다. 따라서 1개의 정의된 클래스를 이용해 여러 개의 객체를 만들 수 있다. 클래스는 다양한 자료형의 데이터를 묶어 관리할 수 있을 뿐 아니라 데이터를 처리하는 다양한 기능까지 함께 관리하는 문법요소다. 자바에서 제공하는 객체지향 문법 요소는 크게 클래스와 인터페이스가 있고, 클래스는 다시 일반 클래스와 추상 클래스로 나뉜다 클래스 구조 클래스 정의 방법은 아래의 코드와 같다. 클래스는 class 키워드와 함께 클래스명을 표기한다. 클래스명은 대문자로 시작하는 것이 관례다.(개발자들 간의 확고한 약속이다.) package ...;// ..