분류 전체보기 174

[Redis] redis에 대해

redis란?Redis는 데이터를 저장하는 서버입니다.이 서버는 데이터를 저장할 때 간단한 key-value 형태로 저장합니다. 그래서 이 값을 꺼내 쓸 때는 키를 이용해서 꺼내 쓰는 것입니다. 주로 세션 정보, 캐싱, 랭킹, 메시지 브로커 등 다양한 용도로 사용하고 있습니다. 데이터를 다루는 기능도 다양해서 문자열, 숫자, 리스트, 해시맵 등 저장하고 다룰 수 있습니다. 그래서 데이터를 빠르고 다양하게 꺼내쓸 수 있습니다.  redis 특징높은 성능과 속도Redis는 메모리 기반의 데이터 저장소로서 매우 빠른 응답 속도를 제공합니다.이는 데이터를 디스크에 저장하는 대신 메모리에 저장하여 빠른 데이터 액세스를 가능하게 합니다.다양한 데이터 구조 지원Redis는 단순한 key-value 형태 뿐만 아니라 ..

Data/Redis 2024.04.28

[Java] Record란?

Java 14부터 도입된 Record에 대해 알아보겠습니다. Record란? 레코드(Record)는 데이터를 저장하고 전달하는 간단한 방법을 제공하는 새로운 형태의 클래스입니다. 레코드는 불변(immutable)하고 값(value) 기반의 객체를 표현하는 데에 주로 사용됩니다. Record 특징 간결한 문법 레코드는 클래스 선언을 간결하게 만듭니다. 불필요한 반복 코드를 줄여주고, 코드의 가독성을 향상해 줍니다. 자동 생성자, getter 및 equals(), hashCode(), toString() 메서드 레코드는 멤버 변수를 자동으로 생성하고, 생성자, getter 및 equals(), hashCode(), toString() 메서드를 자동으로 구현해 줍니다. 불변성(immutable) 레코드는 불변..

Backend/Java 2024.04.13

[Spring] @JsonFormat, @DateTimeFormat 사용하기

