728x90
미션 도중 생긴 고민 💭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을 사용하여 짧고 가독성있는 코드로 리팩토링하여 사용하고자 하였다. 그리고 이때 머릿속에 한가..
자바에서의 개행 📃본인은 보통 자바의 문자열 내에서 라인을 개행할 때 아래와 같이 개행하곤 했다.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 없이 어떻게..
🧐 캐싱 방식 사용 시에 메모리 사용량을 최소화하는 방법은 무엇일까? @Test @DisplayName("메모리 사용량을 최소화하는 방법은 무엇일까?") void 메모리_사용량을_최소화하는_방법은_무엇일까() { // TODO: 메모리 사용량을 최소화하는 방법을 고민 후 개선해보세요. record Position(int value) { private static final Map CACHE = new ConcurrentHashMap(); public static Position startingPoint() { return valueOf(0); } public..
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..
스프링에서 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.propertiesspring.servlet.multipart..