Java의 final과 static 키워드Java에서 final과 static 키워드는 코드의 불변성과 정적 특성을 나타내며, 객체 지향 프로그래밍에서 중요한 역할을 한다.이 포스팅에서는 이 두 키워드의 의미, 사용 방법 그리고 추가로 정적 메서드와 정적 클래스의 차이를 중심으로 정리할 예정이다.Fianl: 고정 - 수정 불가능Final Field : 값이 변하지 않는다.final 필드는 초기화된 후 값이 변경될 수 없는 상수이다. (JavaScript의 const) 이 값은 생성자나 필드 초기화 시에만 설정될 수 있으며, 그 이후에는 수정이 불가능하다,.참조 타입의 경우에는 객체의 참조 주소는 변경할 수 없지만, 객체 내부 값은 변경할 수 있다.예시 코드final int[] FINAL_ARRAY = n..
전체 글
List Set MapJavaCollection FrameworkJava Collection Framework는 객체의 그룹을 저장하고 조작하기 위한 표준 아키텍처를 제공한다. 이 프레임워크는 다양한 데이터 구조(List, Set, Map)와 알고리즘(정렬, 검색 등)을 제공하여 개발자가 데이터를 효율적으로 관리할 수 있게 도와준다. 프레임워크의 큰 특징 중 하나는 Generics의 활용이다. 컬렉션에 저장되는 데이터의 타입을 명시적으로 지정함으로써, 잘못된 타입의 데이터를 추가하거나 처리할 때 발생할 수 있는 오류를 컴파일 타임에 방지할 수 있다. 사실 필자는 Generics를 이해하기 위해 Collection을 정리하는 것이 목적이다. 이제 Java Collection Framework의 핵심 인터페..
Constructor, Builder Pattern, Static Factory MethodJava에서 객체를 생성하는 세가지 주요 방법에 대해 알아보고자 한다.생성자(Constructor)빌더 패턴(Builder Pattern)정적 팩토리 메서드(Static Factory Method)생성자(Constructor): 기본적인 객체 생성 방법1. @NoArgsConstructor + @Setter기본 생성자를 통해 빈 객체를 생성한 뒤, Setter를 사용해 필요한 필드값을 설정한다.Human emptyHuman = new Human();emptyHuman.setName("CheonSang")emptyHuman.setAge(12);class Human { private String name; pri..
로더 메모리 엔진 JVMJVM(Java Virtual Machine)이란, 자바 프로그램이 실행되는 가상 환경이다. 자바 코드가 작성되면, 이를 바로 기계어로 실행할 수 없기 때문에 JVM이 중간에서 바이트코드(.class 파일)을 해석하고, 운영체제에 맞는 기계어로 변환하여 실행한다.JVM은 자바 프로그램의 플랫폼 독립성을 가능하게 하는 핵심 요소이다. 즉 JVM만 있으면 어떤 운영체제에서도 실행될 수 있다. "Write Once, Run Anywhere"는 JVM을 통해 실현된다. JVM (Java Virtual Machine) 구성JVM은 세 가지 요소만 기억/학습하면 된다. 1. Class Loader(클래스 로더, 로더): 컴파일된 바이트코드(.class)를 JVM에 로드한다.2. Runtime..
Try Throw CatchJava에서 Exception(예외)는 프로그램 실행 중 발생할 수 있는 오류를 처리하는 메커니즘이다.기본적으로 Try → Throw → Catch 구조를 사용하여 오류를 처리한다. 이를 통해 프로그램이 예외 상황에 직면했을 때 프로그램이 멈추지 않고 안정적으로 처리할 수 있게 한다. 컴파일 에러와 런타임 에러 (Checked / Unchecked Exception)Java에서 에러를 자바 프로그램 입장에서의 에러 발생 근원(Source)에 따라 2가지로 구분해놓았다. EChecked Exception (컴파일에러): 프로그램 외부에서 발생하는 예상 가능한 오류로, 반드시 처리해야한다. 예외 처리가 없으면 컴파일 자체가 되지 않는다.Unchecked Exception (런타임에..
Write Once, Run AnywhereJava 프로그램이 동작하는 원리Java 프로그램이 어떻게 실행되는지 이해하려면, 우리가 작성한 코드가 기계어로 변환되어 프로세스로 실행되는 과정을 살펴봐야 한다.Java 코드 작성과 컴파일Java 코드(.java): 개발자가 작성한 소스 코드는 사람이 읽을 수 있는 형태이다.컴파일(Compile): 자바 컴파일러(Javac)를 통해 이 소스 코드를 바이트코드 (.class)파일로 변환한다.바이트코드는 운영체제나 하드웨어에 의존하지 않고, JVM에서 실행될 수 있도록 설계된 중간 코드이다.JVM(Java Virtual Machine)JVM의 역할: 자바 프로그램을 실행하는 가상 머신으로, 운영체제에 맞는 기계어로 바이트코드를 변환한다. JVM은 Java 프로그..
제어 컴포넌트와 비제어 컴포넌트내부 변수 역할을 하는 State & 파라미터 역할을 하는 Props & React 독립적 RefReact Hook 은 함수 컴포넌트를 사용하여 개발하고 함수형 프로그래밍 패러다임을 도입했다.따라서 하나의 컴포넌트를 하나의 함수로 생각한다면, State & Props & Ref 세 가지를 모두 이해하기가 훨씬 쉽다. 1. State: 내부 변수 (제어 컴포넌트)State는 컴포넌트의 내부 상태를 나타내는 변수로, React에서 직접 관리하는 변수이다.State 변경 시 리렌더링 발생: React는 state가 변경될 때 해당 컴포넌트를 다시 렌더링하여 UI를 최신 상태로 유지한다.내부 변수의 의미:State는 컴포넌트 내부에서만 관리되며, 다른 컴포넌트에서는 직접 접근할 ..
React 개발 환경 설정1. Vite를 통한 React 앱 설정과거에는 CRA(Create-React-App)을 사용해 React앱을 생성했으나, 현재는 Deprecated 되었다. React 공식 홈페이지에서 CRA 대신 CNA(Create-Next-App)을 추천하지만, 아직 Next.js 실습단계가 아니기 때문에 Vite로 React 앱을 설정할 예정이다. 1-1. Vite로 프로젝트를 설정하는 명령어npm create vite@latest react-tutorial -- --template react 1-2. Node 버전 관리 및 nvm 설치1. nvm 설치 명령어curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh ..