부트캠프 기록 71

아키텍처

아키텍처(Architecture)의 의미를 이해할 수 있다. 우리가 알아야 할 애플리케이션의 아키텍처를 이해할 수 있다. 아키텍처를 통해 Spring Framework의 모듈(Module) 구성을 이해할 수 있다. 아키텍처: 어떠한 시스템을 구축하는데 있어 해당 시스템의 비즈니스적 요구 사항을 만족하는 전체 시스템 구조를 정의하는 것 컴퓨터 시스템에서의 아키텍처 유형 시스템 아키텍처 소프트웨어/ 애플리케이션 아키텍처 웹 애플리케이션 아키텍처 API 계층 클라이언트의 요청을 받아들이는 계층. 일반적으로 표현 계층(Presentation Layer)라고도 불리지만 REST API를 제공하는 애플리케이션의 경우 API 계층이라고 표현. 서비스 계층 API 계층에서 전달 받은 요청을 업무 도메인의 요구 사항에 ..

Spring Framework 특징

1. POJO(Plan Old Java Object)기반의 구성 pojo programming : POJO를 이용해서 프로그래밍 코드를 작성하는 것 Java나 Java의 스펙(사양)에 정의된 것 이외에는 다른 기술이나 규약에 얽매이지 않아야 한다 예) 특정 기술 상속 특정 환경에 종속적이지 않아야 한다. 예) 톰캣 -> 제티 POJO 프로그래밍이 필요한 이유 특정 환경이나 기술에 종속적이지 않으면 재사용 가능하고, 확장 가능한 유연한 코드를 작성할 수 있다. 저수준 레벨의 기술과 환경에 종속적인 코드를 애플리케이션 코드에서 제거 함으로써 코드가 깔끔해진다. 코드가 깔끔해지기 때문에 디버깅하기도 상대적으로 쉽다. 특정 기술이나 환경에 종속적이지 않기 때문에 테스트 역시 단순해진다. 객체지향적인 설계를 제한..

[ 객체지향 ] 추상화

추상화의 핵심 개념과 목적을 이해하고 설명할 수 있다. 기존 클래스들의 공통점을 모아서 상위 클래스를 만드는 것 abstract 제어자가 내포하고 있는 의미를 이해하고, 어떻게 사용되는 지 설명할 수 있다. 미완성 추상 메서드 추상 클래스 - 객체 생성이 불가 추상 클래스의 핵심 개념과 기본 문법을 이해할 수 있다. 메서드 시그니처만 존재하고 바디가 선언되어 있지 않은 추상 메서드를 포함하는 클래스 추상클래스는 상속 관계에 있어 새로운 클래스를 작성하는데 매우 유용 추상 클래스는 자바 객체지향 프로그래밍의 추상화를 구현하는데 핵심적인 역할 final 키워드를 이해하고 설명할 수 있다. 위치 의미 클래스 변경 또는 확장 불가능한 클래스, 상속 불가 메서드 오버라이딩 불가 변수 값 변경이 불가한 상수 자바 ..

[ 객체지향 ] 다형성

자바 객체지향 프로그래밍에서 다형성이 가지는 의미와 장점을 이해할 수 있다. 다형성: 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 허용하는 것 다형성 예시: 메서드 오버라이딩, 오버로딩 참조변수의 타입 변환에 대한 내용을 이해하고, 업캐스팅과 다운캐스팅의 차이를 설명할 수 있다. 사용할 수 있는 멤버의 개수를 조절하는 것 세가지 조건 서로 상속관계에 있는 상위 클래스 - 하위 클래스 사이에만 타입변환 가능 하위 클래스 타입에서 상위 클래스 타입으로 타입 변환(업캐스팅)은 형변환 연산자를 생략할 수 있음 반대로 다운캐스팅은 형변환연산자가 필수 instanceof 연산자를 언제 어떻게 활용할 수 있는 지 이해하고 설명할 수 있다. 캐스팅이 가능한 지 여부를 boolean타입으로 확인할 수 있는..

[ 객체지향 ] 캡슐화

캡슐화의 핵심 개념과 목적을 이해하고 설명할 수 있다. 캡슐화: 특정 객체 안에 관련된 속성과 기능을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것 목적: 1. 데이터 보호(외부로부터 객체의 속성과 기능이 함부로 변경되지 못하게 함) 2. 내부적으로만 사용되는 데이터에 대한 불필요한 외부 노출 방지 패키지의 개념과 import문이 어떻게 사용되는 지 이해할 수 있다. 패키지: 특정한 목적을 공유하는 클래스와 인터페이스의 묶음 클래스들을 그룹 단위로 묶어 효과적으로 관리하기 위함 클래스의 충돌을 방지해줌 Import문 : 다른 패키지 내의 클래스를 사용하기 위해 사용 자바에서 캡슐화를 달성하기 위한 핵심적인 수단으로 접근제어자 네 가지를 이해하고, 각각의 접근 가능 범위를 설명할 수 있다. 제어자:..

