반응형

Backend 59

스프링MVC 기본기능

목차 Welcome페이지 /resources/static 에 index.html을 생성하면 스프링부트가 welcome페이지로 처리해준다. Logging 로깅 스프링부트는 자동으로 spring-boot-starter-logging 라이브러리를 사용하고, spring-boot-starter-logging라이브러리는 SLF4J, Logback 라이브러리를 사용한다. SLF4J는 수많은 로그 라이브러리를 인터페이스로 제공하고 Logback은 로그 라이브러리를 구현하는 구현체이다. System.out.println은 콘솔에만 출력되지만 로그는 콘솔뿐만 아니라 파일, 네트워크 등의 별도의 위치에 남길 수 있다. 양이 많아지면 특정기준에 따라 로그를 분할할 수 있고, 성능도 System.out 보다 좋다. impor..

Backend 2021.12.03

스프링 MVC 구조, DispatcherServlet, @RequestMapping..

목차 스프링MVC 이전에서의 구현 역할 스프링에서의 구현 FrontController handlerMappingMap을 생성하고 초기화한다. handlerAdapter를 생성하고 초기화한다. HttpServlet을 상속받아 service메서드를 재정의한다 handlerMappingMap에서 찾은 각 Handler를 Adapter로 넘기고 반환받은 ModelView에서 viewName을 get해서 MyView객체 생성한다 MyView객체의 render메서드를 실행하여 페이지를 이동한다. DispatcherServlet handlerMappingMap 주소와 Handler(=각 Controller)들을 맵핑함 (MemberFormControllerV3, MemberSaveControllerV4...) Han..

Backend 2021.12.01

FrontController, View, Model, Adapter, Handler

목차 기존의 MVC Servlet 이전의 코드에서는 공통부분의 중복이 발생했다. ( 분홍색은 주소를 맵핑하는 공통부분, 노란색은 model에 값을 담는 공통부분, 초록색은 view를 호출하는 공통부분이다. ) 공통부분을 Front Controller로 빼내고, 각 주소에 따라서 각각의 Controller에 요청을 전달해주자. 잘 보면 공통부분만 HttpServlet이 필요하고, 나머지부분은 자바 코드로만 작성해도 문제없다. -> 공통부분 Front Controller는 Servlet으로 작성하고 -> 각각의 Controller는 자바로 작성한다. FrontController 프론트컨트롤러 도입 주소맵핑 공통부분으로 빼면서 바뀐 점 - 기존 각각 서블릿코드의 @WebServlet, extends HttpS..

Backend 2021.12.01

서블릿, JSP, MVC패턴

목차 서블릿 VS JSP 서블릿의 불편함 : HTML 코드를 작성하려면 w.write("")...처럼 메서드 안에 일일이 문자로 작성해주어야한다. JSP의 불편함 : JSP파일 하나에 비즈니스로직, 화면표현 등의 너무 많은 역할이 주어진다. -> 나중에 유지보수가 어려워진다. 비즈니스 로직은 서블릿 처럼 다른곳에서 처리하고, JSP는 목적에 맞게 HTML로 화면(View)을 그리는 일에 집중하도록 하자. => MVC 패턴 출현 MVC 패턴 이전의 문제점들 1. 1개의 JSP파일에 비즈니스로직, View 표현, DB연결.. 등 너무 많은 역할이 존재했다. 2. UI와 비즈니스로직의 연관성이 있을까?? 대부분의 경우는 서로 연관성도 없고 UI가 변경된다해서 비즈니스로직에 영향을 주는 경우도 없다. => 둘 ..

Backend 2021.11.25

서블릿, HTTP Request, HTTP Response, ObjectMapper

목차 서블릿 클래스 만들기 서블릿 클래스는 HttpServlet을 반드시 상속받아야하며 @WebServlet 애노테이션을 작성해서 스프링에게 이 클래스가 웹 서블릿 클래스 라는 것을 알려주어야 한다. 그래야 ServletApplication의 @ComponentScan이 HelloServlet클래스를 서블릿으로 가져올 수 있다. HttpServlet 클래스를 실행하면 자동으로 service메서드가 실행된다. import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.Serv..

