전체 글 71

Early Return 패턴

Early Return 패턴: 조건이 맞지 않으면 일찍 반환(early return) 해서 아래 코드의 실행을 피하는 구조이다. ✅ Early Return 패턴을 사용하면 좋은 점중첩된 if 줄이기가독성이 향상된다.불필요한 연산을 제거한다.실패 상황을 먼저 처리하고 성공 흐름만 아래로 자연스럽게 이어지게 한다. ✅ 코드 예시※ userRepository.existsByEmail(String email) : 이 메서드는 Spring Data JPA에서 제공하는 쿼리 메서드(Query Method) 로, User 테이블에서 특정 이메일을 가진 사용자가 존재하는지 여부(true/false)를 반환해 주는 기능이다. @Transactional public SignupResponse signup(Si..

Spring 2025.04.17

JPA 연관관계

✅ 연관관계 매핑이란? JPA에서는 RDB의 외래 키 기반 관계(FK)를 객체 간에 참조로 매핑한다.SQL 없이 객체지향적으로 테이블 간의 관계를 활용 가능 ✅ 연관관계 종류 1️⃣ 단방향한 쪽 엔티티만 다른 엔티티를 참조 (객체 그래프 탐색이 한 방향만 가능)2️⃣ 양방향양쪽 모두 서로 참조연관관계의 주인이 존재 (외래 키 관리하는 엔티티)주인만 DB에 반영, 반대쪽은 단순 조회용객체 기준 단방향 2개 = 양방향 ✅ 연관관계의 주인JPA는 양방향 연관관계에서 외래 키(Foreign Key)를 기준으로 연관관계를 설정한다.이때 DB의 외래 키를 실제로 관리하는 쪽이 연관관계의 주인이 된다. 반대쪽은 단순히 연관관계를 표현하기만 한다.양방향 연관관계에서는 외래 키를 가진 주인 엔티티에서만 insert/..

Spring 2025.04.16

HttpMessageConverter

✅ HttpMessageConverter 개요 HttpMessageConverter는 HTTP 요청(Request) 또는 HTTP 응답(Response) 의 본문(Body) 내용을 Java 객체 ↔ HTTP 메시지로 변환(직렬화/역직렬화) 해주는 Spring Framework의 인터페이스이다. HttpMessageConverter는 Spring에서 HTTP 요청과 응답의 본문을 Java 객체로 변환하거나 Java 객체를 HTTP 메시지로 직렬화해주는 인터페이스로, 주로 REST API 개발에서 사용되며, 요청의 Content-Type과 응답의 Accept 헤더를 기준으로 JSON, XML, 문자열, 바이트 배열 등 다양한 형식의 데이터를 자동으로 처리해준다. ✅ 사용 예시 예시 1: String 처..

Spring 2025.04.15

뉴스피드 프로젝트 트러블 슈팅

어떤 방식이 팔로우 요청의 수락/거절을 처리하기 좋은 방식일까? "팔로우 요청을 수락할지, 거절할지 — 이걸 어떻게 입력받아야 할까?" 팔로우 요청의 응답은 수락 혹은 거절 — 결국 선택지는 딱 두 가지였다.그래서 저는 가장 단순하면서도 명확한 방법, 바로 Boolean 방식을 선택했다 Boolean 방식의 응답 처리🔹 개요Boolean 방식은 true 또는 false라는 이진 논리값을 사용하여 시스템 내의 결정을 처리하는 방식이다.팔로우 요청과 같이 응답이 "수락" 또는 "거절" 두 가지로 한정되는 경우, Boolean은 가장 단순하고 효율적인 선택이다. accept: true → 요청 수락reject: false → 요청 거절※ 실제 구현 시에는 하나의 필드만 사용하고, 해당 필드의 Boole..

Spring 2025.04.14

JPQL이란? (@Query)

JPQL (Java Persistence Query Language)은 JPA에서 사용하는 객체 지향 쿼리 언어이다.JPQL은 엔티티(Entity)와 그 필드(Field)를 기준으로 데이터를 조회한다. 📌 JPQL을 사용하는 이유 JPQL은 객체 지향적인 쿼리 언어로, SQL과 달리 데이터베이스 테이블이 아닌 엔티티 객체를 기준으로 쿼리를 작성한다. 이를 통해 코드가 더욱 직관적으로 변한다. 또한 JPQL은 JPA가 내부적으로 SQL로 변환하여 실행하므로, 데이터베이스에 종속되지 않고 이식성이 높다. 이런 특징 덕분에 시스템 구조나 테이블이 변경되더라도 유지보수가 쉬운 코드 작성이 가능하다.    📌 JPQL 문법 요약JPQL문법은 SQL 문법이랑은 차이가 있다. SQL JPQL SELECT * ..

Spring 2025.04.10

1:N, M:N 관계에서의 외래키 설계와 테이블 명명법

다대다(M:N) 및 일대다(1:N) 관계에서 FK(외래키)를 어떻게 명명하고 어떤 테이블 구조로 구성하면 좋을지 알아보자.  📌 다대다, 일대다 기본 개념 정리관계 타입설명 1:N (일대다)A는 여러 B를 가질 수 있음, B는 하나의 A만 가짐M:N (다대다)A는 여러 B를, B도 여러 A를 가질 수 있음 → 보통 중간 테이블로 풀어냄   📌 일대다(1:N) 관계 – FK 위치 & 명명 규칙User ↔  Post한 유저는 여러 개의 게시글을 가질 수 있음FK는 다 쪽 테이블에 들어감-- user 테이블CREATE TABLE users ( id BIGINT PRIMARY KEY,);-- post 테이블CREATE TABLE posts ( id BIGINT PRIMARY KEY, user_id BI..

SQL 2025.04.09

AWS CloudFormation

CloudFormation이란? CloudFormation은 AWS 리소스를 코드로 정의하고 자동으로 관리할 수 있게 도와주는 서비스.사용자는 JSON 또는 YAML 형식의 템플릿 파일만 작성하면, AWS가 그 파일을 읽고 필요한 리소스를 자동으로 생성하거나 수정해준다.   모든 리소스는 선언적 방식으로 정의됨.대부분의 AWS 서비스 리소스를 지원함.리소스 생성 순서, 의존성 관리, 에러 발생 시 롤백까지 자동으로 처리해줌.  CloudFormation의 주요 기능 및 장점인프라 코드화:수동으로 리소스를 만들 필요가 없음.코드 리뷰를 통해 변경 사항을 검토하여 안정적인 배포 가능.비용 절감:리소스에 태그를 자동으로 부여하여 비용 추정 가능.자동 삭제 및 재생성으로 특정 시간 동안 리소스를 중지하여 비용 ..

AWS 2025.04.08

뉴스피드 프로젝트 설계

내배캠 팀 프로젝트 와이어 프레임 https://www.figma.com/design/VzHGj2FeCsncYvQFMm4jQA/Twitter-UI-Screens--Community-?node-id=4-1224&t=gyUzv3w8OQqObZ7i-1 FigmaCreated with Figmawww.figma.com  API 명세서회원 회원인증인가ERD  ✅ 1. 프로필 관리📌 기능프로필 조회다른 사용자 프로필 조회 가능민감한 정보는 표시되지 않음 (항목은 팀 내부 결정)프로필 수정로그인한 사용자만 본인 정보 수정 가능비밀번호 수정 조건현재 비밀번호 입력 → 일치해야 변경 가능현재 비밀번호와 동일한 비밀번호로는 변경 불가⚠️ 예외 처리현재 비밀번호 불일치비밀번호 형식 불일치 (조건 미충족)기존 비밀번호와 동..

Spring 2025.04.07

Spring - REST API 기반 일정 관리 서버 시스템2

이전 실습 과제를 기반으로 사용자 테이블을 생성하고, 로그인 및 로그아웃 기능을 구현하였다. https://lys5654.tistory.com/37 REST API 기반 일정 관리 서버 시스템 구축하기(트러블 슈팅)스프링 입문 강의를 완강한 후 바로 일정 관리 과제를 진행했다.과제를 수행하면서 강의에서 놓쳤던 부분을 복습하며 계속해서 개발을 이어갔다. 💡 개발 전, 공통 조건1. 일정 작성, 수정, 조lys5654.tistory.com 🔥 프로젝트 목표 모든 테이블은 고유 식별자(ID)를 가집니다.3 Layer Architecture 에 따라 각 Layer의 목적에 맞게 개발합니다.CRUD 필수 기능은 모두 데이터베이스 연결 및 JPA를 사용해서 개발합니다.인증/인가 절차는 Cookie/Session..

Spring 2025.04.04

AWS - Lightsail

AWS - Lightsail이란?AWS에서 제공하는 간편한 클라우드 컴퓨팅 서비스로, 가상 서버(인스턴스), 스토리지, 데이터베이스, 네트워크 기능을 직관적인 인터페이스에서 쉽게 관리할 수 있도록 설계되어 있다.   복잡한 설정 없이 빠르게 인프라를 구축할 수 있어, 클라우드 경험이 적은 사용자에게 적합하다. 예측 가능한 저렴한 가격으로 제공되며, AWS의 고급 서비스(EC2, RDS 등)를 사용하기 전에 간단한 애플리케이션을 배포하는 용도로 적합하다.  🚀 Amazon Lightsail의 주요 특징 예측 가능한 비용간단한 모니터링 및 관리다양한 애플리케이션 템플릿 제공 사용자 친화적인 인터페이스Amazon Lightsail은 간편한 인터페이스로 서버, 네트워크, 데이터베이스를 손쉽게 생성할 수 있으며..

AWS 2025.04.03