본문 바로가기

웹 개발/Java

(43)
[Web_JAVA] 43 실습(총정리) ※ 문제 1. https://koreanname.me/ 접속 2. MVC 패턴을 사용하여 표(테이블)에 접근할 수 있는 클래스 선언 3. 2개의 테이블에 있는 데이터들을 각각 2개의 메모장에 붙여넣기 4. 2개의 메모장 파일을 한 개의 메모장 파일로 병합하기 ※ 이름 수에 따른 랭킹을 새롭게 추가해준다. ※ 만약 이름 수가 동일하다면 공동 순위를 부여해준다. ※ 남자아이 이름은 맨 앞에 M을 추가하고, 여자아이 이름은 맨 앞에 F를 추가한다. 예) F 서연 1 35,647 M 시우 7 26,027 남자아이 DAO - 메모장의 데이터를 VO객체로 리턴하는 메소드 : setObject() 여자아이 DAO - 메모장의 데이터를 VO객체로 리턴하는 메소드 : setObject() 전체아이 DAO ..
[Web_JAVA] 42 실습(총정리) - boxOffice 1. DBConnecter.java(package dao) - 변수 선언 private final static String PATH = "boxOffice.txt"; - getter 생성 public static String getPath() { return PATH; } - 내용 덮어쓰기 public static BufferedWriter getWriter() throws IOException { return new BufferedWriter(new FileWriter(PATH)); } - 내용 추가하기 public static BufferedWriter getAppend() throws IOException { return new BufferedWriter(new ..
[Web_JAVA] 41 ● 소프트웨어 디자인 설계 패턴 ▶ MVC 1. M(Model) - DB에서 조회된 결과 값을 담기 위한 변수들이 선언된 클래스 - 클래스명 뒤에 VO, DTO라는 문자를 붙여준다. - VO(Value Object) - DTO(Data Transfer Object) 2. V(View) - 사용자에게 보여질 화면을 구성하는 부분 - Controller에 선언된 메소드를 사용하는 부분 3. C(Controller) - DB에 접근할 수 있는 메소드들이 선언된 클래스 - 접근 후 결과 값이 있을 경우 Model 객체에 담은 후 처리 - 클래스명 뒤에 DAO라는 문자를 붙여준다. - DAO(Data Access Object) 실습(파일 입출력) - 문제 // food.txt 파일을 현재 경로에 생성하고, // ..
[Web_JAVA] 40 ● 파일 입출력(Java Application 관점) 1. Writer(출력) (1) BufferedWriter - 버퍼를 사용한 출력 클래스 (2) FileWriter - 전달한 경로의 파일을 출력하기 위한 목적으로 열어준다. - 전달한 경로에 파일이 없다면 새롭게 만든 후 열어준다. (3) File - 전달한 경로에 있는 파일의 정보를 담는 타입 - 파일의 유무 검사, 파일 삭제 등 2. Reader(입력) (1) BufferedReader - 버퍼를 사용한 입력 클래스 (2) FileReader - 전달한 경로의 파일을 출력하기 위한 목적으로 열어준다. - 전달한 경로에 파일이 없다면 FileNotFoundException 예외가 발생한다. (3) File - 전달한 경로에 있는 파일의 정보를 담는..
[Web_JAVA] 39 ● Thread 종료 방법 1. 필드에 boolean 타입의 변수를 선언하고, run() 안에 있는 반복문에 해당 변수가 true일 경우 break를 할 수 있도록 설계한다. 2. sleep(), wait() 그리고 join() 등의 메소드를 통해 쓰레드 일시정지 상태가 되면 Thread객체.interrupt()를 사용하여 InterruptedException을 발생시킨다. 이 때 일시정지를 시킨 메소드 부분의 catch를 통해 예외를 잡아주고 원하는 문장을 작성하면 된다. 3. 쓰레드를 일시정지 하는 코드가 없을 경우 Thread.interrupted()의 상태를 확인한다. Thread객체.interrupt()를 사용하면 Thread.interrupted()의 상태는 true로 변경되고, 만약 Thre..
[Web_JAVA] 38 ● 동기화(Synchronized) - 하나의 쓰레드가 자원에 접근 중일 때 다른 쓰레드가 동시에 같은 자원을 접근하지 못하게 막는 것 - 즉, 자원 공유 문제를 해결할 수 있다. ● 동기화 사용 1. synchronized(mutex) {...} - 동기화 블럭이라고 부르며, 일부 소스코드만 동기화를 걸어준다. ※ mutex : 자원이 있는 객체 2. synchronized - 영역 전체에 동기화를 걸어주며, 메소드 리턴타입 앞에 작성하면 해당 메소드 전체에 동기화가 걸린다. 실습(Thread(1)) 1. 문제 - 길동이네 동물원에는 3마리의 동물이 있다. - 각 동물은 울음소리가 다르고 2마리의 동물은 동시에 운다. - 나머지 1마리 동물은 2마리 동물이 모두 울고 나서 마지막에 운다. - packa..
[Web_JAVA] 37 ● 프로그램 - 소스코드로 잘 짜여진 틀 - 실행이 안 된 상태 ● 프로세스 - 실행된 프로그램 - 운영체제로부터 시스템 자원을 할당받는 작업의 단위 - JAVA는 운영체제가 바로 실행시켜주지 않고 JVM에 의해 실행되기 때문에 JVM으로부터 시스템 자원을 할당받는다. ● 쓰레드 - 프로세스의 처리 경로 - 멀티 쓰레드를 구현할 때에는 스케줄링 작업이 필요하다. 1. 단일 쓰레드 - 처리 경로를 한 개만 가지고 있기 때문에 직렬적이다. - 동시에 많은 양을 처리하기 힘들기 때문에 상대적으로 비효율적이다. - 하지만 하나의 작업에 문제가 발생하더라도 다른 작업에는 영향을 끼치지 않는다. - 따라서 안정성이 보장되고 설계 시 멀티 쓰레드에 비해 쉽다. 2. 멀티 쓰레드 - 하나의 프로세스를 동시에 처리하는 ..
[Web_JAVA] 36 실습(Stream) 1. 1~10까지 ArrayList에 담고 출력(IntStream) import java.util.ArrayList; import java.util.stream.IntStream; public class StreamTask { public static void main(String[] args) { ArrayList datas = new ArrayList(); IntStream.rangeClosed(1, 10).forEach(data -> datas.add(data)); System.out.println(datas); } } 2. 1~100까지 중 짝수만 ArrayList에 담고 출력 import java.util.ArrayList; import java.util.stream.IntS..