728x90

Language 8

검색이 빠른 자료구조

O(1) > O(log n) > O (n) > O(n log n) > O(n^2) > O(n^3) > O(2^n) > O(n!) HashMap 단건 검색 시간 복잡도 : O(1) 범위 탐색 시간 복잡도 : O(N) 전방 일치 탐색 불가 ex) like 'AB%' List 정렬되지 않은 리스트 탐색 시간 복잡도 : O(N) 정렬된 리스트 탐색 시간 복잡도 : O(logN) 정렬 되지 않은 리스트 정렬 시간 복잡도 : O(N) ~ O(N * logN) 삽입/삭제 비용이 매우 높다 Tree 트리 높이에 따라 시간 복잡도 결정 트리의 높이를 최소화 하는 것이 중요! 한쪽으로 노드가 치우치지 않도록 균형을 잡아 주는 트리 사용 ex) Red-Black Tree, B+Tree B+Tree 삽입/삭제시 항상 균형을 ..

Language/Java 2023.07.12

버퍼링(Buffering)과 스트림(Stream)

버퍼링(Buffering)과 스트림(Stream)은 데이터를 효율적으로 처리하기 위한 개념입니다. 버퍼링(Buffering) 효율성 메모리 영역인 버퍼(Buffer)는 데이터를 일시적으로 저장하는 임시 공간입니다. 버퍼는 데이터를 한 곳에서 다른 곳으로 전송하는 동안에 사용되며, 데이터를 효율적으로 처리하기 위한 중간 저장소 역할을 합니다. 버퍼의 주요 목적은 데이터 전송의 효율성을 높이는 것입니다. 입출력 작업이나 네트워크 통신 등의 데이터 전송은 데이터를 작은 단위로 나누어 전송하는 것이 일반적입니다. 이렇게 작은 단위로 나누어 전송하면, 데이터를 한 번에 읽거나 쓰는 것보다 성능이 향상될 수 있습니다. 버퍼를 사용하면 작은 데이터 단위를 모아서 한 번에 처리할 수 있습니다. 데이터를 일시적으로 버퍼..

Language/Java 2023.07.01

JVM 메모리 구조

소개 JVM(Java Virtual Machine)은 자바 프로그램을 실행하기 위한 가상 머신입니다. 이 블로그 포스트에서는 JVM의 메모리 영역 구조와 각 영역의 역할에 대해 자세히 알아보겠습니다. 메서드 영역 (Method Area 또는 Class Area) JVM이 시작될 때 생성되며, 모든 스레드가 공유하는 영역입니다. 클래스 파일의 정보, 상수, 메서드 코드 등이 저장됩니다. 클래스 로더에 의해 로딩된 클래스들의 정보와 정적 변수(static variables)가 할당됩니다. PermGen 영역이라고도 불리며, Java 7 이전 버전에서는 PermGen 영역에 존재했지만, Java 8부터는 Metaspace 영역으로 대체되었습니다. 힙 (Heap) 객체 인스턴스와 배열이 동적으로 할당되는 영역입..

Language/Java 2023.06.10

TypeScript 설치 방법 및 프로젝트 생성

1. TypeScript 설치 하기 npm 사용하기 npm install -g typescript2. 프로젝트 생성 express --no-view backend 명령은 Express.js 애플리케이션을 생성하는 명령어입니다. 이 명령을 실행하여 애플리케이션을 생성하면 JavaScript로 작성된 애플리케이션이 생성됩니다. 그러나 TypeScript를 사용하여 Express.js 애플리케이션을 작성하려면 다음과 같은 추가적인 단계가 필요합니다. 1. 프로젝트 생성 기본 Directory 구조 root/ ├── dist/ ├── node_modules/ ├── src/ │ ├── controllers/ │ ├── models/ │ ├── routes/ │ ├── app.ts │ └── index.ts ├─..

Language/TypeScript 2023.04.29

클래스(class), 객체(object), 인스턴스(instance) 차이

Object_객체 Class의 Instance나 Array를 말한다. 즉 어떤한 것을 정의 할수 있는 모든 것을 뜻한다. 자동차, 컴퓨터, 사람, 개념 등 Class_클래스 객체를 정의 하는 틀 또는 설계도 이다. Instance_인스턴스 Class 타입의 Object를 인스턴스 라고 합니다. 메모리에 할당된 객체 // 클래스 public Class Earth{ private String name; private int width; } // obj -> 인스턴스 Object obj = new Earth();참고 -- 코딩하는 보디 빌더 Java/Study

Language/Java 2023.04.16

Function VS Arrow Function

Function VS Arrow Function 공부 하게 된 이유 Vue2 Vuex에서 Cookie에 접근을 할려고 했으나 arrow function 특성상 "this"가 window 기준이 아닌 상위 scope를 가리키게 되어 Cookie에 접근이 안되는 불상사가 생기게 되어 차이를 알고자 공부하게 되었습니다. Function 전통적인 함수표현(function) function fun(){ }Arrow Function 화살표 함수 표현(arrow function expression)은 전통적인 함수표현(function)의 간편한 대안입니다. 하지만, 화살표 함수는 몇 가지 제한점이 있고 모든 상황에 사용할 수는 없습니다. 사용법 일반 사용법 // 1. param => expression // 2. (..

Language/JavaScript 2023.04.16

Function(함수) VS Method(메소드)

함수(function), 서브루틴(subroutine), 루틴(routine), 메서드(method), 프로시저(procedure)는 소프트웨어에서 특정 동작을 수행하는 일정 코드 부분을 의미한다. Function(함수) 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합으로 정의할 수 있습니다. 주로 Javascript, C++ 등의 언어에서 사용된다. Method(메서드) 메서드(method)란 객체 지향 프로그래밍(OOP)에서 클래스(class) 내부에 정의된 함수(函數, function)를 말한다. 멤버 함수라고도 한다. 메서드라고도 쓴다. **따라서 Java에서는 Class 외에 함수를 작성할 수 없으므로 Java에서는 무조건 메서드를 사용한다. 함수가 메소드를 포함하는 개..

Language 2023.04.15

Parameter VS Argument

Parameter VS Argument Parameter Parameter는 매개변수란 뜻으로 함수를 실행할 때 필요한 전달 인자를(Argument) 받는 변수를 말한다. // 계산기 Class public class Calculator{ public int sum(int v1, int v2){ // v1, v2가 Param 이다. return v1 + v2; } }Argument Argument는 전달 인자라는 뜻으로 함수 실행 시 필요한 정보를 뜻한다. // 계산기 Class public class Calculator{ public int sum(int v1, int v2){ // v1, v2가 Param 이다. return v1 + v2; } } // 실행시 사용 부분만 구현 public void ..

Language 2023.04.15
728x90