![[Java, Spring] Logging, @Slf4j란 ?](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcwoDmL%2FbtsIPx9rpf9%2FuUh22ZkKHGrs78BISKPC4k%2Fimg.png)
이번에 작은 사건 사고를 겪으면서 로그를 꼭 남겨야겠구나....싶어서 로그에 대해 알아보던 중 회사 내에서 사용하고 있는 방법 중 @Slf4j 어노테이션을 통해 로그를 관리하고 있는 것을 확인 !@Slf4j 어노테이션의 코드를 이해하기 위해 먼저 Slf4j와 로깅에 대해 공부해보려고합니다 ! ❓로깅이란 ?로깅은 프로그램 동작 시 발생하는 모든 일을 기록하는 행위 입니다. 모든 일이란 서비스 동작 상태와 장애로 나눌 수 있습니다. 서비스 동작 상태에는 시스템 로딩, HTTP 통신, 트랜잭션, DB 요청, 의도를 가진 Exception 등이 있고, 장애(exception, error)로는 I/O Exception, NullPointException, 의도하지 않은 Exception 등이 있습니다. 로깅은 다..
![[Java, Spring] application.properties란 ?](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdODEoz%2FbtsIR2M2o7F%2FdReyN1psO7PTkdaDwjzFb1%2Fimg.png)
application.properties란 ?application.properties 파일은 런타임 시 다양한환경에서 동작할 수 있도록 필요한 옵션들을 제공하는데 사용됩니다.예를 들자면 메일 서버를 구축하거나 DB 종류별 설정, 로그사용 여부 등의 설정이 가능합니다. 직접 커스텀 옵션 값을 추가할 수도 있고, Spring에서 사용하는 디폴트 옵션들을 바꿀 수 있습니다.Spring Document를 통해 application.properties에서 사용한 디폴트 옵션들을 직접 확인하실 수 있습니다 ! application.properties을 사용하는 이유환경 분리application.properties을 사용하는 이유에는 다양한 이유가 있겠지만 가장 큰 이유 중 하나는 애플리케이션을 배포할 때 개발 단..
![[Java, 자바] 날짜와 시간 클래스에 대하여](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQNlC7%2FbtsIGFyCTeo%2FlbwZTMCoyt2yHn0bt3WbcK%2Fimg.jpg)
❓날짜와 시간 라이브러리가 필요한 이유날짜와 시간을 계산하는 것은 단순하게 생각하면 쉬워보이지만, 실제로는 매우 어렵고 복잡합니다.날짜와 시간 차이의 계산, 윤년의 계산, 일광 절약 시간의 변환, 타임존의 계산 등의 이유로 인해 날짜와 시간을 계산하는 것이 정~~말 어렵습니다. 강의를 보면서 하나하나 듣다보니....라이브러리를 만든 분이 정말 대단하다고 느껴졌습니다....🫠깨알지식자바 1.0 버전 시절 java.util.Date 라이브러리가 존재하였으나, 타임존 처리 부족과 날짜, 시간 연산 등을 제대로 처리하지 못하는 일이 발생했습니다. 개발자들은 자바 내부의 라이브러리가 부련해서 Joda-Time이라는 외부 라이브러리를 사용했지만 자바 표준에 포함되지 않아 프로젝트에 별도로 추가해야 되는 불편함이 ..
![[Java, 자바] Enum에 대하여](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnnXup%2FbtsIBp3e5Yx%2FBsUKCFHBeQkeJP30VvXMqK%2Fimg.jpg)
Enum이란 ?Enum은 'Enumeration'의 약자로 '열거', '목록'이라는 뜻을 가지고 있습니다. 말 그대로 관련있는 상수들의 집합이며, final로 String, int 등을 나타내는 일정 개수의 기본 자료형의 값을 고정할 수 있습니다. Enum의 장점Enum은 허용 가능한 값을 제한 할 수 있다는 장점을 가지고 있습니다. 예를 들어 매개변수로 문자열을 입력 받았을 경우 미리 선언해 놓은 값과 다른 값이 들어올 경우, 혹은 오타가 발생했을 때의 에러를 방지할 수 있습니다.또한 수정 시 변경 범위가 최소화 됩니다. 즉, 확장성을 높일 수 있고 코드가 단순해져 가독성이 좋아집니다.마지막으로 인스턴스 생성과 상속을 방지하여 상수값의 안전성이 보장된다는 장점을 가지고 있습니다. Enum 예제선언하기먼..
![[Java, 자바] Wrapper Class에 대하여](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbq8c25%2FbtsIyDVGLc3%2FoCDi5ng0Agbe0oOY5j5uq0%2Fimg.jpg)
Wrapper 클래스란 ?wrapper라는 의미는 '감싸다'라는 뜻으로 랩으로 음식을 감싸는 것을 연상할 수 있습니다.이제 궁금한건 '뭘 감싸는 거지?'하는 물음이 생기실 겁니다. 결론적으로 말하면 Primitive Type 변수를 감싸는 것입니다.이어서 'Primitive Type 변수'는 무엇인지에 대한 물음이 생기실 것입니다. Wrapper Class에 대한 자세한 내용을 알아보기 전에 Primitive Type에 대한 개념을 먼저 정리하겠습니다. Java의 데이터 타입의 종류자바에서는 데이터 타입이 크게 기본형(Primitive Type)과 참조형(Reference Type)이 있습니다.자바는 객체 지향 언어이지만 자바 안에 객체가 아닌 것이 바로 int, double 등과 같은 기본형(Primi..
![[Java, 자바] String 클래스에 대하여](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMCfgE%2FbtsIiqQnMdU%2FJjrTtvDaTK33LhzXWCiQV0%2Fimg.jpg)
String 클래스란 ?자바에서 문자를 다루는 대표적인 타입은 char, String 2가지가 있습니다.기본형인 char는 문자 하나를 다룰 때 사용하며, char를 사용해 여러 문자를 나열하려면 char[]를 사용해야합니다. 하지만 이렇게 char[]을 직접 다루는 방법은 매우 불편하기 때문에 문자열을 매우 편리하게 다룰 수 있는 String 클래스를 제공합니다.String은 클래스입니다. int, boolean 같은 기본형이 아니라 참조형입니다. 따라서 String str = new String("hello")로 인스턴스를 생성할 수 있습니다.하지만 자바에서 String 인스턴스 생성 시 String str = "hello" new 키워드를 사용하지 않고 생성할 수 있도록 설정되어있다 ! new 키워..
![[Java, 자바] 불변 객체에 대하여](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6hzRg%2FbtsIeHYEbQ8%2FqUkn8KmpkkTPSlcicbwPM0%2Fimg.jpg)
클래스를 불변으로 설계하는 이유자바에서 클래스를 불변으로 설계하는 이유는 캐시의 안정성, 멀티 쓰레드의 안정성, 엔티티의 값 타입 등 다양한 이유에서 클래스를 불편으로 설계하고 있습니다. 하지만 모든 클래스를 불변으로 만드는 것은 아닙니다.대부분 의 클래스는 값을 변경할 수 있게 만들어지는 가변 클래스가 일반 적이고, 불변 클래스는 값을 변경하면 안되는 특별한 경우에 만들어서 사용한다고 생각하시면 됩니다 !캐시, 멀티 쓰레드 등에 대해 해당 글에서 깊이 설명하지 않지만 앞으로의 포스팅을 통해 하나하나 알아가보겠습니다 :) 기본형과 참조형의 공유먼저 자바의 데이터 타입을 가장 크게 기본형(Primitive Type)과 참조형(Reference Type)으로 나눌 수 있습니다.기본형 : 하나의 값을 여러 변..
![[Java, 자바] Object클래스에 관하여](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZfuLM%2FbtsH9ehpesI%2FCy2DBpN1RzuwCrbgkTKkqk%2Fimg.jpg)
Object클래스란?먼저 Object는 java.lang 패키지의 대표적인 클래스입니다. 자바에서 모든 클래스의 최상위 부모 클래스는 항상 Object클래스입니다. 아래 그림을 보며 설명을 이어나가겠습니다.클래스에 상속 받을 부모 클래스가 없으면 묵시적으로 Object 클래스를 상속 받습니다.쉽게 이야기해서 자바가 extends Object 코드를 넣어줍니다.따라서 extends Object는 생략하는 것을 권장합니다.클래스에 상속 받을 부모 클래스를 명시적으로 지정하면 Object를 상속 받짖 않습니다.쉽게 이야기해서 이미 명시적으로 상속했기 때문에 자바가 extends Object 코드를 넣지 않습니다.묵시적(Implicit) vs 명시적(Explicit)묵시적 : 개발자가 코드에 직접 기술하지 않아..