Spring/강의 52

[📙 숙련 Spring] 2-1. 인증과 인가

📙 목차인증과 인가Cookie vs Session vs JWT1. 인증과 인가인증(Authentication)사용자가 누구인지 신원을 확인하는 과정이다.주로 아이디, 비밀번호, 생체 정보 등을 통해 사용자의 신원을 검증한다.ex, 로그인 인가(Authorization)인증이 완료된 사용자에게 어떤 권한이 있는지 확인하는 과정이다.즉, 사용자가 어떤 자원이나 기능을 사용할 수 있는지를 결정한다.ex, 회원만 조회 가능한 게시글, 본인이 작성한 게시글 수정 인증 = 누구인가?인가 = 무엇을 할 수 있는가?2. Cookie vs Session vs JWT이후 정리에서 나올 쿠키, 세션, JWT 에 대한 간략 정리구분 쿠키 (Cookie) 세션 (Session) JWT (JSON Web Token) 저장..

Spring/강의 2025.05.16

[📙 숙련 Spring] 1-3. Validation과 Bean Validation

📙 목차ValidationBindingResult Bean ValidationBean Validation 사용 예제 1 - 기본 흐름Bean Validation 사용 예제 2 - 글로벌 예외 처리Bean Validation 사용 예제 3 - 그룹별 검증 조건(groups)1. ValidationValidation - 검증특정 데이터(주로 클라이언트의 요청 데이터)의 값이 유효한지 확인하는 절차잘못된 데이터의 유입을 방지하여 시스템의 신뢰성과 안정성을 확보하는 핵심 과정이다.Controller의 주요한 역할 중 하나는 Validation 이다. HTTP 요청이 정상인지 검증한다. Validation의 역할 사용자에게 입력 오류에 대한 명확한 피드백을 제공한다.오류 발생 시에도 시스템이 정상적으로 동작하..

Spring/강의 2025.05.15

[📙 숙련 Spring] 1-2. Spring Bean 등록

📙 목차Spring Bean 등록Spring Bean 등록 2의존관계 주입1. Spring Bean 등록Spring에서 객체를 Bean으로 등록하는 방법은 크게 두 가지가 있다.자동 등록 - @Component 기반수동 등록 - @Configuration, @Bean 기반* Spring에서는 기본적으로 자동 등록을 사용하며, 특정 상황에서만 수동 등록을 사용한다. 자동 등록 - @Component 기반Spring은 @ComponentScan을 통해 특정 패키지를 스캔한다.해당 패키지 내의 클래스 중 @Component, @Service, @Repository, @Controller 등의 어노테이션이 붙은 클래스를 자동으로 Bean으로 등록한다.등록된 클래스는 클래스 이름의 앞글자를 소문자로 바꿔 Be..

Spring/강의 2025.05.15

[📙 숙련 Spring] 1-1. 객체 지향과 Spring 핵심 개념

