728x90

Java 9

[Java] 객체지향 프로그래밍이란?

목차객체지향 프로그래밍이란?객체지향의 특징절차지향 vs 객체지향객체지향 설계의 핵심 원칙 1. 객체지향 프로그래밍이란?객체지향 프로그래밍(OOP)은 실세계의 사물을 객체로 모델링하여 개발하는 프로그래밍 기법이다. Java가 대표적인 객체지향 언어지만, Python, C++, C#도 객체지향 패러다임을 지원한다. 객체지향의 핵심은 역할, 책임, 협력의 개념이다.역할: 각 객체는 시스템 내에서 특정 역할을 맡는다.책임: 객체는 자신이 맡은 역할에 따른 책임을 가진다.협력: 여러 객체가 서로 메시지를 주고받으며 협력한다.예를 들어, 온라인 쇼핑몰 시스템에서 '주문' 객체는 주문 정보를 관리하는 역할을 하며, 주문 상태 변경에 대한 책임을 가지고, '결제' 객체와 협력하여 전체 주문 프로세스를 완성한다. 2. ..

Java 2025.03.27

[Java] Checked Exception과 Unchecked Exception

목차Checked ExceptionUnchecked ExceptionError vs Exception 1. Checked Exception Checked Exception은 컴파일 시점에 확인되며, 반드시 처리해야하는 예외이다. 예를 들어 IOException, SQLException 등이 있으며 이에 대해서는 throws나 try~catch로 처리해야한다. Checked Exception를 사용하는 경우는 다음과 같다.외부 환경과의 상호작용에서 발생 가능한 예외에 적합.ex) 파일 입출력, 네트워크 통신 등 (보통 예측 가능하며 처리 가능하다) 2. Unchecked Exception Unchecked Exception은 런타임 시점에 발생하며, 컴파일러가 처리 여부를 강제하지 않는다. 예를들어 Run..

Java 2025.03.06

[Java] 비동기 처리를 위한 CompletableFuture 완벽 가이드

목차비동기 프로그래밍의 개념왜 CompletableFuture를 사용할까?CompletableFuture 사용법 비동기 작업을 위해 Java8부터 도입된 CompletableFuture에 대해 살펴보자. 1. 비동기 프로그래밍의 개념CompletableFuture에 대해 설명하기 앞서, 동기와 비동기 그리고 블로킹과 논블로킹에 대한 개념을 짚고 넘어가자. 왜 이 개념에 대해 짚고 넘어가야할까? 동기와 비동기는 실행 시점에 대한 개념으로 어떻게 시작하고 진행할 지에 대한 것이며, 블로킹 논블로킹은 결과를 받는 방식과 관련된 개념으로 어떻게 기다리고 처리하는지에 대한 것이다. 이 개념을 시작으로 자바의 비동기 프로그래밍에 다가갈 수 있다. 1.1 동기 vs 비동기동기: 한 작업이 완료된 후에 다음 작업을 시..

Java 2025.03.06

[Java] Java 21 특징

