1. HashMap과 TreeMap이란?HashMap과 TreeMap은 모두 Map 인터페이스를 구현하여 키-값 쌍으로 데이터를 저장하지만, 내부 구현 방식과 데이터 정렬, 성능이 다릅니다. HashMap은 해시 테이블을 기반으로 하고, TreeMap은 이진 탐색 트리(Red-Black Tree)를 기반으로 구현됩니다.2. HashMap: 해시 테이블을 기반으로 한 빠른 접근HashMap은 해시 테이블(Hash Table) 자료구조를 사용하여 키를 해시 함수로 변환한 뒤, 해당 인덱스에 데이터를 저장합니다. HashMap은 키에 대해 순서를 유지하지 않으며, 해시 함수에 따라 데이터가 분산되어 저장됩니다.특징:데이터의 순서가 보장되지 않음.삽입, 삭제, 검색의 평균 시간 복잡도가 O(1).null 키와 ..
Java
1. 동기와 비동기란 무엇인가? 동기(Synchronous)와 비동기(Asynchronous)는 프로그램이 요청을 처리하는 방식의 차이를 나타냅니다. 동기 방식에서는 요청이 순차적으로 처리되며, 다음 작업은 이전 작업이 완료된 후에만 시작됩니다. 반면, 비동기 방식에서는 요청이 독립적으로 실행되며, 다른 작업의 완료 여부와 관계없이 다음 작업을 실행할 수 있습니다. 이 두 가지 방식은 프로그램의 성능과 사용자 경험에 큰 영향을 미칩니다.2. 동기(Synchronous) 프로그래밍: 순차적 작업 처리동기 방식에서는 각 작업이 순서대로 실행되고, 이전 작업이 완료되어야 다음 작업이 시작됩니다. 주로 작은 규모의 작업이나 순차적 데이터 처리에 적합합니다.특징:작업이 순차적으로 처리되며, 코드가 직관적이어서 이..
1. 스택과 큐란 무엇인가요?스택(Stack)과 큐(Queue)는 가장 기본적이면서도 중요한 자료구조로, 데이터 삽입과 삭제가 특정 방식에 따라 이루어집니다. 스택과 큐를 이해하는 것은 프로그램의 효율성을 높이는 데 매우 유용하며, 두 자료구조의 특성을 알면 코드의 가독성도 높아집니다.2. 스택(Stack): 후입선출(LIFO) 구조스택은 후입선출(LIFO, Last In First Out) 구조로 작동하며, 가장 마지막에 추가된 데이터가 가장 먼저 제거됩니다. 스택의 대표적인 사용 사례로는 함수 호출 관리, 브라우저의 뒤로 가기 기능, 실행 취소 기능 등이 있습니다.특징:데이터를 쌓듯이 추가하며(push), 가장 마지막에 추가된 데이터를 꺼내거나 삭제할 때(pop) 사용합니다.스택의 맨 위 데이터를 확..
서론: 자바 자료형의 중요성자료형은 데이터를 효율적으로 저장하고 조작하기 위해 필수적입니다. 자바에서 자료형을 잘 선택하는 것은 코드의 성능과 가독성, 메모리 사용 효율성에 큰 영향을 미칩니다. 또한 자료형 선택이 올바르지 않으면 예상치 못한 오류나 성능 저하로 이어질 수 있습니다. 이 글에서는 자료형의 개념과 각 자료형을 언제 어떻게 사용하는지에 대해 알아보겠습니다. 1. 기본 자료형(Primitive Types)자바는 8개의 기본 자료형을 제공하며, 이들은 메모리에 직접 값을 저장하여 성능이 빠릅니다. 각 자료형을 언제 사용하는 것이 좋은지 살펴보겠습니다.boolean: 참(true) 또는 거짓(false) 값만 필요할 때 사용합니다. 주로 조건문에서 많이 사용되며, 메모리를 가장 적게 사용합니다.c..
Java vs C# Java와 C#은 모두 널리 사용되는 객체 지향 프로그래밍 언어로, 각각의 특징과 장점을 가지고 있습니다. 이제 Java와 C#을 비교하여 알아보겠습니다. 용도 Java는 특히 서버 측 프로그래밍, 웹 애플리케이션 개발, 안드로이드 앱 개발 등 다양한 분야에서 널리 사용됩니다. 또한, 기기 간 호환성과 이식성이 뛰어나기 때문에 다양한 플랫폼에서 실행될 수 있습니다. 반면에 C#은 주로 Windows 기반 애플리케이션, 웹 애플리케이션 개발, 게임 개발 등에서 사용되며, 특히 마이크로소프트의 .NET 프레임워크와 함께 사용됩니다. 문법과 문서화 Java는 C++과 유사한 문법을 갖고 있으며, 상대적으로 간단하고 명확한 문법으로 알려져 있습니다. Java의 문서화는 Javadoc을 사용하..
C++ C++은 범용 프로그래밍 언어로, 고성능의 시스템 및 응용 소프트웨어를 개발하는 데 사용됩니다. C++은 절차 지향 및 객체 지향 프로그래밍 패러다임을 모두 지원하며, 직접 메모리 조작이 가능하고 효율적인 하드웨어 제어를 할 수 있는 기능을 제공합니다. C++은 컴파일 언어로, 컴파일 시간에 소스 코드를 기계어로 변환하여 실행 가능한 바이너리 형태로 제공합니다. Java Java는 객체 지향 프로그래밍 언어로, 다양한 플랫폼에서 실행되는 소프트웨어를 개발하는 데 사용됩니다. Java는 가상 머신인 JVM(Java Virtual Machine)에서 동작하며, JVM 위에서 실행되기 때문에 플랫폼에 독립적입니다. Java는 가비지 컬렉션, 예외 처리, 스레드 관리 등의 기능을 내장하고 있으며, 안정성..
소개 Kotlin과 Java는 두 가지 인기 있는 프로그래밍 언어입니다. 둘 다 Java Virtual Machine (JVM) 상에서 동작하며, 다양한 플랫폼에서 애플리케이션 개발에 사용됩니다. Kotlin Kotlin은 JetBrains에서 개발한 정적 타입 언어입니다. Java와의 상호 운용성을 갖추고 있어 기존의 Java 코드와의 호환성이 높습니다. Kotlin은 간결하고 안전한 코드 작성을 지원하며, 널 안정성(null safety)과 함수형 프로그래밍 기능 등을 제공합니다. 안드로이드 앱 개발에도 널리 사용되고 있습니다. Java Java는 Sun Microsystems에서 개발된 객체 지향 프로그래밍 언어입니다. 강력한 생태계와 풍부한 라이브러리, 도구 지원을 통해 널리 사용되고 있습니다. ..
0. JPA, MyBatis 등장 배경 기존에 JDBC를 사용헀을 때는 sql문이 코드에 섞여 있었고 만들어 요청하는 과정에서 sql문 생성시 String을 붙이고 자르는 등의 작업이 필요해서 sql문이 조금만 길어져도 번거롭고 관리도 힘들었다. 따라서 코드와 sql문을 분리해서 관리하기 위해서 JPA, MyBatis 등을 사용한다. 1. MyBatis란 ? 1. SQL 실행 결과를 자바 빈즈 또는 Map 객체에 매핑해주는 Persistence 솔루션으로 관리한다. SQL을 소스 코드가 아닌 XML로 분리한다. 2. SQL문과 프로그래밍 코드를 분리해서 구현한다. 3. 데이터소스 기능과 트랜잭션 처리 기능을 제공한다. 2. MyBatis의 장점, 단점 장점: 1. 접근이 쉽고 코드가 간결하다. (배우기가..
Java에서 줄을 바꿀 때는 개행문자 \n, \r 을 사용한다. Code System.out.println("Hello\nJava"); Output Hello Java 하지만 이 방법은 코딩할 때 지양한다. 왜냐하면 시스템에 따라서 사용하는 개행문자가 다르기 때문이다. \r,\n - windows \r - mac \n - unix 위의 코드를 mac 환경에서 실행할 경우 줄바꿈이 되지 않는다. 따라서, 2가지 메소드를 사용하여 시스템에 상관없이 개행문자를 사용하는 것이 좋다. 1) System.lineSeparator() 2) System.getProperty("line.separator") System.lineSeparator() 사용 Code System.out.println("Hello" + Sys..