MVC MVC는 Model-View-Controller의 약자이다. Spring MVC란 스프링 프레임워크 모듈 중에 하나인 Web 모듈이다. Model : Model은 View가 렌더링하는데 필요한 데이터이다. 예) 사용자가 요청한 상품 목록이나 주문 내역 View : 실제로 보이는 부분. Model을 사용해 렌더링한다. Controller : 사용자의 액션에 응답하는 컴포넌트이다. Model을 업데이트하고 다른 액션을 수행한다. Spring MVC 기본 동작 흐름 1. 클라이언트의 모든 요청은 Front Controller(=DispatcherServlet)라는 단 하나만 존재하는 서블릿이 받는다. 2. Front Controller는 요청만 받고 실제 일은 Controller 클래스(Handler ..
파일 구조 ㄴconfig ㄴApplicationConfig.java ㄴDBConfig.java ㄴdao ㄴRoleDao.java ㄴdto ㄴRole.java ㄴmain ㄴTest.java pom.xml 설정 및 DAO 작성 UTF-8 1.8 1.8 5.1.5.RELEASE org.springframework spring-context ${spring.version} org.springframework spring-jdbc ${spring.version} org.springframework spring-tx ${spring.version} org.apache.commons commons-dbcp2 2.1.1 org.mariadb.jdbc mariadb-java-client 2.7.0 Role.java pu..
Spring JDBC 개발자가 할 일 connection 파라미터 정의 SQL문 지정 파라미터 선언과 파라미터 값 제공 각 이터레이션에 대한 작업 수행 Spring이 해주는 일 connection 오픈 statement 준비와 실행 (존재한다면)결과를 반복하는 루프 설정 모든 예외 처리 트랜잭션 제어 connection, statement, resultset 닫기 JDBC와 Spring JDBC 소스 비교 // JDBC public Role getRole(Integer roleId) { Role role = null; Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { Class.forName("org.mariad..
Inversion of Control / Dependency Injection Dependency Injection은 Inversion of Control 원칙을 구현하기 위한 방법. (IoC=DI) 컨테이너가 코드 대신 오브젝트의 제어권을 갖고 있어 IoC(제어의 역전)이라 한다. 개발자가 만든 어떤 클래스나 메소드를 다른 프로그램이 대신 실행해주는 개념. 누군가가 Bean을 넣어주면 사용자는 활용만 할 뿐 그것이 무엇인지 모른다. POJO와 설정(Configuration Metadata)을 등록하고 IoC/DI Container에 주입시키면 Bean을 생성(인스턴스화)한다. 이 과정을 Dependency Injection 혹은 Inversion of Control이라 할 수 있다. Spring에서 제..
방법1 - applicationContext.xml에서 등록하는 방법 maven 프로젝트 구조에서 src/main/resources/applicationContext.xml 파일을 생성하여 bean을 등록 및 관리할 수 있다. ㄴsrc ㄴmain ㄴjava : 자바 패키지 폴더와 소스 코드가 위치함. ㄴresources : *.properties, *.xml 등 설정파일들이 위치함. ㄴwebapp : WEB-INF와 웹 관련 리소스(html, jsp)들이 위치함. ㄴtest ㄴjava : 테스트와 관련된 자바 패키지와 소스코드가 위치함. ㄴresources : 테스트와 관련된 설정파일이 위치함. ㄴtarget : 컴파일, 패키징된 결과물이 위치함. ㄴpom.xml : Maven 설정 파일 public c..
프레임워크 vs 라이브러리 공통점 : 남이 짜놓은 코드를 가져다 쓴다. 차이점 : 라이브러리가 각각 개별적인 기능들이라면 프레임워크는 각 라이브러리들이 모여서 기본 제품 골격을 갖춘 상태에 덧붙여서 만드는 것을 프레임워크라 한다. 차이점2 : 프레임워크로 일을 할 때는 프레임워크의 규칙을 따라야 한다. 언어별 프레임워크 Java : Spring PHP : Laravel, CodeIgniter, Symfony Python : Django Ruby : Ruby on Rails Scala : Play C# : .NET Core 참조 https://www.youtube.com/watch?v=AERY1ZGoYc8&t=8s https://www.youtube.com/watch?v=t9ccIykXTCM&list=TL..
구조 WAS ㄴWeb Server ㄴWeb Container Web Server 웹브라우저로부터 HTTP 요청을 받아 정적인 컨텐츠를 제공 ex)html, jpg, css, js 정적인 컨텐츠는 WAS를 거치지 않고 바로 제공 동적인 컨텐츠는 요청(Request)을 WAS에 전달하고, WAS가 처리한 결과를 웹브라우저에게 응답(Response)한다. 예) Apache Server, Nginx, IIS WAS; Web Application Server Web Application Server = Web Server + Web Container 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server. 예) 로직 처리, DB 접근 WAS는 Web Container 혹은 Servlet Cont..