본문 바로가기
반응형

전체 글

(97)
프로세스, 스레드 프로세스 운영체제로부터 자원을 할당받은 작업의 단위 메모리에 올라와 실행되고 있는 프로그램의 인스턴스 컴퓨터에서 연속적으로 실행되고 있는 프로그램 각 프로세스는 별도의 주소 공간에서 실행되고 프로세스끼리 자원을 공유하지 않음 프로세스 특징 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당 기본적으로 프로세스 당 최소 1개의 스레드를 가지고 있음 각 프로세스는 별도의 주소 공간에서 실행되며 한 프로세스는 다른 프로세스의 변수, 자료에 접근 불가 한 프로세스가 다른 프로세스의 자원에 접근하려면 프로세스 간의 통신을 사용 스레드 프로세스가 할당 받은 자원을 이용하는 실행 흐름의 단위 하나의 프로세스 안에서 여러 가지 작업들 흐름이 동시에 진행되는 것을 스레드라 하며..
직렬화 직렬화 자바 언어에서 사용되는 Object, Data를 다른 컴퓨터의 자바 시스템에서도 사용할 수 있도록 바이트 스트림 형태로 연속적인 데이터로 변환하는 포맷 변환 기술입니다. 시스템적으로 JVM의 힙(Heap), 스택(stack) 메모리에 상주하고 있는 객체 데이터를 직렬화를 통해 바이트 형태로 변환하여 데이터베이스, 파일 같은 외부 저장소에 저장하고 다른 컴퓨터에서 이 파일을 가져와 역직렬화를 통해 자바 객체로 변환해서 JVM 메모리에 적재하는 것으로 생각하면 됩니다. ※ 역직렬화 : 바이트로 변환된 데이터를 원래대로 자바 시스템의 Object, Data로 변환하는 기술 ※ 스트림 : 클라이언트, 서버 간에 출발지 목적지로 입출력하기 위한 데이터가 흐르는 통로 ※ 바이트 스트림 : 자바는 기본 단위를..
JDBC란 JDBC란 자바에서 DB 프로그래밍을 하기 위해 사용되는 API 자바 프로그램이 데이터베이스와 연결되어 데이터를 주고받을 수 있게 해주는 프로그래밍 인터페이스입니다. 등장 이유 과거에는 DB마다 커넥션을 연결하는 방법, SQL 전달 방법, 결과 응답 방법이 상이하고 MySQL, Oracle 등 DB의 종류도 다양해서 종류에 따라 코드도 변경해야 합니다. 이를 위해 개발자는 연결 방법을 매번 배우고 코드의 적용했어야 합니다. JDBC 역할 JAVA 코드에서 DB 서버에 접속 SQL 문을 구성하고 DB 서버에서 실행 DB 서버에서 처리한 결과를 가져오기 DB의 정보를 가져오기 JDBC 동작 흐름 JAVA 애플리케이션 → JDBC API → JDBC 드라이버 → 데이터베이스 JDBC는 JAVA 애플리케이션 내..
ORM(Object Relation Mapping) 객체와 DB의 테이블을 Mapping 시켜 RDB 테이블을 객체지향적으로 사용하게 해주는 기술입니다. RDB테이블은 객체지향적 특성(상속, 다형성, 레퍼런스) 등이 없어서 Java와 같은 객체지향적 언어로 접근하기 어렵습니다. JAVA에서 사용하는 대표적인 ORM으로 JPA와 그 구현체 Hiberante가 있습니다. JPA에 이전에는 MyBatis라는 Object Mapping 기술을 이용했습니다. MyBatis는 JAVA 클래스 코드와 직접 작성한 SQL코드를 Mapping 시켜주어야 했습니다. 반대로 JPA와 같은 ORM 기술은 객체가 DB에 연결되기 때문에 SQL을 직접 작성하지 않고 표준 인터페이스 기반으로 처리합니다. 간단히 객체가 테이블이 되도록 매핑시켜주는 것을 말합니다. ORM을 이용하면 ..
버블 정렬 버블 정렬 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘으로 선택 정렬과 기본 개념이 유사하다. 인접한 2개의 레코드를 비교(왼쪽 기준)하여 크기 순서가 다른 경우 서로 교환하여 정렬하는 알고리즘입니다. 1회전을 수행하고 나면 가장 큰 자료가 맨 뒤로 이동하여 정렬을 수행할 때마다 제외되는 데이터가 늘어납니다. 예제 : 장점 구현이 매우 간단 단점 순서에 맞지 않는 요소를 인접한 요소와 교환 하나의 요소가 가장 왼쪽에서 가장 오른쪽으로 이동하기 위해서는 배열에서 모든 요소들과 교환 필요 가장 마지막에 존재해도 교환 일반적으로 자료의 교환 작업이 자료의 이동 작업 보다 더 복잡하여 버블 정렬은 단순성 에도 불구하고 거의 미 사용 됩니다.
싱글톤 패턴 객체의 인스턴스가 오직 1개만 생성되는 패턴입니다. 인스턴스가 필요할 때 동일한 인스턴스를 재 생성 하지 않고 기존의 인스턴스를 활용하는 것입니다. 예시 public class Singleton { private static Singleton instance = new Singleton(); private Singleton(){ // 생성자는 외부에서 호출못하게 private으로 지정해야 한다. } public static Singleton getInstance(){ return instance; } public void say(){ System.out.println("hi, there"); } } 장점 최초 한 번의 new 연산자를 통해서 고정된 메모리 영역을 사용하기 때문에 낭비 방지 이미 생성된 인..
1. OOP가 뭐죠? 객체 지향 프로그래밍입니다. 인간 중심적인 프로그래밍 패러다임(견해, 사고법)이라 할 수 있습니다. 프로그래밍에서 필요한 데이터를 추상화시켜서 상태(속성, 어트리뷰트), 행위(메서드)를 가진 객체로 만들고 그 객체 간의 상호 작용을 통해 로직을 구성하는 방법을 의미합니다. 장점 다른 클래스를 가져와 사용 가능하고 상속을 받아 코드의 재사용성 증가 자주 사용되는 로직을 라이브러리로 만들어두면 계속해서 사용 가능하며 신뢰성 확보 가능 클래스 단위로 모듈화가 가능하며 대현 프로젝트의 적합 객체 단위로 코드를 나누어 작성되기 때문에 디버깅이 쉽고 유지보수가 용이함 단점 처리 속도가 상대적으로 느림 객체가 많으면 용량이 커짐 설계 시 많은 노력, 시간이 필요 객체 지향의 특성 캡슐화 코드를 수정 없이 재활용하는 ..
일반PC, 서버 구분 서버와 일반 PC는 크게 다르지 않습니다. 일반 PC 설계 목적 상대적으로 작은 하드웨어에도 업무, 게임, 영화 감상이 모두 가능한 멀티미디어 환경을 제공 가능하도록 설계되어 있습니다. 서버 설계 목적 클라이언트에 서비스를 제공하기 위한 목적으로 설계되어 있습니다. 이로 인해 서버의 구성품 들은 365일 중단 없이 신뢰할 수 있는 서비스를 제공하기 위해 데스크톱 컴퓨터에 보다 높은 사양으로 맞춰집니다. 디자인이 일반 PC 와 다르게 24시간 서버 가동을 위해 효율적으로 열을 배출할 수 있도록 되어있습니다. 일부 부품이 고장나도 다른 부품으로 대체 가능하도록 이중화되어 있습니다. 서버 운영에 중요함은 안전성입니다. 운영 중 장애가 발생되는 경우 연결된 모든 서비스가 중단될 수 있습니다. 일반 PC도 서버의..

728x90
반응형