자바

부트캠프/우아한테크코스 6기

[Java] Java 반복 작업 수행 시, For-Loop와 Stream 사이 성능 비교

미션 도중 생긴 고민 💭 public Cars(List carNames) { ArrayList cars = new ArrayList(); for (String carName : carNames) { cars.add(new Car(carName)); } this.cars = cars; } Cars 객체를 생성할 때, List형태의 carNames를 입력받은 뒤, For-Loop 문을 통해 cars 필드를 초기화 해주었다. 하지만 For-Loop문을 생성자 로직에 적용하니 개인적으로 생성자 로직이 지저분하다는 생각이 들었다. 때문에 Stream을 사용하여 짧고 가독성있는 코드로 리팩토링하여 사용하고자 하였다. 그리고 이때 머릿속에 한가지 고민이 생겼다 🤔 미션의 요구사항에 자동차의 수는 제한이 없는데, 그럼..

부트캠프/우아한테크코스 6기

[Java] 자바에서 라인을 ‘잘’ 개행하는 방법

자바에서의 개행 📃 본인은 보통 자바의 문자열 내에서 라인을 개행할 때 아래와 같이 개행하곤 했다. System.out.println("안녕하세요\\n"); 그러던 중, 조원과의 대화를 통해 놓치고 있던 부분에 대한 하나의 인사이트를 얻게 되었다. 그건 바로 개행 문자는 OS별로 상이하다는 점이다. 이전에 대학 강의에서 배웠던 것이 어렴풋이 기억이 나긴 하지만 정확히는 기억이 나질 않아 찾아보았고 그 결과 개행 문자가 3종류나 존재하고 있으며, OS 별로 상이한 경우도 존재함을 알 수 있었다. 개행문자 종류 CRLF(\r\n), CR(\r), LF(\n) Windows 운영체제: CRLF(\r\n) Unix 계열: LF(\n) Mac: CR(\r) 이후 Macintosh: LF(\n) 🧐 그럼 \n 없이..

부트캠프/우아한테크코스 6기

[우테코] LinkedHashMap을 통한 기초 캐싱

🧐 캐싱 방식 사용 시에 메모리 사용량을 최소화하는 방법은 무엇일까? @Test @DisplayName("메모리 사용량을 최소화하는 방법은 무엇일까?") void 메모리_사용량을_최소화하는_방법은_무엇일까() { // TODO: 메모리 사용량을 최소화하는 방법을 고민 후 개선해보세요. record Position(int value) { private static final Map CACHE = new ConcurrentHashMap(); public static Position startingPoint() { return valueOf(0); } public static Position valueOf(final int value) { return CACHE.computeIfAbsent(value, Pos..

Language/JAVA

[JAVA] Map, Stream - Boolean값이 true인 value의 key 반환받기

😲 자바 Boolean값이 true인 value의 key 반환받기 코드를 짜다보면 boolean값을 여러 개 가진 객체에서 true값을 가진 변수만 추출해야 하는 경우가 종종 있다. 나는 이번에 참가한 서울시 IoT 해커톤에서 위와 같은 기능을 구현해야 했었다. 하지만 이를 효율적인 코드로 구현하는 방법을 몰랐기에 if문을 boolean변수의 수만큼 사용하여 true인 데이터의 변수명을 List에 저장하도록 구현했다. 문제의 DTO @Getter @Setter public class AmenityRequestDto { private boolean elevator; // 엘리베이터 private boolean wideExit; //넓은 출입구 private boolean ramp; // 경사로 privat..

Language/JAVA

[JAVA] 자바 JVM, JRE, JDK 차이

Java 프로그램 작성법 1. IDE를 통해 *.java 파일 작성 2. javac.exe를 사용해 *.java 파일 컴파일하여 *.class 생성 3. java.exe를 사용해 컴파일된 *.class 파일 실행 JVM JVM은 자바 가상머신(Java Virtual Machine)의 약자이다. JVM은 자바 소스코드로부터 만들어지는 자바 바이너리 파일(.class)을 실행할 수 있다. 또한 JVM은 플랫폼에 의존적이다. 즉 리눅스의 JVM과 윈도우즈의 JVM은 다르다. 단, 컴파일된 바이너리 코드는 어떤 JVM에서도 동작시킬 수 있다. JVM은 다음과 같은 역할을 한다. 바이너리 코드(이진 코드)를 읽는다. 바이너리 코드(이진 코드)를 검증한다. 바이너리 코드(이진 코드)를 실행한다. 실행환경(Runti..

스터디

[SpringBoot] 스프링 파일 사이즈 제한 오류 - FileSizeLimitExceededException

스프링에서 MultipartFile을 처리하는 과정에서 이러한 오류 메세지가 나타는 경우가 있다. http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes. 스프링부트에서 1MB 보다 작은 파일은 상관없지만 1MB보다 큰 파일을 다루기 위해선 application.properties 설정이 불가피하다. 해결 방법 방법은 간단하다. 우선 스프링부트 2.0.0 이상 버전을 사용한다면 application.properties 에 이렇게 작성하면 된다. application.properties spring.servlet.multipart...

PgmJUN
'자바' 태그의 글 목록