전체 글 82

Spring Boot 프로젝트를 Docker 이미지로 만들고 AWS ECR에 업로드하기

안녕하세요! 이번 글에서는 Spring Boot로 만든 애플리케이션을 Docker 이미지로 만들고, 이 이미지를 AWS의 ECR(Elastic Container Registry)에 업로드하는 방법을 아주 쉽게 설명해 드리겠습니다. 이 방법을 사용하면 AWS에서 Docker 컨테이너로 애플리케이션을 배포할 수 있습니다!준비 사항AWS 계정과 AWS CLI 설치Docker 설치Spring Boot 프로젝트 (JAR 파일로 빌드 가능한 상태)1. Spring Boot 프로젝트를 Docker 이미지로 만들기먼저 Spring Boot 프로젝트를 빌드해서 JAR 파일을 만들어야 합니다. 이 JAR 파일을 Docker로 감싸서 이미지로 만들 거예요.Step 1: JAR 파일 생성프로젝트 루트 디렉터리에서 다음 명령을..

DOCKER 2024.10.29

Java에서 원시 타입과 래퍼 클래스의 이해

Java를 처음 배우거나 개발을 하다 보면, **원시 타입(primitive types)**과 **래퍼 클래스(wrapper classes)**라는 용어를 자주 접할 수 있다. 이 두 가지의 차이점과 어떻게 사용되는지 잘 이해하는 것이 중요하다. 이번 글에서는 이를 쉽게 설명해보겠다.1. 원시 타입(Primitive Types)이란?원시 타입은 Java에서 가장 기본적인 데이터 타입이야. 이들은 단순히 값을 저장하는 데 사용되며, 매우 가볍고 빠르다. 자바에서 제공하는 8가지 원시 타입이 있다정수형: byte, short, int, long(숫자를 저장하는 데 쓰인다)부동 소수점형: float, double(소수점이 있는 숫자를 저장하는 데 쓰인다 )논리형: boolean(참(true) 또는 거짓(fal..

JAVA 2024.10.14

Docker 간단하게 알아보기

Docker란?Docker는 프로그램을 쉽게 실행할 수 있도록 도와주는 도구이다. 여러 프로그램을 실행할 때 필요한 파일과 환경 설정을 한 곳에 모아, 다른 컴퓨터에서도 똑같이 실행될 수 있게 한다. 프로그램을 실행하는데 필요한 환경을 일일이 맞출 필요 없이, Docker를 사용하면 간편하게 해결할 수 있다.예시:게임을 만들었는데, 다른 사람의 컴퓨터에서 실행했을 때 잘 안 된다면 Docker를 사용하면 문제 없이 실행할 수 있게 된다.Docker 이미지란?Docker 이미지란 프로그램을 실행하는데 필요한 모든 파일과 설정을 포함한 일종의 패키지이다. 이 이미지를 통해 프로그램을 언제 어디서나 동일한 환경에서 실행할 수 있게 한다. 이미지에는 코드, 라이브러리, 실행 환경 등이 모두 포함되어 있다.예시:..

DOCKER 2024.10.07

@Query 어노테이션 기본 설명

@Query 어노테이션은 Spring Data JPA에서 JPQL(Java Persistence Query Language) 또는 네이티브 SQL 쿼리를 작성할 때 사용하는 어노테이션이다. 보통은 메서드 이름을 기반으로 쿼리를 자동으로 생성하는데, 복잡한 쿼리나 특정 요구사항이 있는 경우 직접 쿼리를 작성해야 할 때 사용된다. @Query 어노테이션 기본 설명어노테이션 위치: @Query는 Repository 인터페이스의 메서드 위에 붙인다.쿼리 타입: JPQL과 네이티브 쿼리 두 가지를 사용할 수 있다. 기본은 JPQL로, JPA 엔티티를 대상으로 하는 쿼리이다. 네이티브 쿼리는 실제 데이터베이스에서 사용하는 SQL 쿼리를 직접 작성할 수 있다.// 기본 JPQL 예시@Query("SELECT t FR..

SPRING&BOOT/JPA 2024.10.04

Hibernate의 @DynamicInsert와 @DynamicUpdate 정리

데이터베이스와의 효율적인 상호 작용은 현대 애플리케이션 개발에서 중요한 요소입니다. Hibernate는 ORM(Object-Relational Mapping) 프레임워크로, 자바 객체와 데이터베이스 간의 매핑을 간편하게 처리해줍니다. 이 과정에서 Hibernate는 다양한 최적화 기능을 제공하며, 그 중 @DynamicInsert와 @DynamicUpdate는 특히 유용한 어노테이션입니다. 이번 블로그에서는 이 두 어노테이션의 기능과 사용 방법, 언제 사용해야 하는지, 그리고 사용 시 생성되는 SQL 쿼리의 차이점을 상세히 알아보겠습니다. 1. @DynamicInsert는 INSERT 시 동적으로 SQL을 생성하는 기능이다.설명: @DynamicInsert는 엔티티를 저장할 때, null이 아닌 필드만 ..

SPRING&BOOT 2024.09.30

PUT과 PATCH 메서드

웹 개발에서 HTTP 메서드는 클라이언트와 서버 간의 통신을 정의하는 중요한 요소입니다. 그중에서도 PUT과 PATCH는 모두 리소스를 업데이트하는 데 사용되지만, 그 목적과 동작 방식에는 분명한 차이점이 있습니다. 이번 블로그에서는 Spring Boot를 활용하여 PUT과 PATCH의 차이점을 이해하고, 각 메서드를 어떻게 사용해야 하는지 코드 예제와 함께 살펴보겠습니다.1. PUT은 전체 리소스를 대체하는 메서드이다.설명: PUT 메서드는 지정된 리소스를 새로운 데이터로 완전히 대체합니다. 즉, 요청에서 제공된 데이터로 기존 리소스의 모든 내용을 덮어씁니다.사용 상황:리소스의 모든 필드를 업데이트해야 할 때클라이언트가 리소스의 전체 상태를 알고 있으며, 이를 서버에 전달할 때코드 예제:@RestCon..

SPRING&BOOT 2024.09.27

자바 스트림(Stream)

스트림이란 무엇인가?스트림(Stream)은 자바 8에서 도입된 기능으로, 데이터를 처리하는 일련의 연산들을 하나의 흐름으로 연결하여 수행할 수 있게 해주는 추상화된 데이터 처리 방식이다. 주로 컬렉션이나 배열 같은 데이터 소스를 기반으로 데이터를 필터링, 변환, 집계하는 작업을 효율적으로 수행할 수 있도록 도와준다.스트림의 핵심 특징스트림을 이해하기 위해 몇 가지 중요한 특징을 알아두자.데이터 소스 불변성스트림은 데이터 소스를 변경하지 않는다. 스트림의 모든 연산은 새로운 스트림을 반환하며, 원본 데이터는 그대로 유지된다.지연 처리(Lazy Evaluation)스트림의 중간 연산(필터링, 매핑 등)은 실제로 즉시 실행되지 않는다. 최종 연산(forEach, collect 등)이 호출될 때 한꺼번에 처리된..

JAVA 2024.09.26

자바 람다식 쉽게 이해하기

최근 팀 프로젝트를 하는데, 다른 팀원분이 람다식으로 코드를 작성했다. 아직 람다식을 완전히 알지 못하는 나는, 아직 최종 프로젝트도 아닌데 다른 사람이 작성한 코드가 어렵게 보이는 것이 옳지 않다고 판단되어 람다식을 공부할 계획이다. 우선, 람다식은 자바 8부터 추가된 기능으로 복잡한 코드를 간단하게 표현할 수 있는 아주 유용한 도구이다. 이 글에서는 람다식이 무엇인지, 어떻게 사용하는지, 그리고 인터페이스와 함께 사용하는 방법을 예제를 통해 알아보겠다.1. 람다식이란 무엇인가요?람다식은 간단하게 말해 함수를 한 줄로 표현하는 방법입니다. 복잡한 코드를 단순하게 만들어서 프로그래밍을 더 쉽게 해줍니다.비유를 하자면, 긴 문장을 짧게 줄여서 말하는 약어나 줄임말과 비슷하다.예를 들어:긴 문장: "저는 오..

JAVA 2024.09.25

Spring Boot에서 JWT 인증 필터와 ArgumentResolver 활용하기

이번 포스팅에서는 JWT 인증 필터를 설정하고, 이를 통해 인증된 사용자 정보를 컨트롤러로 전달하기 위한 HandlerMethodArgumentResolver 구현 방법을 소개하겠다. Spring Security 없이 커스텀 JWT 필터를 통해 권한과 사용자를 처리하는 구조를 간단하게 설명할 것이다. 1. JWT 인증 필터 (JwtFilter)먼저, 사용자의 요청을 처리하기 전에 JWT 토큰을 검증하는 JwtFilter를 작성하겠다.코드 분석@Slf4j@RequiredArgsConstructorpublic class JwtFilter implements Filter { private final JwtUtil jwtUtil; @Override public void init(FilterCon..

SPRING&BOOT 2024.09.20

카카오 소셜 로그인 간단 구현 2장

스프링 부트를 이용한 소셜 로그인 엄청 간단하게 구현 설명은 주석으로 대체! dependencies 설정dependencies { // Spring Data JPA를 사용하기 위한 의존성 (데이터베이스와 상호작용) implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // Spring Web 애플리케이션을 개발하기 위한 의존성 (웹 서비스 및 REST API 개발) implementation 'org.springframework.boot:spring-boot-starter-web' // Lombok 라이브러리를 사용하여 코드에서 Getter, Setter, 생성자 등을 자동 생성 (빌드 시 포함되지 않음)..

AVATAR 2024.09.13