Skip to content
dnwls16071 edited this page Aug 31, 2025 · 3 revisions

📚 final 키워드

  • 변수, 메서드, 클래스에 사용되어 변경을 제한하는 역할
  • final 변수 : 값을 변경할 수 없음
  • final 메서드 : 오버라이딩 불가능
  • final 클래스 : 상속 불가능

❗final 키워드는 필수는 아니지만, 코드의 안정성과 명확성을 높여주는 매우 유용한 도구이다.
❗기본적으로 final을 붙이는 것을 강력히 권장한다. 클래스의 멤버 변수는 객체의 상태를 나타내므로, 불필요하게 변경될 여지를 남기지 않는 것이 좋다.

  • 변경될 이유가 없는 변수: 객체가 생성될 때 초기화된 후 그 값이 계속 유지되어야 하는 변수에는 반드시 final을 붙여준다.
  • 의도적으로 변경해야 하는 변수: 객체의 상태가 변해야 하는 경우 (예: 사용자의 나이, 계좌 잔액 등)에만 final을 생략한다.

❗메서드 내에서 선언되는 지역 변수의 경우, 의견이 다소 나뉘지만, 값을 재할당할 필요가 없다면 final을 붙이는 것이 좋은 습관이다.

  • 한 번만 값을 할당하는 변수: 메서드 내에서 선언과 동시에, 또는 한 번만 값을 할당하고 그 이후로는 읽기만 하는 변수에는 final을 붙여준다.
  • 반복문 등에서 값이 계속 바뀌는 변수: 반복문의 카운터 변수처럼 값이 계속 변경되어야 하는 경우에는 당연히 final을 사용할 수 없다.

❗메서드에 전달되는 매개변수에 final을 붙이면, 메서드 내부에서 해당 매개변수의 값을 재할당하는 것을 방지할 수 있다.

📚 다형성

📚 인터페이스 vs 추상 클래스

📖 Java

📖 Kotlin

📖 Coroutine

📖 Spring

📖 Spring Security

📖 Spring Batch

📖 Reactive Programming

📖 Database

📖 MySQL

📖 Redis

📖 JPA

📖 QueryDsl

📖 MSA

📖 Kafka

📖 Apache Flink

  • [Apache Flink - Apache Flink Architecture]
  • [Apache Flink - Stream Processing]
  • [Apache Flink - Data Stream API & Window]
  • [Apache Flink - State Management]

📖 HTTP

📖 AWS

📖 Docker

📖 Kubernetes

📖 CI/CD

📖 Nginx

📖 Monitoring🥈

  • [Monitoring - Log Concept]
  • [Monitoring - Log Level & Filter]
  • [Monitoring - Logback]
  • [Monitoring - Log Collection with ELK Stack]
  • [Monitoring - Log Monitoring with Kibana]
  • [Monitoring - Building a Monitoring System with Spring Boot Actuator]
  • [Monitoring - Server Monitoring with Prometheus and Grafana with Discord Alerts]

📖 Test

📖 Effective Java 3/E

📖 Kotlin Academy - Effective Kotlin

📖 Kotlin Academy - 핵심편

📖 스프링으로 시작하는 리액티브 프로그래밍

📖 가상 면접 사례로 배우는 대규모 시스템 설계 기초 1

📖 가상 면접 사례로 배우는 대규모 시스템 설계 기초 2

📖 Clean Code

📖 리팩토링 2판

📖 주니어 백엔드 개발자가 반드시 알아야 할 실무 지식

📖 GraphQL

Clone this wiki locally