📖혼자공부하는자바

    Http 상태코드

    100: 요청을 받았으며 프로세스를 계속 처리하고 있는 중 200: 요청을 성공적으로 처리 201: 새로운 리소스가 생성됨을 알림. 주로 post요청, 일부 put 요청 이후에 따라옴 put요청은 값이 있다면 업데이트, 없다면 생성하는 역할을 함. 이러한 속성 때문에 일부 put요청에 201이 사용됨 202: 요청을 수신했지만 처리가 완료되지 않은 경우를 말함. 예를 들면 요청 접수 후, 서버에서 1시간 뒤에 배치 프로세스(?)가 요청을 처리하는 상황에 사용됨. 300: 요청 완료를 위해 웹 브라우저에서 추가 작업 조치가 필요함을 알림 (== 리다이렉션의 개념과 일치) 웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 자동 이동됨 ex) 1. /coke URL이 ..

    Chapter13-2 LIFO와 FIFO 컬렉션

    Chapter13-2 LIFO와 FIFO 컬렉션

    컬랙션 프레인워크에는 LIFO(Last In Frist Out) 자료구조를 제공하는 Stack 클래스와 FIFO(Friest In Friest Out) 자료구조를 제공하는 Queue 인터페이스가 있다. Stack 리턴 타입 메소드 설명 E push(E item) 주어진 객체를 스택에 넣습니다. E peek() 스택의 맨 위 객체를 가져옵니다. 객체를 스텍에서 제거하지 않습니다. E pop() 스텍의 맨 위 객체를 가져옵니다. 객체를 스텍에서 제거합니다. Stack 객체를 생성하려면 저장할 객체 타입을 E 타입 파라미터 자리에 표기하고 기본 생성자를 호출해야 한다. String을 저장하는 Stack은 다음과 같이 작성할 수 있다. Stack stack = new Stack Stack stack = new ..

    Chapter10-2 예외 처리

    Chapter10-2 예외 처리

    예외 처리란 프로그램에서 예외가 발생했을 경우 프로그램은 갑작스럽게 종료를 하게 된다. 이를 막고 정상 실행을 유지할 수 있도록 도와주는 것이 예외 처리이다. 자바 컴파일러는 소스 파일을 컴파일할 때 일반 예외가 발생할 가능성이 있는 코드를 발견하면 컴파일 에러를 발생시켜 개발자가 강제적으로 예외 처리 코드를 작성하도록 요구한다. (특정 에러들에 빨간 줄이 그여 실행이 안되도록 막아주는 친구들이다.) 그러나 실행 예외는 컴파일러가 체크하지 못하기 때문에 개발자의 경험을 바탕으로 예외 처리 코드를 작성해주어야 한다. try-catch-finally 블록 try-catch-finally 블록이란 실행 예외가 발생할 경우 예외 처리를 할 수 있도록 해주는 블록이다. try 블록에는 예외가 발생할 가능성이 있는..

    Chapter 07-3 추상 클래스, 추상 메소드

    Chapter 07-3 추상 클래스, 추상 메소드

    추상 클래스란 객체를 직접 생성할 수 있는 클래스를 실체 클래스라고 한다. 이 실체 클래스들의 공통적인 특성을 추출해서 선언한 클래스를 추상 클래스하고 한다. 추상 클래스와 실체 클래스는 상속의 관계를 가지고 있다. 추상 클래스가 부모, 실체 클래스가 자식으로 구현되어 실체 클래스는 추상 클래스(부모)의 모든 특성을 물려받고 추가적인 특성을 가질 수 있다. (여기서 특성이란 필드와 메소드들을 말한다.) 예를 들면 실체 클래스에는 Bird.class, Dog.class, Cat.class 와 같은 것들이 선언되어 있다면, 이 실체 클래스들의 공통되는 필드와 메소드를 따로 선언한 Animal.class 추상 클래스를 선언할 수 있다. 추상 클래스의 용도 공통된 필드와 메소드의 이름을 통일할 목적 실체 클래스..

    Chapter 06-6-1 패키지와 접근 제한자

    패키지 프로젝트를 개발하다 보면 수많은 클래스를 작성하게 될 때가 많다. 몇백 개 혹은 몇천 개가 될 수도 있는 클래스들을 관리하지 않으면 유지 보수가 어렵게 된다. 그래서 이런 많은 클래스를 관리하기 위해 패키지를 사용한다. 클래스는 이름이 동일하더라고 패키지가 다르면 다른 클래스로 인식한다. 클래스의 전체 이름은 '패키지 이름+클래스 이름'으로 클래스명만 입력하는 것은 정확한 방법이 아니다. 따라서 만약 같은 클래스명이라도 다른 패키지에 들어 있으면 다른 클래스로 사용된다. 더보기 ex) 1. com/example/ClassA와 cam/example/ClassB인 같은 경로에 있는 클래스 2개가 있다고 가정해보자. ClassA 클래스명은 com.example.ClassA 이다. ClassB 클래스명은..

    Chapter 06-4-2 메소드 호출

    ※해당 글은 신용권님의 혼자 공부하는 자바를 참고하며 적은 글입니다. 메소드 호출 메소드 호출은 클래스 내부의 다른 메소드에서 호출하는 경우, 클래스 외부의 메소드에서 호출하는 경우 두 가지로 나뉜다. 클래스 내부에서 다른 메소드를 호출할 경우에는 단순히 메소드 이름으로 호출한다. 클래스 외부의 메소드를 호출 할 때는 우선 클래스로부터 객체를 생성한 뒤 참조 변수를 이용해서 메소드를 호출해야 한다. (객체가 존재해야 메소드도 존재하기 때문이다.) 객체 내부에서 호출 클래스 내부에서 다른 메소드를 호출할 경우, 단순히 메소드 이름으로 호출할 수 있다. 만약 메소드가 매개 변수를 가지고 있을 때에는 매개 변수의 타입과 수에 맞게 매개 값을 제공한다. 메소드가 리턴 값이 없거나, 있어도 받고 싶지 않을 경우 ..

    Chapter 05-2 배열

    배열 1개의 데이터만 저장할 수 있는 변수는 여러 변수를 생성 하기에 너무 비효율적으로 코드가 길어진다. 배열이란, 여러 데이터를 저장해야 할 때 좀 더 효율적이고 간단하게 여러 데이터를 묶어서 저장하는 방법이다. 많은 양의 데이터를 다루는 프로그램에서 더 효율적인 방법으로 배열을 사용할 수 있다. 배열의 특징 배열은 같은 타입의 데이터만 저장할 수 있다. 만약 다른 타입의 데이터 값을 저장하려고 하면 타입 불일치 컴파일 에러가 난다. 한 번 생성된 배열은 길이를 늘이거나 줄일 수 없다. (유동적으로 바뀌는 여러 데이터의 저장소를 만들고 싶다면 java의 List를 사용하도록 하자.) 배열 선언 배열을 선언하기 위해서는 우선 배열 변수를 선언해야 한다. //example code1 int[] intArr..

    Chapter 06-1 객체

    어떠한 완성본을 만들 때 부품을 하나씩 조립하고 부품끼리 조립하여 완성품을 만들듯이 소프트웨어에서도 똑같은 작업을 진행하게 되는데 그때 부품에 해당하는 것을 객체라고 한다. 객체를 하나씩 조립해서 완성된 프로그램을 만드는 기법을 객제 치향 프로그래밍이라고 한다. 객체란 물리적으로 존재하거나 추상적인것 모든 것이 될 수 있습니다. 책상, 사람, 동물 혹은 걷기, 더하기 등 모든 속성과 동작을 각각 필드와 메소드라고 부른다. 이 객체들은 각각 독립적으로 존재하고 다른 객체와 서로 상호작용 하면서 동작한다. 자바에서는 객체들 사이 상호작용 수간을 메소드라고 부른다. 이때 객체가 다른 객체의 기능을 이용하는 것이 메소드 호출이다. return calculator.plus(10,20); 도트 연산자는 객체의 필드..

    Chapter 05-1 참조 타입과 참조 변수

    Chapter 05-1 참조 타입과 참조 변수

    ※이 글은 신용권 님의 혼자 공부하는 자바를 공부하며 참고한 글입니다. 자바의 타입은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 분류된다. 기본 타입에 대한 설명은 Chapter 01서 참조할 수 있다. 참조 타입 참조 타입이란 객체의 번지를 참조하는 타입으로 배열, 열거, 클래스 , 인터페이스를 말한다. 참조 타입인 배열, 열거, 클래스, 인터페이스 변수는 메모리의 번지를 변수 안에 저장한다. 번지를 통해 객체를 참조한다는 뜻에서 참조 타입이라고 부른다. 문자열 데이터를 저장하는 String 타입의 변수도 참조 타입 변수이다. 위 그림에서 메모리에서 기본 타입 변수와 참조 타입 변수가 어떻게 저장되는지 차이점을 볼 수 있다. 기본 타입 변수인 price, ..

    Chapter 04-3 반복문, break문, continue문

    Chapter 04-3 반복문, break문, continue문

    ※이 글은 신용권 님의 혼자 공부하는 자바를 공부하며 참고한 글입니다. 반복문 은 어떤 작업(코드)을 반복해서 수행시킬 때 사용된다. 반복문의 종류로는 for문, while문, do-while문이 있다. 반복문을 사용할 때 for문이나 while문 둘 중 어느 것을 사용해도 상관없지만 for문은 반복 횟수를 알고 있을 때 주로 사용되고, while문은 조건에 따라 반복할 때 주로 사용된다. while문과 do-while문의 차이는 반복문을 실행하기 전 적어도 한번 실행을 하고 반복을 시작할지 말지의 차이만 있다. For문 //example code 1 System.out.println("이 문장을 10번 출력할 것 입니다."); System.out.println("이 문장을 10번 출력할 것 입니다.")..