반응형

분류 전체보기 406

Spring Boot Logging 이란? (log4j, logback, log4j2)

Log, Logging이란? 로깅(logging)이란 시스템 동작시 시스템의 상태와 작동 정보를 시간의 경과에 따라 기록하는 것을 말합니다. 그리고 그 기록을 로그라고 합니다. 로깅을 하는 이유는 소프트웨어의 동작 상태를 파악하고 문제가 발생했을 때, 그 동작을 파악해 소프트웨어의 문재를 찾아내고 해결하기 위해서 입니다. 즉, 소프트웨어의 디버깅이나 모니터링을 위하여 정보를 기록하는 곳에 사용되는데 기존의 Debugger나 println에 비해 로그가 가지는 장점은 아래와 같습니다. 상황별 Level 지정하여 Level별 메시지를 선택 가능 응용 프로그램의 실행에 대한 흐름과 에러 확인 가능 프레임워크를 이용하여 간단하고 쉬운 사용 환경 조성 기능 모듈 별로 유연하게 메세지 출력 가능 자유로운 출력 위치..

런타임 Run Time, 컴파일 타임 Compile Time 차이점

런타임 Run Time, 컴파일 타임 Complie Time 런타임과 컴파일 타임은 소프트웨어 프로그램 개발의 단계를 나타내는 프로그래밍 용어입니다. 프로그램을 만들기 위해 개발자는 프로그램이 작동하는 방식을 정의하는 소스코드를 작성합니다. 이 소스코드가 실행 가능한 프로그램이 되려면 컴퓨터가 인식할 수 있는 기계어로 컴파일 되어야 합니다. 컴파일은 일반적으로 사람이 이해하기 쉬운 자연어 형태(고수준 언어)를 기계어, 어셈블리어(저수준 언어)로 번역하는 것인데, 이렇게 컴파일이 진행되는 과정을 컴파일 타임(Compile Time)이라고 합니다. 그리고 이렇게 컴파일 된 프로그램을 사용자가 실행할 수 있습니다. 정상적으로 컴파일 된 응용 프로그램이 실행 중일 때를 런타임(Run Time)이라고 합니다. 런..

Programming/Web 2021.08.24

String class가 final인 이유, String의 불변성 (Immutable)

Java의 final에 대해 공부하면서 String class가 대표적인 final class라는 것을 알게 되었고, String class가 final으로 정의된 이유가 궁금하여 찾아보게 되었습니다. Java String String str1 = new String("Hello"); // new 연산자를 통해 객체 생성 String str2 = "Hello"; // 리터럴 형태로 바로 할당 java에서 문자열(String) 타입의 특징은 참조 타입임에도 불구하고 직접 new 연산자를 통해 객체를 생성하는 방법이 아닌, 문자열 리터럴 형태로 사용하는 것이 허용된다는 것입니다. String의 불변성 (Immutable) String 객체는 최초 한 번 생성되면 절대로 그 값이 변하지 않습니다. String..

Programming/Java 2021.08.24

Static, Stack, Heap / Java 메모리 영역의 구조와 특징

Java를 사용하면서 알아야 할 메모리 구조 및 특징에 대해서 정리합니다. (Static, Stack, Heap) 먼저 프로그램을 구동하기 위해서는 운영체제(OS)가 메모리(RAM)에 데이터 및 명령어를 저장할 공간을 할당하여 줍니다. 메모리는 컴퓨터에 있어 가장 핵심이 되는 부품이고, CPU가 처리할 데이터가 임시로 저장되는 공간입니다. 동작은 하드디스크에 저장된 데이터가 메모리에 올라가서 실행되며, 메모리(RAM)를 주 기억 장치라고 부릅니다. 메모리는 사용할 수 있는 공간이 한정되어 있기 때문에 어떻게 관리하느냐에 따라서 프로그램의 성능(속도 등)이 좌우됩니다. 따라서 Java 어플리케이션에서 메모리를 효율적으로 사용하기 위해서는 메모리 구조와 특징에 대해 이해할 필요가 있습니다. 1. Static..

Programming/Java 2021.08.23

Spring Boot Redis 두 가지 사용 방법 RedisTemplate, RedisRepository

https://wildeveloperetrain.tistory.com/21 Redis란? 레디스의 기본적인 개념 (인메모리 데이터 구조 저장소) Redis란? Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템 (DBMS)입니다. 데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리 wildeveloperetrain.tistory.com 인메모리 데이터 저장소 Redis 기본 개념에 대한 포스팅입니다. Spring Boot Redis 사용 방법 (RedisTemplate, RedisRepository) * Redis 설치 이후 진행과정입니다. Spring Boot에서는 Spring Date Redis를 통해 Lettuce, Jedis라..

