전체 글
[JAVA] #10-1 입출력스트림 : 입력(Input) - byte형과 char형
1. 입출력 스트림 프로그램은 데이터를 읽고 출력하는 작업을 계속해서 수행한다. 데이터는 개발자들의 키보드로도 입력될 수도 있지만 파일이나 네트워크에서도 입력될 수 있다. 반대로 모니터로 출력이 될 수 있지만 파일이나 네트워크 상으로 출력될 수 있다. 자바에서도 HTML이나 CSS처럼 버튼을 만들 수도 있고 프레임을 짤 수도 있다. 이런 패키지들은 java.awt.* 이나 javax.swing.* 에 대부분 포함되어있다. 하지만 웹에서 출력을 건드릴 때는 HTML이나 XML에서 작업하는 것이 훨씬 용이한 편이다. 그렇기에 이번 게시글에서는 자바에서 데이터를 파일로 입출력하는 것에 대해 집중하여 알아보려 한다. (java.io.* 패키지를 활용할 예정이다. 여기서 io란 input과 output을 의미한다..
[JAVA] #9-6 File 클래스
1. 파일 클래스 자바에서는 File 클래스를 통해서 파일과 디렉터리를 다룰 수 있도록 하고 있다. 그래서 File 인스턴스는 파일 일 수도 있고 디렉터리 일 수도 있다. 이 파일 클래스는 java.io 안에 들어있으며(in, out) 파일명, 파일 크기, 확장명, 파일 타입 등등에 접근할 수 있다. 이제 직접 파일 클래스를 사용해보자!! * 파일 클래스를 사용하려면 java.io.* 를 임포트(import)시킬 필요가 있으며 파일이 없더라도 프로그램이 정상적으로 종료가 되어야하기 때문에 예외처리가 꼭 필요하다(throws, try .. catch 등) 2. 파일 클래스 사용해보기 1) 파일 클래스에 파일 담기 파일 클래스를 만들어서 파일을 담아보자. 파일을 담을 때는 '경로명 + 파일명.확장자명' 을 ..
[JAVA] #9-5 스레드(Thread)
1. 스레드 이해하기! 스레드에 대해 이해하기 전에 먼저 짚고 넘어가야 할 개념이 있다. - 바로 프로세스(process). 프로세스란 프로그램이 실행 중이다, 라는 뜻이다. 프로그램이 실행되고 있다면 어떤 상황이 벌어지고 있는 것일까? 그 프로그램이 데이터, 메모리등의 자원을 차지하고 사용하고 있다는 뜻일 것이다. 그리고 스레드란 프로세스 내에서 실제로 작업을 수행하는 주체이자 하나의 단위이다. 작업을 수행하는 주체라는 말은 프로그램 코드를 한 줄씩 실행하는 역할을 한다는 뜻이다. 이렇게 이해해보면 어떨까? 과거 프로그램은 원래 한 가지의 일만 수행할 수 있는 것이 기본적인 프로그래밍의 개념이었을 것이다. 하지만 프로그램이 여러 가지의 일을 동시에 수행시키고 싶다면? 내가 메모장을 동시에 두 개를 켜서..
[JAVA] #9-4 제네릭(Generic) 이해하기 2 - 제네릭
1. 제네릭 이해하기 이제 본격적으로 제네릭을 이해해보자. 우린 #9-3에서 알아보았던 컬렉션 프레임워크를 사용하여 다양한 자료형이 한데 뒤섞여있는 것을 보았다. 그 때 모아둔 다양한 요소들 중에서 특정 자료형을 수집하려한다면? 그럴 때 사용하는 것이 제네릭인 것이다. 제네릭에서 사용하는 타입의 종류는 아래와 같다. 이 외에 사용자가 지정해서 만드는 타입까지 여러가지 타입들이 더 있을 수 있지만 주로 사용되는건 아래의 종류들이다. 타입 설명 Type(객체 생성 시 해당 타입으로 변환된다) Element Key Value Number - 와일드 카드 타입 파라미터를 대치하는 것으로 모든 클래스나 인터페이스타입이 올 수 있다. 또는 안에는 참조자료형이 올 수 있다 / String, Integer, Chara..
[JAVA] 컬렉션 프레임워크 연습문제 - 명령어 안에서 .do와 .bbs 나누기
문제) HashSet 컬렉션 프레임워크를 사용하여 command라는 이름으로 list.do=net.bbs.List read.do=net.bbs.Read write.do=net.bbs.Write 를 입력해두었다. 이제 이 내용 안에서 = 문자를 기준으로 문자열을 분리해서 = 앞의 문자열은 Key, = 뒤의 문자열은 Value로 구분해서 map에 저장하고 map의 key값들 중에서 "read.do"를 호출하면 "net.bbs.Read"가 출력되게 하라 * 풀이(배열을 사용하는 번외버전도 넣어두었다) HashSet command=new HashSet(); command.add("list.do=net.bbs.List"); command.add("read.do=net.bbs.Read"); command.add("..
[JAVA] #9-3 제네릭(Generic) 이해하기 1 - 컬렉션 프레임워크
1. 제네릭(Generic) 만약 어느 기사의 댓글이 저장되어있는 DB에서 10건을 가져와서 자바를 통해 프론트단에 출력시키려한다. 그럴 떄 댓글 1개씩 가져와서 프론트단에 출력을 시키는 것이 아니라 10건씩 동시에 가져와서 출력을 시키면 작업이 더 가볍고 편할 것이다. 이럴 때 사용하는 것이 바로 제네릭이다. 제네릭은 데이터들의 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있도록 하는 방법을 말한다. 위에서 말했듯 우리가 댓글을 가져올 것인데 이 안에는 String에 대한 클래스, Integer에 대한 클래스 등의 클래스의 자료형을 여러가지로 가져오고 싶다. 이 때 클래스 내부에서 지정하는 것이 아니라 외부에서 사용자에 의해 지정되는 것을 제네릭이라 말한다. 제네릭은 문자 그..