전체 글 9

자바 클래스로더(Classloader)

클래스로더란?말 그대로 클래스를 로드하는 녀석클래스란? 사람이 이해할 수 있는 파일(java)를 JVM이 이해할 수 있는 파일(class)로 변환한 것.이 클래스 파일들은 클래스로더에 의해 JVM에 올라간다. 이 때 Java 클래스는 한 번에 메모리에 로드되지 않고 애플리케이션에서 필요할 때만 로드됩니다.클래스로더의 종류 - Bootstrap, Extention, System부트스트랩 클래스로더 (Bootstrap classloader)JVM 시작 시 가장 최초로 실행되는 클래스 로드클래스로더(java.lang.ClassLoader) 자체를 로드$JAVA_HOME/jre/lib 디렉토리의 rt.jar 및 기타 핵심 라이브러리를 로드부모 클래스로더를 갖지 않기 때문에 원시 클래스로더(Primordial c..

카테고리 없음 2024.10.10

그림으로 쉽게 이해하는 웹/HTTP/네트워크

2024년 10월 9일그림으로 쉽게 이해하는 웹/HTTP/네트워크1장 웹인터넷 인터네트워크(inter-network)의 줄임말로, 전 세계 컴퓨터를 하나로 연결한 네트워크하이퍼텍스트(Hypertext) 문서 내에서 다른 문서나 리소스로 연결될 수 있는 텍스트HTTP (Hypertext Transfer Protocol) 클라이언트(보통 웹 브라우저)와 서버가 웹 페이지를 주고받을 때 사용하는 통신 규약HTML (Hypertext Markup Lanuage) - 웹 페이지의 구조와 내용을 정의하는 데 사용되는 언어2장 미리 알아두면 좋은 네트워크 개념이론과 표준화에 중점을 둔 OSI 7계층 모델실용성에 초점을 둔 TCP/IP 4계층 모델네트워크에서 데이터 송수신 과정은 캡슐화(Encapsulation)와 역..

카테고리 없음 2024.10.09

자바의 역사, 핫스팟JVM, 자바의 미래

1.1 들어가며1.2 자바 기술 시스템1.3 자바의 과거와 현재1.4 자바 가상 머신 제품군 - 핫스팟 VM1.5 자바 기술의 미래1.1 들어가며자바는 엄격한 구조를 갖춘 객체 지향 프로그래밍 언어란 점 외에도 아래와 같은 장점들이 있다.하드웨어 플랫폼이라는 족쇄를 제거하여 `한 번 작성하면 어디서든 실행된다`상당히 안전한 `메모리 관리 시스템`을 갖춘 덕에 메모리 누수 문제와 엉뚱한 메모리를 가리키는 문제 대부분을 피할 수 있다.런타임에 핫 코드를 감지, 컴파일하고 최적화하여 최상의 성능을 내도록 도와준다.표준 API 자체가 풍부할 뿐 아니라 수많은 기업과 오픈 소스 커뮤니티에서 제공하는 다양한 기능의 서드 파티 라이브러리를 활용할 수 있다.1.2 자바 기술 시스템JRE(Java Runtime Envi..

개발 2024.09.22

[클릭하우스 ClickHouse] OS 서비스 계정 및 config, data, log 경로 변경하기

# 관련 파일/usr/bin/clickhouse/usr/share/bash-completion/completions/clickhouse/usr/share/clickhouse/etc/clickhouse-server (config)/var/lib/clickhouse (data)/var/log/clickhouse-server (log)공통작업 전에 ch 내리고 시작systecmtl stop clickhouse-server작업 이후 ch 정상 동작 확인systemctl daemon-reload systecmtl start clickhouse-server1) clickhouse를 서비스하는 OS 사용자계정 변경하기 (clickhouse -> adm)chown -R adm:adm /etc/clickhouse-ser..

개발 2024.07.30

'equals' between objects of inconvertible types 'Module' and 'String'

'equals' between objects of inconvertible types 'Module' and 'String'변환할 수 없는 유형 'Module'과 'String'의 개체 간 'equals' String 들을 Enum으로 변환하면서 기존 A에서 B형태가 되다보니 발생한 경고 - String.equals(String) - String.equals(Enum) 비교할 수 없음 Enum의 경우 == 로 비교해야 한다. - Enum == EnumString으로 비교하고 싶다면 Enum을 String으로 변경하자 - String.equals(Enum.name())

경고(Eng) 한 줄 2024.07.15

Caused by: org.apache.ibatis.binding.BindingException: Parameter '$param' not found. Available parameters are [arg1, arg0, param1, param2] - javac의 parameters 옵션 살펴보기

Caused by: org.apache.ibatis.binding.BindingException: Parameter 'sysId' not found. Available parameters are [arg1, arg0, param1, param2] 가끔씩 해당 오류가 발생하곤 했다. 일반적으로는 아래와 같이 Mapper 클래스의 메서드 파라미터의 변수명과 Mapper.xml에서 사용하는 변수명을 실수로 다르게 작성해서 발생하는 문제였어서 간단했다.Available parameters are [sysId, param1, param2] 하지만 종종 이름이 같음에도 BindingException이 발생하는 경우가 있었다.이에 대해 좀 더 알아보려고 한다. 문제의 상황은 아래와 같다.클래스와 매퍼 모두 sysId..

개발 2024.06.20

자바의 형변환(자동형변환, 명시적형변환)

숫자 타입//정수 byte b = 127; //-128 ~ 127 short s = 32767; // -32,768 ~ 32,767 int i = 2147483647; //-2,147,483,648 ~ 2,147,483,647 (약 20억) long l = 9223372036854775807L; //-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 //실수 float f = 10.0f; double d = 10.0;표현할 수 있는 숫자의 범위와 차지하는 메모리 공간은 다음과 같다. - byte : -128 ~ 127 (1byte, 2⁸) -  short : -32,768 ~ 32,767 (2byte, 2¹⁶) -  int : -2,147,483,648 ~..

개발 2024.06.17