iphone13 망고 오렌지 유출 이미지, iphone13 출시 예정일

지난 13일 대만의 한 매체에서 공개된 아이폰 13 망고오렌지 컬러 사진입니다. 해당 사진은 중국의 IT 블로거가 웨이보를 통해 공개한 것인데요. 이번에 출시될 iphone13의 색상은 펄, 로제, 선셋 골드, 스카이블루, 매트 블랙 등 새로운 색상이 다양하게 출시 될 것으로 예상되고 있습니다. 아이폰 12로 역대 최대 실적을 내고 있는 애플의 다음 신작인 아이폰13 출시 예정일이 가까워지고 있습니다. 애플은 아이폰 13에 사용될 새로운 A15 칩을 기존 계획보다 늘려 주문했다는 소식이 있습니다. 2021년 9월 출시 예정인 아이폰 13은 카메라 홀이 더 커지고 두꺼워지며, 노치가 줄어들어 출시될 거라는 예상과 충전 단자가 없어질 것이라는 예상도 나오고 있습니다. 성능적으로 좋은 소식은 동일한 크기를 유..

IT Info 2021.08.22

Java 빌더 패턴 (Builder Pattern)이란?

Java 빌더 패턴 (Builder Pattern) 이란? Java에서는 클래스를 객체화하는 '점층적 생성자 패턴', '자바 빈즈 패턴', '빌더 패턴' 3가지 패턴이 존재합니다. https://wildeveloperetrain.tistory.com/29 (Java) 점층적 생성자 패턴 & 자바 빈즈 패턴 프로그래밍에서 Class를 설계하다 보면, 필수로 받아야 할 인자와 선택적으로 받아야 할 인자가 구분됩니다. 그리고 Java에서는 이렇게 설계된 다양한 형태의 Class들을 객체화하는 3가지 패턴이 존 wildeveloperetrain.tistory.com 이전 포스팅의 점층적 생성자 패턴, 자바 빈즈 패턴에 이어 점층적 생성자 패턴의 안전성과 자바 빈즈 패턴의 가독성을 더한 빌더 패턴 (Builder..

Programming/Java 2021.08.22

(Java) 점층적 생성자 패턴 & 자바 빈즈 패턴

프로그래밍에서 Class를 설계하다 보면, 필수로 받아야 할 인자와 선택적으로 받아야 할 인자가 구분됩니다. 그리고 Java에서는 이렇게 설계된 다양한 형태의 Class들을 객체화하는 3가지 패턴이 존재합니다. '점층적 생성자 패턴', '자바 빈즈 패턴', '빌더 패턴' 먼저 점층적 생성자 패턴 (Telescoping Constructor Pattern)과 자바 빈즈 패턴 (Java Beans Pattern)을 알아보고, 다음으로 점층적 생성자 패턴의 안전성과 자바 빈즈 패턴의 가독성을 더한 빌더 패턴 (Builder Pattern)에 대해서 알아보겠습니다. 점층적 생성자 패턴 (Telescoping Constructor Pattern) 이란? public class Member { private Str..

Programming/Java 2021.08.21

Out of range value for column Exception (@Enumerated)

could not execute query; Out of range value for column JPA를 사용하여 데이터를 Insert 하는 과정에서 발생한 Exception입니다. 'out of range value for column' 에러는 insert 하는 값이 해당 컬럼 데이터의 타입과 불일치하는 문제가 있을 때 발생합니다. 아래의 경우는 enum type을 사용하며 발생했습니다. @Builder @Getter @AllArgsConstructor @Entity public class Transaction { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long idx; private String tid; private Tra..

Programming/Error 2021.08.20

IntelliJ 개발환경 꾸미기 Plugins 소개 (Meterial Theme UI, Progress Bar 외)

플러그인을 사용한 IntelliJ 개발 환경 꾸미기 Plugins 소개입니다. 사용한 Plugins은 다음과 같습니다. Material Theme UI Atom Material Icons Progress Bar Power Mode 2 플러그인은 Preferences -> Plugins -> Marketplace 에서 검색을 통해 찾아서 다운 받을 수 있습니다. plugins Mac : Command + Shift + A Windows Ctrl + Shift + A 가장 먼저 Material Theme UI 입니다. 색상 및 폰트 등, 전체적인 IntelliJ 색상 및 분위기를 바꿀 수 있는 꾸미기에 가장 큰 영향을 주는 플러그인 입니다. * theme는 위 테마 외에도 많은 색상이 있고, custom 테..

반응형