본문 바로가기
728x90

분류 전체보기198

DB(Database)와 DBMS (Database Management System)에 대한 간단한 설명 데이터베이스가 존재하기 이전에는 파일 시스템을 이용해서 데이터를 관리하였다. 하지만 파일의 구조가 응용 프로그램에 반영되어 있기 때문에 데이터나 프로그램 중 하나가 바뀌면 다른 하나도 수정해야 하는 번거로움이 있었다. 또 프로그램마다 별도의 파일로 관리해야 하기 때문에 데이터가 중복되거나, 하나의 파일에 여러 개의 응용프로그램이 접근하여 사용할 수가 없었다. 이는 프로그램을 개발하거나 유지보수를 할 때 문제가 되었다. 그러다가 저장한 데이터를 생성하거나 삭제, 수정, 관리하기 편하게 하고, 허가된 사용자는 동시에 접속도 가능하고, 무엇보다도 데이터가 프로그램에 종속적이지 않고 프로그램이 종료되더라도 사라지지 않게 할 수는 없을까 해서 만들어진 것이 데이터베이스이다. 데이터베이스(Database)는 여러 .. 2023. 3. 23.
[Java] 동기 처리(Synchronization) / 비동기 처리(Asynchronization) 동기화(Synchronization) : SW쪽에서는 프로그램이 순서대로 차례차례 실행되는 것 동기화를 사용하면 작업들이 서로의 상태에 영향을 주지 않고 순서대로 실행될 수 있다. 이를 통해 여러 스레드가 동시에 접근하는 것을 방지하고, 데이터의 일관성을 유지할 수 있다. 동기화는 작업의 완료를 기다리는 동안 다른 작업을 중단시키거나 대기시키는 경우가 많다. 비동기화(Asynchronization) : SW쪽에서는 각각의 프로그램이 순서에 상관없이 실행되는 것 비동기화를 사용하면 작업들이 독립적으로 실행되며, 한 작업의 완료 여부를 기다리지 않고 다음 작업을 실행할 수 있다. 이를 통해 작업들의 병렬 처리와 동시성을 높일 수 있다. 비동기화는 작업의 완료 여부를 확인하기 위해 콜백(Callback)이나 .. 2023. 3. 22.
[Java] Generic 기법 Generic은 모든 종류의 타입을 다룰 수 있도록 클래스나 메소드를 제네릭 타입 매개변수를 이용하여 선언하는 기법이다. 쉽게 말하면, 제네릭은 데이터 타입을 변수처럼 선언하는 것이다. 제네릭을 사용함으로서 얻는 장점은 아래와 같다. 1. 타입 안정성(Type Safety): 제네릭을 사용하면 컴파일러가 코드에서 발생할 수 있는 타입 관련 오류를 미리 검출할 수 있다. 2. 코드 재사용성: 동일한 기능을 가진 클래스나 메서드를 여러 데이터 타입에 대해 다시 작성하지 않고 재사용할 수 있다. 3. 설계의 일반화: 제네릭을 사용하면 특정 타입에 의존하지 않는 일반적인 디자인을 할 수 있다. 4. 성능 개선: 제네릭을 사용하면 컴파일 시간에 타입 변환 코드가 생성되므로 실행 시간에 불필요한 타입 검사나 형 변.. 2023. 3. 22.
[Java] try ~ catch ~finally 예외처리 문법적 오류는 IDE 코딩단계, 컴파일 시 에러를 검출해주고, 실행할 때 논리적 오류는 Runtime Error가 뜬다. try ~ catch ~ finally try {실행 구문 } catch(Exception e){ 에러가 났을 때 할 명령 구문 } finally{ 에러가 발생하더라도 실행시켜야 할 명령 } 예시 코드 try { result = a/b; aa = b + a; } catch(Exception e){ e.print.Trace(); } finally{ b = 1; aa = b + a; } 2023. 3. 22.
운영체제(OS) 시스템 자원은 프로그램이 실행되기 위해 마땅히 필요한 요소로, 컴퓨터의 네가지 핵심 부품도 포함된다. 그리고 운영체제란, 이 자원들과 실행중인 프로그램(=프로세스)를 관리하는 프로그램으로, 프로그램이 컴퓨팅 자원들을 효율적을 사용해서 사용자에게 서비스를 제공할 수 있도록 도와주는 역할을 한다. 운영체제도 프로그램이기 때문에 메모리에 저장되어 있다. 하지만 다른 것과는 달리 메모리에서 커널 영역에 적재돼서 실행된다. 우리가 흔히 들어본 Windows, Android, Mac OS 등이 운영체제이다. 컴퓨터용 운영체제에는 크게 Windows, Linux, Unix가 있다. Windows는 사용자에게 최적화가 잘 되어있어서 현재 점유율이 제일 높지만, 개발환경으로는 부족한 점이 있어 Linux와 Unix도 종.. 2023. 3. 22.
컴퓨터의 하드웨어 구성 1. CPU (Central Processing Unit: 중앙처리장치) CPU는 메모리에 저장된 값을 읽어들이고, 해석하고, 실행하는 장치이다. 그렇기 때문에 일을 처리하는 속도가 중요하여속도의 단위를 클럭이라고 하고, Hz를 사용한다. 하지만 속도는 지금 상향평준화되어서 별로 큰 의미가 없고, 성능을 따지게 되었다. 예를 들자면, 인텔 Core i-9/7/5/3 에서 숫자는 세대를 나타내고, 클수록 성능이 좋은 것이라 비싸다. 또 한 개의 CPU 내부에 2개, 4개, 6개 등 여러 개의 코어를 넣게 되면서 CPU의 성능을 고려할 땐 다방면으로 확인을 해야한다. 1-1. ALU (Aruthmetic Logic Unit: 연산논리장) CPU에서 계산기 역할을 한다. 계산을 위해 존재하는 회로들의 모임이라.. 2023. 3. 22.
[Java] 객체 지향 언어(OOP)의 특성: 코드로 보는 캡슐화, 상속성, 다형성, 추상화 컴퓨터 언어는 크게 절차형(Precedural Program Language)과 객체지향(Object Oriented Program Language)이 있는데, Java의 특징 중 하나가 바로 객체지향 언어라는 점이다. 객체 지향 언어의 제일 큰 장점은 협업하기 편리하다는 점이다. 1. 캡슐화(Encapsulation) 객체를 인스턴스화해서 인스턴스 간 서로 영향을 안 주고 독립적으로 운영한다. 객체를 내부를 보호하고 볼 수 없게 하여 정보 은닉이 가능하게 한다. 2. 상속성(Inheritance) 다른 클래스(부모 클래스)의 특성을 그대로 물려받는 것으로, 코드의 중복성을 최대한 제거하기 위해 사용한다. 예시 코드를 통해 이해해보자 예시 코드 class Parent { int a = 3; int b =.. 2023. 3. 22.
[Java] Optional 객체 : ifPresent(), isPresent(), orElse(), map() Optional 객체는 Wrapper 객체의 한 종류이다. (Generic type) 역할 및 목적: 매번 null 처리를 해주기 귀찮고 까먹으니까 자바 8 버전부터 null 처리 전용 객체인 Optional 객체가 생겼다. Optional에 객체를 넣어서 null값 발생을 대비할 수 있게 되었다. null : 들어와야 할 데이터가 안들어오면 자바가 자동으로 만들어서 변수나 객체 등에 넣어주는 "일종의" 데이터 타입. 실행 시 null이 들어올 경우, 대부분의 메소드에서 NullPointException 런타임 에러가 발생되면서 프로그램 작동이 중단된다. String s = str == null?"null이 발생":str; 삼항연산자 사용해서 null 처리를 해주기도 하고 if(str == null) s.. 2023. 3. 22.
728x90

"); wcs_do();