Java 21은 2023년 9월에 출시된 LTS(Long Term Support) 버전으로 Java 21에서 추가된 기능과 특징에 대해 정리해보고자한다.주요 특징에 대해 정리하면 다음과 같다. Preview는 제외하였다.JEP 431 : Sequenced Collections (https://openjdk.org/jeps/431)JEP 439: Generational ZGC (https://openjdk.org/jeps/439)JEP 440: Record Patterns (https://openjdk.org/jeps/440)JEP 441: Pattern Matching for switch (https://openjdk.org/jeps/441)JEP 444: Virtual Threads (https://o..

Java 2025.01.31

[Java] Java 17 특징

Java 17은 2021년 9월에 출시된 LTS(Long Term Support) 버전으로 Java 17에서 추가된 기능과 특징에 대해 정리해보고자한다. 주요 특징에 대해 정리하면 다음과 같다.RecordSealed ClassSwitch ExpressionStream toList()Text Block위의 항목을 하나씩 살펴보자. 1. RecordRecord는 데이터 클래스를 의미하며 불변 객체를 생성하여 DTO 정의시 편리하게 사용할 수 있다.모든 필드가 private final로 선언된다.상속이 불가능하다.toString, equals, hashCode 등의 구현을 자동으로 해준다.예시public record Animal( String type, String name){} 2. Sealed ..

Java 2025.01.30

[Java] Java 11 특징

Java 11은 2018년 9월에 출시된 LTS(Long Term Support) 버전으로 Java 11에서 추가된 기능과 특징에 대해 정리해보고자한다. 주요 특징에 대해 정리하면 다음과 같다.Collection Factory Method 강화var 키워드 추가문자열 관련 Method 추가Reactive StreamZGC(Z Garbage Collector) 추가위의 항목을 하나씩 살펴보자. 1. Collection Factory Method 강화Java9에서 도입된 기능이 강화되었다.List, Set, Map과 같이 컬렉션을 생성할 수 있는 factory method를 사용할 수 있다.of()를 통해 예시와 같이 생성 가능하며, 이때 생성 된 것은 불변하다.참고)불변 List에 추가/삭제 작업을 하려면..

Java 2025.01.30

[실전 자바 - 기본편] 다형성2

김영한의 실전 자바 - 기본편 강의를 듣고 정리한 내용입니다.인프런김영한의 실전 자바 - 기본편 강의 | 김영한 - 인프런 김영한의 실전 자바 - 기본편 강의 | 김영한 - 인프런김영한 | 실무에 필요한 자바 객체 지향의 핵심 개념을 예제 코드를 통해 쉽게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문www.inflearn.com 1. 다형성 활용아주 단순하고 전통적인 동물 소리 문제로 접근해보자.1.1 예시Animalpackage poly.ex2;public class Animal { public void sound() { System.out.println("동물 울음 소리"); }}Dogpackage poly.ex2;public..

Java 2024.09.09

[실전 자바 - 기본편] 다형성1

김영한의 실전 자바 - 기본편 강의를 듣고 정리한 내용입니다.인프런김영한의 실전 자바 - 기본편 강의 | 김영한 - 인프런​ 김영한의 실전 자바 - 기본편 강의 | 김영한 - 인프런김영한 | 실무에 필요한 자바 객체 지향의 핵심 개념을 예제 코드를 통해 쉽게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문www.inflearn.com 1. 다형성 시작1.1 다형성의 의미다형성(Polymorphism) : 다양한 형태, 여러 형태→ 프로그래밍에서는 한 객체가 여러 타입의 객체로 취급될 수 있는 능력을 의미.1.2 다형적 참조(1) 부모는 자식을 담을 수 있음부모 타입은 자식 타입을 담을 수 있으나, 자식 타입은 부모 타입을 담을 수 없다..

Java 2024.09.09

[Java] Optional 알고 사용하기

예전에 작성해둔 코드를 수정하다 보니, 갑자기 Optional이 눈에 띄었다.JPA로 데이터를 조회할 때, 이전과 달라진 정책으로 이전에는 유일하게 한 건의 데이터만 존재해 식별하던 값이 이제는 여러 값이 존재할 수 있는 상황이 되어 Optional을 사용하는 부분이 수정이 필요해졌다. 문득 Optional의 올바른 사용법이 궁금해졌다. 과연, Optional은 어떤 의도로 만들어진 걸까? 어떻게 사용해야 올바르게 사용한 것일까? 이전의 나는 Optional을 Null값에 대한 존재 여부를 판단하는 것의 편리함을 생각하며 단순하게 사용해왔다. Optional을 만든 사람의 사용 의도는 무엇일까? 주의해야 할 점은 없을까?Optional은 Null 에 대한 여부를 판단하는 로직에 사용할 수록 좋은 걸까? ..

Java 2024.07.25
728x90