일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 알고리즘
- 스프링
- Framework
- professional
- BOJ
- Floyd
- 골드5
- java
- dp
- 그래프
- 코딩테스트
- swea
- 최단경로
- 최단경로탐색
- Spring
- 골드3
- 백엔드
- BFS
- D4
- 완전탐색
- 백준
- SW역량테스트
- SW역량평가
- backend
- 최소신장트리
- 순열
- 실버1
- 1251
- 중복순열
- 트리의지름
- Today
- Total
목록웹 (7)
공부 기록장

스프링 MVC도 지난번에 다뤘던 MVC 패턴과 크게 다르지 않다. 똑같이 model 과 view controller로 나눠져 있는 패턴이고, Spring이 제공하는 트랜잭션 처리나 DI, AOP등을 손쉽게 사용할 수 있다는 특징이 있다. 이 것은 Spring MVC의 요청 흐름이다. DispatcherServlet이 중간에서 모든 요청을 처리해주는 컨트롤러의 역할을 한다. 모든 클라이언트에게서 요청을 전달 받고, Controller에게 클라이언트의 요청을 전달한다. 컨트롤러가 리턴한 결과값을 view에게 보내주어 알맞은 응답을 생성하는 역할을 한다. HandlerMapping에서는 클라이언트의 요청 URL을 어떤 컨트롤러가 처리할지 결정해준다. URL과 요청 정보를 기준으로 어떤 핸들러 객체를 사용할지 ..

스프링을 시작할 때, 가장 먼저 해 주어야 하는 것이 기본 설정을 세팅하고, 알맞은 곳에 필요한 것들을 주입시키는 것이다. 스프링 빈은 기본적으로 싱글톤으로 만들어진다. 따라서, 컨테이너가 제공하는 모든 빈의 인스턴스는 항상 동일하다. 만약, 컨테이너가 항상 새로운 인스턴스를 반환하게 하고 싶은 경우 scope를 prototype으로 설정해주어야 한다. 스프링 빈 설정은 주로 xml 문서 형태로 기술되어 있는데, 단순하고 사용하기 쉽기 때문이다. bean 태그를 이용해 pom.xml, root-context.xml, servlet-context.xml 에 필요한 설정들을 넣어준다. 빈을 사용할때 constructor-arg나 property 설정들도 들어있는데, constructor-arg 태그는 생성자..

이번 포스팅에서는 스프링에서 중요한 개념 중 하나인 loC과 DI에 대해 다뤄보려고 한다. 먼저 loC란, Inversion of Control, 즉 제어의 역행을 뜻한다. 조금 풀어서 얘기하자면, 기존에는 필요한 위치에서 개발자가 필요한 객체 생성 로직을 구현했다면, 객체 생성을 컨테이너에게 위임해서 처리하는 방식이다. 스프링에서는 인터페이스를 호출해서 사용하기 때문에 구현 클래스 교체가 용이하다. 컨트롤러에서 각 서비스를 이용할 때, 인터페이스 객체를 불러서 사용하므로 클래스 내용이 변경되어도 따로 변경해주어야 할 것이 없다. 또, factory를 호출해서 팩토리가 구현 클래스를 생성하므로 인터페이스 변경시 팩토리만 수정하면 된다. 따라서 service를 이용하는 쪽에서는 인터페이스만 알고 있으면 어..

오늘부터 여러개의 포스팅에 걸쳐 스프링을 정리해보려고 한다. 스프링은 왜 탄생했는가? 원래 스프링을 사용하기 전에는 EJB를 사용했다. EJB를 사용하면 상태관리, 멀티 쓰레딩, 리소스 풀링과 같은 것들을 WAS 단계에서 알아서 처리해주기 때문에 개발자가 따로 건드릴 필요가 없다는 장점이 있다. 하지만 EJB라는 서버가 따로 필요하고, 코드를 수정해서 재 배포하는 과정이 복잡해서 유지보수가 어렵다는 단점이 있었다. 게다가 웹사이트가 점점 커지면서 EBJ를 사용하지 않고도 쓸 수 있는 새로운 프레임워크가 필요했다. 그래서 POJO가 생겨났다. POJO는 특정 프레임워크나 기술에 의존적이지 않은 자바 객체인데, 특정 기술에 종속적이기 않기 때문에 생산성과 이식성이 높다. 또, AOP(Aspect Orient..

사용자 입장에서, 웹 브라우저와 인터넷만 있으면 인터넷에 접속해서 뭐든지 할 수 있다. 하지만 개발자의 입장에서는, 사이트를 사용하기 위해 프론트엔드와 백엔드를 처리해주어야 한다. 프론트엔드에 쓰이는 html, css, js 등은 웹 서버에서 처리해주고, DB를 사용하기 위해 사용하는 java는 어플리케이션 서버에서 처리해준다. Web Application Architecture JSP 를 이용하여 구성할 수 있는 웹 어플리케이션 아키텍트는 크게 model1과 model2로 나뉜다. 1) JSP 가 클라이언트의 요청에 대한 logic처리와 response page(view) 에 대한 처리를 모두 하는지, 2) response page(view) 에 대한 처리만 하는지가 가장 큰 차이점이다. Model1 ..

JSP(Java Server Page) - JSP는 HTML 내에 자바 코드를 삽입하여 웹 서버에서 동적으로 엡 페이지를 생성하여 웹 브라우저에 돌려주는 언어이다. Java EE 스펙 중 일부로, 웹 애플리케이션 서버에서 동작한다. JSP는 실행시에는 자바 서블릿으로 변환된 후 실행되므로 서블릿과 거의 유사하다고 볼 수 있다. 하지만 서블릿과는 달리, HTML 표준에 따라 작성되므로 웹 디자인하기에 편리하다. 아파치 스트럿츠나 자카르다 프로젝트의 JSTL 등의 JSP 태그 라이브러리를 사용하는 경우에는 자바 코딩없이 태그만으로 간략히 기술이 가능하므로 생산성을 높일 수 있다. JSP는 이런식으로 흘러간다. JSP의 특징 jsp는 1. 선언 - 멤버변수나 메소드 선언시에는 에 자바코드와 동일하게 선언해준다..

일반적으로 웹사이트 가서 기사를 누르거나, ID,비밀번호 입력 후 로그인 버튼 누르기 등, 무언가 클릭하면 동작이 일어난다. 이런 동작을 수행하려면 어디엔가 저장되어 있는 정보를 불러다가 검사해야 하는데, 정보를 저장해두기 위해서는 DB가 필요하다. 하지만 프론트엔드는 DB와 직접 통신할 수 없다. 따라서 Backend는 Front-End 와 DB를 연결해주는 역할을 한다. java에서 웹을 지원해주는 API는 Servlet / JSP 등이 있는데, 이번에는 Servlet을 다뤄볼 것 이다. 기본적으로 웹 브라우저(클라이언트)만 있으면 웹을 실행할 수 있다. 웹 브라우저는 html, java script, css등 으로 이루어져 있는데, 이 친구들은 결과적으로 사용자한테 화면을 보여주고 무언가를 입력 받..