HashMap은 기존 컬렉션 아래에, ConcurrentHashMap은 동시성 컬렉션 아래에 있는 클래스이다. 이 외에도 다음과 같은 다양한 차이점들이 존재한다. ✔️ HashMap은 기본적으로 동기화되지 않는다. 즉, HashMap은 Thread-safe하지 않다. ✅ 반면 ConcurrentHashMap은 Thread-safe하다. (Thread-safe한 코드는 많은 쓰레드가 동시에 실행하는 경우에도 작동하는 코드이다.) ✔️ HashMap은 기본적으로 동기화되지 않고 여러 쓰레드가 동시에 수행될 수 있기 때문에 상대적으로 성능이 좋다. ✅ 그러나 ConcurrentHashMap은 때때로 대기하는 쓰레드가 발생하기 때문에 ConcurrentHashMap의 성능이 낮은 경우도 있다. ✔️ 하나의 쓰레..
Switch-case 문법 // switch문 switch(expression) { // case문 // value는 expression의 데이터 타입과 동일하여야 한다. case value1 : statements; break; // (옵션) // -> break를 만나는 경우 switch문을 탈출한다. break문이 없으면, 아래의 조건들이 모두 실행된다. case value2 : statements; break; // (옵션) // default문 // 모든 조건에 맞지 않는 경우 실행된다. default : statements; } 1. 중복된 case 값은 허용하지 않는다. 2. case의 값은 switch() 에 들어가는 변수와 동일한 데이터 타입이어야 한다. 3. case의 값은 상수 또는 ..
자동 형변환 자동 형변환은 표현 범위가 좁은 데이터 타입에서 넓은 데이터 타입으로의 변환만 허용된다. double a = 10.0F; // (가능) double형보다 표현 범위가 좁은 float형을 담으므로, 자동 형변환이 일어난다. float a = 3.0; // (불가능) float형보다 표현 범위가 넓은 double형을 담으려고 하면, 오류가 발생한다. cf. 자바에서는 기본적으로 상수값도 데이터 타입을 가지고 있다. 실수 float형을 표현하고 싶다면 숫자 뒤에 F를 명시해줘야하며, F를 명시하지 않는 경우 기본 데이터 타입은 double이 된다. 자동 형변환이 일어날 수 있는 규칙은 다음과 같다. byte -> short -> int -> long -> float -> double char ->..
[예제로 배우는 스프링 입문] 3. 프로젝트 살펴보기를 보고 학습한 내용을 기록. 프로젝트 살펴보기 ✔️ 프로젝트 살펴보기 spring-projects/spring-petclinic A sample Spring-based application. Contribute to spring-projects/spring-petclinic development by creating an account on GitHub. github.com 일반적인 메이븐 프로젝트 구조를 따른다. 스프링부트 프로젝트 기반으로 만들어져 있다. (@SpringBootApplication -> 간단하게 메인 애플리케이션 실행 가능, 내장톰캣 동작, 자동 설정 동작 등.. 많은 것을 직접 설정하지 않아도 손쉽게 실행이 가능해진다.) 도커 관..
[예제로 배우는 스프링 입문] 2. 예제 프로젝트 준비를 보고 학습한 내용을 기록. 예제 프로젝트 준비 ✔️ 프로젝트 소개 스프링 프레임워크를 사용해서 동물병원을 예제로 만든 아픈 동물 등록, 주인 등록, 예약 등을 할 수 있는 간단한 웹 애플리케이션이다. spring-projects/spring-petclinic A sample Spring-based application. Contribute to spring-projects/spring-petclinic development by creating an account on GitHub. github.com ✔️ 프로젝트 클론 위 프로젝트를 클론한다. (git@github.com:spring-projects/spring-petclinic.git) 커맨드..
우선 왜 IntelliJ IDEA를 사용해야하는가? 자세한 내용은 아래 공식 링크에서 확인할 수 있다. https://www.jetbrains.com/ko-kr/idea/features/#deep-insight-into-your-code *심도 있는 코드 분석* IntelliJ IDEA는 코드를 분석하여 전체 프로젝트 파일과 언어에 있는 심볼 사이의 연결을 찾아낸다. (스마트 완성, 체인 완성, 정적 멤버 완성) 이 정보를 이용해 강력한 코딩 지원, 빠른 탐색, 스마트한 오류 분석, 리팩토링을 제공한다. *인체 공학적인 개발 환경* IntelliJ IDEA는 모든 기능이 인체 공학적 측면을 염두에 두고 설계되었다. 개발자가 작업 흐름의 매 순간이 가치 있으며 이러한 흐름을 깨는 요소는 좋지 않으므로 차단..
먼저 Java는 기본으로 설치되어 있어야 한다. 아래 커맨드를 통해 설치 여부를 확인할 수 있다. $ java -version 1. Maven 설치 및 확인 $ brew install maven $ mvn -version Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Spring Boot dependencies는 org.springframework.boot groupId 를 이용한다. Maven POM 파일은 일반적으로 spring-boot-started-parent 프로젝트로부터 상속받으며, 하나 이상의 "Starters"에 dependencies를 선언한다. Spring Boot는 실행가능한 jars를 생성하기 위한 옵셔널한 Maven ..