💻 백엔드개발/멋쟁이사자처럼 12기

Java 기초와 디자인 패턴, Spring Boot 기초

aaahyunseo 2024. 10. 29. 23:18

🛠️Java 기초와 디자인 패턴, Spring Boot 기초

 

자료형

기본 자료형(Primitive type)

: Java에서 기본적으로 제공하는 데이터 형식

▷int, short, long, double, char 등

참조 자료형(Reference type)

: 객체의 메모리 주소를 참조

▷String, Class, Interface, Array, Enum 등

 


객체 지향 프로그래밍

: 객체들이 모여 서로 상호작용하며 데이터를 주고 받는 프로그래밍 설계 방식.

 

 

객체

: 클래스에서 만들어진 인스턴스

→클래스를 기반으로 다른 객체와 데이터를 주고 받는 실질적 주체

 

🪄객체지향프로그래밍 특징

  • 추상화, 캡슐화, 상속, 다형성
  • 유연하고 변경이 용이함.

 

클래스

: 객체의 설계도

 

접근 제어자

public 공개. 모든 클래스에서 해당 클래스 변수, 함수에 접근 가능.

private 비공개. 같은 클래스 안에 있는 멤버들만 접근 가능.

protected 같은 패키지 안에 모든 클래스와 다른 패키지의 자식 클래스에서 접근 가능.

default 접근제어자를 쓰지 않았을 경우. 같은 패키지 안 클래스에서 접근 가능.

▷접근 제어자는 클래스와 멤버에 부여 가능.

▷클래스는 public, default만 가능 / 나머지는 전부 가능.

 

캡슐화

: 클래스 안에 서로 연관 있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로부터 보호.

▷개발 시 함부로 바뀌어서는 안되는 정보들을 외부로부터 보호함.

 

상속과 다형성

상속 : 자식 클래스에게 부모 클래스의 필드와 메소드를 선택적으로 물려줌.

▷코드의 재사용성과 책임 분리

다형성: 하나의 객체가 여러 가지 타입을 가질 수 있는 것

▷코드 중복 해결

오버라이드: 상속 관계에 있을 때, 부모의 함수 재정의

 

인터페이스

:특정 기능을 구현체에게 강제하고, 나열된 기능의 구현(implements)을 구현체에게 맡기는 일종의 추상 클래스


디자인 패턴

: 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 특정 규약으로 만들어서 정리한 패턴

▷설계 시 객체 지향 원칙들을 잘 지키고, 책임을 잘 분배할 수 있도록 해줌.

 

1) Builder

Builder pattern

: 복잡한 객체의 생성 과정과 표현 방법을 분리하여 다양한 구성의 인스턴스를 만드는 생성 패턴.

▷매개변수의 선택적 옵션이 있을 때 사용.

▷생성자와 불필요한 중복와 같은 코드의 양을 줄일 수 있음.

 

2) Factory

Factory pattern

: 클래스의 인스턴스를 만드는 일을 서브클래스에게 맡기는 것.

▷객체 생성 정보를 받아 객체를 만들어 반환해주는 공장에게 책임 전가.

▷자신의 객체 생성 과정을 숨길 수 있음.

▷역할 분리 가능.

 

3) Singleton

Singleton pattern

: 클래스에 대한 객체를 프로그램 전체에서 단 하나만 생성할 수 있도록 하는 방식.

▷요청이 올 때마다 객체를 생성하는 것이 아니라, 이미 만들어진 객체를 공유해서 효율적으로 사용 가능.

▷객체의 내용 저장 가능. → 객체의 일관된 상태 유지

▷무상태(stateless)로 설계해야 함.(의존적 필드X)


Spring , Spring Boot

Spring

: java 애플리케이션 개발을 편하게 할 수 있게 해주는 오픈소스 애플리케이션 프레임워크

 

→객체지향언어의 특징을 살려내는 프레임워크임.

 

🪄프레임워크는 소프트웨어 개발 틀.

 

🪄라이브러리 vs. 프레임워크

라이브러리 사용하는 개발자가 라이브러리의 코드를 호출

프레임워크 필요 시 개발자가 만든 코드를 호출

 

Spring Boot

: Spring으로 애플리케이션을 만들 때에 필요한 설정을 간편하게 처리해주는 별도의 프레임워크.

▷자체적 웹 서버를 내장하고 있어 빠르고 간편한 배포 가능.

▷jar 파일로 프로젝트 빌드 → 가상화 환경에 빠르게 배포 가능.

 

*jar 파일 : 단일 파일에 코드를 저장. Java 코드의 편리한 컨테이너의 역할을 함.