Backend 2021.11.24

웹 애플리케이션의 이해

목차 웹 서버 Web Server : 정적 리소스 제공 클라이언트에게 정적 리소스(html, css, js, 이미지 등등) 들을 제공해준다. EX) NGINX, APACHE 웹 애플리케이션 서버 Web Application Server : 정적 + 동적 리소스 제공 클라이언트에게 동적 리소스(비즈니스로직, JSP, 스프링 MVC 등등)을 제공해준다. 웹 서버의 기능을 포함한다(정적 리소스 제공) EX) TOMCAT ... => WAS가 애플리케이션 코드를 실행하는데 더 특화되어있다. 웹 시스템 구성 WEB, WAS, DB WAS로만 서버를 구성하는 경우 ⭐ "죄송합니다 현재 접근불가합니다" 라는 정적페이지를 보여주려해도 WAS에 장애가 일어나면 정적페이지 조차 노출 불가능해진다. ⭐ 정적리소스에 대한 기..

Backend 2021.11.23

SQL EXISTS, NOT EXISTS / IN, NOT IN

EXISTS( ), NOT EXISTS( ) SELECT A칼럼 FROM WHERE EXISTS( 조건 ) 조건의 결과가 존재하면 A칼럼을 출력해 조건의 결과가 존재하지 않으면 아무것도 출력하지마. (결과 : NO DATA FOUND) SELECT A칼럼 FROM WHERE NOT EXISTS( 조건 ) 조건의 결과가 존재하지 않으면 A칼럼을 출력해 조건의 결과가 존재하면 아무것도 출력하지마. (결과 : NO DATA FOUND) 예제 SELECT * FROM EMP; SELECT JOB FROM EMP WHERE EXISTS(SELECT * FROM EMP WHERE ENAME='KING'); (ENAME 중 KING이란 데이터 존재하니 JOB칼럼의 모든 데이터가 출력될 것 ) SELECT ENAME,..

Backend 2021.11.15

Oracle Live SQL 사용하기 (DB설치없이 EMP, DEPT 테이블로 SQL실습하기) + 추가 : 기존작업 이어서하는방법

DB를 설치하는 것도 좋지만 설치도 번거롭고 삭제도 번거롭다면 인터넷에서 SQL을 사용해보자 ㅎㅎ Oracle Live SQL 사이트에 접속한다. https://livesql.oracle.com Oracle Live SQL 976,408 scripts, 4,150 likes, 1,044 public scripts, 8,985 new scripts created in the last 7 days. livesql.oracle.com 우측 상단 Singin을 클릭해서 로그인하고 Start Coding Now 버튼을 클릭해서 시작할 수 있다. 내가 필요한건 오라클에서 기본으로 제공하는 EMP, DEPT테이블이다. 왼쪽 메뉴에서 Code Library 를 클릭하고 EMP and DEPT 항목을 선택하자 우측의 R..

Backend 2021.11.02

자바 변수, 상수, 자료형, 배열, 메서드

[목차] 변수(Variable) 변수의 선언, 할당 상수(Constant) 상수의 선언, 할당 자료형(Data Type) 기본자료형(Primitive Data Type) 사용자 정의 자료형(User Defined Data Type) 배열 배열의 장점 배열의 단점 배열 선언방법 배열 생성방법 가변길이배열 메서드 메서드 선언 및 호출방법 메서드의 매개변수 전달기법 call by value call by reference 변수(Variable) 데이터를 저장할 메모리 공간(RAM)의 이름. 대입연산자(=)를 통해 값을 계속 변경할 수 있다. 변수의 선언, 할당 선언 : 메모리공간을 확보하는 것 int a; // int형 자료가 들어갈 수 있는 a라는 공간을 만든다. 할당 : 변수에 값을 저장하는 것 a = 1..

Backend 2021.11.02
반응형