본문 바로가기

728x90

분류 전체보기

(130)
JVM의 메모리 구조 Application이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당 받습니다. 그리고 이 메모리를 역할에 따라 여러 영역으로 나누어서 관리를 합니다. 그 중 3가지 주요 영역(method area, call stack, heap)에 대해서 알아보겠습니다. JVM 메모리 구조 1. 메서드 영역 (method area) 프로그램 실행 중에 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스 파일을 읽어서 분석하여 클래스에 대한 정보를 이 영역에 저장합니다. 물론, 클래스의 클래스 변수도 이 영역에 함께 저장됩니다. 2. 힙(heap) 인스턴스가 생성되는 공간입니다. 즉, 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성됩니다. 인스턴스 변수도 이 영역에 생성이 되는 ..
가변인자(varargs) JDK1.5 이전에는 메서드의 매개변수 개수가 고정적이었습니다. 하지만 JDK 1.5 이후부터는 매개변수 개수를 동적으로 지정할 수 있게 되었고 이 기능은 '가변인자'를 통해 가능합니다. 이번 포스팅을 통해 가변인자를 이용한 메서드에 대해서 알아보겠습니다. 가변인자 사용법 가변인자는 메서드의 매개변수로 으로 선언하면 됩니다. 즉 예시로 보면, Java에서 제공하는 printf 함수는 아래와 같이 매개변수로 가변인자를 사용하고 있습니다. public PrintStream printf(String format, Object ... args) { return format(format, args); } 가변인자 정의 시 주의할 점 매개변수로 가변인자를 사용하고자 한다면, 매개변수 중에서 제일 마지막에 선언을 해..
자바의 변수 (종류 및 초기화) 이번 포스팅은 Java의 기초 개념 중 하나인 변수의 종류와 초기화 방법에 대해서 작성해 보았습니다. 클래스를 이용하여 객체를 생성하고, 객체마다 속성을 정의해 주는 멤버변수(클래스 영역에 선언된 변수)를 이용할 때 어떤 종류의 변수를 이용하는 것이 좋은지 숙지하여 적재적소에 변수의 종류를 잘 선택하여 사용하는 것이 중요할 것 같습니다. 자바에서는 변수의 종류가 크게 3가지가 있습니다. 이 변수들은 선언 위치에 따라 구분할 수 있는데 아래에서 살펴보겠습니다. 선언 위치에 따른 변수 종류 1. 클래스 변수 멤버변수 중 static이 붙은 변수 즉, 인스턴스 변수 앞에 static을 붙여서 선언합니다. 클래스 변수는 클래스가 메모리에 로딩될 때 생성되므로, 인스턴스를 생성하지 않아도 "클래스 이름.클래스 변..
스프링 부트 구조 스프링 부트는 여러 개의 계층으로 이루어져 있습니다. 여기서 계층이란, 각자의 역할과 책임이 있는 어떤 소프트웨어의 구성 요소라고 할 수 있습니다. 스프링 부트는 이러한 각 계층들이 양 옆의 계층과 통신하는 구조를 따릅니다. 그럼 먼저 어떤 계층이 있는지 알아보겠습니다. Spring Boot의 계층 1. 프레젠테이션 계층 Http 요청을 받은 후, 그 요청을 비즈니스 계층으로 전송하는 역할을 합니다. Controller가 이 계층의 역할을 담당합니다. 2. 비즈니스 계층 모든 비즈니스 로직(서비스를 만들기 위한 로직)을 처리하는 계층입니다. Service가 비즈니스 계층의 역할을 담당합니다. 3. 퍼시스턴스 계층 DAO 객체를 사용하여 데이터베이스에 접근하는 것과 같이, 모든 데이터베이스 관련 로직을 처..
Feature Selection Feature Extraction: 데이터의 feature를 어떻게 유용하게 만들 것인가 Feature Selection: 데이터에서 유용한 피처를 어떻게 선택할 것인가 feature selection 방법론 1. Filter method: feature 간 관련성 측정 (correlation) 2. Wrapper method: Feature subset의 유용성 측정 3. Embedded method: Feature subset의 유용성 측정하지만 내장 metric 사용 1. Filter Method - 가장 많이 사용 - 통계적 측정 방법 사용: feature 간 상관관계 파악 - 높은 상관계수(영향력)을 가지는 feature 사용 information gain, chi-square test, fis..
IAM 이란? AWS Identity and Access Management(IAM)는 AWS 리소스에 대한 액세스를 안전하게 제어하는 웹 서비스입니다. AWS를 이용하려면 먼저 계정 생성 과정이 필수입니다. 이렇게 생성한 계정 자체는 이용하는 조직이나 개인에 고유한 계정입니다. 계정을 사용하는 사용자에는 루트 사용자와 IAM 사용자라는 2 종류가 있습니다. 루트 사용자 매우 강력한 권한을 가진 사용자입니다. 기본적으로 계정 생성 이후에 사용을 권장하지 않습니다. IAM 사용자 일상적인 작업은 IAM 사용자가 수행합니다. 보통 개인별, 권한별로 세분화하는 것이 좋습니다. IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 인가(권한 있음)된 대상을 제어합니다. 하지만 모든 IAM 사용자가 모든 서비스에 권한이 있는..
Sampling 기법 불균형 데이터 클래스 분포를 예측해야 하는 분류문제에서 예측 라벨 값의 분포수가 현저히 차이나는 데이터로, 불균형한 분포를 가진 데이터로 학습하면 성능에 문제가 발생할 수 있습니다. 불균형한 데이터 셋은 이상 데이터를 정확히 찾아내지 못할 수 있다는 문제점이 존재합니다. 해결방법 소수 클래스에 속하는 데이터들을 추가로 수집합니다. 불균형 데이터 분류 모델에 적합한 성능평가의 지표를 선정합니다. 모델 학습 전, 데이터를 적절한 방식으로 Sampling 합니다. 아래와 같은 샘플링의 종류가 있습니다. UnderSampling: Random Sampling, Tomek Links 등 OverSampling: Resampling, SMOTE, Borderline SMOTE, ADASYN 등 비용 또는 가중치를 ..
Euler's Phi (오일러 파이 함수) 개념 및 정의 오일러 파이 함수의 정의는 아래와 같습니다. 즉, 이를 해석해 보면 양의 정수 n의 오일러 파이 함수는, 1부터 n까지의 정수 가운데 n과 서로소인 것들의 개수 입니다. 성질 1. 두 정수 m과 n이 서로소인 경우 n의 서로소 개수 곱과 m의 서로소 개수 곱은 n*m의 서로소 개수입니다. 2. 정수 p가 소수인 경우 소수 p의 서로소는 1을 제외한 모든 수입니다. 3. 소수 p의 거듭제곱인 경우 1~3을 종합한 결론 위 성질들을 통해 소인수를 이용한 오일러 파이 함수를 아래와 같이 구할 수 있습니다. 그리고 아래 함수를 오일러 곱 공식이라고 합니다. 예를 들어, 20의 소인수는 2와 5 이므로, ∅(20) 은 20(1-1/2)(1-1/5) = 8로 구할 할 수 있습니다. 증명 오일러 곱 공..

728x90
반응형