전체 글 (60) 썸네일형 리스트형 String / StringBuilder / StringBuffer 이번 포스트를 보기 앞서 이전 포스트를 보고 오시기 바랍니다.https://jaystorage.tistory.com/20 String과 String Constant Pool들어가기 앞서 String을 보다 자세히 이해하기 위해서는 JVM 구조를 알고 있는 것이 좋다. JVM에 대한 자세한 내용을 알고 싶다면 https://jaystorage.tistory.com/8 을 참고하자 String 이란 Java에서 String은 문jaystorage.tistory.com String 과 StringBuilder, StringBuffer 의 차이점 String과 (StringBuilder, StringBuffer)는 문자열을 다루는 클래스라는 점에서 공통점을 가지고 있지만 String은 불변성(immutable.. BigDecimal BigDecimal 이란 BigDecimal은 Java에서 고정 소수점 연산을 정확하게 수행하기 위해 사용되는 클래스를 의미한다. double이나 float과 같은 부동 소수점 타입은 매우 큰 숫자나 매우 작은 숫자를 처리할 수 있지만 정확도가 떨어질 수 있다. 이러한 이유로 금융 계산과 같이 정확도가 중요한 경우 부동 소수점 타입을 사용해 연산을 처리하는 것은 적합하지 않다. 이때 BigDecimal을 사용하면 소수점 이하의 숫자도 정확하게 표현할 수 있다. float과 double의 문제점 아래 코드를 보자일반적으로 우리는 연산의 결과가 0.3이 나오길 기대하지만 실제로는 0.30000000000000004 라는 이상한 값이 도출된다.double a = 0.1;double b = 0.2;Syste.. String과 String Constant Pool 들어가기 앞서 String을 보다 자세히 이해하기 위해서는 JVM 구조를 알고 있는 것이 좋다. JVM에 대한 자세한 내용을 알고 싶다면 https://jaystorage.tistory.com/8 을 참고하자 String 이란 Java에서 String은 문자열을 나타내는 객체이다. C/C++에서는 문자열이 단순히 char의 배열인데 반해, Java에서의 문자열은 java.lang안에 있는 String 클래스의 객체를 의미한다. 그렇기 때문에 String 은 int 와 char 와 같은 기본형(primitive type)이 아닌 참조형(reference type) 변수로 분류된다. (String의 첫 글자가 소문자가 아닌 대문자로 시작하는 이유가 이 때문이다.) Java의 String 은 불변(immuta.. 상수(Constant)와 리터럴(Literal) 상수(Constant) 란 상수란 한 번 값을 할당하면 프로그램 실행 도중 그 값이 변경되지 않는 변수를 의미한다. Java 에서는 상수를 정의하기 위해서는 final 키워드를 변수 앞에 붙여 사용한다. 정적 상수를 선언할 때는 static final 키워드를 사용하며 대문자로 작성하고 공백은 ‘_’ 로 표시한다. 인스턴스 상수를 선언할 때는 final 키워드를 사용하며 일반 변수 처럼 카멜 케이스로 작성한다. 이러한 상수를 초기화 하는 방법은 다음과 같다. 1. 선언시 초기화 public static final int MAX_COUNT = 100; public static final String DATABASE_URL = "jdbc:mysql://localhost:3306/mydatabase"; 2. .. SL4J와 Logback을 이용한 Logging Logging 이란 로깅이란 정보를 제공하는 일련의 기록인 로그(Log)를 생성하도록 시스템을 작성하는 활동을 의미한다. 보다 쉽게 설명하면 프로그램 동작 시 발생하는 모든 일을 기록하는 행위를 로깅이라고 할 수 있다. 이러한 로깅은 주로 프로그램의 동작 상태를 기록하여 어플리케이션을 운영하는 도중에 문제가 발생했을 때 해당 문제에 대한 원인을 분석하기 위해 사용된다. 자바에서는 System.out.println() 메소드를 사용해 원하는 내용을 출력할 수 있긴 하나 해당 메소드는 콘솔에서만 내용을 출력할 수 있다. 따라서 일반적으로 로깅을 할 때는 log4j나 logback과 같은 로깅 라이브러리를 사용해 로그 파일을 생성하는 방법을 사용한다. Log Level 일반적으로 로깅 라이브러리를 사용하여 로.. 가상화(Virtualization) 가상화(Virtualization) 란 가상화는 컴퓨터의 자원을 가상으로 분할하거나 모방하는 기술을 의미한다. 가상화 기술을 사용하면 하나의 물리적 서버에서 여러 운영체제와 애플리케이션을 실행할 수 있다. 다음과 같은 상황을 가정하자. 각각 용도가 다른 3개의 물리 서버(메일 서버, 웹 서버, 내부 레거시 서버)가 있다. 각 서버는 잠재적인 실행 용량의 일부에 불과한 30% 용량만 사용하고 있다. 그러나 내부 운영을 위해서는 레거시 애플리케이션이 계속 필요하므로 레거시 어플리케이션과 이를 호스팅하는 세 번째 서버를 유지해야 한다. 이런 상황에서 전통적인 서버 구성방식은 위와 같다. 한 개의 서버에 한 개의 운영체제와 한 개의 태스크 형태로 구성한다. 하지만 가상화 기술을 사용하면 서버를 아래와 같이 구성.. TCP와 UDP 전송계층에서 사용되는 프로토콜 TCP와 UDP는 OSI 표준모델과 TCP/IP 모델의 전송계층에서 사용되는 프로토콜이다. 전송계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하고 IP에 의해 전달되는 패킷의 오류를 검사하며 재전송 요구 제어 등을 담당하는 계층이다. (쉽게 말해 데이터의 전달을 담당하는 계층이라고 할 수 있다.) TCP와 UDP는 포트 번호를 이용하여 주소를 지정하는 것(TCP와 UDP 모두 포트 번호로 서비스를 식별한다)과 데이터 오류검사를 위한 체크섬이 존재하는 두가지 공통점을 가지고 있지만 정확성(TCP)을 추구할지 신속성(UDP)을 추구할지를 구분하여 나뉜다. TCP (Transmission Control Protocol)란 TCP는 신뢰성있는 데이터 전송을 지원하는 연결형 프.. OSI 모델, TCP/IP 모델 OSI 참조 모델이란 OSI 참조 모델(Open Systems Interconnection Reference Model)은 국제표준화기구(ISO)가 정의한 국제 통신 표준 규약이다. 통신의 접속에서부터 완료까지의 과정을 7단계로 구분, 정의했으며 일반적으로 OSI 7 계층이라고도 한다. OSI 참조 모델이 나오게 된 배경 1900년대 중반 네트워크가 시작되며 서로 다른 컴퓨터 간에 정보를 주고받는 것이 가능해졌다. 서로 다른 기기간에 데이터를 주고 받으려면 통신 규약, 즉 프로토콜이 필요했기에 네트워크를 사용하는 업체들은 자체적으로 프로토콜을 개발하기 시작했다. 하지만 이 당시에는 통일된 규정이 없어서 서로 다른 프로토콜을 사용하는 타 업체 기기와의 통신은 불가능했다. OSI라는 모델은 이러한 상황을 해.. 이전 1 ··· 3 4 5 6 7 8 다음