전체 글

프로그래밍 언어/JAVA

Static / Non-Static method

객체 지향 프로그래밍(OOP)에서 메서드는 static 메서드와 non-static 메서드 크게 두 가지로 나눌 수 있다. 이 두 가지 메서드는 사용되는 방식과 목적이 다른데 이에 대해서 알아보도록 하자.1. Non-Static Method (인스턴스 메서드)정의Non-static 메서드는 클래스의 인스턴스(객체)에 속하는 메서드이다. 이러한 메서드는 특정 객체와 연관되어 있으며, 객체의 상태(인스턴스 변수)를 변경하거나 그 상태를 기반으로 작업을 수행할 수 있다.특징객체 인스턴스 필요: Non-static 메서드를 호출하려면 먼저 해당 클래스의 객체를 생성해야 한다.객체 상태 접근 가능: 이 메서드는 객체의 인스턴스 변수와 다른 인스턴스 메서드에 접근할 수 있다.호출 방식: object.methodNa..

프로그래밍 언어/JAVA

Enum - 1 (feat. final)

Enum이란 특정한 이름이 있는 상수들의 집합을 정의하는 클래스이다.Enum은 주로 코드의 가독성을 높이고, 상수들에 대한 관리를 쉽게 하며, 타입 안전성을 확보하기 위해 사용된다. 상수를 정의하기 위해서 final을 사용할 수도 있는데, Enum을 사용하면 어떤 이점이 있을지 알아보도록 하겠다.final 변수는 인스턴스 변수, 지역 변수, 또는 매개변수로 사용할 수 있으며, 한 번 초기화되면 더 이상 값을 변경할 수 없다.public class FinalExample { public final int instanceVariable; public FinalExample(int value) { this.instanceVariable = value; // 초기화 후 변경 불가 }..

프로그래밍 언어/JAVA

Stream

Java Stream API는 Java 8에서 도입된 기능으로, 컬렉션 데이터의 조작을 보다 간결하고 효율적으로 할 수 있도록 해준다. 스트림은 컬렉션의 요소를 하나씩 처리할 수 있는 연속된 데이터 흐름을 나타내며, 이를 통해 데이터를 필터링, 변환, 집계 등의 작업을 선언형으로 처리할 수 있다.주요 개념과 구성 요소1. 스트림 생성 (Stream Creation)컬렉션, 배열 또는 I/O 채널에서 스트림을 생성할 수 있다. List list = Arrays.asList("a", "b", "c");Stream stream = list.stream();2. 중간 연산 (Intermediate Operations)중간 연산은 스트림을 변환하고 또 다른 스트림을 반환한다. 중간 연산은 게으르게 평가(lazy ..

Computer Science/운영체제

4. CPU 스케줄링

1. CPU 스케줄링스케줄링의 단계고수준 스케줄링: 전체 시스템의 부하를 고려하여 작업을 시작할지 말지 결정중간수준 스케줄링: 시스템에 과부하가 걸려서 프로세스 수를 조절해야 한다면 이미 활성화된 프로세스 중 일부를 보류 상태로 보냄저수준 스케줄링: 실제 작업 수행스케줄링의 목적공평성: 모든 프로세스가 자원을 공평하게 배정받아야 함효율성: 시스템 자원이 유휴 시간없이 사용되도록 해야하고, 유휴 자원을 사용하려는 프로세스에 우선권을 줘야함안정성: 우선순위를 사용하여 중요 프로세스가 먼저 작동하도록 배정함으로써 시스템 자원을 점유하거나 파괴하려는 프로세스로부터 자원을 보호해야함확장성: 프로세스가 증가해도 안정적으로 작동하게 해야함반응 시간 보장: 시스템은 적절한 시간안에 프로세스의 요구에 반응해야함무한 연기..

Computer Science/운영체제

3. 프로세스와 스레드

1-1. 프로세스프로그램특정한 목적을 수행하기 위한 명령어, 데이터의 집합프로세스실행을 위해 메모리에 올라온 동적인 상태일괄 작업 방식큐로 작업을 처리, 먼저 들어온 작업을 처리해야 뒤에 들어온 작업을 할 수 있기 때문에 작업 효율이 떨어짐시분할 방식시간을 배분하여 작업을 처리, 여러 작업을 순서에 상관없이 번갈아 가면서 수행할 수 있음1-2. 프로그램 → 프로세스 전환프로세스 제어 블록(PCB; Process Control Block)프로그램이 프로세스로 전환될 때 운영체제가 만드는 작업 지시서PCB의 유무가 프로세스가 되거나 종료되거나를 결정PCB가 가진 대표적 정보프로세스 구분자(PID; Process IDentification): 각 프로세스를 구분하는 구분자메모리 관련 정보: 프로세스의 메모리 ..

Computer Science/운영체제

2. 컴퓨터 구조와 성능 향상

1-1. 하드웨어의 구성컴퓨터의 구성필수장치: CPU, 메인메모리주변장치: 입력장치, 출력장치, 보조기억장치저장장치메인메모리보다 느리지만 저렴하고 용량이 큼데이터를 영구적으로 저장종류자성 이용: 카세트테이프, 플로피디스크, 하드디스크 등레이저 이용: CD, DVD, 블루레이디스크 등메모리(램) 이용: USB 메모리, SD 카드, CF 카드, SSD 등속도: 레지스터 > 캐시 메모리 > 메인메모리 > 버퍼 > 보조기억장치메인보드CPU와 메모리 등의 다양한 부품을 연결하는 판장치들을 bus로 연결함1-2. 폰노이만 구조CPU, 메인메모리, 입출력장치, 보조기억장치가 버스로 연결되어 있는 구조보조기억장치에서 메인메모리로 가지고 올라와야 실행 가능 → 병목현상 발생1-3. 기초 용어8bit = 1Byte, 1B..

Computer Science/운영체제

1. 운영체제 개요

1-1. 운영체제란?컴퓨터 전체를 관리 및 운영하는 시스템 소프트웨어하드웨어와 응용프로그램 관리 ex)PC 운영체제: Windows, mac, unix, linux, ms-dos 등모바일 운영체제: Android, iOS, 심비안, 타이젠, 바다 등1-2. 운영체제 정의커널(Kernerl)과 인터페이스(Interface)로 나뉨.커널1. 운영체제의 핵심 기능을 모아놓은 것으로 모든 컴퓨터의 자원을 관리.2. 커널을 통해서만 컴퓨터 자원에 접근 가능1-3. 운영체제 역할역할자원 관리: 컴퓨터 시스템 자원을 응용프로그램에 나눠줌, 여러 개의 프로그램이면 적당한 순서로 배분, 적절한 시점에 회수 후 다른 응용프로그램에 나눠줌자원 보호하드웨어 인터페이스 제공: 사용자가 간단히 장치를 사용할 수 있게 하드웨어 인..

Back-end/JPA

JPA - 0. 개념

1. JPA란JPA(Java Persistence API)는 자바 애플리케이션에서 관계형 데이터베이스를 관리하고 조작하기 위한 표준 API로 자바 객체와 데이터베이스 테이블 간의 매핑을 통해 데이터베이스와의 상호작용을 단순화하고, 객체 지향적인 방식으로 데이터 관리를 할 수 있도록 도와주는 API다.객체-관계 매핑(ORM, Object-Relational Mapping)을 제공하여, SQL을 사용하지 않고도 데이터베이스 작업을 할 수 있게 하는 것이 목표라고 할 수 있다.2. ORM?ORM은 객체 지향 프로그래밍 언어에서 정의된 객체와 관계형 데이터베이스의 테이블을 자동으로 매핑해주는 기술이다.ORM을 사용하면 아래의 장점을 기대할 수 있다.데이터베이스와 상호작용할 때 반복되는 코드 작성을 줄여줌.객체 ..

프로그래밍 언어/JAVA

Optional

Optional은 변수에 null이 아닌 값을 포함할 수도 있고 null일 수도 있는 상황을 처리하기 위한 클래스이다. Java 8에서 처음 도입되었고, 주로 NullPointerException을 방지하고, 코드의 가독성을 높이기 위해 사용된다.Optional의 주요 메서드값의 존재 여부 확인isPresent(): Optional 객체가 값을 가지고 있는지 여부를 확인ifPresent(Consumer): 값이 존재할 때 특정 동작을 수행값 가져오기get(): 값이 존재하면 그 값을 반환하고, 값이 없으면 NoSuchElementException을 발생시킴orElse(T other): 값이 존재하면 그 값을 반환하고, 그렇지 않으면 기본 값을 반환orElseGet(Supplier other): 값이 존재..

프로그래밍 언어/JAVA

Interface

자바에서 인터페이스(Interface)는 메서드의 집합을 정의하는 데 사용되는 추상 타입이다. 인터페이스는 클래스가 구현해야 하는 메서드의 서명을 지정하지만, 실제 구현은 제공하지 않는다. 이를 통해 특정 기능을 클래스가 구현하도록 강제할 수 있다.자바 인터페이스의 주요 특징추상 메서드(abstract methods)인터페이스 내의 모든 메서드는 기본적으로 abstract이며, 메서드 본문이 없다.자바 8부터는 default 메서드와 static 메서드를 사용할 수 있어 메서드 본문을 가질 수 있다.상수(constants)인터페이스 내에 정의된 변수는 'public static final'로 자동으로 지정되며, 상수로 취급된다.다중 상속클래스는 하나의 부모 클래스만 상속할 수 있지만, 여러 개의 인터페이..

sngyng
devsy