본문 바로가기

전체 글

(120)
가상 네트워크의 종류 (NAT, Host-only, Bridged) 1. NAT란? Network Address Translation의 약자로, 네트워크 주소 변환을 뜻한다. 192.168.0.2와 같은 사설 IP주소를 통해 외부로 네트워크 패킷을 보내게되면 NAT은 119.200.124.81와 같은 공인 IP 주소로 변환하여 패킷을 내보냄으로써 외부에선 마치 공인 IP에서 패킷을 보낸 것처럼 보인다. 반대로 외부에서 내부로 네트워크 패킷이 들어가게되면 NAT에선 어떤 사설 IP에게 들어온 패킷인지 판단하여 해당 사설 IP로 패킷을 보내주게된다. 라우터에 NAT기능이 포함되어있고, 우리가 흔히 볼 수 있는 NAT 라우터는 인터넷 공유기이다. 가상 네트워크에서는 호스트 pc로부터 IP를 할당받기 때문에 가상머신이 자체적으로 DHCP Server를 통해 내부 네트워크 대역을..
도커란 무엇일까? [도커란?] 도커란, 컨테이너 기술을 기반으로 한 일종의 가상화 플랫폼이다. 가상화란 물리적 자원인 하드웨어를 효율적으로 활용하기 위해서 하드웨어 공간 위에 가상의 머신을 만드는 기술이고, 컨테이너란 프로세스를 격리해 독립된 환경을 만드는 기술이다. [컨테이너란?] 컨테이너는 베이스 환경의 Host OS를 공유하면서 필요한 프로세스만 격리하는 방식이다. 커널을 공유하기 때문에 호스트의 OS 기능을 모두 사용할 수 있다. 컨테이너 위에서는 호스트 OS와 다른 OS를 구동할 수 없다는 단점이 있지만, 격리시킬 애플리케이션과 거기에 필요한 파일이나 특정 라이브러리 등 종속 항목만 포함하기 때문에 배포를 위해 생성되는 이미지 용량이 작다. [이미지란?] 가상 머신이나 컨테이너 또는 프로그램을 실행하는데 필요한 ..
[Java] Collection이란? 1. Collection이란? 자바 collection은 많은 데이터 요소를 효율적으로 관리하기 위한 자료구조를 말하며, 이들을 묶어 그룹화한 객체이다. = 데이터를 저장하는 자료구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해놓은 것이다. 자바 버전 8부터 도입되었고, ArrayList, LinkedList, HashMap 등이 여기 포함된다. 2. Collection의 종류 컬렉션의 종류는 ArrayList, LinkedList, Vector, Stack, HashSet, TreeSet, HashMap, TreeMap 등이 있으며, 아래와 같은 자료구조 유형에 따라 구분된다. 자바 컬렉션 프레임워크는 몇 가지 인터페이스를 통해 다양한 컬렉션을 이용할 수 있도록 하는데, 크게 3가지 타입으..
[Java ] JVM, JRE, JDK 차이점 자바 개발을 하면 JVM, JRE, JDK에 관해 많이 들어봤을거다! 자바의 특징을 짧게 정리하고, 이 3가지에 대해 알아보자. 😊 1. 자바는 플랫폼에 독립적이다? 프로그래밍 언어는 기본적으로 [컴파일]되는 언어와 [인터프리트]되는 언어로 나누어진다. [컴파일 언어]는 프로그래밍 언어로 코드를 짜고 나서 실행 전에, 컴퓨터가 이해할 수 있는 언어로 번역 작업을 해서 미리 가지고 있다. [인터프리트 언어]는 코드를 컴퓨터에 그대로 전달하고, 인터프리터가 실시간으로 통역을 한다. 자바와 C계열등의 언어들은 컴파일 언어에 속하는데, 자바는 기존 컴파일 언어들과 차이점이 있다! 컴퓨터도 종류마다 쓰는 언어가 다른데 (ex. 윈도우, 맥, 리눅스 등) 기존 컴파일 언어들은 번역본을 따로 컴파일하여 다르게 보내야..
[Spring boot] 스프링부트의 어노테이션들 스프링부트에서 사용되는 어노테이션들을 알아보자! 1. Annotation이란? 코드 사이에 주석처럼 쓰이며 특별한 의미, 기능을 수행하도록 하는 기술이다. 어노테이션의 용도 1) 컴파일러에게 코드 작성 문법 에러 체크 2) 소프트웨어 개발 툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보 제공 3) 실행시(런타임시) 특정 기능을 실행하도록 정보 제공 2. @ComponentScan @ComponentScan 어노테이션은 @Component 어노테이션 및 streotype(@Service, @Repository, @Controller) 어노테이션이 부여된 class들을 자동으로 scan하여 bean으로 등록해주는 역할을 한다. config 등 설정 파일에서 주로 사용한다. 위 코드에서는 @Conf..
[자료구조] 메모리 구조 1. 코딩 실행 파일 동작 방식 1) 개발을 할 때 C, C++, Java 등의 언어들을 이용하여 코딩을 하고 실행파일로 만든다.(ex. .exe 파일 등 ) 2) 이러한 실행파일을 사용자는 클릭을 하는 등의 방법으로 실행한다. 3) 메모리에 로드되면서 코드에서 작성한 동작에 따라 메모리에 데이터들을 쓰고 읽게되는데 이는 운영체제가 해준다. 운영체제가 프로그램의 정보들을 읽고 메인 메모리에 공간을 할당해주고, 프로그램의 코드(변수, 함수 등)을 메모리에 읽고 쓰면서 동작을 하게 된다. 2. 메모리 구조 낮은 주소를 갖는 순서대로 나열하였다. [TEXT] 코드를 실행하기 위해 저장되어있는 영역이다. 흔히 코드 영역이라고 하는데 프로그램을 실행시키기 위해 구성되는 것들이 저장되는 영역이다. 명령문들이 저장된..
[Algorithm] 자료형의 크기 1. 정보 단위 1) 비트 컴퓨터가 이해하는 가장 작은 정보 단위로 0과 1을 나타낸다. 1비트는 0과 1, 두 가지 정보를 표현할 수 있다. 2) 바이트 8개의 비트가 묶인 단위이다. 표현할 수 있는 정보량은 2^8 (256)개이다. - 킬로바이트 (KB): 1바이트를 1,000개 묶은 단위 - 메가바이트 (MB): 1킬로바이트를 1,000개 묶은 단위 - 기가바이트 (GB): 1메가바이트를 1,000개 묶은 단위 - 테라바이트 (TB): 1기가바이트를 1,000개 묶은 단위 2. C/C++, JAVA에서 자료형 종류에 따른 범위 자료형 자료형의 크기 자료형의 범위 char, signed char 1바이트 = 8비트 -128 ~ 127 unsigned char 1바이트 = 8비트 0 ~ 255 shor..
[Elastic Search ] Logstash - mysql 연동하기 mysql의 데이터를 사용해서 elastic search에서 검색을 하기 위해서는 elastic search 에 우리의 데이터베이스에 있는 데이터들을 담는 작업을 따로 해줘야한다. 그리고 elastic search와 database를 일정 간격으로 동기화해주는 작업은 필수이다! 이를 위한 도구로서 logstash를 사용할 것이다. logstash가 무엇인지는 아래 링크 참고하자. [Elastic Search] ELK 로컬환경에 설치하기, 버전 변경하기 (for MAC) 검색 시스템을 구축하기 위해 먼저 ELK Stack 환경을 구성하려고한다. (ELK는 Elastic Search와 Logstash, Kibana를 앞글자만 딴 단어이다.) 스럽 ELK Stack 구성 Java 11 Elastic Searc..