반응형

전체 글 131

Java Collection Framework - ArrayList

Collection Framework란?Collection Framework는 데이터를 효율적으로 저장하고 관리하기 위한 표준화된 인터페이스와 클래스의 모음입니다. 쉽게 말해 "데이터 보관함의 종류"라고 생각하면 됩니다.주요 인터페이스:List: 순서가 있고, 중복을 허용하는 데이터 집합 (예: ArrayList, LinkedList)Set: 순서가 없고, 중복을 허용하지 않는 데이터 집합 (예: HashSet, TreeSet)Map: 키(Key)와 값(Value)의 쌍으로 데이터를 저장 (예: HashMap, TreeMap)ArrayList 완벽 가이드ArrayList란?ArrayList는 크기가 가변적인 배열입니다. 일반 배열은 크기가 고정되어 있지만, ArrayList는 필요에 따라 자동으로 크기가..

Java 2025.12.01

Java BufferedReader와 StringTokenizer

알고리즘 문제를 풀거나 대용량 데이터를 처리할 때, 입력을 어떻게 받느냐가 성능에 큰 영향을 미칩니다. 오늘은 Java에서 빠른 입력 처리를 위한 필수 도구인 BufferedReader와 StringTokenizer에 대해 알아보겠습니다.왜 BufferedReader를 사용할까?Java에서 입력을 받는 방법은 여러 가지가 있습니다. 가장 간단한 Scanner부터 BufferedReader까지, 각각 장단점이 있습니다. 하지만 속도가 중요한 상황에서는 BufferedReader가 압도적으로 유리합니다.Scanner vs BufferedReader 성능 비교Scanner는 사용하기 편리하지만 느립니다. 내부적으로 정규표현식을 사용하여 데이터를 파싱하고, 버퍼 크기도 작습니다(1KB). 반면 BufferedR..

Java 2025.11.18

Java Array

배열(Array)이란?배열은 같은 타입의 데이터를 연속된 메모리 공간에 저장하는 자료구조입니다. 쉽게 말해 같은 종류의 데이터를 한 줄로 나란히 저장하는 상자라고 생각하면 됩니다.배열의 핵심 특징:첫째, 크기가 고정되어 있습니다. 한 번 생성하면 크기를 변경할 수 없습니다. 만약 5개짜리 배열을 만들었다면, 나중에 10개로 늘릴 수 없습니다. 새로운 배열을 만들어 데이터를 복사해야 합니다.둘째, 인덱스로 접근합니다. 배열의 각 요소는 0부터 시작하는 번호(인덱스)로 접근할 수 있습니다. 첫 번째 요소는 인덱스 0, 두 번째 요소는 인덱스 1입니다.셋째, 접근 속도가 매우 빠릅니다. 인덱스를 알면 O(1) 시간, 즉 즉시 해당 요소에 접근할 수 있습니다. 이것이 배열의 가장 큰 장점입니다.넷째, 같은 타입..

Java 2025.11.12

JVM 메모리

클래스 로딩 메커니즘의 전체 흐름Java 프로그램을 실행하면 JVM은 즉시 모든 클래스를 메모리에 올리지 않습니다. 필요한 시점에 동적으로 로딩하는 Lazy Loading 방식을 사용하죠. 이 과정은 Loading, Linking, Initialization 세 단계로 구성됩니다.Loading (로딩): 클래스 로더가 .class 파일을 찾아 바이너리 데이터를 읽고 메서드 영역에 저장합니다. 이때 클래스의 FQCN(Fully Qualified Class Name), 부모 클래스 정보, 메서드와 변수 정보, 접근 제어자 등의 메타데이터가 저장됩니다. 동시에 힙 영역에는 이 클래스를 나타내는 Class 객체가 생성되며, 이 객체는 리플렉션 API의 진입점이 됩니다.Linking (링킹): 링킹은 다시 세 단..

Java 2025.11.04

JDK 완벽 이해하기

개요Java 개발을 시작하려면 가장 먼저 JDK를 설치해야 합니다. 하지만 단순히 "JDK를 설치하세요"라는 말만 듣고 넘어가기엔 아쉬운 부분이 많죠. 오늘은 JDK가 정확히 무엇인지, 내부 구조는 어떻게 되어 있는지, 그리고 어떤 버전을 선택해야 하는지까지 깊이 있게 다뤄보겠습니다. JDK, JRE, JVM - 삼위일체의 관계Java 생태계에서 가장 혼란스러운 부분이 바로 이 세 가지 개념입니다. 각각의 역할과 관계를 명확히 이해하는 것이 중요합니다.JVM (Java Virtual Machine): Java 바이트코드(.class 파일)를 실행하는 가상 머신입니다. 플랫폼 종속적이며, 각 운영체제별로 다른 구현체가 존재합니다. JVM은 클래스 로더, 실행 엔진(인터프리터와 JIT 컴파일러), 가비지 컬..

Java 2025.10.30

