분류 전체보기 53

객체지향 프로그래밍의 이해 - Garbage Collection(GC)

GC는 중요한 개념이기에 따로 기록하고자 JVM에서 GC에 대해 개념만 알아보았다. 이번에는 GC에 대해 구체적으로 알아보자.GC의 개념은 이전 글에서 설명했으니 GC의 개념에 대해서는 넘어가자.1. GC의 동작 조건 및 특징 - 실행 시점 GC는 정해진 주기 없이, JVM이 판단하여 실행한다. 메모리 부족, 시스템 idle, 객체 수 급증 등 조건에 따라 동작한다. - 참조 해제 조건 명시적으로 null을 대입한다. 참조 변수 스코프를 벗어난다.Student s = new Student();s = null; // s는 이제 더 이상 참조되지 않음 → GC 대상 GC의 본질은 "누가 살아 있고, 누가 죽었는가"를 판단하고 치우는 일이다.2. GC의 주요 실행 단계 - ..

자바 고급(JAVA) 2026.05.06

객체지향 프로그래밍의 이해 - 자바 가상 머신(JVM)

JVM이란?자바 애플리케이션을 실행하기 위한 가상 컴퓨터. 자바 소스 코드를 컴퓨터가 이해할 수 있도록 실행시키는 해석기 역할을 수행한다. .class 파일을 읽고 해석하여 실제 실행하며 운영체제에 독립적으로 동작할 수 있게 만드는 핵심 요소이다. JVM은 자바가 범용성과 이식성을 갖추는 데 결정적 역할을 한다. 단순한 실행 도구가 아닌, 자바 철학의 중심축이라 할 수 있다.1. 자바의 플랫폼 독립성- 일반적인 프로그램의 실행 방식프로그램은 운영체제에게 CPU, 메모리, 입출력 장치 같은 자원을 요청운영체제마다 요청 방식이 다르므로, 프로그래밍 언어는 일반적으로 운영체제에 종속적이다.- 자바의 방식자바는 직접 운영체제와 소통하지 않고 JVM을 통해 간접적으로 운영체제와 상호작용한다.(운영체제마다 별도로 ..

자바 고급(JAVA) 2026.05.06

객체지향 프로그래밍의 이해 - 클래스와 객체

1. 클래스와 객체1 -1. 클래스란?객체를 정의한 설계도 또는 틀이라 할 수 있다. 객체를 생성하는데 사용되며, 객체는 클래스에 정의되고 설계된 내용 그대로 생성된다. 하지만 클래스는 객체 그 자체가 아니라 '단지 객체를 생성하는 데 사용되는 하나의 틀이며 객체 그 자체가 될 수 없다'는 사실을 명심하자.- 인스턴스'클래스를 통해 생성된 객체'를 해당 클래스의 인스턴스(instance)라고 부른다. 인스턴스화는 클래스로부터 객체를 만드는 과정을 말한다. 객체와 인스턴스의 차이는 무엇일까?객체(Object)는 넓은 의미에서 현실 세계의 사물이나 개념을 추상화한 것을 뜻한다.인스턴스(Instance)는 특정 클래스의 정의에 따라 생성된 객체이다.즉, 모든 인스턴스는 객체이지만 모든 객체가 특정 클래스의 인..

자바 고급(JAVA) 2026.05.06

객체지향 프로그래밍의 이해 - 객체지향 프로그래밍이란?

- 객체속성(state)과 행동(behavior)을 가진 독립적인 단위(사람과 동물, 개념이나 사상까지도 프로그래밍에서는 객체로 표현될 수 있다.)예) 레고 블록 - 각각은 독립적인 역할과 기능을 가진다(객체) 레고로 만든 구조물 - 객체 간에 협력하여 하나의 프로그램이 완성된다.- 객체지향 프로그래밍(OOP)'세계는 수많은 객체로 이루어져 있으며, 객체 간 상호작용을 통해 사건이 발생한다' 라는 철학을 기반으로 한다.필요한 정보를 한 곳에 모아 상태와 행동을 가지는 객체를 만든다.→객체들이 서로 협력하며 하나의 프로그램을 완성한다.※객체지향 프로그래밍의 중요 개념들구분설명객체(Object)상태(state)과 행동(behavior)을 가진 독립적인 존재클래스(Class)객체를 만들기 위한 설계도메..

자바 고급(JAVA) 2026.05.06

위클리 페이퍼 - 17주차

TCP/IP 4계층 모델과 OSI 7계층 모델에 대해 각각 설명하고, 두 모델을 비교해보세요.TCP/IP 4계층 모델 TCP/IP 4계층 모델주요 프로토콜역할4층응용 계층HTTP, DNS, FTP, ...애플리케이션에 맞추어 통신3층전송계층TCP, UDP, ...IP와 어플리케이션을 중개해 데이터를 확실하게 전달2층인터넷 계층IP, ICMP, ARP, RARP네트워크 주소를 기반으로 데이터를 전송1층네트워크 접근 계층Ethernet, wifi, ...컴퓨터를 물리적으로 네트워크에 연결해서 기기 간에 전송이 가능하게 함OSI 7계층 모델 계층 모델주요 기능대표 프로토콜/장비7계층응용 계층(Application Layer)사용자와 네트워크 간 인터페이스 제공 (응용 서비스)HTTP, HTTPS, SMTP, ..

