전체 글 212

접근 제한자

자바 접근제어자 - private와 public의 차이점자바에서 클래스의 필드나 메서드에 접근할 수 있는 범위는 접근제어자(Access Modifier) 로 결정됩니다. 이 중 가장 자주 사용되는 두 가지, private와 public의 차이점은 무엇일까요?기본 구조 package edu.mju.oop;public class Car { private int member_val; public void access(int a){ member_val = a; // 같은 클래스 내부라서 접근 가능 }}member_val은 private으로 선언되어 있으므로 Car 클래스 내부에서만 접근 가능합니다.  [같은 패키지 - 다른 클래스] →  접근 불가package edu.mju.oop..

Java 정리 2025.03.26

@RequestBody vs @RequestParam 비교

Spring Boot에서는 클라이언트로부터 데이터를 전달받을 때 @RequestBody, @RequestParam, @PathVariable 등의 어노테이션을 사용합니다. 그 중에서도 @RequestBody와 @RequestParam은 어떤 것을 써야할지 고민이 됩니다.  둘의 특징을 생각해보고 결정을 해보고자 합니다.  @RequestParam 특징 상세1. 요청 파라미터 (Query Parameter) 수신주로 GET 요청의 ?key=value 형식이나 POST 폼 요청에서 사용됨.내부적으로 HttpServletRequest.getParameter("key")와 유사하게 동작. 2. 폼 전송 (application/x-www-form-urlencoded) 지원 태그에서 submit한 값들을 받을 때 ..

Spring 2025.03.24

Object Class

Object Class란?Object 클래스는 Java의 모든 클래스 계층 구조의 최상위 슈퍼클래스입니다. Java에서 작성되는 모든 클래스는 명시적으로 다른 클래스를 상속받지 않더라도 자동으로 Object 클래스를 상속받습니다. 이로 인해 모든 Java 객체는 Object 클래스에서 정의된 기본 메서드를 사용할 수 있습니다. Object 클래스의 역할모든 클래스의 공통 기능 제공모든 Java 클래스는 Object 클래스를 상속받아 공통 기능(비교, 출력, 복제 등)을 제공받습니다.기본 메서드 제공객체 비교, 문자열 출력, 해시 처리, 복제 등 다양한 기능의 기본 메서드를 제공합니다.다형성(Polymorphism) 지원Object 타입으로 모든 객체를 참조할 수 있어, 범용적인 프로그래밍이 가능합니다.예..

Java 정리 2025.03.24

참조형과 기본형

변수(variable)란 데이터를 저장하기 위해 프로그램이 이름을 부여한 메모리 공간을 의미합니다.그리고 자바에서의 데이터 타입(data type) 또는 자료형이란, 변수에 어떤 종류의 데이터를 저장할 수 있는지, 그 데이터가 메모리에 어떻게 저장되며 프로그램에서 어떻게 처리되어야 하는지를 명시하는 키워드입니다. 기본형(Primitive Type): 실제 연산을 수행하기 위해 값 자체를 저장하는 데이터 타입입니다.참조형(Reference Type): 객체의 주소를 저장하는 데이터 타입으로, null 또는 객체가 저장된 메모리의 주소값(예: 4바이트 크기의 0x00000000 ~ 0xffffffff 범위)을 가집니다. 기본형 타입 기본형 타입(Primitive Type)의 특징은 다음과 같습니다.모두 소문..

Java 정리 2025.03.23

리플렉션

클래스가 제공하는 다양한 정보를 동적으로 분석하고 사용하는 기능을 리플렉션(Reflection) 이라 한다. 리플렉션을 통해 프로그램 실행 중에 클래스, 메서드, 필드 등에 대한 정보를 얻거나, 새로운 객체를 생성하고 메서드를 호출하며, 필드의 값을 읽고 쓸 수 있다. 리플렉션을 통해 얻을 수 있는 정보는 다음과 같다.클래스의 메타데이터 : 클래스 이름, 접근 제어자, 부모 클래스, 구현된 인터페이스 등.필드 정보 : 필드의 이름, 타입, 접근 제어자를 확인하고, 해당 필드의 값을 읽거나 수정할 수 있다.메서드 정보 : 메서드 이름, 반환 타입, 매개변수 정보를 확인하고, 실행 중에 동적으로 메서드를 호출할 수 있다.생성자 정보 : 생성자의 매개변수 타입과 개수를 확인하고, 동적으로 객체를 생성할 수 있..

Java 정리 2024.12.27

채팅 프로그램

입장 : /join|{name} : 처음 채팅 서버에 접속할 때 사용자의 이름을 입력해야 한다.메시지  /message|{내용} : 모든 사용자에게 메시지를 전달한다.이름 변경 /change|{name} : 사용자의 이름을 변경한다.전체 사용자 /users : 채팅 서버에 접속한 전체 사용자 목록을 출력한다.종료  /exit : 채팅 서버의 접속을 종료한다.  블록킹 되어 있는 것들은 분리를 해야한다. 면 서버에서 모든 세션을 관리해야 한다. 그렇게 해야 모든 세션에 메시지를 전달할 수 있다. 세션을 관리하는 세션 매니저를 사용한다.   Client 구현public class ReadHandler implements Runnable { private final Client client; pub..

Java 정리 2024.12.25