전체 글 159

자바 컴파일 과정 이해하기

자바 코드가 실행 가능한 형태로 변환되는 과정을 단계별로 살펴본다.자바는 독립적인 언어로서, 한 번 작성하면 어디서나 실행할 수 있는 장점을 가졌는데 이러한 특성은 자바 컴파일 과정에서 비롯된다. 자바 컴파일 과정은 소스 코드 작성에서 시작하여 실행 가능한 프로그램이 되기까지 여러 단계를 포함한다.1. 소스 코드 작성 ( .java 파일 ).java 확장자를 가진 파일에 자바 코드를 작성한다. 이 코드는 클래스, 메서드, 변수 등을 포함한다.2. 컴파일 ( .class 파일 생성 ) 소스 코드가 작성되면, 자바 컴파일러를 사용하여 소스 파일을 컴파일한다. 이 과정에서 컴파일러는 .java 파일을 읽어 들여 문법적 오류를 검사하고, 바이트 코드로 된 .class 파일을 생성한다. 바이트 코드는 자바 가상 ..

공부할 것 ! 2024.05.12

URL과 URI의 차이점 이해하기

오늘은 웹 개발에서 자주 접하게 되는 두 가지 용어, URL과 URI의 차이점에 대해 알아보려고 한다.URI(Uniform Resource Identifier)란?URI는 인터넷에 있는 자원을 식별하는 데 사용되는 문자열의 구조이다. 즉, 웹 상의 모든 자원(페이지, 이미지, 동영상 등)을 식별하기 위한 일종의 주소로 생각할 수 있다. URI는 URL과 URN으로 나뉩니다.URL(Uniform Resource Locator)이란?URL은 말 그대로 인터넷 상의 자원이 어디에 위치해 있는지를 나타내는 주소이다. URL은 자원의 위치를 가리키기 때문에, 우리가 웹 브라우저에 입력하는 웹사이트 주소가 바로 URL이다. 예를 들어, https://www.example.com는 웹 서버의 위치를 나타내는 URL이..

공부할 것 ! 2024.05.12

HTTP 상태 코드 이해하기

HTTP 상태 코드는 서버가 클라이언트의 요청을 받았을 때, 그 요청의 처리 결과를 클라이언트에 알려주는 역할을 한다. HTTP 상태 코드의 5가지 범주1xx (정보 응답): 요청을 받았으며 프로세스를 계속한다는 정보를 나타낸다.2xx (성공): 요청이 성공적으로 받아들여졌고 처리되었음을 나타낸다.3xx (리다이렉션 완료): 요청 완료를 위해 추가적인 조치가 필요함을 나타낸다.4xx (클라이언트 오류): 요청에 오류가 있어서 서버가 요청을 수행할 수 없음을 나타낸다.5xx (서버 오류): 서버가 유효한 요청을 처리하지 못했음을 나타낸다.주요 HTTP 상태 코드200 OK: 요청이 성공적으로 처리되었습니다. 가장 일반적인 성공 응답이다.301 Moved Permanently: 요청된 리소스가 영구적으로 새..

공부할 것 ! 2024.05.12

HTTP 메서드의 이해와 활용

HTTP 메서드란 ? HTTP는 클라이언트와 서버 간에 데이터를 주고 받기 위한 프로토콜로, 클라이언트가 서버에게 수행하길 원하는 동작을 지정하는 방법이다. 주요 HTTP 메서드로는 GET, POST, PUT, DELETE 등이 있다.GET : 서버로부터 정보를 조회하기 위해 사용된다. 데이터를 가져올 때만 사용하며 데이터를 변경하지 않는다. URL에 쿼리 문자열을 포함 시켜 요청하며, 데이터를 URL에 포함 시켜 전송한다.POST : 서버로 데이터를 전송하여 새로운 자원을 생성하기 위해 사용된다. 예를 들어 새 글을 작성하거나 정보를 제출할 때 사용한다. 데이터를 요청 본문에 담아 전송하며, 데이터의 길이에 제한이 없다.PUT : 서버에 존재하는 자원을 대체하거나 자원이 없는 경우 새로 생성하기 위해 ..

공부할 것 ! 2024.05.12

도커 컨테이너의 생명주기