Spring에서는 JSON 데이터와 Java 객체 간의 변환 작업을 수행할 때 @JsonFormat 및 @DateTimeFormat 어노테이션을 제공합니다. 이러한 어노테이션들은 날짜 및 시간 형식을 지정하여 JSON 직렬화 및 역직렬화 과정을 조정하는데 도움을 줍니다. 이 두 어노테이션의 사용법과 기능에 대해 알아보겠습니다. @JsonFormat @JsonFormat 어노테이션은 객체를 JSON으로 변환할 때 날짜와 시간을 표현하는 방식을 지정하는 데 사용됩니다. 이를 통해 JSON으로 변환될 때의 날짜와 시간 형식을 명시적으로 설정할 수 있습니다. import com.fasterxml.jackson.annotation.JsonFormat; public class MyObject { @JsonForma..

Backend/Spring 2024.04.03

[Programmers] 2024 KAKAO WINTER INTERNSHIP 가장 많이 받은 선물 (Java)

https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 가장 많이 받은 선물이라는 문제 Java로 풀이하겠습니다. 이 문제는 선물을 주고받은 기록을 토대로 다음 달에 누가 선물을 많이 받을지 예측하는 문제입니다. 규칙은 다음과 같습니다. 두 사람이 선물을 주고받은 기록이 있다면, 이번 달까지 두 사람 사이에 더 많은 선물을 준 사람이 다음 달에 선물을 하나 받습니다. 두 사람이 선물을 주고받은 기록이 없거나 주고받은 선물의 수가 같다면, 선물 지수가..

[MySQL] Timestamp vs DateTime

MySQL을 사용하며 날짜와 시간 정보를 저장하는 데에 사용되는 Timestamp와 DateTime의 대하여 알아보겠습니다. Timestamp 특정 이벤트가 발생한 시간을 정확하게 기록하기 위해 사용되는 데이터 유형 일반적으로 날짜와 시간 정보를 포함하여, 이를 통해 특정 이벤트가 언제 발생했는지를 정확하게 추적할 수 있습니다. 주로 데이터베이스에서 이벤트 로깅, 데이터 변경 이력 추적 등의 용도로 사용됩니다. Timestamp는 보통 시간대(time zone) 정보를 포함하며, 시간대 변환을 고려하여 데이터를 처리해야 합니다. DateTime 날짜와 시간 정보를 나타내는 데이터 유형 Timestamp와 마찬가지로 날짜와 시간을 저장할 수 있지만, 시간대 정보를 포함하지 않는 경우가 일반적입니다. 주로 ..

Data/MySQL 2024.04.02

FixtureMonkey 알아보기

사이드 프로젝트를 진행하며 테스트 코드에 중복되는 부분이나 재사용을 위해 고민하다 FixtureMonkey를 접하게 되어 알아보겠습니다. FixtureMonkey ?_? 테스트 데이터 생성 및 관리를 위한 도구로, 테스트 코드 작성 시 반복되는 부분을 최소화하고 테스트 데이터를 쉽게 생성할 수 있도록 도와주는 라이브러리입니다. 일반적으로 테스트 코드 작성 시에 필요한 여러 객체나 데이터를 무작위로 생성하여 테스트에 사용할 수 있습니다. FixtureMonkey 활용 FixtureMonkey 사용하기 전 @Test void testCalculateTotalPrice() { // Given Product 카메라 = new Product(); 카메라.setName("Camera"); 카메라.setPrice(1..

Backend/TestCode 2024.03.26

단위 테스트 vs 통합 테스트 vs 인수테스트

테스트 종류 중 단위테스트, 통합 테스트, 인수 테스트에 대해 정리해 보겠습니다. 단위테스트(Unit Test) 목적 개별 모듈 또는 함수의 동작을 테스트하여 코드의 기능을 검증합니다. 이는 작은 단위의 코드가 정확하게 동작하는지 확인하는 것을 목표로 합니다. 대상 주로 클래스, 메서드 또는 모듈과 같은 소프트웨어의 작은 단위에 집중합니다. 클래스의 각 메서드나 모듈의 개별 기능을 테스트합니다. 특징 의존성을 분리하고 격리하여 단일 모듈의 동작만을 검증합니다. 이를 위해 모의 객체(mock object)나 가짜 객체(fake object)등을 사용하여 외부 의존성을 제어합니다. 자체적으로 실행되며 외부 리소스에 의존하지 않습니다. 이는 외부 서비스나 데이터베이스 등을 호출하지 않고, 테스트 환경에서만 독..

Backend/TestCode 2024.02.10

HTTP Method (GET, POST, PUT, DELETE, ...)

HTTP 메서드는 HTTP(Hypertext Transfer Protocol)에서 클라이언트와 서버 간의 통신에서 수행되어야 하는 동작을 정의하는 명령어입니다. 각 메서드는 특정한 의미와 목적을 가지고 있어, 웹 애플리케이션에서 다양한 작업을 수행하는 데 사용됩니다.RESTful API와 같은 웹 애플리케이션에서 클라이언트 서버 간의 통신을 표준화하는데 도움을 줍니다. 일반적으로 널리 사용되는 몇 가지 HTTP 메서드에 대한 설명은 다음과 같습니다. GETGET은 웹 브라우저나 다른 클라이언트가 서버에게 정보를 요청할 때 사용되는 HTTP 메서드입니다.간단하게 말하면, 어떤 데이터를 가져오기 위해 사용됩니다. 데이터 전송 방식GET 요청은 데이터를 URL의 쿼리 문자열(query string)을 통해 ..

Web/HTTP 2024.01.19

[Baekjoon] 1094번 막대기 (java)

https://www.acmicpc.net/problem/1094 1094번: 막대기 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대 www.acmicpc.net 막대기라는 문제 java로 풀이하겠습니다. 이 문제는 길이가 64cm인 막대를 사용하여 길이가 Xcm인 막대를 만들기 위해 필요한 최소 막대 개수를 계산하는 문제입니다. 저는 아래와 같이 풀이하였습니다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = ne..

[Java] Primitive Type, Reference Type의 개념과 차이점

자바에서는 기본 데이터 타입(Primitive type)과 참조 데이터 타입(Reference type)으로 분류됩니다. 각각의 특징과 주요 데이터 타입에 대해 설명하겠습니다. Primitive Type (기본 데이터 타입) Primitive Type은 단일 값만을 가지고 있는 간단한 데이터를 나타냅니다. 이러한 타입들은 스택 메모리에 직접 값을 저장하며, 객체의 참조가 아닌 값을 저장합니다. 정수 타입(Integer Types) byte : 8비트, -128~ 127 short: 16비트, -32,768 ~ 32,767 int: 32비트, -2^31 ~ 2^31-1 long: 64비트, -2^63 ~ 2^63-1 byte byteValue = 120; short shortValue = 30000; in..

Backend/Java 2024.01.13