위클리 페이퍼 - 16주차

Spring Cache에서 @Cacheable, @CachePut, @CacheEvict의 차이점과 각각을 어떤 상황에서 사용하는 것이 적절한지 설명해주세요.1. @Cacheable설명 : 메서드 실행 결과를 캐시에 저장하고, 동일한 인자로 호출 시 저장된 값을 반환하여 조회 성능을 향상시키기 위해 사용@Cacheable("products") → 캐시 이름이 products인 저장소에 결과를 저장동일한 ID로 다시 호출되면 DB 접근 없이 캐시된 결과를 반환condition 과 unless 속성을 이용하면 캐시 조건을 제어할 수 있음속성설명condition캐싱을 수행할 조건 지정 (true일 때만 저장)unless메서드 실행 후 결과에 따라 저장 여부 결정 @Servicepublic class Produ..

위클리 페이퍼 - 15주차

멀티스레드 환경에서 발생하는 대표적인 문제 중 하나인 경쟁 상태(Race Condition)에 대해 설명하고, 이를 해결하기 위한 다양한 전략을 설명해보세요.경쟁 상태란?멀티스레드(또는 멀티프로세스) 환경에서 둘 이상의 실행 흐름이 동일한 자원(변수, 파일, DB 레코드 등)을 동시에 접근·수정할 때, 실행 순서에 따라 결과가 달라지는 오류를 말한다.자주 보이는 유형Read-Modify-Write 충돌: 카운터 증가, 잔액 차감 등Check-then-Act: “없으면 생성” 로직이 동시에 통과하여 중복 생성TOCTOU(Time-of-Check to Time-of-Use): 검사 시점과 사용 시점 사이에 상태가 바뀜초기화/게시 문제: 객체를 한 스레드가 생성하고 다른 스레드가 볼 때 아직 완전히 초기화되지..

위클리 페이퍼 - 14주차

Spring 기반 웹 애플리케이션에서 발생할 수 있는 4가지 주요 보안 공격 (CSRF, XSS, 세션 고정, JWT 탈취)에 대해 설명하고, 각각에 대한 Spring Security 또는 일반적인 대응 전략을 설명하세요.1. CSRFCSRF란?CSRF는 사용자가 자신도 모르게 악성 사이트에서 원하지 않는 요청을 보내도록 속여 공격하는 방식입니다.브라우저는 같은 사이트에 대해 자동으로 쿠키(세션)를 포함시켜 요청을 보낸다는 특성을 이용해 공격합니다.예를 들어, 사용자가 이미 로그인한 상태에서 다른 악성 웹페이지를 방문했을 때, 악성 사이트가 사용자의 브라우저를 통해 "계좌 이체"와 같은 중요한 요청을 자동으로 보내게 합니다. 대응 전략Spring Security에서는 기본적으로 CSRF 보호 기능을 제공..

위클리 페이퍼 - 13주차

세션 기반 인증과 토큰 기반 인증의 차이점과 각각의 보안 고려사항에 대해 설명하세요.세션이란?클라이언트가 서버에 접속한 순간부터 접속을 끊을 때까지의 연결 상태 -> 서버가 기억하는 "사용자의 임시 신분증"세션의 특징서버 중심 관리 : 사용자의 로그인 여부, 권한, 장바구니 정보 등을 서버가 직접 보관클라이언트는 세션 ID만 보관 : 브라우저는 세션 자체가 아니라, 세션을 가리키는 고유 ID를 쿠키에 저장만료 가능 : 일정 시간 동안 요청이 없으면 세션을 종료하거나 최대 사용 시간을 설정할 수 있음보안 의존성 : 세션 ID가 유출되면 사용자 정보가 탈취될 수 있음. 따라서 세션 ID를 안전하게 보호하는 것이 핵심항목설명저장 위치서버 (메모리, DB, Redis 등)클라이언트 역할세션 ID를 쿠키에 저장하..

위클리 페이퍼 - 12주차

AWS RDS를 활용하는 주요 이점과 EC2에 직접 데이터베이스를 설치하여 운영하는 것과 비교했을 때의 차별점에 대해 설명해주세요. 그리고 RDS를 사용하는 것이 적합하지 않을 수 있는 상황도 함께 언급해주세요.AWS RDS(Relational Database Service) - AWS에서 제공하는 완전 관리형 관계형 데이터베이스 서비스(데이터베이스 인프라의 설정, 운영, 확장을 AWS가 대신 처리) 지원 데이터베이스 엔진MySQLMariaDBPostgreSQLOracle DatabaseMicrosoft SQL Server 등AWS EC2 (Elastic Compute Cloud) - AWS 클라우드에서 제공하는 가상 서버(인스턴스) 서비스 - 다양한 운영체제와 애플리케이션을 실행할 수 있는 확장 가능한..