CS 7

CheckedException, UncheckedException

자바에서 예외 처리는 프로그램의 실행 중 발생할 수 있는 예외 상황을 적절하게 처리하기 위해 중요한 역할을 한다.자바에서는 예외를 크게 두가지로 Checked, Unchecked로 나뉜다.두 가지 예외는 발생 여부와 처리방법에 따라 다르다. 각각의 예외가 언제 발생하며 어떻게 처리하는지 알아보자. Checked Exception (검사된 예외)CheckedException은 컴파일 시점에서 발생할 수 있는 예외이다. 즉, 자바 컴파일러가 코드에서 발생할 가능성이 있는 예외를 체크하고, 개발자가 예외를 처리하도록 강제한다. 만약 CheckedException이 발생할 가능성이 있는 코드에서 이를 처리하지 않으면, 컴파일 에러가 발생하여 프로그램을 실행할 수 없다.import java.io.*;public ..

CS 2025.03.04

접근 제한자 (Access Modifier)

접근 제한자의 종류  - public, protected, default, private※ default는 별도의 키워드를 지정하지 않을 때 적용되는 기본 접근 제한자이다.  1) public (공개, 어디서든 접근 가능)모든 클래스에서 접근 가능하다패키지가 달라져도 접근이 가능하며, 가장 개방적인 접근 제한자이다.package test;public class PublicExample { public void display() { System.out.println("public 메서드 호출!"); }}package other;import test.PublicExample;public class Main { public static void main(String[] args) ..

CS 2025.03.04

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

객체지향 프로그래밍이란?객체지향 프로그래밍의 핵심 개념은 객체(Object)이다. 객체는 데이터와 해당 데이터를 조작하는 메서드를 포함하는 독립적인 단위로 볼 수 있다. 이를 통해 프로그램을 구조화하고 확장성을 높일 수 있다. 객체지향 프로그래밍의 특징1) 캡슐화 (Encapsulation)데이터를 보호하고, 외부에서 접근할 수 없도록 하는 원칙private, protected 키워드를 사용해서 데이터를 보호 가능외부에는 인터페이스(메서드)만 노출하여 필요한 데이터만 접근할 수 있도록 제어할 수 있다.class User { private String name; private int age; public String getName() { return name; } public ..

CS 2025.03.04

객체 지향의 설계원칙 (OOP)

객체지향 설계 원칙이란?객체지향 프로그래밍(Object-Oriented Programming, OOP)은 소프트웨어를 보다 효율적으로 설계하고 유지보수할 수 있도록 돕는 패러다임이다. 하지만 개념을 단순 적용한다고 좋은 코드가 되는 것은 아니다. 이를 위해 몇 가지 중요한 설계 원칙들이 존재하며, 이를 따르면 확장 가능하고 유지보수가 쉬운 소프트웨어를 만들 수 있다.SOLID 원칙1) 단일 책임 원칙 (Single Responsibility Principle, SRP)잘못된 코드 예제:class ReportManager { public void generateReport() { // 보고서 생성 로직 } public void printReport() { // 보고..

CS 2025.03.04

직렬화와 역직렬화

직렬화(Serialization)란?직렬화란 Java객체를 바이트 스트림으로 변환하여 파일이나 네트워크를 통해 전송할 수 있도록 하는 과정. 객체를 저장하거나 다른 시스템으로 전송할 때 필요하다.역직렬화(Deserialization)란?역직렬화란 직렬화된 바이트 스트림을 다시 객체로 변환하는 과정이다. 즉, 저장된 데이터를 복원하는 역할을 한다.  직렬화가 왜 필요할까?데이터의 메모리 구조는 크게 2가지로 나뉜다 -> 값 형식 데이터(int, float, char 등등), 참조 형식 데이터(객체와 같은 참조 형식 변수)이 두 가지 데이터 중에서 디스크에 저장하거나 통신할 때는 값 형식의 데이터만 사용할 수 있다. 참조 형식 데이터는 실제 데이터 값이 아닌 힙에 할당되어 있는 메모리 번지 주소를 가지고 있..

CS 2025.03.04

오버로딩(Overloading)과 오버라이딩(Overriding)

객체지향 프로그래밍(OOP)에서 자주 등장하는 개념 중 하나가 오버로딩과 오버라이딩이다.두 개념은 이름이 비슷해서 헷갈리기 쉬운데 개념적으로 큰 차이가 있다. 이번에는 오버로딩과 오버라이딩의 차이를 명확하게 이해하는 시간을 가져보도록 하겠다. 오버로딩(Overloading)이란?오버로딩은 같은 이름의 메서드를 여러 개 정의할 수 있도록 하는 기능이다.단, 매개변수의 개수 또는 타입이 달라야한다. 즉, 같은 이름을 가진 메서드라도 전달하는 인자가 다르면 서로 다른 메서드로 취급된다는 소리이다. 오버로딩의 특징같은 클래스 내에서 메서드 이름을 동일하게 정의할 수 있다.매개변수의 개수, 타입, 순서가 다를 경우 허용된다.반환 타입은 오버로딩과 관계가 없다. class MathUtils { // 두 개의 ..

CS 2025.02.25

싱글톤 패턴(Singleton Pattern)

싱글톤 패턴이란 무엇일까?싱글톤 패턴(Singleton Pattern)은 객체의 인스턴스를 하나만생성하고, 이를 프로그램 전체에서 공유하도록 설계하는 디자인 패턴이다. 이는 글로벌 상태를 유지해야 하는 경우에 유용하며, 특히 설정,로그, 데이터베이스 연결관리, 스레드 풀 등에서 널리 사용된다. 싱글톤 패턴의 특징단일 인스턴스 : 클래스의 인스턴스가 하나만 생성되도록 보장.전역 접근 가능 : 프로그램 내 어디에서든 동일한 인스턴스를 호출할 수 있음.메모리 절약 : 불필요한 객체 생성을 방지하여 성능을 향상.멀티스레드 환경에서 동기화 문제 고려 필요 : 여러 스레드에서 동시에 접근할 경우 동기화 문제를 해결해야 한다. 싱글톤 패턴의 구현 방법1) Eager Initialization (이른 초기화)publi..

CS 2025.02.25