[JAVA 파헤치기] 문자 타입 'char' 와 문자열 'String' 의 진실
개발/Java
/ 2022. 5. 6.
안녕하세요😎 백엔드 개발자 제임스입니다 :) 자바 언어를 공부하기 시작하신 분이라면, 자료형에 대해서 배웠을 것입니다. 주로 자료형 또는 데이터 타입이라고 부르는데요. 변수에 담길 값의 형태를 나타내 주는 중요한 개념입니다. 이러한 자료형에는 다양한 종류와 명칭이 있습니다. 포스팅을 시작하기 전에 기본 타입 자료형에는 어떤 종류가 있는지 알아보도록 하겠습니다. 기본 타입(Primitive type) 데이터의 실제 값을 의미 정수 타입, 실수 타입, 문자 타입, 논리 타입으로 분류 위 그림에서 보이는 내용들이 기본 타입에 해당합니다. 이제 오늘 포스팅 주제를 소개하겠습니다. 이번 포스팅은 문자 타입의 char와 문자열을 나타내는 String에 대해서 자세하게 정리하고, 두 가지를 비교해보려고 합니다. 평소..
[JAVA 파헤치기] 객체 지향, 클래스, 객체 개념 다루기
개발/Java
/ 2022. 3. 7.
1. 객체지향 언어 자바(Java)의 특징인 객체지향에 대해서 알아보도록 하겠습니다. 객체 지향 프로그래밍(Object-Oriented Programming,OOP)은 여러 개의 독립된 단위, 즉 "객체(Object)"들의 모임으로 파악하는 것입니다. 다시 말해서 프로그램을 수많은 객체라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 방식입니다. 여기서 객체는 '실제로 존재하는 것'입니다. 즉 어떠한 데이터(실체)와 관련된 동작을 포함한 개념입니다. 예를 들어 우리 주변에서 볼 수 있는 책상, 의자, 자동차, 고객 등과 같습니다. 객체지향이론에서는 사물과 같은 유형적인 것뿐만 아니라, 개념이나 논리와 같은 무형적인 것들도 객체로 간주합니다. JavaScript : 프로토타입 객체지향 Python : ..
Thread
개발/Java
/ 2021. 5. 14.
Thread 란? process 실행 중인 프로그램이 실행되면 OS로부터 메모리를 할당받아 프로세스 상태가 됨 thread : process는 하나 이상의 thread를 가지게 되고, 실제 작업을 수행하는 단위는 thread ' 하나의 프로그램이 돌아간다 = 하나 이상의 thread를 갖고 있다 ' multi-threading 여러 thread가 동시에 수행되는 프로그래밍, 여러 작업이 동시에 실행되는 효과 thread는 각각 자신만의 작업 공간을 가짐( context ) 각 thread 사이에서 공유하는 리소스가 있을 수 있음(자바에서는 static instance) 여러 thread가 리소스를 공유하여 작업이 수행되는 경우 서로 자원을 차지하려는 race condition이 발생할 수 있음 이렇게 여..
직렬화(serialization)
개발/Java
/ 2021. 5. 11.
serialization 이란? 인스턴스의 상태를 그대로 파일로 저장하거나 네트워크로 전송(serialization)하고 이를 다시 복원(deserialization) 하는 방식 자바에서는 보조 스트림을 활용하여 직렬화를 제공 ObjectInputStream과 ObjectOutputStream ObjectInputStream(InputStream in) : InputStream을 생성자의 매개변수로 받아 ObjectInputStream을 생성 ObjectOutputStream(OutputStream out) : OutputStream을 생성자의 매개변수로 받아 ObjectOutputStream을 생성 ① Serializable 인터페이스 직렬화는 인스턴스의 내용이 외부로 유출되는 것이므로 프로그래머가 해..
I/O 스트림 정의
개발/Java
/ 2021. 5. 9.
입출력 스트림 네트워크에서 자료의 흐름이 물의 흐름과 같다는 비유에서 유래 자바는 다양한 입출력 장치에 독립적으로 일관성있는 입출력 스트림을 통해 제공 입출력이 구현되는 곳: 파일 디스크, 키보드, 마우스, 네트워크, 메모리 등 입출력 스트림의 구분 대상 기준 : 스트림/ 출력 스트림 자료의 종류 : 바이트 스트림/ 문자 스트림 기능 : 기반 스트림/ 보조 스트림 ① 입력 스트림과 출력 스트림 입력 스트림 : 대상으로부터 자료를 읽어 들이는 스트림 출력 스트림 : 대상으로 자료를 출력하는 스트림 @스트림의 종류 입력 스트림 : FileInputStream, FileReader, BufferedInputStream, BufferReader 등 출력 스트림 : FileOutputStream, FileWrit..
자바의 예외 처리 - 로그 남기기(log)
개발/Java
/ 2021. 5. 9.
Logging 시스템 운영에 대한 기록 오류가 발생 했을 때 그 오류에 대한 대한 기록을 남겨 디버깅을 용이하게 함 로그 파일에 기록하는 코드를 추가하여 필요한 정보가 로그로 남을 수 있도록 함 디버깅, 시스템 에러 추적, 성능, 문제점 향상들을 위해 사용 너무 적은 로그 : 정확한 시스템의 상황을 파악하기 어려움 너무 많은 로그 : 빈번한 file I/O의 오버헤드와 로그 파일의 백업 문제 등 java.util.logging 자바에서 기본적으로 제공되는 log package 파일이나 콘솔에 로그 내용을 출력 가능 jre/lib/logging.properties 파일을 편집하여 로그의 출력방식 로그 레벨을 변경 가능 로그 레벨 : server, warning, info, config, fine, fine..