📙 목차SOLID 원칙Spring과 객체 지향 (IoC, DI) Spring의 핵심 개념 (Spring Container, Spring Bean)싱글톤(Singleton)1. SOLID 원칙SOLID 원칙객체 지향 설계에서 소프트웨어의 유지보수성, 확장성, 유연성을 높이기 위한 5가지 기본 설계 원칙 SOLID 원칙의 종류단일 책임 원칙 SRP(Single Responsibility Principle)개방 폐쇄 원칙 OCP(Open Closed Principle)리스코프 치환 원칙 LSP(Liskov Substitution Principle)인터페이스 분리 원칙 ISP(Interface Segregation Principle)의존관계 역전 원칙 DIP(Dependency Inversion Princip..

Spring/강의 2025.05.15

[📗 스프링 입문] 2. 스프링 웹 개발 기초

📗 목차정적 컨텐츠MVC와 템플릿 엔진API[퀴즈]1. 정적 컨텐츠정적 컨텐츠서버에서 별도의 처리 없이 그대로 클라이언트에게 전달되는 파일ex. HTML, CSS, JavaScript, 이미지(jpg, png, gif 등) 스프링부트에서는 정적 컨텐츠src/main/resources/static 디렉토리 아래에 위치한 파일들을 정적 컨텐츠로 인식하고, 자동으로 서빙한다.http://localhost:8080/{파일명} 으로 접근 가능하다. [실습]정적 컨텐츠 입니다.2. MVC와 템플릿 엔진MVC (Model-View-Controller)애플리케이션을 세 가지 책임으로 나누는 아키텍처 패턴Model: 애플리케이션의 데이터와 비즈니스 로직 처리 (예: 서비스, 도메인 객체)View: 사용자에게 보여지는..

Spring/강의 2025.05.08

[📗 스프링 입문] 1. 프로젝트 환경 설정

📗 목차프로젝트 생성라이브러리 살펴보기View 환경설정빌드하고 실행하기[퀴즈]1. 프로젝트 생성사전 준비물Java 11 설치IDE: IntelliJ 또는 Eclipse 설치 스프링 프로젝트 생성스프링 부트 스타터 사이트: https://start.spring.io/설정Project: Gradle-GroovyLanguage: JavaSpring Boot: 기본값 (강의는 Sping Boot 2.3.1 버전을 사용한다.)Project Metadata: Group, Artifact 지정Dependancies: Spring Web, Tymeleaf 추가GENERATE: 누르면 압축파일이 다운로드 된다. 압축 풀고, IntelliJ 로 폴더 열기 폴더 구조 설명project-root/├── build.gra..

Spring/강의 2025.05.07

[📗 스프링 입문] 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

인프런 무료 강의인스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술강의를 듣고 내용을 정리해보고자 한다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8 [지금 무료]스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의 | 김영한 - 인프런김영한 | , 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 첫 번째 강의입니다. 우아한형제들 최연소 기술이www.inflearn.com

Spring/강의 2025.05.07

[📕 기초 Spring] 6-7. 메모장 프로젝트 - ver4 (데이터베이스 접근 기술 적용)

메모장 프로젝트 ver3 의 문제점데이터베이스에 영구적으로 데이터가 저장되지 않는다. (Database 접근 기술)예외 발생시 공통적으로 처리가 불가능하다.각각의 모든 예외를 try-catch 하여 처리해야 한다.RequestDto, ResponseDto를 공유하여 null값이 들어오기도 한다.필요없는 필드에 추가적인 null 검사를 해야한다.Spring Bean, 생성자 주입 등 Spring의 동작 원리에 대해 이해하지 못했다.왜 Interface로 만들어서 구현하여 사용하는지 모른다.📕 목차프로젝트 세팅JDBC Template 적용메모 생성 API 리팩토링 메모 목록 조회 API 리팩토링메모 단건 조회 API 리팩토링메모 전체 수정 API 리팩토링메모 제목 수정 API 리팩토링메모 삭제 API 리팩..

Spring/강의 2025.05.07

[📕 기초 Spring] 6-6. Java와 Database

📕 목차JDBC(Java Database Connectivity) JDBC의 한계Persistence Framework1. JDBC(Java Database Connectivity)JDBC (Java Database Connectivity)Java 언어를 사용하여 DB와 상호 작용하기 위한 자바 표준 인터페이스JDBC를 사용하면 SQL 쿼리를 실행하고, 결과를 처리하며, 데이터베이스와 연결된 상태에서 트랜잭션을 관리할 수 있다. JDBC의 주요 구성 요소표준 API:다양한 관계형 데이터베이스 시스템(RDBMS)과 호환되며, 일관된 방식으로 데이터베이스와 상호작용할 수 있다.ex. Database 종류가 바뀌어도 쿼리문이 실행된다. MySQL → ORACLE데이터베이스 연결:JDBC를 통해 애플리케이션과..

Spring/강의 2025.05.06

[📕 기초 Spring] 6-5. SQL 실습

📕 목차Intellij Database 연동 CREATE ALTER INSERT SELECT UPDATE DELETE JOIN 1. Intellij Database 연동새로 만들기 > 데이터 소스 > MySQL > MySQL 연결 정보 입력연결 테스트 완료 후, 확인 스키마 생성 좌측 콘솔창에 명령어 입력use sparta;2. CREATE데이터베이스 혹은 테이블 생성에 사용한다. STUDENT(학생) 테이블-- 테이블 생성 (student)CREATE TABLE student ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '학생 식별자', name VARCHAR(100) COMMENT '이름', age INT COMMENT '나이', ..

Spring/강의 2025.05.06