목록Spring/코드로 배우는 스프링 웹 프로젝트 11
Sangwon Coding
![](http://i1.daumcdn.net/thumb/C250x250/?fname=https://blog.kakaocdn.net/dn/l5H7J/btqzP4Ase3M/uq4gbmyvGw1eseCYKixKpk/img.jpg)
안녕하세요! 저번 포스팅에 이어서 바로 진행하도록 하겠습니다! 영속 계층의 작업은 항상 다음과 같은 순서로 진행합니다. 테이블의 칼럼 구조를 반영하는 VO(Value Object) 클래스의 생성 MyBatis의 Mapper 인터페이스의 작성/XML 처리 작성한 Mapper 인터페이스의 테스트 이제 영속 계층의 구현 준비를 해보겠습니다. 거의 모든 웹 애플리케이션의 최종 목적은 데이터베이스에 데이터를 기록하거나, 원하는 데이터를 가져오는 것이 목적이기 때문에 개발할 때 어느 정도의 설계가 진행되면 데이터베이스 관련 작업을 하게 됩니다. 프로젝트에 'org.zerock.domain' 패키지를 생성하고, BoardVO 클래스를 정의합니다. package org.zerock.domain; import java...
![](http://i1.daumcdn.net/thumb/C250x250/?fname=https://blog.kakaocdn.net/dn/bzOhok/btqzNC6RFn4/ucrHo7iXjpz6wYOcE0ONiK/img.jpg)
안녕하세요! 이번 포스팅부터는 본격적으로 실습 위주로 하면서 포스팅을 진행할 생각입니다. 예제를 작성하기에 앞서서 스프링 MVC를 이용하는 프로젝트의 구성을 이해하는 일은 전체 데이터의 흐름을 보기 위해서입니다. 브라우전에서 전송한 데이터를 스프링 MVC의 어떤 단계를 거쳐서 실행되는지를 이해한다면 문제가 발생했을 때 빠른 대처와 대안을 찾을 수 있기 때문입니다. 일반적으로 웹프로젝트는 3-tier(티어) 방식으로 구성합니다. Presentation Tier(화면 계층)는 화면에 보여주는 기술을 사용하는 영역입니다. 책의 예제에서는 Servlet/JSP나 스프링 MVC가 담당하는 영역이 됩니다. Presentation Tier는 프로젝트의 성격에 맞춰 앱으로 제작하거나, CS(Client-Server)로..
![](http://i1.daumcdn.net/thumb/C250x250/?fname=https://blog.kakaocdn.net/dn/9Go4l/btqzLEhyayl/HDDS1EKRhty17nSKK2KaM0/img.jpg)
안녕하세요! 저번 포스팅에 이어서 바로 시작하도록 하겠습니다. 스프링 MVC의 구조가 기존의 상속과 인터페이스에서 어노테이션을 사용하는 방식으로 변한 이후에 가장 큰 변화 중 하나는 리턴 타입이 자유로워 졌다는 점입니다. Controller의 메서드가 사용할 수 있는 리턴 타입은 주로 다음과 같습니다. String : jsp를 이용하는 경우에는 jsp파일의 경로와 파일이름을 나타내기 위해서 사용함. void : 호출하는 URL과 동일한 이름의 jsp를 의미함. VO,DTO 타입 : 주로 JSON 타입의 데이터를 만들어서 반환하는 용도로 사용함. ResponseEntity 타입 : response 할 때 Http헤더 정보와 내용을 가공하는 용도로 사용함. Model, ModelAndView : Model로..
![](http://i1.daumcdn.net/thumb/C250x250/?fname=https://blog.kakaocdn.net/dn/bIdoLL/btqzK1dbyCx/MYEV7j1x74KzKi5DDq1E8K/img.jpg)
안녕하세요! 오랜만에 스프링 포스팅입니다! MVC의 Controller 이어서 포스팅하겠습니다. Controller의 메서드를 작성할 때는 특별하게 Model이라는 타입을 파라미터로 지정할 수 있습니다. Model 객체는 JSP에 컨트롤러에서 생성된 데이터를 담아서 전달하는 역할을 하는 존재입니다. 이를 이용해서 JSP와 같은 뷰(View)로 전달해야 하는 데이터를 담아서 보낼 수 있습니다. 메서드의 파라미터 Model 타입이 지정된 경우에는 스프링은 특별하게 Model 타입의 객체를 만들어서 메서드에 주입하게 됩니다. Model은 모델2 방식에서 사용하는 request.setAttribute()와 유사한 역할을 합니다. Servlet을 이용해 본적이 있다면 다음과 같은 코드에 익숙 할 것입니다. Ser..
![](http://i1.daumcdn.net/thumb/C250x250/?fname=https://blog.kakaocdn.net/dn/bjkFMB/btqzAOsL91H/PNJukWIGcILz48iEUJIAV0/img.jpg)
스프링MVC를 이용하는 경우 작성되는 Controller는 다음과 같은 특징이 있습니다. HttpServletRequest,HttpServletResponse를 거의 사용할 필요가 없이 필요한 기능 구현 다양한 타입의 파라미터 처리,다양한 타입의 리턴 타입 사용가능 GET방식,POST방식 등 전송 방식에 대한 처리를 어노테이션으로 처리가능 상속/인터페이스 방식 대신에 어노테이션으로도 필요한 설정 기능 프로젝트 내 'org.zerock.controller'패키지 폴더에 SampleController클래스를 생성합니다. package org.zerock.controller; import org.springframework.stereotype.Controller; import org.springframewor..
![](http://i1.daumcdn.net/thumb/C250x250/?fname=https://blog.kakaocdn.net/dn/IhktQ/btqzC32QKF4/4d9Q7SbBJm59vBS76n9D51/img.jpg)
안녕하세요! 스프링 MVC 기본 구조 포스팅 시작하겠습니다! 스프링MVC 프로젝트를 구설해서 사용한다는 의미는 내부적으로 root-context.xml로 사용하는 일반 Java 영역(흔히 POJO)과 servlet-context.xml로 설정하는 Web관련 영역을 같이 연동해서 구동하게 됩니다. 그림으로 간단히 보면 바깥쪽에 있는 WebApplicationContext라는 존재는 기존의 구조에 MVC 설정을 포함하는 구조로 만들어집니다. 스프링은 원래 목적 자체가 웹 애플리케이션을 목적으로 나온 프레임워크가 아니기 때문에 달라지는 영역에 대해서는 완전히 분리하고 연동하는 방식으로 구현되어있습니다. Eclipse(STS) 내 'Spring Legacy Project'를 이용해서 'ex01'프로젝트를 생성합..
![](http://i1.daumcdn.net/thumb/C250x250/?fname=https://blog.kakaocdn.net/dn/n6Bn5/btqzzkRhTeJ/4cjotZuYP9hvAYS7Hc4lzk/img.jpg)
안녕하세요! 이번 포스팅에서는 스프링 프레임워크과 MyBatis를 연동해서 좀 더 빠르게 SQL을 처리할 수 있는 구조를 만들어 보겠습니다. 마찬가지로 테스트 작업을 진행해서 일르 확인해보겠습니다. MyBatis는 흔히 'SQL 매핑(mapping) 프레임워크'로 분류되는데, 개발자들은 JDBC 코드의 복잡하고 지루한 작업을 피하는 용도로 많이 사용합니다. 전통적인 JDBC 프로그래밍의 구조와 비교해 보면 MyBatis의 장점을 파악할 수 있습니다. 전통적인 JDBC프로그램 MyBatis 직접Connection을 맺고 마지막에close() PreparedStatement직접 생성 및 처리 PreparedStatement의 setxxx() 등에 대한 보든 작업을 개발자가 처리 SELECT의 경우 직접Res..
![](http://i1.daumcdn.net/thumb/C250x250/?fname=https://blog.kakaocdn.net/dn/niiYo/btqzxCTmUoK/CLqh2kLNaiP4eELYk5RIx1/img.jpg)
안녕하세요! 오랜만에 스프링 포스팅입니다. 알고리즘이랑 같이 공부하느라 포스팅할 시간이 없었네요 ㅜㅜ 먼저 오라클을 설치해보겠습니다! http://www.oracle.com Oracle | Integrated Cloud Applications and Platform Services Oracle named a leader in The Forrester Wave™: Translytical Data Platforms, Q4 2019 Oracle scores highest in the current offering and strategy categories. Forrester notes that customers like Oracle databases’ capability to support many workl..