java (15) 썸네일형 리스트형 [멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 20일차 POJO, 디자인 패턴 POJO(Plain Old Java Object): 특정한 프레임워크나 기술에 종속되지 않은 간단하고 순수한 자바 객체POJO의 주요 특징순수한 자바 객체특정 프레임워크나 라이브러리에 의존하지 않는 자바 클래스.예를 들어, Spring 프레임워크를 사용하더라도 POJO는 Spring 컨테이너와 독립적일 수 있음.비종속성특정 기술, 인터페이스, 상속 계층 등에 종속되지 않음.POJO 클래스는 오직 자바 언어만 사용하여 정의.구조의 단순성일반적으로 기본 생성자, 게터/세터 메서드, 간단한 로직으로 구성됨.복잡한 상속, 종속성, 어노테이션 등이 없어야 함.POJO의 예아래는 POJO의 전형적인 예제 : POJO 클래스public class Person { private String name; pri.. [멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 19일차 OOP, SOLID 원칙 UML의도는 “메시징”이다. 훌륭하고 성장 가능한 시스템을 만들기 위한 핵심은 모듈 내부의 속성과 행동이 어떤가보다 모듈이 어떻게 커뮤니케이션하는가에 달려있다. - Alan Curtis Kay 1. 객체지향 프로그래밍 설계 원칙 개요1.1 객체지향 프로그래밍(OOP) 핵심 개념(1) 추상화 (2) 캡슐화 (3) 상속 (4) 다형성 https://mmatrix.tistory.com/33 [멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 5일차 메서드의 선언, 캡상추다,1. 메서드의 선언 정리new 연산자를 사용할 때마다 메모리에 인스턴스가 생성된다.인스턴스는 더 이상 참조되는 것이 없을 때, 나중에(언제 될지는 모른다. 보통 메모리가 부족할 때) 가비지 컬mmatrix.tistory.. [멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 18일차 멀티 스레드 프로세스와 멀티스레드의 개념1. 프로세스(Process)정의: 실행 중인 프로그램의 인스턴스. 운영체제에서 프로그램을 실행하면 해당 프로그램을 위한 독립적인 실행 공간과 리소스(메모리, CPU 등)가 생성되며 이를 프로세스라고 합니다.특징:독립된 메모리 공간: 각각의 프로세스는 독립적인 메모리 영역(Code, Data, Stack, Heap)을 가집니다.자원 소모: 프로세스 간의 데이터 교환은 상대적으로 비용이 높습니다. (Inter-Process Communication, IPC)운영체제의 스케줄링 대상: 프로세스는 운영체제의 스케줄링에 의해 CPU 시간을 할당받아 실행됩니다.예시:크롬 웹 브라우저를 실행하면 여러 개의 탭이 각각 별도의 프로세스로 동작.MS Word와 Spotify를 실행하면 각 프로.. [멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 17일차 Java IO, 버퍼 Java IO(Input/Output)필요성1. 데이터의 영속성 제공프로그램은 메모리에서 실행되므로 프로그램이 종료되면 데이터가 사라짐.데이터를 파일에 저장하거나 데이터베이스에 기록함으로써 데이터를 영구적으로 보관할 수 있음.예시:문서 작성 프로그램에서 작성한 내용을 파일로 저장하고, 나중에 열어서 작업을 이어갈 수 있음.입출력의 핵심 목적데이터 이동: 근원지에서 데이터를 읽어와 목적지로 보냄.장치 간 상호작용: 프로그램, 파일, 네트워크, 사용자 입력 등 다양한 장치와 통신.효율적인 데이터 처리: 자바 IO API는 버퍼링 등 효율적인 입출력 처리를 지원.1. 입력(Input) 입력의 근원지(Source):데이터를 읽어오는 출발점입니다.보통 데이터를 제공하는 장치나 매체를 가리킵니다.주요 예시:파일: .. [멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 16일차 컬렉션 프레임워크, Iterator 컬렉션 프레임워크(클래스+인터페이스)컬렉션 프레임워크는 데이터를 효율적으로 저장하고 조작하기 위해 자바에서 제공하는 클래스와 인터페이스의 집합입니다. 데이터를 저장할 자료구조와 이를 처리하는 알고리즘을 제공하여 코드의 재사용성과 유지보수성을 높이는 것이 목적입니다. 컬렉션 프레임워크의 계층 구조java.util.Collection ├── List │ ├── ArrayList │ ├── LinkedList │ └── Vector ├── Set │ ├── HashSet │ ├── LinkedHashSet │ └── TreeSetjava.util.Map ├── HashMap ├── LinkedHashMap └── TreeMap 컬렉션 프레임워크의 구성 요소인.. [멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 10일차 내부 클래스, 익명 개체, 자주 사용되는 클래스, 제네릭 내부 클래스(Inner Class) 내부 클래스(Inner Class)는 다른 클래스 내부에 정의된 클래스를 의미. 자바에서 내부 클래스는 외부 클래스와 강하게 연관된 객체를 생성하거나, 외부 클래스의 멤버에 쉽게 접근하기 위해 사용. 내부 클래스는 일반적으로 외부 클래스와 함께 동작해야 하는 경우에 적합하다. 내부 클래스의 종류인스턴스 클래스 (Instance Inner Class)외부 클래스의 인스턴스와 연결되어 있으며, 외부 클래스의 멤버(필드, 메서드)에 쉽게 접근 가능.주로 외부 클래스 객체의 특정 작업을 도와주는 용도로 사용.정적 클래스 (Static Nested Class)정적(static)으로 선언된 내부 클래스.외부 클래스의 인스턴스 없이 독립적으로 사용 가능.외부 클래스의 정적 멤버에.. [멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 9일차 예외 처리 예외 처리개념 예외 (Exception): 프로그램 실행 중에 발생하는 예기치 않은 상황을 의미.예외 처리 (Exception Handling): 예외 발생 시 적절히 대처하는 방법을 의미.예외 처리(Exception Handling) 는 프로그램 실행 중에 발생할 수 있는 예상치 못한 상황(예외)에 대비하여 프로그램의 정상적인 흐름을 유지하고 예외 상황을 안전하게 처리하는 프로그래밍 기법.(예외 처리를 하지않으면 프로그램이 중단, 종료되어 버림) 자바에서 예외 처리는 주로 try-catch-finally 블록을 사용하여 구현됨.try 블록: 예외가 발생할 수 있는 코드를 포함합니다.catch 블록: try 블록에서 발생한 예외를 처리합니다.finally 블록 (선택적): 예외 발생 여부와 관계없이 실행.. [멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 8일차 추상클래스, 인터페이스, Final 추상클래스추상 클래스란?추상 클래스(Abstract Class)는 추상 메서드를 하나 이상 포함하거나, 객체를 직접 생성할 수 없고 다른 클래스에서 상속받아 사용하도록 설계된 클래스를 말함. 특징1. 객체 생성 불가추상 클래스 자체로는 객체를 생성할 수 없음.반드시 상속받은 하위 클래스에서 구현하여 사용해야 함.예)abstract class Animal { public abstract void sound();}Animal a = new Animal(); // 오류: 추상 클래스는 인스턴스화할 수 없음 2. 추상 메서드abstract 키워드로 선언된 메서드로, 구현부가 없는 메서드.하위 클래스에서 반드시 오버라이딩(재정의) 해야 함.예)abstract class Animal { public a.. [멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 7일차 헷갈릴수 있는 코드 정리, 클래스 내부 필드와 문자열 처리 방식의 차이점, String 헷갈릴수 있는 코드 정리.package day07;public class Pen { protected String color = "빨강"; public void write(){ System.out.println("Pen이 씁니다."); } public void write(String msg){ } public void write(String msg, int count){ } @Override public String toString() { return "나는 펜이예요."; } public void print(){ System.out.println("a"); System.out.println("b".. [멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 6일차 생성자, 상속, 오버라이딩과 오버로딩 생성자클래스의 객체가 생성될 때 호출되는 특별한 메서드로, 객체를 초기화하는 데 사용. 생성자는 클래스 이름과 동일해야 하며, 반환 타입이 없음(예: void조차 쓰지 않음). 특징 자동 호출:객체가 생성될 때 자동으로 호출됨.오버로딩 가능:생성자도 매개변수의 개수나 타입을 달리하여 여러 개 선언 가능(오버로딩).기본 생성자:생성자를 하나도 선언하지 않으면, 컴파일러가 매개변수가 없는 기본 생성자를 자동으로 생성함. 역할 객체 초기화:객체 생성 시 필드를 초기화하거나, 필요한 작업을 수행.코드 간결화:초기화 작업을 한 번에 처리하여, 이후 작업에서 간결한 코드 유지. 생성자 체이닝 (생성자가 다른 생성자를 호출할 수 있다) : 객체 초기화를 단순화하고 중복을 줄이는 데 매우 유용한 패턴. 생성.. 이전 1 2 다음