본문 바로가기

Spring

(19)
[Spring] Validation Validation이란? 시스템이 미리 정의한 사양(specification)에 부합하고 있는지 검증하는 것.즉, 입력된 값이 올바른지 확인하는 과정을 말한다. Validation의 역할 검증을 통해 적절한 메시지를 유저에게 보여주어야 한다.검증 오류로 인해 정상적인 동작을 하지 못하는 경우는 없어야 한다.사용자가 입력한 데이터는 유지된 상태여야 한다. Validation을 사용하는 이유사용자의 실수로 잘못된 값이 들어올 수 있어서입력값이 이상하면 서버까지 망가질 수 있어서보안상 위험을 막기 위해서시스템이 안정적으로 동작하려면 정확한 값이 필요해서Validation의 종류 설명장점단점예시프론트 검증사용자 입력값을 화면에서 즉시 확인사용자 경험(UX) 향상사용자가 우회 가능 → 보안 취약비밀번호에 특수문..
[Spring] Spring Bean 등록과 의존성 주입 관련 이전 포스트 : [Spring] Spring에서 Annotation을 사용하는 이유와 Spring Bean 관리 의존성 주입(DI)이란?의존성 주입(DI)은 Spring이 객체 간의 의존성을 자동으로 주입해 주는 것을 의미한다. 한 객체가 다른 객체를 사용할 때, 해당 객체를 직접 생성하지 않고 Spring이 주입해 주는 방식이다. IOC를 구현하는 방식 중 하나이다. DI를 위해 필요한 전제: Bean 등록1) 자동 Bean 등록 (@ComponentScan, @Component)@Component이 있는 클래스의 앞글자만 소문자로 변경하여 Bean 이름으로 등록한다.@ComponentScan을 통해 @Component로 설정된 클래스를 찾는다. (@SpringBootApplication 안에 @..
[Spring] 예외처리 자바의 예외처리 방법자바에서는 아래와 같이 try-catch를 사용하여 예외를 처리하였다. (Java 예외처리 더보기)try { int result = 10 / 0;} catch (ArithmeticException e) { System.out.println("0으로 나눌 수 없습니다.");}한 코드 블록 안에서 직접 예외를 잡아서 처리하는 방식장점: 즉각적이고 단순한 처리 가능단점: 코드가 길어지면 여러 곳에서 같은 예외 처리 중복되며, 컨트롤러나 서비스 로직이 지저분해진다. Spring Boot 예외처리 방법일반 자바 애플리케이션은 예외가 터지면 예외를 직접 처리(try-catch)하여 콘솔에 에러메시지를 띄우거나, 혹은 그냥 프로그램이 강제 종료되었다.그러나, 스프링은 주로 웹 애플리케이..
[Spring] JDBC 시작하기 JDBC란?JDBC는 자바 언어를 사용하여 DB와 상호 작용하기 위한 자바 표준 인터페이스로 데이터베이스 관리 시스템(DBMS)과 통신하여 데이터를 삽입(C), 검색(R) , 수정(U) 및 삭제(D)할 수 있게 해 준다. JDBC 특징다양한 DB에 대해 일관된 방식으로 사용 가능 (MySQL → Oracled으로 변경하여도 실행)Connection 객체로 DB 연결PreparedStatement로 쿼리 실행 (보안 + 성능에 유리)ResultSet으로 결과받아서 Java에서 사용 가능트랜잭션 관리로 commit/rollback 직접 제어 가능 ※ Statement VS Prepared Statement Java에서 데이터베이스에 SQL 쿼리를 실행하기 위한 인터페이스이다. 이들은 데이터베이스와의 통신을 ..
[Spring] 요청 · 응답 데이터 @Controller vs @RestController 목적리턴 처리 방식사용 환경@ControllerHTML 뷰 페이지 반환뷰 이름으로 처리→ 해당 이름을 가진 템플릿(예: home.html)을 찾아 렌더링웹 사이트, 템플릿 렌더링@RestControllerJSON 등 데이터 직접 반환HTTP 응답 바디로 처리REST API@Controllerpublic class Controller { . . .} ※ @RestController는 @Controller + @ResponseBody로 결합된 애너테이션이다.+) @ResponseBody리턴 값을 HTTP 응답 Body에 바로 넣어줌주로 단순한 데이터(JSON, String 등)를 보낼 때 사용상태 코드, 헤더 등을 직접 설정할 수는 없음 @Reques..
[Spring] Spring에서 Annotation을 사용하는 이유와 Spring Bean 관리 Annotation이란?애너테이션(annotation)은 자바에서 메타데이터를 제공하는 문법이다.즉, 아래의 코드를 설명해 주는 데이터로 주석과 같은 역할을 한다. 하지만 일반 주석(//, /* */)과는 다르게, 애너테이션은 자바 컴파일러나 프레임워크가 실제로 인식해서 어떠한 동작을 하게 만든다. Spring에서 Annotation을 사용하는 이유스프링은 객체를 개발자가 직접 생성해서 사용하는 구조가 아니다. 대신 스프링 컨테이너가 객체(=스프링 빈)를 생성하고 관리한다.이는 DI(의존성 주입), 생명주기 관리, 트랜잭션 처리 같은 스프링의 핵심 기능들을 사용할 수 있게 한다. 그런데 스프링 입장에서는 "어떤 클래스나 메서드를 빈으로 등록해야 할지" 모른다.따라서 애너테이션을 통해 스프링에게 빈으로 등..
[Spring] Spring에 대하여 / MVC / 3 Layered Architecter 프레임워크 VS 라이브러리개발을 하다 보면 반복적인 작업과 비효율적인 코드로 인한 불편함이 발생한다.이를 해결하기 위해 개발자들이 자주 사용하는 기능들을 묶은 도구들이 바로 프레임워크와 라이브러리다. 프레임워크개발에 필요한 구조와 흐름을 제공하는 개발 틀개발자는 이 틀에 맞춰 코드를 작성장점: 일관성, 생산성, 보안 기능 제공, 테스트 환경 지원, 풍부한 커뮤니티와 문서단점: 진입 장벽 높음, 버전 호환 이슈, 자유도 제한 라이브러리필요한 클래스나 기능을 모아 놓은 코드의 집합 (도구 모음)개발자가 원하는 시점에 필요한 기능을 선택적으로 호출 가능장점: 생산성 향상, 검증된 품질단점: 지원 중단 가능성, 버전 충돌, 호완성 문제, 기능 과잉, 어려운 내부 구현 수정 Spring FrameworkSprin..
[Spring] 웹 Web웹은 브라우저로 사용하는 인터넷 서비스를 뜻한다.웹 서버는 HTTP 기반으로 동작하며, HTML, CSS, JS, 이미지 같은 정적 리소스를 제공한다. WAS (Web Application Server)HTTP 기반으로 동작하며 웹 서버의 기능을 포함한다.단순히 정적인 HTML만 주는 게 아니라, Application 로직을 수행하고 DB와 상호작용하여 동적 콘텐츠를 생성한다.예: 로그인, 게시글 저장, 회원가입 처리 등대표적으로 톰캣(Tomcat), 제티(Jetty), 언더토우(Undertow) 등이 있다. Servlet Java에서 Servlet은 HTTP 프로토콜 기반 요청(Request) 및 응답(Response)을 처리하는 자바 클래스이다.(HttpServlet 클래스를 상속받아 구현된다...