분류 전체보기 57

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

AWS - Lambda

AWS Lambda란?서버리스 컴퓨팅 서비스로, 개발자가 서버를 관리하지 않고도 코드를 실행할 수 있게 해 준다.Lambda는 서버가 없다는 뜻이 아니라, 사용자가 서버 인프라를 관리할 필요가 없다는 의미이며, 코드를 "함수" 단위로 실행한다. 🚀 Lambda의 특징  서버 관리 불필요: Lambda에서는 가상 서버를 직접 프로비저닝 하거나 관리할 필요가 없다. AWS가 서버리스 컴퓨팅 환경을 제공하고 관리한다.자동 스케일링: Lambda는 수요에 맞게 자동으로 스케일링된다. 필요할 때만 함수가 실행되며, 수요가 줄어들면 자동으로 중지된다.이벤트 기반 실행: Lambda는 이벤트가 필요로 발생할 때만 함수를 호출한다.비용 효율적: Lambda는 요청 당 및 컴퓨팅 시간당 비용이 부과된다. 프리 티어가 ..

AWS 2025.04.02

AWS - ECS (Elastic Container Service)

🚀 ECS (Elastic Container Service)  개념 ECS는 AWS에서 컨테이너를 실행하고 관리할 수 있는 서비스로, EC2 인스턴스에서 컨테이너를 구동하는 방식이다. 인프라 관리:ECS는 EC2 인스턴스를 프로비저닝해야 하고 인프라를 유지 해야함.즉, 컨테이너를 실행하려면 EC2 인스턴스를 사전에 먼저 만들고, 이를 관리해야 한다. 서비스:ECS 서비스는 도커 컨테이너의 실행을 관리한다. 새로 생성된 컨테이너가 어디서 실행될지 결정한다애플리케이션 로드 밸런서(ALB)와 통합하여 웹 애플리케이션을 배포할 때도 사용할 수 있다.💡도커란? 도커는 애플리케이션 배포를 위한 소프트웨어 개발 플랫폼과거에는 애플리케이션을 운영 체제에 직접 설치했지만, 도커를 사용하면 애플리케이션을 컨테이너에 패..

AWS 2025.04.01

SQL JOIN

SQL JOIN 개념 두 개 이상의 테이블을 연결하여 데이터를 조회하는 방법관계형 데이터베이스에서 핵심적인 기능  JOIN의 종류 1️⃣ INNER JOIN두 테이블에서 공통된 값이 있는 행만 반환SELECT * FROM 테이블A INNER JOIN 테이블B ON 테이블A.컬럼 = 테이블B.컬럼;   2️⃣ OUTER JOIN (LEFT / RIGHT)한쪽 테이블의 모든 데이터를 유지하며 다른 테이블과 매칭되는 데이터를 가져옴 LEFT OUTER JOIN (LEFT JOIN)왼쪽 테이블의 모든 행을 반환, 오른쪽 테이블에서 매칭되는 데이터가 없으면 NULLSELECT * FROM 테이블A LEFT JOIN 테이블B ON 테이블A.컬럼 = 테이블B.컬럼; RIGHT OUTER JOIN (RIGHT ..

SQL 2025.03.31

Spring Container와 Spring Bean

Spring Container란? Spring 애플리케이션에서 객체(Bean)를 생성, 관리, 소멸하는 역할을 하는 핵심 요소이다.애플리케이션이 실행되면 설정 파일이나 Annotation을 읽어 Bean을 생성하고 의존성을 주입하는 과정을 관리한다.일반적으로 Java에서는 객체를 직접 new 키워드로 생성한다. ▼Java에서 객체를 생성하는 방법 MyService myService = new MyService(); ➡️ 하지만 이 방식은 객체 간의 결합도가 높아지고 유지보수가 어려워지는 문제가 있다.   🔥 Spring Container의 역할 Spring Container는 객체를 직접 생성하지 않고 Spring이 대신 객체(Bean)를 생성하고 관리한다.ApplicationContext contex..

Spring 2025.03.27