JDBC(JavaDatabaseConnectivity) 라이브러리 -> 애플리케이션과 JDBC driver 연결할 때 사용 자바는 데이터베이스(DB)아 연결해서 데이터 입출력 작업 할 수 있도록 java.sql 패키지에서 JDBC 라이브러리 제공 java.sql API 내용 Provides the API for accessing and processing data stored in a data source (usually a relational database) using the Java programming language. 애플리케이션에도 JDBC driver가 있고 JDBC driver에도 자신의 driver가 있기 때문에 통신 가능 JDBC driver는 단계가 있음, 순서 중요 -> DB연결을 ..
JAVA
단순히 Thread만 가지고 동시에 여러 작업을 하는 프로그램 만드는 방식은 여러 문제점이 있음 -> 요청 올 때마다 Thread 생성하고 작업을 처리하고 처리가 끝난 후 Thread 해제하는 방식 문제점1 Thread 생성 비용이 크기 때문에 요청에 대한 응답시간이 늘어남 (생성할 때마다 OS 커널의 작업이 필요해 생성 비용이 큼) 문제점2 Thread가 너무 많으면 여러가지 문제 발생 프로세스의 처리 속도보다 빠르게 요청이 쏟아져 들어오면 새로운 스레드가 무제한으로 생성됨 -> 스레드 많아질 수록 메몰 차지하고 context-switching 더 자주 발생 따라서, 메모리 문제가 발생할 수 있고 CPU 오버헤드가 증가됨 [해결방법: 스레드풀] 스레드풀이란? 스레드를 허용된 개수 안에서 사용하도록 제한..

네트워크: 여러 컴퓨터들을 통신 회선으로 연결한 것 (하드웨어적인 개념) - LAN: 근거리에 있는 컴퓨터 연결(집, 회사, 건물, 특정 영역에 존재하는 컴퓨터 연결) - WAN: LAN을 연결한 것 == INTERNET (LAN과 LAN은 라우터를 이용해 연결) 서버: 서비스를 제공하는 프로그램 클라이언트: 서비스를 요청하는 프로그램 클라이언트가 서비스를 요청하고 서버는 처리 결과를 응답으로 제공 IP주소: 네트워크 어댑터(LAN 카드)마다 할당되는 컴퓨터의 고유한 주소 port번호: 운영체제가 관리하는 서버 프로그램의 연결 번호, 서버 시작 시 특정 port 번호에 바인딩(논리적인 port) 단계별로 수행 1. jdbc 드라이브 연결 2. 클라이언트 프로그램에서 쿼리문 작성후 객체에 담아 dbms에 ..

데이터를 주고 받을 때 기본타입이 바이트 스트림 -> 성능을 개선하기 위래 문자 입출력 스트림 만듬 바이트 스트림: 그림, 멀티미디어, 문자 등 모든 종류의 데이터를 입출력할 때 사용 문자 스트림: 문자만 입출력할 때 사용 -> 어떤 데이터를 입출력하느냐에 따라 스트림의 종류가 나뉨 구분 바이트 스트림 문자 스트림 입력 스트림 출력 스트림 입력 스트림 출력 최상위 클래스 InputStream OutputStream Reader Writer 하위 클래스 XXXXInputStream (ex. FileInputStream) XXXXOutputStream (ex. FileOutputStream) XXXXReader (ex. FileReader) XXXXWriter ex. FileWriter) OuputStrea..
추상화 추상화란 불필요한 정보를 숨기고 중요한 정보만을 나타내는 것을 의미 추상화 사용의 장점 객체 간의 복잡성이 줄어듦 코드의 중복을 막고 재사용성을 높일 수 있음 사용자에게 중요한 세부 정보만 제공하므로 응용 프로그램이나 프로그램의 보안에 도움이 됨 추상화는 추상 클래스 또는 인터페이스를 통해 구현할 수 있음 추상 클래스와 인터페이스 추상 클래스: 하나 이상의 추상 메서드가 포함된 클래스로 객체간 공통적 속성을 추출한 클래스 인터페이스: 모든 메서드가 추상메서드로 이루어져 있는 것으로 인터페이스에서 기능에 대한 기준을 정의함 추상클래스와 인터페이스 공통점 new 키워드를 사용하여 객체를 생성하는 것이 불가능하고 추상클래스를 extends 받거나 인터페이스를 implements 받은 하위 클래스는 반드..
객체지향 프로그래밍이란? 기계의 부품을 조립하여 하나의 완제품을 만들 듯이 현실세계의 개체를 하나의 객체로 만들어 이 객체들을 조립하여 하나의 소프트웨어를 만드는 것 장점: 코드 재사용성이 용이하고 유지보수가 쉬움 단점: 처리 속도가 상대적으로 느리고 객체가 많으면 용량이 커질 수 있음 [절차지향과 객체지향의 차이점] 절차지향: 순서와 흐름을 먼저 세우고 필요한 자료구조와 함수를 설계하는 방식 (대표적으로 C언어) 객체지향: 자료구좌 이를 중심으로 한 모듈들을 먼저 설계 한 후 실행 순서와 흐름을 짜는 방식 (대표적으로 자바) 절자지향은 객체지향보다 실행속도는 빠르지만 순서가 정해져 있어 순서가 바뀌면 다른 결과가 나올 수 있고 유지보수가 어려움 반면 객체지향은 상대적으로 실행 속도는 느리지만 코드 재사..