| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- 작곡
- customoverlay
- Programmers
- java
- Vlog
- API
- CSS
- 인하대
- 인터넷프로그래밍
- guitar
- 여행
- 생활코딩
- map
- Metal
- HTML
- Python
- 기타
- AXZ
- Marker
- riff
- codingtest
- 철맛바람
- 음악
- 메탈
- 2018 KAKAO BLIND RECRUITMENT
- Songwriting
- 리프
- JavaScript
- level1
- Greedy
- Today
- Total
목록Programming/Java (26)
NJY's Blog
클라이언트 (Client) / 서버 (Server) 모델 클라이언트와 서버는 특정 기계를 의미하는 것이 아님 클라이언트: 네트워크를 통해 서버에게 특정한 작업을 요청하는 프로세스 ex) 서버에 연결되는 모든 컴퓨터 서버: 네트워크 상의 요청을 처리해주는 프로세스, 요청에 대한 응답 ex) HTTP 서버, DNS 서버, 메일 서버, File 서버, DB 서버 인터넷의 시초 인터넷의 역사 1960년대 후반: 미 국방성 (DOD, The Department of Defense)에 의해 통신에 관한 연구 개시 1969년: ARPANET 탄생 (4개의 노드를 접속) 1972년: ARPANET 성공 (30개 이상의 노드를 접속) 1975년: TCP / IP 탄생 1982년: TCP / IP 규격 결정, UNIX B..
스트림 (Stream) "순서가 있는 데이터의 연속적인 흐름" 입출력을 물의 흐름처럼 간주하는 것 스트림의 개념 입력 소스 또는 출력 결과를 갖는 순서화된 일련의 자료를 나타내기 위한 추상적인 입출력 모델 입출력 장치에 투명한 입출력 인터페이스를 제공 스트림은 연결될 수 있음 스트림의 종류 입출력 장치에 직접 연결되는 스트림 부가적인 입출력 기능을 추가해주는 스트림 (필터링 (Filtering)) 바이트 스트림과 문자 스트림 바이트 스트림 (Byte Stream) 8비트의 바이트 단위로 입출력하는 클래스 이진 데이터 (Binary Data)를 읽고 쓰기 위하여 사용 클래스 이름에 InputStream (입력)과 OutputStream (출력)이 붙음 문자 스트림 (Character Stream) 문자 단..
프로세스 (Process) 수행 중인 한 프로그램 = Address Space + 사용하는 자원 한 프로세스의 수행은 순차적으로 실행됨 Task, User Program 프로세스 & 프로그램 프로세스 (Process): Active Entry (Dynamic) 프로그램 (Program): Passive Entry (Static) 프로세스 = 프로그램 + 저장소들 (Registers) + 스택 (Stack) + 기타 자원들 (Resources) 프로세스 구성요소 코드 (Code) 프로그램 카운터 (Program Counter (PC)) 저장소 (Register) 데이터 (Data) 스택 (Stack) 데이터 섹션 (Data Section (Image)) 수행시 할당된 자원 (메모리 (Memory), CPU..
쓰레드 (Thread) 멀티 태스킹 (Multi-Tasking): 여러 개의 애플리케이션을 동시에 실행하여서 컴퓨터 시스템의 성능을 높이기 위한 기법 다중 쓰레딩 (Multi-Threading): 하나의 프로그램이 동시에 여러가지 작업을 할 수 있도록 하는 것, 각각의 작업을 쓰레드라 함 프로세스와 쓰레드 프로세스 (Process): 자신만의 데이터를 가짐 쓰레드 (Thread): 동일한 데이터를 공유함 쓰레드 사용 예 웹 브라우저에서 웹 페이지를 보면서 동시에 파일을 다운로드할 수 있도록 함 워드 프로세서에서 문서를 편집하면서 동시에 인쇄 게임 프로그램에서는 응답성을 높이기 위해 많은 쓰레드를 사용 GUI에서는 마우스와 키보드 입력을 다른 쓰레드를 생성하여 처리 쓰레드 생성과 실행 Thread 클래스가..
제네릭 프로그래밍 (Generic Programming) 공통의 코드로 여러가지 타입의 객체를 처리하고자 함 → Code Sharing VS. Code Specialization ex) 하나의 정렬 코드로 Integer, Double, String 등을 처리, Stack 클래스를 정의하고 이를 모든 타입의 객체를 담을 수 있는 스택으로 이용 JDK 5.0부터 제네릭이란 개념으로 이를 지원 → 제네릭 메소드, 제네릭 클래스, 제네릭 인터페이스 타입의 매개변수화 (Parameterized Type) ex) Stack: "Stack of E" (E = Integer, Double 등) OverloadedMethods.java (오버로딩으로 구현 시 불편함을 보여줌) public class OverloadedM..
제네릭 (Generic) 다양한 타입의 객체를 동일한 코드로 처리하는 기법 컬렉션 라이브러리에서 많이 사용됨 기존 방법 예를 들어, 아래와 같이 Box 클래스를 작성하였는데 문자열을 저장하고 Integer 객체로 형변환을 할 경우, 문제가 발생함 제네릭을 이용한 방법 제네릭 클래스 (Generic Class)에서는 타입을 변수로 표시 → 타입 매개변수 (Type Parameter) 타입 매개변수는 객체 생성 시에 프로그래머에 의해 결정됨 Box 클래스를 제네릭으로 다시 작성하여 보면 아래 그림과 같음 타입 매개변수의 값은 객체를 생성할 때 구체적으로 결정됨, 클래스만 사용 가능 (기초형 X) ex) T 대신 String이나 Integer 사용 타입 매개 변수의 표기 E: Element (원소, 요소 → ..
예외 (Exception): 잘못된 코드, 부정확한 데이터, 예외적인 상황에 의하여 발생하는 오류 ex) 0으로 나누는 것, 배열의 인덱스 초과, 디스크에서의 하드웨어 에러 DivideByZero.java import java.util.Scanner; public class DivideByZero { public static void main(String[] args) { int x, y; Scanner sc = new Scanner(System.in); System.out.print("피젯수: "); x = sc.nextInt(); System.out.print("젯수: "); y = sc.nextInt(); int result = x / y; System.out.println("나눗셈 결과: " + ..
14 ~ 19장은 GUI 부분이라 나중에 보기로 패키지 (Package): 클래스들을 묶은 것, 자바 라이브러리도 패키지로 구성 ex) java.net → 네트워크 관련 라이브러리 패키지 생성 클래스 선언문 위에 "package (패키지 이름):" 작성 패키지문을 사용하지 않은 경우, 디폴트 패키지 (Default Package)에 속하게 됨 패키지의 이름 일반적으로 소문자만을 사용 패키지 이름으로 인터넷 도메인 이름의 역순을 사용 ex) com.company.mypackage 자바 언어 자체의 패키지 → java나 javax로 시작 패키지를 사용하는 세 가지 방법 경로까지 포함하는 완전한 이름으로 참조 원하는 패키지 멤버만을 import 패키지 전체를 import 완전한 이름으로 참조 ex) graph..