
EC2 인스턴스 생성하기에 이어서 MobaXterm을 이용하여 EC2에 접속해보자. [AWS] EC2 인스턴스 생성하기 Amazon EC2 란? Elastic Compute Cloud 줄여서 EC2 EC2는 AWS에서 제공하는 클라우드 컴퓨팅 서비스다. EC2를 이용하면 하드웨어에 투자하여 서버를 구축할 필요없이 애플리케이션을 개발하고 배포할 수 있다 barbera.tistory.com MobaXterm 이란 ? MobaXterm이란 원격 SSH(Secure Shell) 접속을 지원하는 프로그램이다. SSH 란 ? 시큐어 셸(Secure SHell, SSH)은 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그..

Amazon EC2 란? Elastic Compute Cloud 줄여서 EC2 EC2는 AWS에서 제공하는 클라우드 컴퓨팅 서비스다. EC2를 이용하면 하드웨어에 투자하여 서버를 구축할 필요없이 애플리케이션을 개발하고 배포할 수 있다. 원하는 수의 가상 서버를 구축하고 보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있다. 또한 요구사항에 따라 EC2의 확장과 축소를 쉽게 처리할 수 있다는 장점이 있다. AMI 란? Amazon Machine Image(AMI)는 소프트웨어 구성이 기재된 템플릿이다(예: 운영체제, 애플리케이션 서버). AMI에서 인스턴스를 바로 시작하실 수 있는데, 이 인스턴스는 AMI의 사본으로, 클라우드에서 실행되는 가상 서버이다. 다음 그림과 같이, 한 AMI로 여러 인스턴스를 ..
Java의 HashMap과 HashTable이 어떻게 동작하며 성능이 어떠한지 공부하던중 엄청 자세한 글을 찾았다. Java HashMap은 어떻게 동작하는가? 해당 글은 위의 글을 기반으로 내가 이해한 내용들을 정리한 글이다. 연관배열 (Associative array) 연관배열이란 키(key) 1개와 값(value) 1개가 1:1로 연관되어 있는 자료구조이다. 해시테이블 (Hash table) 해시테이블은 Hash를 이용하여 연관배열을 구현한 자료구조 이다. 해시함수를 사용하여 키를 해시값으로 매핑하고, 이 해시값을 인덱스 혹은 주소 삼아 데이터의 값(value)을 키와 함께 저장하여 검색을 빠르게 하기 위한 자료 구조이다. Hash가 뭔데 ? Hash(hash code)를 이해하기 위해서는 Key,..

Devtools란 ? devtools는 Spring boot에서 제공하는 개발 편의를 위한 모듈이다. 개발을 하다보면, 코드 수정시 브라우저에서 보여주는 내용도 수정하려면 어플리케이션을 재시작해야 하기 때문에 불편한 점이 많은데 devtools를 이용하면 이러한 불편한 점을 해결할 수 있다. 크게 아래의 5가지 기능들을 제공한다고 하는데 Property Defaults Automatic Restart Live Reload Global Settings Remote Applications 쉽게 말하면 브라우저로 전송되는 내용들에 대한 코드가 변경되면, 자동으로 어플리케이션을 재시작하여 브라우저에도 업데이트를 해주는 역할을 한다. 자주 사용하는 H2 콘솔로 예를 들면 인텔리제이에서 엔티티에 새로운 필드를 추가..

Object클래스와 equals(), hashCode(), toString() 메소드에 대해 간단하게 알아보자. 모든 클래스의 조상 Object는 java.lang패키지에 존재하는 클래스인데 import문 없이도 Object클래스를 사용할 수 있다. 모든 클래스들이 Object클래스를 자동으로 상속받기 때문이다. 그런 점에서 Object클래스는 모든 클래스의 조상이라고 할 수 있다. 그렇다면 다른 클래스를 extends로 상속받으면 다중상속이 되는것일까? 자바에서는 다중상속을 허용하지 않는다. 따라서 최상위의 부모클래스가 Object클래스를 상속받게 된다. 결국 어떠한 클래스라도 Object를 상속받게 되는 것이다. 이렇게 하면 다형성을 활용하는데 이점이 있으며, 모든 클래스가 공통으로 사용할 수 있는 ..

이전에 포스팅한 String클래스와 Constant Pool에 이어서 String, StringBuffer, StringBuilder의 차이에 대해 설명한 글이다. String vs StringBuffer vs StringBuilder Java에서는 문자열 객체를 생성하기 위해 String, StringBuffer, StringBuilder이라는 3가지 클래스를 제공한다. 세 클래스 모두 문자열을 관리하기 위한 클래스이지만 불변(Immutable)한지, Thread-safe한지에 따라 조금씩 차이가 있다. String은 불변하며, 객체를 빠르고 작은 메모리로 생성할 수 있기 때문에 메모리 관리를 효율적으로 처리할 수 있다는 장점이 있었다. 하지만 불변하기 때문에 성능이 저하되는 문제도 가지고 있다. St..

Java에서는 문자열 객체를 생성하기 위해 String, StringBuffer, StringBuilder이라는 3가지 클래스를 제공한다. 세 클래스 모두 문자열을 관리하기 위한 클래스이지만 불변(Immutable)한지, 동기화를 지원하는지에 따라 조금씩 차이가 있다. 우선 String부터 살펴보겠다. (String, StringBuffer, StringBuilder의 차이점에 대해 포스팅하려다 String 내용이 많아서 분리했다.) String은 특별하다 String클래스는 다른 클래스들과는 조금 다르다. (String is Special) Reference Type임에도 불구하고 Primitive Type처럼 사용할 수 있다. String을 초기화할때 Primitive Type처럼 직접 문자열 리터럴..
String, StringBuffer, StringBuilder의 차이에 관한 포스팅을 하면서 떠오른 클래스들이 있다. HashMap, HashTable, ConcurrentHashMap 클래스들이다. 무슨 공통점이 있을까? 각각의 클래스들의 차이를 설명하기 위해서는 Thread-safe라는 키워드가 필요하다. Thread-safe란 쉽게 말해서 멀티 스레드 환경에서 안정성을 보장한다는 것인데, 동기화를 지원한다고 보면 된다. (위키를 참고했다.) 위에서 언급한 클래스들 중에서는 String, StringBuffer, HashTable, ConcurrentHashMap이 Thread-safe하다. 멀티 스레드 환경에서 동기화문제를 신경쓰지 않아도 된다. 그렇다면 StringBuilder와 HashMap은..