OSI 7 계층(1)

정의네트워크 통신이 일어날 때 어떻게 전송되고 처리되는지 단계별로 나눈 모델구조계층Nl">이름주요 역할예시7Nl">응용 계층 (Application)사용자 인터페이스 제공웹 브라우저, 이메일 앱6Nl">표현 계층 (Presentation)데이터 변환, 암호화, 압축JPEG, MP4, SSL/TLS5Nl">세션 계층 (Session)통신 연결 관리 (열기/닫기)로그인 세션, API 세션 유지4Nl">전송 계층 (Transport)데이터의 정확한 전송 보장TCP, UDP3Nl">네트워크 계층 (Network)경로 설정, 주소 지정IP, ICMP2Nl">데이터 링크 계층 (Data Link)데이터 프레임 전송, 오류 검출Ethernet(이더넷), MAC 주소1Nl">물리 계층 (Physical)0과 1 신호로..

CS 2025.04.28

React - Snippets

✨ 스니펫(Snippet)이란?프로그래밍을 하다 보면 항상 반복해서 치는 코드가 있다. 예를 들어 console.log()처럼 매번 입력하는 코드, 혹은 자주 쓰는 useEffect, function, interface 선언 등은 개발자의 손가락을 지치게 만든다. 이럴 때 유용한 도구가 바로 스니펫(Snippet)이다.스니펫이란, 개발자가 자주 사용하는 코드 조각을 저장해두고, 짧은 키워드로 빠르게 입력할 수 있게 도와주는 기능이다.React Snippets란?React Snippet는 VSCode의 공식 확장 기능 중 하나로, React개발에 필요한 코드조각(Snippet)을 단축키 형태로 등록해 두고 Tab 키 한번으로 빠르게 완성시킬 수 있도록 도와준다. 💡 왜 스니펫을 써야 할까?생산성 향상: ..

React 2025.04.21

프레임워크 vs 라이브러리

📚 라이브러리 (Library)✅ 개념 • 하나의 기능에 집중된 코드 집합 • Swift/ObjC로 작성되며, 보통 .a, .dylib, .swiftmodule 등으로 존재✅ 장점 • 빠른 적용: 필요한 기능만 가져와서 바로 사용 가능 • 가볍고 효율적: 프레임워크보다 상대적으로 무겁지 않음 • 재사용성: 다양한 앱에서 동일한 기능을 쉽게 재사용❌ 단점 • 모듈화 부족: UI, 리소스 같은 것 포함 어렵거나 별도로 관리해야 함 • 버전 충돌 위험: 여러 라이브러리가 같은 의존성을 사용할 경우 충돌 가능✅ 종류1. 정적 라이브러리(Static Library).a 확장자컴파일 타임에 앱에 통합한다.(‼️앱의 바이너리 크기 증가)런타임 의존성이 없어서, 성능이 좋다.2. 동적 라이브러리(Dynamic Lib..

Swift 2025.04.07

AWS DVA-C02 EC2

1. EC2 인스턴스 • 인스턴스 유형: EC2 인스턴스는 다양한 유형으로 제공되며, 각각 CPU, 메모리, 스토리지, 네트워크 성능이 다릅니다. 예를 들어, t3.micro는 저렴한 범용 인스턴스, c5.large는 고성능 컴퓨팅 인스턴스입니다. • AMI (Amazon Machine Image): 인스턴스를 시작하기 위해 사용하는 템플릿입니다. OS, 소프트웨어 패키지, 애플리케이션 코드 등이 포함됩니다. • 인스턴스 수명주기: 인스턴스는 시작(start), 중지(stop), 재부팅(reboot), 종료(terminate) 등 다양한 상태를 가질 수 있습니다.2. 인스턴스 패밀리1. 범용 (General Purpose): t3, t4g, m5, m6g 등균형 잡힌 CPU, 메모리, 네트워크 성능을 제..

AWS 2024.09.15

AWS DVA-C02 IAM

1.  IAM의 주요 개념사용자 (User)AWS 계정 내의 개별 사용자입니다. 각 사용자는 특정한 권한을 가지며, AWS Management Console, AWS CLI, AWS API 등에 접근할 수 있습니다. 각 사용자는 고유한 로그인 자격 증명(예: 비밀번호, 액세스 키)을 가집니다. • 그룹 (Group)여러 사용자를 하나의 그룹으로 묶어 관리할 수 있습니다. 그룹에 정책을 할당하면, 그룹 내 모든 사용자에게 해당 정책이 적용됩니다. 예를 들어, “개발자” 그룹에 EC2와 S3에 대한 읽기/쓰기 권한을 부여할 수 있습니다. • 역할 (Role)IAM 역할은 특정 사용자나 서비스에 임시로 권한을 부여할 때 사용됩니다. 역할을 맡는 사용자나 서비스는 해당 역할에 정의된 권한을 일시적으로 사용할 수..

AWS 2024.09.08
반응형