본문 바로가기

전체 글49

[ElasticSearch] mac 설치하기 Homebrew 를 통한 설치 방법brew tap elastic/tapbrew install elastic/tap/elasticsearch-full Docker를 통한 설치docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:8.12.2 Elastic search 가 실행되면 기본적으로 http://localhost:9200 주소로 접근할 수 있습니다. 2025. 3. 22.
[QueryDsl] 동적 접근이란 무엇일까 자바에서 코드가 동작하는 레이어를 보면 컴파일 다음 런타임이다. 런타임은 프로그램이 실행되고 있는 환경이나 동작하는 시간을 말한다.  우리가 코드를 다룰 때는 런타임에 접근 할 때와 컴파일에 접근 할 때 두가지 경우의 수가 생긴다. 컴파일때 접근하는 것을 정적 접근이라 하고 런타임을 동적 접근이라 한다. 예를 들어 설명하자면 1. 정적 접근 (QClass || EntityPath 사용)// 컴파일 시점에 모든 것이 결정 == 정적이다.Quser user = Quser.user;user.name // 자동 완성 되지 않는가? == 타입 안전성이 보장된다. 2. 동적 접근 (PathBuilder 사용)PathBuilder user = new PathBuilder(User.class, "user);String.. 2024. 10. 25.
메모리의 주소 공간 - 물리 주소와 논리 주소 물리 주소메모리 입장에서 바라본 주소이다. 정보가 실제 저장된 하드웨어상의 주소이다. 논리 주소cpu와 실행 중인 프로그램 입장에서 바라본 주소이다. 실행 중인 프로그램 각각에게 부여된 0번지부터 부여된 주소이다.(가상으로 존재하니 각각 0부터 존재할 수 있다.)  논리주소에서 물리주소로 변환하는 과정과 물리주소에서 논리주소로 변환하는 과정 둘이 필요하다. 이를 cpu 가 행한다. cpu와 memory 사이에 있는 mmu 라는 하드웨어에 의해서 논리 주소는 물리주소로 바뀌게 된다. 그 역도 역시 mmu 를 걷힌다.  메모리 보호cpu 는 메모리에 접근하기 전 접근하고자 하는 논리 주소가 한계 레지스터 보다 작은지를 항상 조사한다. 한계 레지스터는 메모리상 다른 프로그램을 침범하지 않는 범위를 말한다. m.. 2024. 8. 11.
소스코드와 명령어 고급언어는 개발자가 이해하기 쉽게 만든 언어이다. 저급 언어는 컴퓨터가 이해하고 실행하는 언어이다. 저급언어저급언어에는 기계어와 어셈블리어가 있다. 기계어는 이진수로 이뤄진 명령어이다. 어셈블리어는 기계어를 읽기 편한 형태로 번역한 저급언어이다.  고급언어고급언어는 컴파일 언어와 인터프리터 언어가 있다. 컴파일 언어는 소스코드 -> 컴파일러 -> 저급언어 이런 식으로 변환이 진행된다. 인터프리트 언어는 인터프리터에 의해 한 줄씩 진행된다. 소스코드 전체가 저급 언어로 변환되기까지 기다릴 필요가 없다. 실행되는 양상도 조금 다르다. 컴파일 언어 같은 경우는 소스코드 중간에 오류가 하나라도 있으면 컴파일 할 수 없다고 알려준다. 반면 인터프리터는 라인별로 실행이 되다가 멈춘다. 즉, 컴파일 언어는 통으로 전.. 2024. 8. 10.