[☕JAVA] 접근 제어자와 캡슐화
접근 제어자가 왜 필요한지, 캡슐화 2대 원칙이 무엇인지, 그리고 static과 어떻게 조합되는지 코드 레벨로 정리합니다.
무난하지 않게

접근 제어자가 왜 필요한지, 캡슐화 2대 원칙이 무엇인지, 그리고 static과 어떻게 조합되는지 코드 레벨로 정리합니다.

List<String>, Optional<T>, Map<K, V> — Java 코드 어디서나 보이는 꺾쇠 괄호. 제네릭을 모르면 Spring, 컬렉션, 람다 어느 것도 제대로 이해하기 어렵다. 제네릭의 탄생 배경부터 와일드카드, 타입 소거까지 완전히 정리해보자! 왜 제네릭이 필요한가? 🤔 Java 1.5 이전, ...

“예외 처리는 그냥 try-catch 감싸면 되는 거 아닌가요?” 면접에서 이렇게 생각했다간 Checked/Unchecked 차이, 예외 계층 구조를 물어보는 순간 막힌다. 이론적으로 한 번 제대로 정리해보자! Java 예외 계층 구조 🌳 Java에서 예외는 아래 계층 구조를 따른다. 이 트리를 머릿속에 넣어두면 이후 내용이 훨씬 쉽게 이해된다...

멀티스레드를 공부하다 보면 Lock, synchronized, volatile 같은 키워드가 쏟아진다. 그런데 그 전에 한 가지 질문을 먼저 해야 한다. “왜 Lock이 필요한가?” 그 답이 바로 불변 객체를 이해하는 데서 시작된다. 멀티스레드의 전제 지식인 불변 객체를 제대로 익혀보자. 불변 객체란 무엇인가? 🤔 불변 객체(Immutable ...
🍃 Spring Framework 데이터베이스 연동 정리 JDBC 📚 JDBC(Java Database Connectivity): 자바 애플리케이션에서 데이터베이스에 접근하기 위한 자바 표준 API 스프링을 사용할 때 DB와 연결, SQL 쿼리 전송 등의 목적으로 필수적으로 사용하는 라이브러리이다. 데이터베이스 연결 public abstra...
🌐 Internet Protocol 전공 수업 정리 네트워크의 자동화를 실현하는 핵심 프로토콜! DHCP는 IP 주소를 동적으로 할당하고 네트워크 설정을 자동화하여 사용자가 네트워크에 쉽게 접속할 수 있게 해주는 필수적인 프로토콜이다. IP 주소 할당의 역사 과거의 방법들 1990년대 초 - Diskless Workstation 시대 📚...
🌐 Internet Protocol 전공 수업 정리 신뢰성 있는 데이터 전송의 핵심! TCP는 연결 지향적이고 신뢰성 있는 전송을 보장하는 Transport Layer 프로토콜이다. 패킷 손실, 순서 변경, 중복 등 네트워크의 다양한 문제를 해결하여 안정적인 데이터 전송을 제공한다. TCP Service Model Network의 Chall...
🔒 시큐어 코딩 수업 정리 XSS 📚XSS: 검증되지 않은 외부 입력 값을 웹 응답에 그대로 반영하여 악의적 스크립트가 실행되는 취약점 → 사용자 브라우저에서 악성 코드가 동작해, 쿠키· 세션 등 민감 정보 탈취 가능 발생 원인 외부에서 입력된 사용자 입력 값을 검증하지 않고 그대로 응답에 반영 DB에 저장된 데이터를 읽어서 출력할 때 ...
🔒 시큐어 코딩 수업 정리 클라이언트 서버 구조 📚Client: 사용자 인터페이스(UI)를 제공, 사용자의 요청(예: 브라우저, 모바일 앱)이 발생하는 프론트엔드 부분 📚Server: 클라이언트의 요청을 처리하고 필요한 데이터를 생성하거나 제공하는 백엔드 시스템 통신방식: 웹 환경에서 클라이언트와 서버는 주로 HTTP/HTTPS 프로토...
🔒 시큐어 코딩 수업 정리 Command Injection 📚Command Injection: 사용자 입력값이 적절한 검증 없이 시스템 명령어의 일부로 사용될 때 발생하는 보안 취약점 💡발생 원인 운영체제 명령을 실행하는 함수를 사용하는 경우 검증되지 않은 사용자 입력 값이 명령이나 명령의 파라미터로 사용되는 경우 운영체제별 명령...