1. Enum 1.1. Enum의 정의 Enum은 "열거형 타입"을 의미하며, Java에서 서로 연관된 상수들의 집합을 정의하기 위해 사용됩니다. Enum은 특정 값들만 가질 수 있도록 제한된 데이터 타입을 제공하여 코드를 간결하게 만듭니다.타입 안정성 제공: Enum은 컴파일 타임에 값이 결정되며, 허용되지 않은 값이 할당되는 것을 방지합니다.상수 그룹화: 관련 있는 상수들을 하나의 타입으로 묶어 표현합니다.객체 지향적 설계: 필드와 메서드를 추가하여 응집도를 높이고, 상수와 관련된 데이터 및 동작을 한곳에 모아 표현할 수 있습니다.- 간단한 예시public enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;}pub..
1. JUnit / JUnit5 JUnit은 자바에서 널리 쓰이는 단위 테스트 프레임워크로, 단위 테스트를 쉽게 작성하고 관리할 수 있게 해줍니다. JUnit 3.x에서 JUnit의 기초적인 구조가 완성되고, 이후 JUnit5까지 발전하였습니다. JUnit 5는 JUnit의 최신 버전으로, JUnit Platform, JUnit Jupiter, JUnit Vintage로 구성된 모듈형 아키텍처로 설계되었습니다.JUnit Platform: JUnit 5의 핵심 플랫폼으로, 테스트를 실행하고 결과를 리포팅하는 역할을 합니다.JUnit Jupiter: JUnit 5에서 새로 추가된 테스트 프로그래밍 모델로, 새로운 어노테이션과 확장성을 제공합니다.JUnit Vintage: JUnit 3.x와 4.x 버전의..
1. 과제 정의 과제는 전반적으로 단순했지만, 예외 처리에 많은 신경을 써야하는 문제처럼 느꼈다. 1주차 과제의 주된 목적은 개발 환경과 언어에 익숙해지는 것이었기 때문에 비교적 간단한 과제가 주어진 것 같다. 2. 구현 과정입력 (Reader)사용자의 입력을 받는 기능으로, 데이터를 처리하기 위한 첫 단계.입력 검증 (Validation)입력된 데이터가 올바른 형식인지 확인하고, 잘못된 입력에 대해 예외를 처리하는 과정.문자열 분할 (Split)입력된 문자열을 필요에 따라 분할하여 계산을 위한 준비 단계.계산 (Calculate)분할된 데이터를 기반으로 원하는 계산을 수행하는 핵심 로직.출력 (Print)계산 결과를 출력하는 단계. 절차지향적 구조에서 각 기능별로 테스트 코드를 짜고 구현하고, 테스트..
객체지향 설계의 원칙인 SOLID는 단순한 개념 같으면서도 처음 접하면 다소 어렵게 느껴집니다. 특히, 객체지향 설계를 도와주는 프레임워크인 스프링을 배우면서 "왜 굳이 이렇게 해야 할까?"라는 의문이 들기도 합니다. 하지만 여러 번의 개발 경험과 학습을 통해 그 원리와 필요성을 점차 이해하게 되고, 이를 적용했을 때 얻을 수 있는 이점을 자연스럽게 체감하게 되는 것 같습니다. "SOLID 원칙"은 객체지향 프로그래밍의 가이드라인이라고 할 수 있습니다. SOLID는 코드의 유지보수성, 확장성, 가독성을 모두 높이는 데 중점을 두고 있습니다. 하지만 이 원칙은 절대적인 것이 아닙니다. 따라서 복잡한 비즈니스 로직이나 스파게티 코드가 아닌 이상, 이 원칙에 지나치게 집착할 필요는 없다고 생각합니다. 1. ..
1. 제너릭1.1. 제너릭을 사용하기전 1) 매번 다른 데이터 타입으로 작성 동일한 기능을 하는 코드를 데이터 타입별로 작성하는 방식입니다. 예를 들어, 배열에서 두 개의 값을 스왑하는 예시 코드입니다.public class SwapUtil { // int 배열 전용 swap 메서드 public static void swap(int[] array, int index1, int index2) { int temp = array[index1]; array[index1] = array[index2]; array[index2] = temp; } // double 배열 전용 swap 메서드 public static void swap(double[] a..
1. WebSocket 소개 1.1 WebSocket? WebSocket은 클라이언트와 서버 간의 양방향 통신을 지원하는 네트워크 프로토콜입니다. 일반적으로 HTTP는 요청-응답 구조로 한 번 요청하면 한 번 응답을 받는 형태로 작동하지만, WebSocket은 연결이 유지된 상태에서 클라이언트와 서버가 실시간으로 데이터를 주고받을 수 있습니다. 이는 소켓을 이용해 데이터 스트림을 주고받는 것과 유사한 형태로, 특히 실시간 애플리케이션에서 자주 사용됩니다.- HTTP와 WebSocket의 차이점연결 방식:HTTP는 기본적으로 단일 요청 후 연결이 종료되는 방식이지만, WebSocket은 한 번 연결이 성립되면 지속적으로 연결을 유지하면서 데이터를 주고받습니다.양방향 통신:HTTP는 클라이언트가 요청하면 서..