본문 바로가기

전체 글15

Java의 불필요한 객체 생성 피하기 같은 기능의 객체를 매번 생성하는 것보다는 객체 하나를 생성해서 재사용하는 것이 메모리 양과 속도 측면에서 좋다. 예를 들어 다음의 String 생성을 예로 들 수 있다. // 1. String 생성자 이용 String str = new String("test"); // 2. 문자열 상수를 이용해 생성 String str = "test"; 위의 코드가 실행될 때마다 1번 같은 경우는 매번 String 객체를 생성한다. 같은 기능을 하는 객체이지만 매번 쓸데없는 String 객체가 생성된다는 단점이 있다. 그에 반해 2번은 "test"라는 String 객체를 하나 생성해두고 계속 같은 객체를 이용하게 한다. (2번의 자세한 설명이 필요하다면 https://devlog-wjdrbs96.tistory.com/.. 2022. 4. 3.
static method를 담은 Utility 클래스의 인스턴스화(객체 생성) 문제 공통화된 함수들의 작성이 필요할 때, static method만을 추가한 Utility 클래스를 만들때가 있습니다. 이 Utiility 클래스의 경우에는 static method만을 담고 있어 굳이 객체를 만들지 않고도 다음과 같이 사용할 수가 있습니다. public class Main { public static void main(String[] args) { System.out.println(Utility.add(1, 2)); } } class Utility { public static int add(int a, int b) { return a + b; } } 그러나 이 Utility 클래스의 단점은 개발자는 의도하지 않았지만 사용자가 Utility 클래스를 생성할 수 있다는 것입니다. Utility.. 2022. 4. 3.
Spring GCP Credentials 파일 여러개 적용하는 방법 Spring에서는 GCP를 사용하고자 할때 credentials.json 파일을 property로 입력하여 사용합니다. 하지만 여러개의 credentials 파일을 사용하여 GCP를 사용하는게 불가능한데요. (음 제가 그냥 모르고 있는 건지도...) 오늘은 여러개의 GCP Credentials 파일을 적용하는 방법에 대하여 알아보겠습니다. 사실 여러개의 권한을 가지는 credential 계정을 발급받으면 되지만,,, 그냥 한번 들여다 봤습니다. GCP 예제는 사용하시는 분이 많으신지는 모르겠지만, 제가 사용하던 BigQuery를 기준으로 설명하겠습니다. 1. GCP의 기본 설정 및 BigQuery 예제 기본적으로 GCP credentials 는 위의 코드처럼 설정합니다. package com.exampl.. 2022. 3. 7.
Spring Boot의 Embedded Tomcat Spring Boot의 spring-boot-starter-web 모듈에 기본으로 포함되어 있는 embedded tomcat WAS(Web Application Server)에 대하여 알아보겠습니다. 기본적으로 Spring Boot에서 사용하는 Apache Tomcat은 Apache Web Server + Tomcat Server로 구성되어 있습니다. WAS vs Web Server Web Server 우선 WAS와 Web Server의 차이점부터 알아보겠습니다. Web Server는 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html, .jpg, .css, ...)를 제공하는 서버를 의미합니다. 즉 Web Server는 서버가 가지고 있는 특정 자원만을 반환하는 역할을 합니다. WAS WAS.. 2021. 6. 24.