나는 Spring을 많이는 아니지만, 그래도 기본적인 개발을 할 정도는 알고 있다고 믿었다.그러나 대화를 하다가 친구가 이렇게 물어봤다,웹 개발 하니까 스프링, 스프링하던데, 그게 뭐야?나는 순간 띵한 느낌을 받았다.뭐라고 설명해줘야 할까? 개발에 편리한 프레임워크??
들어가기 전에 우선 Spring이란 뭔지, 어떤 기능들이 있는지 먼저 알아보고 가자.간단히 말해서 "개발을 편하고 안정적으로 하기위해 만든 틀"이다.예를 들어, 우리가 일체 스프링을 사용할 수 없다고 하자.그럼 무슨 일이 일어날까?여전히 비효율적인 서블릿 객체를 작성해
우선 컨테이너란 무엇인지부터 간단하게 알고 넘어가자. 0. 컨테이너란? 컨테이너는 우리가 생각하듯, 무언가가 담겨있는 넓은 공간이다. IT에서는 딱히 이거다!라는 정확한 정의는 없지만, "무언가를 모아놓고 여러 기능을 수행하는 논리적인 공간"이란 의미로 생각하면 된다
앞서 만든 User와 Team은 의존관계에 있다.User는 자신이 어느 팀에 속하는지 알아야하기 때문이다.이 관계를 어떻게 코드로 정의할까?스프링은 @Autowired를 이용하여 자동 DI를 만들어낸다.뜻 그대로 "의존성을 자동 연결"해준다는 것이다.이 @Autowir
DI를 아는 분들은 모두 "필드 주입은 절대 안좋음! 생성자 주입을 써!"라는 소릴 들어봤을 것이다.그렇게 생성자 주입이 완전 무결한 줄 알았더니, 다른 곳에선 생성자 주입은 좋지 않다는 이야기도 들려온다.뭐가 맞는 걸까?필자는 두 의견 모두 맞다라고 생각한다.그 이유
스프링의 Core Container에는 4가지의 모듈이 있다. >- Beans Core Context spEL 우선 1번째부터 차근차근 설명해보자면, 1. Beans : 우리가 자주 사용할 Bean을 지원하는 모듈이다. 앞에서 배웠던 의존성 주입을 얘가 담당한다.
스프링은 자바 프로그램의 제어권을 자신이 갖기 위해(IoC) 자바 객체를 자신만의 형태로 바꾸는데, 그것을 Bean이라고 한다.즉 스프링 안에서는 "Bean = 객체"라고 생각하면 된다.이 객체가 Bean으로 등록되는 순간 스프링이 관리하게 되며,DI라던가 AOP라던가
이 Context는 설명할 것이 매우 많고 복잡하다.3편으로 나눠서 진행하며, 이번 편에서는 Context란 무엇이고, 어떤 종류가 있는지만 알아볼 것이다.Bean의 확장 버전으로, Spring이 Bean을 좀 더 다루기 쉽도록 기능들이 추가된 공간이다.저번 편에서 스
우선 Context의 구조부터 알아보자. 1. Context의 구조? Context의 구조는 굉장히 복잡하지만 2가지만 살펴보자면, 웹용과 일반용이 있다. > ServletContext 자바 자체의 Context를 말한다. 스프링도 자바로 만들어진 것이니, 모든 스프
이번 편에선 Web Application용 Context에 대해 알아보자. 1. Context 종류? 0 . ServletContext 자바 자체의 Context를 말한다. 스프링도 자바로 만들어진 것이니, 모든 스프링 Context는 ServletContext라
일반 Context 등록은 앞서 봤던 AbstractApplicationContext와 GenericXmlApplicationContext 등을 이용한다. 1. Generic 사용 방법 우선 Generic의 사용 방법부터 알아보자. xml 파일은 알다시피 컨텍스트를
이번 편에서는 훨씬 사용법이 간편해진 GenericXml에 대해 알아보자.앞의 과정을 축소화 한 것이라, 건너뛸 부분이 많아서 살펴볼 내용이 없다.이번 편은 가벼운 마음으로 봐도 좋다.우선 사용법은 이러하다.ApplicationContext 선언 부분은 앞과 동일하므로
이번은 WebApplication 편이다. 다들 알다시피, Web으로 넘어오면서 Context를 생성하고 Bean을 가져오는 등의 과정이 코드에서 완전히 사라진다. 즉 코드 상으로 디버깅 할 수 없다는 것이다. (물론 어떻게 방법이야 있겠지만, 쓸데없다고 생각한다)
이번 편은 예고했던 대로, Context 등록 과정에 대해 살펴볼 것이다.앞선 Generic과 크게 다르지 않으니 편하게 보면 된다.Generic과 동일하게 다음과 같은 과정을 거친다.1\. Context 생성2\. 파일/클래스로부터 Bean 정의 등록3\. Refre
이번 편에서는 web.xml 파일의 작성법에 대해 알아볼 것이다. context.xml은 Bean과 Annotation을 작성하는 파일이므로, 특별한 것이 없다. 따라서 건너 뛰도록 하겠다. 1. web.xml 작성 순서 web.xml을 작성할 때는 올바른 순서대로
글을 정리하다보니 궁금증이 생겼다.ROOT-Context는 내가 임의로 만든 설정 파일로 여러개 등록이 가능하다.그럼 Servlet-Context는 내가 임의로 만든 컨텍스트를 여러개 등록할 수 있을까?정답은 가능하다.web.xml의 서블릿 등록 구조를 보자.위의 구조
Spring Core - Context 2편에서 살펴보았듯이, ApplicationContext는 Context의 기능의 중심이다.하지만 대체 어느 부분이 중심인 것일까?장황하게 썼지만, Context에는 정확히 어떤 기능이 있는걸까?이는 스프링 공식 문서 사이트에서
다국화를 지원하여 메세지를 해석하는 기능이라고 설명되어 있다.이것은 말 그대로 사용자의 국제 환경에 맞게, 여러 언어로 번역해 준다는 것이다.그러나 중요한 점은 다국화가 아니라 MessageSource이다. MessageSource가 지원하는 기능이 다국화일 뿐이다.그
0. 개요 개발을 할 때 가장 중요한 것은 무엇일까? 객체지향적 개발? 깔끔한 UI? 완벽한 인프라 설계? 물론 셋뿐만 아니라 모두 중요하지만, 개발의 총 과정을 생각해보면, DB 작업이 절반 이상의 중요성을 지닌다고 생각한다. 그 이유는 서비스든 웹 사이트든 뭐
이번 편에서는 ResultSet에 대해 알아보려고 한다.결과값을 담는 ResultSet에 대해 알아보자!앞서 설명했듯 결과값을 담는 객체이다.그런데 먼저 이름을 살펴보자. Set? 설마 자료형의 Set?그렇다! 그것과 비슷하다. 정말로 그 Set인지는 모르겠지만..암튼
이번에는 정말 CRUD에 대해 알아보자!그리고 prepareStatement() 메서드가 있는데, 인자가 필요할 때 사용한다. Insert할 때 알아보도록 하자일단 다음과 같은 User 클래스와 Connection을 미리 만들어 놓는다.SELECT를 이용할 때는 exc
Spring에서의 JDBC도 동일하다. 다만 좀 더 사용하기 간편해졌을 뿐이다.Bean과 커넥트 풀이 만나 데이터 소스 관리가 더욱 편해졌고,CRUD 작업도 좀 더 편하게 할 수 있는 기능이 존재한다.자세히 알아보자.Spring에서 지원하는 JDBC는 여러가지가 있지만
jdbc+Template 즉, 직역하면 "jdbc를 위한 틀"이라는 뜻이다.그만큼 jdbc 프로그래밍에 특화되어 있다는 것 일텐데, 어떤 점이 더 좋다는 걸까? 한번 알아보자기존의 방식과 비교해서 알아보자.// SELECT 구문 작성String sql = "SELECT
앞에서 말하길 queryForObject의 반환형은 데이터형만 가능하다고 했다.하지만 말도 안된다.그럼 "SELECT \* FROM USER" 구문으로 User 객체 자체를 반환받는건 포기해야 하는걸까?그걸 위해서 필요한 것이 바로 RowMapper 인터페이스이다.Ro
저번 시간엔 RowMapper에 대해 알아보았다.그렇다면 이번엔 이를 사용하는 query() 메소드에 대해 알아보자.여러개의 값을 조회할 때 쓰인다. 사용법은 다음과 같다.1\. SQL 구문: 말 그대로 SQL 구문을 말한다.2\. 반환 타입: queryForObjec
템플릿은 jdbcTemplate말고 NamedParameterJdbcTemplate와 SimpleJdbcInsert가 있다. 이것에 대해서 자세히 알아보자. 1. NamedParameterJdbcTemplate 말 그대로 jdbcTemplate인데, 파라미터에 이름
드디어 DAO/DTO에 관해 배워볼 시간이다!이전편의 JDBC에 대한 지식만 있다면, 충분히 알아들을 수 있다.Data Acess Object와 Data Transform Object의 약자로, 데이터를 다루는 방법중 하나이다.DTO?이름 그대로 Data를 Transf
이번 편에서는 직접 구현을 해보는 시간이다.우선 어떻게 구현할 것인지 구조도를 클래스 다이어그램으로 먼저 살펴보자.
웹 개발을 한다!라고 하면 빠지지 않는 개발 방법의 대명사이다.백엔드 개발에 관심이 있다면 누구나 배웠을 것이고, 아직 입문 단계의 사람들에게는 "저것만 배우면 나도 웹개발을..!"이라며, 선망(?)의 대상이 되는 개발 방법이다.하지만 MVC는 단지 스타트이다.DDD,
들어가기에 앞서, 이번글부터는 기본적인 spring의 개념과 Repository 작성에 대해 알고 있다는 전제하에 이야기를 진행할 것이다. 잘 모르겠다면 이 점을 유의하면 좋겠다 :ㅁ 0. 개요 Spring은 MVC 패턴에 대해 다양한 어노테이션과 클래스, 메소드를
드디어 시작되는 DispatcherServlet!해당 클래스는 Servlet의 중심이자, Spring MVC의 중심이다.이것을 이해하는 것이 곧 Spring MVC를 이해하는 것과 같다고 할 수 있을 정도로 중요한 요소이다 : )그럼 한번 자세히 알아보자Dispatch
DispatcherServlet의 동작 원리에 대해 우선 알아보자.기능들에 대해선 다음 편부터 알아볼 것이다.우선 DispatcherServlet도 결국 Servlet이므로 Servlet의 라이프 사이클을 따른다.따라서 이미 알겠지만, 서블릿의 라이프 사이클에 대해 간
Handler에 대해 알아보는 편인데, 왜 갑자기 Controller? 그 이유는 Handler가 곧 Controller이기 때문이다! 즉 HandlerMapping/Adapter는 Controller의 영역이다 : ) 따라서 이번 편에선 Controller에 대해