본문 바로가기

반응형

프로그래밍/Java

(54)
NIO(1) NIO(1) 날짜: 2021년 6월 14일 학습목표 자바의신 교재를 통해 NIO에 대해서 간략하게 알아보자. NIO란? NIO 문법 및 실습 NIO의 Buffer 클래스 NIO란? JDK1.4 부터 NIO(New IO)가 추가되었다. NIO가 생긴 이유는 단 하나다. 바로 속도때문이다. NIO는 스트림을 사용하지 않고, 채널(Channel)과 버퍼(Buffer)를 사용한다. NIO는 왜 쓰나? : IO보다 빠르다. NIO와 IO의 차이점 : IO는 스트림을 쓰지만, NIO는 채널과 버퍼를 사용한다. NIO를 직접 사용해보자! NIO를 예제코드를 통해서 직접 사용해보고, 이해해보자. package nio; import java.io.FileInputStream; import java.io.FileNotFo..
Serializable(3) Serializable(3) 날짜: 2021년 6월 13일 학습목표 저번 포스팅까지 자바의신 교재를 통한 직렬화에 대한 공부는 끝마쳤다. 언제나 그랬듯이, 이게 뭔가?.. 그냥 문법을 익히는 정도로만 끝난 것 같다. 이번 포스팅에서는 자바 직렬화에 대해서 아래의 항목들을 좀더 자세히 공부해보자. 자바 직렬화는 왜 쓰는가? 직렬화의 종류 자바 직렬화는 어디에 쓰이는가? 자바 직렬화의 장단점 DMP Serializable 사례 분석 자바 직렬화는 왜 쓰이는가? 직렬화가 왜? 쓰이는지 알아보기 이전에 먼저 직렬화의 종류들에 대해서 알아보자. 문자열 형태의 직렬화 직접 데이터를 문자열 형태로 확인 가능한 직렬화다. 범용적인 API나 데이터를 변환해 추출할 때 많이 사용된다. 표형태의 다량의 데이터를 직렬화 시 ..
Serializable(2) Serializable(2) 날짜: 2021년 6월 13일 학습목표 저번 포스팅에서 간단하게 Serializable의 정의와 용도에 대해서 알아봤다. 그럼 실제로 이런 직렬화는 어떻게 쓸수있는지 코드로 실습해보고, 또 어떤 특징들이 있는지 파악해보자. 객체를 파일에 쓰고 읽는법 DMP Serializable 사례 분석 객체를 저장해보자. 자바에서는 ObjectOutputStream클래스를 사용하면 객체를 저장할 수 있다. 또 반대로 ObjectInputStream클래스를 사용하면 객체를 읽어드릴수 있다. 먼저 객체를 저장하는 법을 알아보자. 먼저 예제 코드에 사용될(저장되고 읽힐) DTO클래스 코드이다. package serializable; public class SerialDTO { private S..
Serializable(1) Serializable(1) 날짜: 2021년 6월 11일 학습목표 Serializable과 NIO에대해서 알아보자. 그 중 이번 포스팅에서는 Serializable에 대해서만 알아보겠다. 프로젝트에서 객체에 Serializable을 구현해주지 않아서, 오류가 난적이 있었는데, 다행히?.. 고객사의 담당자분이 직접 디버깅....을 해주시고 Serializable을 써야한다고 말씀해주셨었고, 나는 솔루션 개발자분에게 또 여쭤보는.... 사태가 벌어졌었다. 그때도 멋도모르고 그냥 써야된다! 라고해서 썼었는데, 이번 포스팅을 통해서 Serializable은 무엇인지, 또 왜써야 하는지, 그때 그 프로젝트에서 왜 써야했고, 어떻게 작용했을지 생각해보자. Serializable 객체를 파일에 쓰고 읽는법 DMP ..
Java I/O Java I/O 날짜: 2021년 6월 11일 학습목표 Java I/O 에 대해서 대학생때도 공부를 하지 않은 기억이 있다. 왜 인지는 모르겠지만, 이번 포스팅을 통해서 잘 알아보자. Java의 I/O란? Stream VS Reader&Writer Java의 I/O란? I/O는 프로그램에 있는 어떤 내용을 파일에 읽거나 저장할 일이 있을 때 다른 서버나 디바이스로 보낼 일이 있을 때 사용한다. 초기 자바에서는 I/O를 처리하기 위해 java.io 패키지만 제공했다. 바이트 기반의 데이터를 처리하는 Stream클래스, char 기반 문자열로 된 파일을 처리하는 Reader와 Writer를 제공했다. 자바에서 스트림이란? : 끊기지 않고 연속적인 데이터 JDK 1.4부터는 보다 빠른처리를 위해 NIO(New..
람다와 스트림의 사용법(2) 람다와 스트림의 사용법(2) 날짜: 2021년 6월 10일 학습목표 Java8에 추가된 람다표현식과 스트림에 대해 알아보자. Thread코딩테스트를 풀어보려 했으나, Java8문법에 익숙해 지지 않아 기본적인 코드 흐름을 해석하기 힘들었다. 이번 포스팅에서는 코딩테스트의 문법을 해석하기위해, 람다표현식과 스트림 중 기본적인 스트림의 사용법에 대해서만 알아가는 것을 목표로 한다. 스트림의 사용법 forEach map 메소드 참조 Stream 자바의 스트림은 "뭔가 연속된 정보" 를 처리할 때 사용한다. 자바에서 연속된 정보란 무엇을 뜻할까? 우리는 어떤 연속된 정보를 처리해 왔을까? 배열 컬렉션 이 연속된 정보들 이라고 할 수있다. 이 중 컬렉션을 스트림을 사용할 수 있지만, 안타깝게도 배열은 불가능하다...
람다와 스트림의 사용법(1) 람다와 스트림의 사용법(1) 날짜: 2021년 6월 10일 학습목표 Java8에 추가된 람다표현식과 스트림에 대해 알아보자. Thread코딩테스트를 풀어보려 했으나, Java8문법에 익숙해 지지 않아 기본적인 코드 흐름을 해석하기 힘들었다. 이번 포스팅에서는 코딩테스트의 문법을 해석하기위해, 람다표현식과 스트림 중 기본적인 람다표현식사용법에 대해서만 알아가는 것을 목표로 한다. 람다표현식 람다표현식 람다표현식을 익혀 놓지 않으면, 코드를 읽는데 매우 어려움을 겪을수 있다. Java8이상을 사용한다면 반드시 알고 있어야한다. 앞서 익명 클래스에 대해서 공부해본적 이있다. 익명 클래스를 사용하면 가독성도 떨어지고 불편한데, 이런 단점을 보완한것이 람다 표현식이다. 람다 표현식은 인터페이스에 메소드가 "하나"..
Thread(1) 선수지식 자바의 객체란 무엇인가? 프로그램 상에서 구현할 대상 클래스에 선언된 정보 그대로 생성된 실체이다. enum은 무엇인가? 관련이 있는 상수들의 집합 Java의 Object클래스는 어떤 클래스이고, 어떤 메소드가 있는가? .equals() .hashCode() .toString() 생성자에서 사용하느 super()가 어떤 용도로 사용되는지? 자식클래스에서 부모클래스의 생성자를 호출하는 메소드 자식클래스라 할지라도 부모클래스의 priavate한 변수와 메소드에 접근이 불가능하다. 생성자를 통해 private 리소스에 접근하기 위해서 사용할 수있다. 학습목표 쓰레드는 무엇인가? Runnable 과 Thread의 차이는 무엇인가? synchronized는 무엇인가? volatile은 무엇인가? 쓰레드는..

반응형