도커의 생명주기 중에서 생성과 실행 부분지금까지 docker run 으로 컨테이너를 생성 및 실행했는데, 이를 생성과 실행으로 쪼개서 해보도록 한다.실제로 cmd창에서 create를 해보면, 생성된 컨테이너의 아이디를 확인할 수 있다. 확인한 컨테이너의 아이디로 start를 해본다.-a 옵션은 도커 컨테이너가 실행될 때 붙어 있어서 거기서 나오는 output들을 화면에 표출해주는 역할을 한다.도커의 생명주기 중에서 중지 부분docker stop과 docker kill로 중지가 가능docker stop을 이용하여 중지docker kill을 이용하여 중지Stop과 Kill의 차이둘 다 실행 중인 컨테이너를 중지시키지만, stop은 그동안 하던 작업들을 완료하고 컨테이너를 중지 시킨다. 따라서 중지하는데 시간..

Docker 2024.05.12

컨테이너들 나열하기

이미지를 이용해서 컨테이너를 생성하고 실행할 때 실제로 어떠한 것이 실행되고 있는지 보고싶을 때 사용하는 명령어 docker ps현재는 아무것도 실행 중인 컨테이너가 없기 때문에 이렇게 아무것도 없이 나온다.컨테이너를 실행 시키고,다시 docker ps를 해보면, 이렇게 실행 중인 컨테이너를 확인할 수 있다. CONTAINER ID : 컨테이너의 고유한 아이디 해쉬값으로 실제로는 더욱 길지만 일부분만 표출IMAGE : 컨테이너 생성 시 사용한 도커 이미지COMMAND : 컨테이너 시작 시 실행될 명령어로 대부분 이미지에 내장되어 있으므로 별도 설정이 필요 없음CREATED : 컨테이너가 생성된 시간STATUS : 컨테이너의 상태로 실행 중이면 Up, 종료는 Exited, 일시정지 PausePORTS : ..

Docker 2024.05.12

도커 이미지 내부 파일 구조 보기

도커 이미지 ex) docker run hello-world작동 순서도커 클라이언트에 명령어 입력 후 도커 서버로 보냄도커 서버에서 컨테이너를 위한 이미지가 이미 캐시되어 있는지 확인없으면 도커 허브에서 다운 받아오고 있으면 이미 가지고 있는 이미지로 컨테이너 생성이미지로 컨테이너 생성하는 순서먼저 파일 스냅샷 되어있는 것을 컨테이너의 하드 디스크 부분에 올린다.시작 커맨드를 이용하여 어플리케이션을 실행한다.docker run alpine lsAlpine 이미지를 이용해서 컨테이너를 생성생성할 때 Alpine 이미지 안에 들어있던 파일 스냅샷들 ( bin, dev, etc 등등 )이 컨테이너 안에 있는 하드 디스크로 다운로드 됨이미지 이름 뒤에 다른 명령어를 더 붙여서 원래 이미지 안에 들어있는 기본 커..

Docker 2024.05.11

도커와 기존 가상화 기술과의 차이

도커와 기존의 가상화 기술과의 차이를 통해 컨테이너를 이해해보도록 한다.가상화 기술이 나오기 전에는, 한 대의 서버를 하나의 용도로만 사용하고 남는 서버의 공간은 그대로 방치하였다.하나의 서버에 하나의 운영체제, 하나의 프로그램만을 운영하여 안정적이지만 매우 비효율적으로 사용하였다.하이버바이저 기반의 가상화의 등장으로,논리적으로 공간을 분할하여 VM이라는 독립적인 가상 환경의 서버를 이용할 수 있게 되었다.하이퍼바이저는 호스트시스템에서 다수의 게스트 OS를 구동할 수 있게 하는 소프트웨어, 그리고 하드웨어를 가상화하면서 하드 웨어와 각각의 VM을 모니터링하는 중간관리자이다. 따라서 비효율적인 부분을 보완하고, 다수의 게스트 OS도 구동이 가능해졌다.하이퍼 바이저에 대해 살펴보면, 네이티브 하이퍼바이저와 ..

Docker 2024.05.11

도커의 사용 흐름

항상 도커를 사용할 때는,먼저 도커 CLI에 커맨드를 입력한다.도커 서버 ( 도커 Daemon)가 그 커맨드를 받아서 그것에 따라 이미지를 생성하든 컨테이너를 실행하든 모든 작업을 하게 된다.실제로 CLI에서 커맨드를 입력해보기도커 클라이언트에 커맨드를 입력하여 클라이언트에서 도커 서버로 요청을 보낸다.서버에서 hello-world라는 이미지가 이미 로컬에 cache 되어 있는지 확인한다.현재는 없기 대문에 Unabled to find image ‘hello-word: latest ‘ locally라는 문구가 표시된다.그러면 Docker Hub라는 이미지가 저장되어 있는 곳에 가서 그 이미지를 가져와서 로컬에 cache로 보관한다. ( Pulling from ~ )그 후 이제 이미지가 있으니 그 이미지를..

Docker 2024.05.11