[객체지향] 상속

상위 클래스-하위 클래스의 상속 관계의 핵심을 이해하고, 그 장점을 설명할 수 있다. 상속: 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 자바의 문법 요소 두 클래스를 상위클래스와 하위클래스로 나누어 상위클래스의 멤버(필드, 메서드, 이너클래스)를 하위 클래스와 공유 => 코드 재사용률 높아짐 extends 키워드를 사용하여 두 개 이상의 클래스 간 상속 관계를 정의할 수 있다. 자바의 객체지향 프로그래밍에서는 단일 상속만을 허용함 인터페이스 구현을 통해서 다중 상속 효과를 낼 수 있음 포함관계와 상속관계의 차이를 설명할 수 있다. 포함: 상속처럼 클래스를 재사용할 수 있는 방법이지만 클래스의 멤버로 다른 클래스 타입의 참조변수를 선언하는 것 Employee는 Address를 가지고 있다 상속 관..

[객체지향] 내부클래스

📚학습목표 내부 클래스의 기본 개념과 장점에 대해 이해할 수 있다. 선언 위치에 따른 내부 클래스의 종류와 특징에 대해 이해하고 설명할 수 있다. 내부 클래스의 종류에 따른 유효 범위와 접근성을 이해할 수 있다. 1. 내부 클래스의 기본 개념 클래스 내에 선언된 클래스, 외부클래스와 관련 있는 클래스 2. 내부클래스의 장점 외부 클래스의 멤버들에 쉽게 접근 가능하고, 코드의 복잡성을 줄일 수 있음 캡슐화 3. 선언 위치에 따른 내부 클래스의 종류와 특징 종류 선언 위치 사용 가능한 변수 인스턴스 내부 클래스(instance inner class) 외부 클래스의 멤버변수 선언위치에 선언(멤버 내부 클래스) 외부 인스턴스 변수, 외부 전역 변수 정적 내부 클래스(static inner class) 외부 클래..

[ 객체지향 ] 생성자

생성자의 핵심 개념과 기본 문법을 이해하고 사용할 수 있다. 객체를 초기화하는 함수 생성자가 메서드와 구분되는 두 가지 차이를 이해하고 설명할 수 있다. 생성자는 클래스와 이름이 같아야 함 생성자는 리턴 타입이 없음 메서드 오버로딩이 생성자에서 어떻게 구현될 수 있는 지 확인하고 이해할 수 있다. 기본 생성자와 매개변수가 있는 생성자 기본 생성자와 매개변수가 있는 생성자의 차이를 설명할 수 있다. 매개변수가 있는 생성자를 사용하면 인스턴스마다 각기 다른 값을 가지고 초기화할 수 있음 this 와 this() 의 차이에 대해 설명할 수 있다. 해당 인스턴스를 가리킴 자신이 속한 클래스에서 다른 생성자를 호출하는 경우

[ 객체지향 ] 필드와 메서드

객체의 속성을 정의하는 필드를 이해하고, 세 가지 종류의 변수를 구분할 수 있다. 각각의 변수가 저장되는 위치를 설명하고, 그 차이를 설명할 수 있다. 클래스 변수: 클래스 영역 인스턴스 변수: 힙 영역 지역 변수: 스택 영역 클래스 영역에 있는 변수는 객체들이 공유 힙 영역에 있는 변수들은 초기화가 강제 됨, 객체가 사라지기 전까지 변수들도 사라지지 않음 스택 영역에 있는 변수들은 초기화되지 않으면 오류가 뜸, 메서드 호출이 끝나면 사라짐 static 키워드가 무엇이며, 언제 사용되는 지 설명할 수 있다. 객체의 기능을 정의하는 메서드를 이해하고, 메서드의 구성요소와 호출에 대해 설명할 수 있다. 메서드: 명령어의 집합 메서드 오버로딩을 이해하고 그 장점을 설명할 수 있다. 메서드 오버로딩은 메서드 명..

[ 객체지향 ] 클래스와 객체

객체지향 프로그래밍의 가장 기본적인 토대인 객체를 이해할 수 있다. 클래스를 토대로 만들어 지고, 속성과 기능을 가진 실체 객체를 만드는 데 필요한 클래스의 개념을 이해하고, 그 구성요소와 기본 문법을 설명할 수 있다. 클래스: 객체를 생성하는 데 사용되는 틀, 코드의 재사용성을 높임 객체의 두 가지 구성 요소, 속성과 기능이 무엇인지 이해할 수 있다. 속성: 객체가 갖고 있는 데이터 값, 필드 기능: 객체가 데이터를 다룰 수 있는 방법, 메서드 클래스에 기반하여 new 키워드를 통해 객체를 생성하고, 이를 활용할 수 있다. 클래스명 참조변수 = new 클래스명(); 클래스 영역, 스택 영역, 힙 영역에 따로 저장됨 스택영역에 저장된 참조변수는 힙 영역의 주소값을 가르키고 있음 메서드는 클래스 영역에 저..