1. 웹 기반 프로그램 특징 1)화면과 로직을 서버에서 모두 처리하므로 클라이언트가 특별히 수행할 작업이 없음. 2)모든 기능을 서버에서 처리하므로 보안 면에서도 우수함. 2. 정적(static) 웹 프로그래밍 1)웹 서버(Apache)에 미리 보여줄 HTML 페이지,CSS,이미지,JS(자바스크립트) 파일을 저장해놓고 브라우저에서 요청할 경우 그대로 전달하는 방식. 2)사용자는 페이지가 변경되지 않는 한 고정된 웹 페이지를 보게 함. 3)구성 요소 -웹 서버 : 각 클라이언트에게 서비스를 제공하는 컴퓨터를 의미. -클라이언트 : 네트워크로 서버에 접속한 후 서버로부터 서비스를 제공받는 컴퓨터를 의미. -HTTP(Hyper Text Transfer Protocol) :www 서비스를 제공하는 통신 규약. ..
1. multi-threading 1)여러 thread가 동시에 수행되는 프로그래밍. 여러 작업이 동시에 실행되는 효과. 2)thread는 각각 자신만의 작업 공간을 가진다. -> context 3)각 thread 사이에는 공유하는 자원이 있을 수 있다. (자바에서는 static instance) 4)여러 thread가 자원을 공유하여 작업이 수행되는 경우 (멀티 쓰레드) 서로 자원을 차지하려는 race condition이 발생할 수 있다. 5)이렇게 여러 thread가 공유하는 자원 중 경쟁이 발생하는 부분을 critical section이라 한다. 6)critical section에 대한 동기화를 구현하지 않으면 오류가 발생할 수 있다. 2. 스레드 실행 제어 메서드 1)join( ) -다른 스레드의..
1. 프로세스(process) 1)프로그램 ---------> 프로세스 실행 2)프로그램이 실행되면 OS(Operating System)로부터 메모리를 할당받아 프로세스 상태가 됨. 2)하나의 프로그램이 여러 개의 프로세스를 만들기도 함. 2. 멀티 태스킹(multi tasking) 1)통상 두 가지 이상의 작업을 동시에 처리하는 것을 칭함. 2)구현 방법 -멀티 프로세스 -독립적 프로그램을 여러 번 실행하고 작업을 처리하는 것. -멀티 스레드 -하나의 프로그램을 실행하여 내부적으로 여러 가지 작업을 처리하는 것. ex)카카오톡-채팅 스레드, 파일 전송 스레드 등.... 스레드 3. 스레드(thread) 1)하나의 프로세스는 하나 이상의 thread를 가지게 됨. -하나의 프로세스에 여러 개의 스레드 생..
인터페이스를 활용해서 프로그램 만들기 1. 문제 정의 이 학교에는 5명의 학생들이 수업을 듣습니다. 과목은 국어, 수학이 있고 각 학생들은 두 과목을 모두 수강하고 있습니다. 전공은 국어교육학과와 컴퓨터공학 두 가지가 있습니다. 국어교육학과는 국어가 필수 과목이고 컴퓨터 공학은 수학이 필수 과목입니다. 이번 학기에 성적이 아래와 같이 나왔습니다. -------------------------------------------------------------------------------------- 이름 학번 전공 필수과목 국어점수 수학점수 -------------------------------------------------------------------------------------- 스티븐잡스..
1. 자바의 입출력을 위한 I/O 스트림 1)입출력 스트림 -네트워크에서 자료의 흐름이 물의 흐름과 같다는 비유에서 유래됨. -자바는 다양한 입출력 장치에 독립적으로 일관성있는 입출력을 '입출력 스트림'을 통해 제공한다. -입출력이 구현되는 곳 : 파일 디스크, 키보드, 마우스, 네트워크 등 모든 자료가 입력되고 출력되는 곳. 2)입출력 스트림 구분 대상 기준 : 입력 스트림 / 출력 스트림 자료의 종류 : 바이트 스트림 / 문자 스트림 기능 : 기반 스트림 / 보조 스트림 2. 입력 스트림과 출력 스트림 1)입력 스트림: 대상으로부터 자료를 읽어들이는 스트림 2)출력 스트림 : 대상으로 자료를 출력하는 스트림 3)스트림 종류 -입스 : FileInputStream, FileReader, Buffered..
1. 오류의 종류 1)에러(Error) -의도치 않게 프로그램이 종료되는 것을 에러라 함. -하드웨어의 잘못된 동작 또는 고장으로 인한 오류 -에러가 발생하면 프로그램이 비정상 종료가 됨. -정상 실행 상태로 돌아갈 수 없음. 2)예외(Exception) -사용자가 잘못된 조작 or 개발자의 잘못된 프로그래밍으로 인한 오류를 말함. -예외가 발생하면 프로그램이 종료됨. -단, 예외 처리를 추가하면 정상 실행 상태로 되돌릴 수 있음. 2. 프로그램에서의 예외(오류) 1)컴파일 오류(compile error, checked exception) -프로그램 코드 작성 중 발생하는 문법적 오류 -예외 처리 코드가 없다면 컴파일 예외 발생함. -이클립스에서 대부분 detection됨. 2)실행 오류(runtime ..
1. 프로그래밍 방법론 1)절차식 프로그래밍 -순차적인 명령을 수행하고 간단한 분기만 가능 2)구조적 프로그래밍 -특정 변수를 묶어 구조화하고 이를 통해 프로그래밍 효율 높임. 3)객체지향 프로그래밍 -객체를 기반으로 프로그래밍되며 클래스,속성,기능 등의 현실 세계 모델을 반영함. 4)함수형 프로그래밍 -객체의 형태를 벗어나 함수형을 확장해 함수를 변수처럼 사용 가능. 함수형 프로그래밍과 람다식(Lamda expression) 2. 람다식 1)자바는 OOP : 기능을 수행하기 위해서는 객체를 만들고 그 객체 내부에 멤버 변수를 선언하고 기능을 수행하는 메서드 구현 필요. 2)자바 8부터 함수형 프로그래밍 방식을 지원하고 이를 람다식이라고 한다. 3)함수의 구현과 호출만으로 프로그래밍이 수행되는 방식. 4..
1. 자료(Data)와 자료 구조(Data Structure) 1)자료(데이터)를 어디에 어떻게 관리할 지... -검색, 순회(iterate), 저장, 삭제, 변경... 2)데이터의 형태와 쓰임에 가장 적합한 자료구조를 쓰는 것은 매우 중요. 3)자료의 효율적인 관리는 프로그램의 수행 속도와 밀접한 관련이 있음. 2. 자료 구조 종류 1)한 줄로 자료를 관리하기(선형 자료구조) -배열(Array) -LinkedList -스택(Stack) -큐(Queue) 2)트리(tree) 3)그래프(graph) 4)해싱(hashing) 3. 배열(Array) 구현 1)동일한 데이터 타입을 순서에 따라 관리하는 자료 구조. 2)정해진 크기가 있음. 3)배열의 i번째 요소를 찾는 인덱스 연산이 빠름 4)JDK 클래스 : ..