Framework/Spring

    [스프링] 프로젝트 전 꼭 알아두면 좋은 것들

    [스프링] 프로젝트 전 꼭 알아두면 좋은 것들

    | 개요 - 수업 시간에 고객의 계좌 정보에 관한 프로그램을 샘플로 만들며 아래의 내용을 배우기로 했다. - 저작권상 내용을 여기에 담기는 좀 그래서 전반적인 개념에 추가적인 정보를 담아 스스로의 이해를 위해 정리해보려고 한다. - 강사님의 강의 흐름이 마치 현장 플젝을 해결하는 것 같이 느껴지는데, 이 흐름만 잘 기억해도, 차후 개인 프로젝트를 기획할 때 많은 도움이 될 것 같다. no 흐름 특징 0 개요 시스템 한 줄 소개 / 활용 기술 요약 / 프로젝트 엔터티 구조 안내 / 주요 제공 기능(API) - 분류 1 프로젝트 생성 및 의존성 추가 spring.io 또는 인텔리J를 통해 스프링 프로젝트 생성, 의존성 추가 * 어떤 기술을 쓸 건지에 따라 의존성은 달라질 수 있다. 2 Lombok Lombo..

    [스프링] 스프링 MVC - 예외처리

    | 예외처리 - 예외 : 프로그램이 예상하지 못한 상황을 만났을 때 오류를 처리하는 것 - 자바에서는 try-catch문 안에서 예외처리를 했었다. try { // 행동 } catch (Exception e) { log.error("cetian exception"); } - 스프링에서는 이러한 예외처리를 간편하게 할 수 있도록 하였다. | 스프링의 예외처리 (REST API) - 과거와는 달리 오늘날에는 프론트엔드와 백엔드 분업화가 잘 이루어져 있다. - 백엔드에서는 보통 Rest API를 사용해 컨트롤러 기반의 예외처리를 주로 한다. - 현장에서 예외처리를 할 때에는 enum과 예외객체를 통해 custom exception을 만들고, @RestControllerAdvice를 사용해서 예외처리를 한다. ..

    [스프링] 스프링 MVC - 필터, 인터셉터

    [스프링] 스프링 MVC - 필터, 인터셉터

    | MVC 구조로 보는 필터와 인터셉터 - 요청사항에 대해 필터와 인터셉터를 거친다 - 사용되는 메소드의 전반적인 흐름 init -> doFilter -> preHandler -> AOP -> postHandler -> afterCompletion -> doFilter -> destroy - 필터와 인터셉터와 AOP 필터 인터셉터 AOP 공통점 공통처리 기능 관련 웹의 URL주소나, 프로토콜 등과 관련 자바코드(Annotation, package) 위치 스프링 외부 스프링 내부 스프링 내부 특징 - 대부분의 공통사항 필터에서 처리 - low level 처리 가능 - sql injection, CSRF 등 해킹을 사전에 막는용도로 자주 사용한다. - Controller에 가기 전 공통 처리 - 실제 매핑된..

    [스프링] 스프링MVC - HTTP 요청 및 응답

    [스프링] 스프링MVC - HTTP 요청 및 응답

    | MVC - MVC란? Model + View + Controller 의 약자를 말하며, - 스프링은 내부적으로 Dispatcher가 있어, 어떤 요청이 있을 때마다 적절한 컨트롤러를 찾아 매핑한다고 했다. - 이때 말하는 요청이란, 사용자가 보내는 HTTP 요청을 말하며 오늘날 웹 환경은 일반적으로 REST 방식을 따른다. - REST는 URI의 자원에 고유한 이름-표현(ex. name, userId)-을 주어 자원의 상태 정보를 주고 받는 것으로, GET/POST/PUT/DELETE와 더불어 ?파라미터명=값 과 같이 자신만의 규칙을 갖고 있다. - 스프링에서는 HTTP 요청을 해석하기 위해 RestController를 사용하며, 해당 컨트롤러의 메소드와 매핑하기 위해, RequestMapping 또..

    [스프링] 스프링의 주요기술

    [스프링] 스프링의 주요기술

    | 개요 - 스프링은 SOLID 원칙을 담은 아키텍쳐(설계도)에 따라 만든 프레임워크이다. - 웹 개발 기술의 발전 : HTML -> CGI -> Sevlet/JSP(EJB) -> Spring MVC -> node, ktor 등 경량 웹 프레임워크 - 스프링에 대한 주요 기술은 아래와 같다. 코어 DI, IoC, 컨테이너 Resource, AOP, Validation, SpEL MVC Web MVC, HTTP 요청/응답처리, 필터와 인터셉터, 예외처리 더보기 [ 라이브러리와 프레임워크의 차이점 ] - 프레임워크가 개발을 하기 위한 전체적인 뼈대/틀이라면, - 라이브러리는 특수한 기능에 대한 도구, 기능의 집합을 말한다. - 프레임워크와 라이브러리의 가장 큰 차이는, 흐름을 제어하는 것이 누구이냐인데, 프..

    [스프링] OOP의 SOLID 원칙과 스프링

    [스프링] OOP의 SOLID 원칙과 스프링

    | 자바 웹 프로그래밍 - 동적인 웹사이트를 만들기 위해서 과거부터 지금까지 아래와 같은 역사를 거쳐왔다. CGI (Common Gateway Integerface) Servlet EJB (Enterprise Java Beans) 스프링 프로세스 단위 쓰레드 단위 비즈니스 로직을 포함 자바 기반 프레임워크 - CGI는 프로세스단위로 동적 페이지를 생성하기 때문에 자원의 효율성이 떨어졌기에 - Servlet을 통해 쓰레드단위로 동적 페이지를 생성하여 극복하고자 하였다. - EJB는 여기에 데이터의 저장 및 수정 시의 안정성을 높이고 트랜잭션 처리 기능을 추가 한 것으로 안정적인 코딩을 가능해졌지만, 코드가 너무 복잡해서 테스트 코드를 생성하는 것도 어려웠다고 한다. - 이때, Rod Johnson이라는 사..