일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 자바연습문제
- 패캠챌린지
- java기초
- ncs
- 리눅스
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- java
- Spring
- DesignPattern
- 자바기본
- 웹
- linux
- 직장인자기계발
- 자바예제
- 자바
- js
- String
- 재택근무
- 자바기초
- 직장인인강
- DB
- 국비
- 스프링
- 디자인
- 디자인패턴
- javabasic
- 데이터베이스
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- 패스트캠퍼스
- 패스트캠퍼스후기
- Today
- Total
목록한번에끝내는JavaSpring웹개발마스터초격차패키지Online (31)
FIF's 코딩팩토리
자바에서 Thread 만들기 스레드를 알기위해 먼저 프로세스의 정의를 살펴보자. 프로세스(process)란 단순히 실행 중인 프로그램(program)이라고 할 수 있다. 즉, 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행 중인 것을 말한다. 이러한 프로세스는 프로그램에 사용되는 데이터와 메모리 등의 자원 그리고 스레드로 구성된다. 그렇다면 스레드란? 스레드(thread)란 프로세스(process) 내에서 실제로 작업을 수행하는 주체를 의미한다. 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행한다. 또한, 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스(multi-threaded process)라고 한다. 스레드의 생성과 실행 자바에서 스레드를 생성하는 ..
직렬화(serialization) 객체를 저장하거나 메모리, 데이터베이스 혹은 파일로 옮기려면 어떻게 해야할까? 이럴 때 필요한 것이 직렬화다. 직렬화란 객체를 바이트 스트림으로 바꾸는 것, 즉 객체에 저장된 데이터를 스트림에 쓰기write 위해 연속적인serial 데이터로 변환하는 것이다. 직렬화의 주된 목적은 객체를 상태 그대로 저장하고 필요할 때 다시 생성하여 사용하는 것이다. 역직렬화Deserialization는 직렬화의 반대말로, 네트워크나 영구저장소에서 바이트 스트림을 가져와서 객체가 저장되었던 바로 그 상태로 변환하는 것이다(convert it back to the Object with the same state). 직렬화하면서 생긴 바이트 스트림은 플랫폼에 독립적이다(platform ind..
자바의 입출력을 위한 I/O 스트림 입출력 스트림이란? 네트워크에서 자료의 흐름이 물의 흐름과 같다는 비유에서 유래되었다. 자바는 다양한 입출력 장치에 독립적으로 일관성있는 입출력을 입출력 스트림을 통해 제공한다. 입출력이 구현되는 곳: 파일 디스크, 키보드, 마우스, 네트웍, 메모리 등 모든 자료가 입력되고 출력되는 곳에서 구현된다. 입출력 스트림의 구분 대상 기준 : 입력 스트림 / 출력 스트림 자료의 종류 : 바이트 스트림 / 문자 스트림 기능 : 기반 스트림 / 보조 스트림 입력 스트림과 출력 스트림 입력 스트림 : 대상으로부터 자료를 읽어 들이는 스트림이다. -> FileInputStream, FileReader, BufferedInputStream, BufferedReader 등이 있다. 출력..
오류의 로그를 남기기 - java.util.logging.Logger를 활용해보자. logging이란? 시스템 운영에 대한 기록이다. 오류가 발생 했을 때 그 오류에 대한 기록을 남겨 디버깅을 용이하게 한다. 로그 파일에 기록하는 코드를 추가하여 필요한 정보가 로그로 남을 수 있도록 한다. 디버깅, 시스템 에러 추적, 성능, 문제점 향상들을 위해 사용한다. 어느정도까지 로그를 남길 것인가? 너무 많은 로그 : 빈번한 file I/O의 오버헤드와 로그 파일의 백업 문제등이 있다. 너무 적은 로그 : 정확한 시스템의 상황을 파악하기 어려움이 있다. 그렇게 때문에! java.util.logging 를 사용한다. 자바에서 기본적으로 제공되는 log package 이다. 파일이나 콘솔에 로그 내용을 출력할 수 있..
예외처리는 왜 해야 하나? 오류(error)와 예외(exception) 자바 프로그램을 작성할 때 자바 문법에 맞지 않게 코드를 작성하고 컴파일하려고 하면, 자바 컴파일러는 문법 오류(syntax error)를 발생시킨다. 또한, 자바 문법에는 맞게 작성되었다 하더라도 프로그램이 실행되면서 예상하지 못한 오류가 발생할 수 있다. 이렇게 컴퓨터 시스템이 동작하는 도중에 예상하지 못한 사태가 발생하여 실행 중인 프로그램이 영향을 받는 것을 오류(error)와 예외(exception) 두 가지로 구분할 수 있다. 오류(error)는 시스템 레벨에서 프로그램에 심각한 문제를 야기하여 실행 중인 프로그램을 종료시킨다. 이러한 오류는 개발자가 미리 예측하여 처리할 수 없는 것이 대부분이므로, 오류에 대한 처리는 할..
연산 수행에 대한 구현을 할 수 있는 reduce() 메서드 BinaryOperator BinaryOperator는 같은 타입의 파라미터 2개를 받아 결과값을 리턴하는 functional interface다. 주로 람다와 메서드 참조를 위해 사용된다. 그냥 식을 적는 것보다 가독성이 좋기 때문에 적극 활용하는 것이 좋다. 또한, BiFunction을 상속하는 인터페이스로서, apply(T t, U u) 메서드를 호출해서 function을 적용한다. IntBinaryOperator IntBinaryOperator는 int 타입의 파라미터 2개를 받아 int 타입의 결과값을 리턴한다. 이름에서 알 수 있듯이 BinaryOperator를 상속하며, applyAsInt(int left, int right)는 내..
함수형 프로그래밍과 람다식 문법 자바는 객체 지향 프로그래밍으로써 기능을 수행하긴 위해서는 객체를 만들고 그 객체 내부에 멤버 변수를 선언하고 기능을 수행하는 메서드를 구현한다. 자바 8부터 함수형 프로그래밍 방식을 지원하고 이를 람다식이라 한다. 함수의 구현과 호출만으로 프로그래밍이 수행되는 방식이다. 함수형 프로그래밍(Functional Programming: FP)함수를 기반으로 하는 프로그래밍이고 입력받는 자료 이외에 외부 자료를 사용하지 않아 여려 자료가 동시에 수행되는 병렬처리가 가능하다. 함수형 프로그래밍은 함수의 기능이 자료에 독립적임을 보장한다.. 이는 동일한 자료에 대해 동일한 결과를 보장하고, 다양한 자료에 대해 같은 기능을 수행할 수 있다. 함수형 프로그래밍은 순수함수(pure fu..
여러 내부 클래스의 정의와 유형 내부 클래스란(Inner Class)? 클래스 내부에 선언한 클래스로 이 클래스를 감싸고 있는 외부 클래스와 밀접한 연관이 있는 경우가 많고, 다른 외부 클래스에서 사용할 일이 거의 없는 경우에 내부 클래스로 선언해서 사용한다. 중첩 클래스라고도 한다. 내부 클래스의 종류로는 인스턴스 내부 클래스, 정적(static) 내부 클래스, 지역(local) 내부 클래스, 익명(anonymous) 내부 클래스 가 있다. 인스턴스 내부 클래스 내부적으로 사용할 클래스를 선언하는것을 말한다. (private으로 선언하는 것을 권장) 외부 클래스가 생성된 후 생성된다. ( 정적 내부 클래스와 다름 ) private이 아닌 내부 클래스는 다른 외부 클래스에서 생성할 수 있다. 정적 내부 ..