Deque?
·
Java/자료구조
시리즈2025.03.11 - [Java/자료구조] - 스택? 큐?2025.03.11 - [Java/자료구조] - Deque? 자바 기반 설명이며 개념에 관한 내용을 다룹니다.📌 핵심내용큐와 스택의 장점을 취하고 단점을 보완한 자료구조로더 유연하고 안정적인 데이터 관리가 가능합니다.다만, 성능은 상황에 따라 달라져 구조를 알고 효율적으로 사용해야 적절합니다.Deque(덱)가 등장한 배경과 필요성Deque(Double-ended Queue, 덱)는 큐와 스택의 단점을 보완한 자료구조로, 양쪽에서 삽입과 삭제가 가능한 형태입니다.1. Deque가 등장한 이유큐(Queue)와 스택(Stack)은 각각 단순한 선형 자료구조이지만, 다음과 같은 문제점이 존재합니다.큐(Queue)의 문제점FIFO 구조로 인해 한쪽..
스택? 큐?
·
Java/자료구조
시리즈2025.03.11 - [Java/자료구조] - 스택? 큐?2025.03.11 - [Java/자료구조] - Deque? 자바 기반 설명이며 개념에 관한 내용을 다룹니다.📌 핵심내용스택(Stack)과 큐(Queue)는 기본적인 자료구조로동기화(스레드 세이프), 시간 복잡도, 알고리즘 적용 방식에 따라 성능과 활용도가 크게 달라집니다. 본 글에서는 실무에서 발생하는 문제와 해결 방안을 중심으로 심화 내용을 다룹니다. 1. 스택(Stack)과 큐(Queue)의 차이점구분스택(Stack)큐(Queue)구분스택(Stack)큐(Queue)구조후입선출(LIFO)선입선출(FIFO)동기화Stack (Thread-safe X)ConcurrentLinkedDeque (Thread-safe O)LinkedList (T..
데이터 구조 선택 가이드
·
Java/자료구조
자바 기반 설명이며 개념에 관한 내용을 다룹니다.📌 핵심내용데이터 구조는 Object의 특성에 따라 적절하게 선택해야하는데스택(Stack), 큐(Queue), 해시맵(HashMap), 트리(Tree), 그래프(Graph) 등 다양한 데이터 구조가 존재하며 각각의 특성이 달라상황에 맞는 데이터 구조 선택이 성능 최적화의 핵심이다.1. 데이터 구조별 특징데이터 구조설명사용 사례배열(Array)인덱스를 통한 빠른 접근 가능리스트, 행렬 연산 (예: Java의 ArrayList)연결 리스트(Linked List)동적 크기 조정 가능, 삽입/삭제 용이LRU 캐싱 (예: Java의 LinkedList)스택(Stack)후입선출(LIFO)함수 호출 스택 (예: Java의 Stack 클래스)큐(Queue)선입선출(FI..
OpenJDK vs Oracle JDK 차이점
·
Java
📌 핵심 내용OpenJDK와 Oracle JDK는 기본적으로 같은 소스 코드 기반이지만, 라이선스, 지원 정책, 성능 튜닝 기능에서 차이가 있음.기업 환경에서는 비용과 지원 여부를 고려하여 선택해야 함.1. OpenJDK와 Oracle JDK는 같은 JDK일까?자바 개발을 할 때 JDK를 선택해야 하는데, 가장 많이 사용되는 것은 OpenJDK와 Oracle JDK입니다. 이 둘은 같은 소스 코드를 기반으로 하지만 몇 가지 중요한 차이점이 있습니다.OpenJDK vs Oracle JDK 비교구분OpenJDKOracle JDK소스 코드오픈소스 (GPLv2 + Classpath Exception)OpenJDK 기반, 일부 상업적 기능 포함라이선스무료상업적 사용 시 유료 (Oracle 구독 필요)업데이트 지..
[JAVA] JCP, JSR, TCK란? 자바 표준의 개발 과정과 역할
·
Java
자바(Java)는 단순한 프로그래밍 언어가 아니라, 강력한 생태계를 구축한 플랫폼입니다. 이 플랫폼이 발전하고 표준이 유지되는 과정에서 중요한 역할을 하는 것이 바로 JCP(Java Community Process), JSR(Java Specification Request), TCK(Technology Compatibility Kit)입니다. 이번 글에서는 자바 기술이 표준화되는 과정과 그 중심에 있는 JCP, JSR, TCK의 역할을 정리하겠습니다.1. JCP란? (정의 및 역할)JCP(Java Community Process) 정의JCP는 자바 기술 사양을 개발 및 개정하기 위해 누구든지 참여할 수 있는 공개 커뮤니티입니다. 1998년 Sun Microsystems(현 Oracle)에 의해 만들어졌으..
테스트 주도 개발(TDD: Test Driven Development)
·
SW 방법론
시리즈 2025.03.06 - [SW 방법론] - 테스트 주도 개발(TDD: Test Driven Development)2025.03.13 - [SW 방법론] - TDD 시나리오 OOP 적용 예시 TDD가 뭘까?✅ 소프트웨어 개발방법론 중 하나이며, 매우 짧은 개발 사이클을 반복하는 SW 개발 프로세스입니다.✅ TDD는 "테스트 → 실패 확인 → 최소한의 코드 작성 → 테스트 통과 → 리팩토링" 순으로 진행하는 개발 방식✅ 불필요한 코드 작성을 막고, 기능이 정상적으로 동작하도록 보장하는 방법TDD 사이클먼저, 개발자는 요구사항을 검증하는 케이스를 작성합니다.이후에 테스트 케이스를 통과하기 위한 최소한의 코드를 생성합니다.작성한 코드는 리팩토링하는 과정을 반복합니다.쉽게 말해서 '선 테스트 코드 작성 ..
쉬운, 클래스와 객체 개념
·
Java
클래스? 객체?클래스는 객체를 생성하기 위한 메타데이터(상태[멤버변수]와 동작[메소드])를 정의한 템플릿객체는 실제 메모리에 할당되어 동작하는 클래스의 인스턴스 상태(인스턴스화 또는 객체화) // 클래스 메타데이터 정의class Car { String brand; void drive() { System.out.println(brand + " 자동차가 주행 중입니다."); }}public class Main { public static void main(String[] args) { Car myCar = new Car(); // 객체 생성 myCar.brand = "Hyundai"; // 상태 저장 myCar.drive(); /..
Class 객체
·
Java
클래스와 인터페이스를 메모리에 로드하고 조작하는데 사용되는 메타데이터를 포함하는 객체 Class 객체를 통해 클래스의 정보를 동적으로 가져올 수 있음( 리플렉션 ) 리플렉션을 통해 클래스 구조, 필드 확인, 인스턴스 생성, 메소드 호출, 필드 설정 등 가능 주요 용도 클래스 정보 가져오기: 클래스의 이름, 접근 제어자, 상위 클래스, 인터페이스 등의 정보를 동적으로 얻을 수 있음 인스턴스 생성: Class 객체를 통해 new Instance() 메소드를 호출하여 해당 클래스의 인스턴스를 동적으로 생성 가능 메소드 호출: Class 객체와 리플렉션을 사용하여 동적으로 메소드를 호출 가능 getMethod()로 메소드를 얻고, invoke()를 통해 메소드를 호출함 필드 접근: Class 객체를 사용하여 클..
this vs getClass()
·
Java
this는 현재 객체를 가리키는 참조 변수 클래스 내부에서 사용됨 해당 객체의 멤버 변수와 메서드에 접근하는데 사용됨 클래스 내부에서 자신의 인스턴스를 참조하기 위해 this 키워드를 사용함 getClass() 메소드는 Object 클래스의 메소드로 해당 객체의 클래스 정보를 가져올 때 사용 이 메소드는 Object 클래스의 하위 클래스에서 상속받아 사용할 수 있음 객체가 생성된 실제 클래스를 반환 예시 class Shape{ private String a; public void setA( String a ) { this.a = a; } public String getA() { return this.a; } } class Circle extends Shape{ }; public class This_get..
맥북 M1 도커 설치
·
Docker
1. 맥에서 도커 설치 처음에 도커에서 오라클 컨테이너를 사용하려고 도커 데스크탑을 설치하였다. 하지만, M1 맥북에서는 CPU 아키텍쳐가 달라 오라클 컨테이너가 생성이 되지 않았다. 그래서 찾은 방법이 M1 맥북에서 x86_64(intel 아키텍처)로 사용하는 방법이 있다 colima라는 오픈소스 라이브러리를 설치하는 것이다. 2. colima 설치 brew update를 하고 brew를 이용해 colima를 설치 하였다. brew install colima 3. 도커 엔진만 설치 도커 공홈에서 설치하면 도커 데스크탑만 설치가 된다. 도커 데스크탑은 엔진을 포함한 통합 패키지 프로그램이다. 개인적으로 엔진만 설치하기 위해 brew를 이용해 도커 엔진만 설치한다. brew install docker 4...