Java(33)
-
Spring boot jar 파일 실행시 profile 적용
기존에 제가 담당하던 시스템을 매우 Legacy한 시스템입니다.최근에 spring boot를 적용하고 생성된 jar 파일을 실행시키는데 profile이 제대로 적용되지 않는 상황이 발생했습니다.여러 자료들을 찾아보니 jar 파일을 실행새키면서 profile을 적용하는 방법은 총 2가지가 있었습니다.Java System Propertiesjava -jar -Dspring.profiles.active={프로파일} 파일위치 java option현 구조에서 주의해야할 사항은 -Dspring.profiles.active 옵션이 파일 위치보다 앞에 있어야 합니다. 만약 그렇지 않다면 실행시 profile을 인식하지 못 합니다.Program Argumentsjava -jar 파일 위치 --spring.profiles..
2024.12.21 -
Stream 사용시 주의사항
Stream 재사용 문제 IntStream stream = IntStream.of(1, 2, 3); stream.forEach(x -> System.out.println(x)); //첫번째 stream 사용 stream.forEach(x -> System.out.println(x)); //두번째 stream 사용 stream은 오직 한번만 소비할 수 있기 때문에 두 번째 사용할 경우 IllegalStateException이 발생할 수 있습니다. Stream의 동작 순서 Arrays.stream(new String[] {"c", "python", "java"}) .filter(word -> { System.out.println("filter method : " + word); return word.leng..
2023.07.05 -
Java 17
switch의 pattern matching Java의 표현력을 향상시키기 위해 아래와 같은 예시로 switch문의 pattern matching 기능을 강화했습니다. static record Human (String name, int age, String profession) {} public String checkObject(Object obj) { return switch (obj) { case Human h -> "Name: %s, age: %s and profession: %s".formatted(h.name(), h.age(), h.profession()); case Circle c -> "This is a circle"; case Shape s -> "It is just a shape"; c..
2022.08.23 -
String Pool
String의 생성방식 new 연산자를 이용한 방식 new를 통해 String을 생성하면 Heap Memory 영역에 존재하게 됩니다. 리터럴을 이용한 방식 String Pool이라는 영역에 존재하게 됩니다. String Pool의 개념 String Pool이란 Java Heap Memory에 있는 String 데이터 저장소입니다. 위의 그림을 통해 다음과 같은 사실을 알 수 있습니다. 리터럴로 생성한 String 객체는 String Pool에 들어갑니다. 리터럴로 생성한 객체의 값(ex. "Cat")이 이미 String Pool에 존재한다면, 해당 객체는 String Pool의 reference를 참조합니다. new 연산자로 생성한 String 객체는 같은 값이 String Pool에 존재하더라도 별개..
2022.07.22 -
Java 11
추가된 기능 새로운 HTTP Client 추가 새로운 HTTP Client가 추가되었습니다. 새로운 HTTP Client는 성능적으로 개선되었고, HTTP/1.1과 HTTP/2 프로토콜을 모두 지원하고 있습니다. HttpClient httpClient = HttpClient.newBuilder() .version(HttpClient.Version.HTTP_2) .connectTimeout(Duration.ofSeconds(20)) .build(); HttpRequest httpRequest = HttpRequest.newBuilder() .GET() .uri(URI.create("http://localhost:" + port)) .build(); HttpResponse httpResponse = http..
2022.01.06 -
Spring MVC
Spring MVC란 Spring MVC란 Front Controller Pattern에 기초한 웹 MVC 프레임워크입니다. Spring MVC는 Model, View, Controller를 명확한 클래스로 분할하고 losse coupling 시켜놓아서 매우 유연하고 확장성이 좋게 만들어 놓았습니다. Spring MVC의 구성요소 DispatcherServlet Spring MVC가 Front Controller Pattern에 기반하고 있는데 바로 그 Front Controller가 DispatcherServlet입니다. DispatcherServlet은 클라이언트의 모든 요청을 접수합니다. 그리고 받아들인 요청에 대한 처리를 다른 컴포넌트들에게 보내서 위임하고 있습니다. Infrastructure C..
2021.11.02