Effective Java 3/E를 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 똑같은 기능의 객체를 매번 생성하기보다는 객체 하나를 재사용하는 편이 나을 때가 많다. String 객체 String은 보통 객체를 생성하지 않고, 리터럴을 이용해 값을 초기화한다. 왜 String은 참조형인데 new를 통한 객체 생성이 아닌 리터럴을 이용하는걸까? public class StringTest { @Test void equalsTest1() { String str1 = new String("abc"); String str2 = "abc"; // 테스트 실패! assertTrue(str1 == str2); } @Test void equalsTest2() ..
Effective Java 3/E를 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 의존(dependency)이란? 클래스 혹은 라이브러리 등과 같이 다른 요소에 의존하여 작동하거나 사용되는 것 public class SpellChecker { private static final Lexicon dictionary = Lexicon.INSTANCE; ... public static boolean isValid(String word) { return dictionary.isContainsWord(word); } } 위 코드와 같이 SpellChecker 클래스는 Lexicon 이라는 클래스에 의존해 사용하고 있는 것을 볼 수 있다. 이처럼 현재 클래스..
Effective Java 3/E를 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 싱글톤이란? 싱글톤(singleton)이란, 인스턴스를 오직 하나만 생성할 수 있는 클래스이다. 싱글톤의 전형적인 예로는 함수와 같은 무상태 객체나 설계상 유일해야하는 시스템 컴포넌트를 들 수 있다. 무상태 객체란? 우선 상태가 있는(stateful) 클래스가 무엇인지부터 알아보는 것이 좋을 것 같다! /** * 사용자의 주문을 저장하는 클래스 * */ public class Order { private String nickname; private int price; public Order(String nickname, int price) { this.nickname..
Effective Java 3/E를 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 매개변수(parameter)란? 함수의 정의에서 전달받은 인자를 함수 내부로 전달하기 위해 사용하는 변수 public class TestCode { // int a, int b : 매개변수 static int sum(int a, int b) { return a + b; } public static void main(String[] args) { // 1, 2 : 인자 int sum = sum(1, 2); } } 왜 빌더를 고려할까? 아래 패턴들을 통해 빌더 패턴을 사용하는 이유에 대해 알아보자! 점층적 생성자 패턴 생성자의 선택 매개변수를 점층적으로 늘려나가 최종적으..
Effective Java 3/E를 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 정적 팩터리 메서드 정적(static)이란 뭘까? Java를 처음 공부하면서 느낀 것은 main() 함수가 정말 길다는 것이다. public class TestClass { public static void main(String[] args) { } } Java를 공부하기 전에 C, C++을 공부했지만, static이라는 키워드를 처음봐서 생소했다. 간단하게 아래 코드를 통해 우리가 흔히 사용하는 기능 중에 static이 있는지 확인해보자. public class TestClass { @Test @DisplayName("1) 문자열을 정수형으로 변환") void pa..
개발 환경 💻 OS : M1 Mac Ventura 13.1 🍃 Spring : Spring Boot 2.7.7 🛠️ Java : Amazon corretto 17 📦 Stack : AWS S3, EC2(Amazon Linux) 💬 상황 설명 로컬 환경에서 S3에 이미지를 업로드할 때에는 문제가 없었지만, EC2 배포 환경에서는 이미지를 업로드가 실패하는 에러가 발생했다. View 단에서 로그를 찍어보니 아래와 같은 에러가 발생하였고, EC2에서 Spring 로그를 보니 API 요청도 가지 않는 상황이었다. Request Entity Too Large 🔎 원인 분석 우선 크기에 문제가 있는지 확인하기 위해 업로드 되는 최대 용량을 확인해보았다. 왜인지 상황마다 다르긴했지만 1MB 이하는 모두 정상적으로 올..