전체 글 70

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

SOLID 원칙이란?

SOLID 원칙은 객체 지향 프로그래밍에서 유지보수성과 확장성을 높이기 위한 5가지 설계 원칙이다.이 원칙을 잘 따르면 코드 변경에 유연하고, 재사용성이 높으며, 유지보수가 쉬운 코드를 만들 수 있다.  1. 단일 책임 원칙 (SRP - Single Responsibility Principle) 📌 한 클래스는 하나의 책임만 가져야 한다. 하나의 클래스는 하나의 기능(역할)에만 집중해야 하며, 다른 기능과 섞이지 않아야 한다.❌ 위반 예시아래 User 클래스는 사용자 정보 관리, 로그인 처리, 데이터 저장까지 여러 책임을 가지고 있다.public class User { private String name; // 사용자 정보 public void login() { /* 로그인 기능 */ } ..

Spring 2025.03.26

REST API 기반 일정 관리 서버 시스템 구축하기(트러블 슈팅)

스프링 입문 강의를 완강한 후 바로 일정 관리 과제를 진행했다.과제를 수행하면서 강의에서 놓쳤던 부분을 복습하며 계속해서 개발을 이어갔다. 💡 개발 전, 공통 조건1. 일정 작성, 수정, 조회 시 반환받은 일정 정보에 비밀번호는 제외해야 합니다.2. 일정 수정, 삭제 시 선택한 일정의 비밀번호와 요청할 때 함께 보낸 비밀번호가 일치할 경우에만 가능합니다.3. 비밀번호가 일치하지 않을 경우 적절한 오류 코드 및 메시지를 반환해야 합니다.4. 3 Layer Architecture 에 따라 각 Layer의 목적에 맞게 개발해야 합니다.5. CRUD 필수 기능은 모두 데이터베이스 연결 및 JDBC를 사용해서 개발해야 합니다.  🔥 프로젝트 목표API 명세서, ERD, SQL을 작성할 수 있다.Spring B..

Spring 2025.03.25

JDBC

JDBC란?JDBC는 자바 애플리케이션이 관계형 데이터베이스와 상호작용하기 위한 표준 Java API이다. 이 API는 Java 애플리케이션이 데이터베이스 관리 시스템(DBMS)과 연결되어, 데이터를 삽입(C), 조회(R), 수정(U), 삭제(D)할 수 있도록 지원한다. JDBC는 Java 애플리케이션과 데이터베이스를 연결하는 표준 방법으로, 개발자는 이를 통해 데이터베이스와의 연결, 쿼리 실행, 결과 처리 등을 쉽게 다룰 수 있다.JDBC 덕분에 데이터베이스를 변경할 때도 유연하게 대응할 수가 있다.   1️⃣ JDBC 구조      2️⃣ JDBC의 주요 특징표준 APIJDBC는 Java에서 관계형 데이터베이스와 상호작용하기 위한 표준 API이며, 대부분의 관계형 데이터베이스 관리 시스템(RDBMS)..

Spring 2025.03.24

롬복(Lombok)이란?

롬복(Lombok)롬복이란 코드를 간소화해 주는 라이브러리이다. Lombok을 사용하면 코드가 간결해지고 유지보수가 쉬워진다. 개발을 하다 보면 클래스에 포함된 필드에 대한 getter(), setter(), toString(), equals(), hashCode() 등의 메서드를 자주 작성해야 하는 상황이 발생한다.  이러한 메서드들은 객체지향 프로그래밍에서 데이터를 접근하거나 출력할 때 필수적으로 필요한 기능들이지만, 매번 직접 작성하기에는 반복적이고 번거로운 작업이 될 수 있다. 이러한 문제를 해결하기 위해 만들어진 도구가 바로 Lombok이다. Lombok은 이러한 메서드를 자동으로 생성해주어, 개발자는 반복적인 코드 작성을 피하고 핵심 로직에만 집중할 수 있게 도와준다.  ✅ Lombok을 사용..

Spring 2025.03.21

데이터베이스와 트랜잭션의 개념

Database란?여러 사람이 공유하고 사용하는 데이터의 조직화된 집합이다.데이터의 집합 저장소 DBMS란?데이터베이스를 관리하고 데이터를 정의, 저장, 검색, 수정, 삭제하는 시스템이다. 벡엔드 개발자가 되려면 데이터베이스를 잘 알아야 한다. 웹 애플리케이션은 사용자 데이터를 저장하거나 요청을 처리하는 시스템이다. 데이터베이스는 웹 애플리케이션에서 중요한 역할을 하며, 효율적인 데이터 관리와 성능을 보장하기 위해 반드시 필요한 지식이다.✅ DBMS의 주요 기능 데이터 정의: 데이터베이스 구조 정의.데이터 관리: 데이터를 효율적으로 저장하고 쿼리 언어(SQ)로 관리.데이터 보안: 사용자 권한 관리 및 데이터 암호화.트랜잭션 관리: ACID 속성 보장.백업 및 복구: 데이터 손실 방지.동시성 제어: 다수..

Spring 2025.03.20

간단한 CRUD 메모장으로 REST API 알아보기

REST API란?클라이언트 종류에 상관없이 서버의 자원을 사용할 수 있도록 설계된 방식이다. HTTP 요청을 통해 서버의 자원을 반환하며, 모든 기기에서 통용될 수 있는 형식(JSON 등)으로 응답을 제공한다. REST API 동작방식 서버는 클라이언트의 요청에 JSON 형식으로 데이터를 응답하며, 최근에는 JSON이 표준으로 자리 잡고 있다. 다른 형식(XML, YAML 등)도 가능하지만 주로 JSON이 사용된다.HTTP 메서드에 관한 내용은 여기서 알아보자. HTTP 개념과 특징HTTP (HyperText Transfer Protocol) HTTP는 웹 개발의 핵심이며 웹 개발자라면 반드시 알고 있어야 한다. 클라이언트(브라우저)와 서버가 어떻게 데이터를 주고받는지를 모르면 문제를 해결하기가 힘들l..

Spring 2025.03.19

Spring MVC란?

MVC(Model-View-Controller) 패턴이란?웹 애플리케이션을 개발할 때 많이 사용되는 소프트웨어 디자인 패턴으로, 애플리케이션을 세 개의 주요 구성 요소로 분리하여 유지보수성과 확장성을 높인다.✅ MVC 패턴을 사용하는 이유MVC 패턴을 사용하면 코드의 유지보수성과 확장성이 향상되며, 팀 개발이 용이해지고, 테스트가 쉬워지며, 사용자 경험을 최적화할 수 있다.Model, View, Controller✅ MVC 패턴의 구성 요소모델(Model)애플리케이션의 데이터와 비즈니스 로직을 담당데이터의 상태를 유지하고 변경 사항을 관리데이터베이스와 직접 상호작용뷰(View)데이터를 사용자에게 시각적으로 표시하는 역할HTML, JSP, Thymeleaf 같은 UI 렌더링 담당직접 데이터를 변경하지 않음..

Spring 2025.03.18