스프링 MVC 서블릿 기반의 MVC 프레임 워크이다.DispatcherServlet을 핵심 엔진으로 사용한다. 모델1과 모델2에서는 모델이라는것이 어떤 비즈니스 로직을 담은 자바 빈즈였다.하지만 스프링 MVC에서의 모델은 어플리케이션 내에서 사용되는 데이터를 담아놓은 객체라고 생각하면 될것 같다. 프론트 컨트롤러 패턴 스프링 MVC는 보통 프론트 컨트롤러 패턴과 함께 사용된다.DispatcherServlet이 프론트 컨트롤러 인데, 클라이언트의 요청을 제일 먼저 받아서 일정 처리를 해주고 나서 그 뒤에 있는 메인 컨트롤러에게 요청을 전달한다. 스프링으로 웹 개발을 해본사람들은 알겠지만 컨트롤러가 비즈니스 로직이 담긴 서비스 객체에 요청을 전달하면, 로직의 결과물을 리턴받는다. 그렇게 메인 컨트롤러의 실행..
다익스트라 알고리즘은 one to all 최단경로 알고리즘이다. 다시말해서, 하나의 정점에서 시작해서 다른 모든 정점까지의 최단경로를 구하기 위해 사용하는 알고리즘이다. 다익스트라 알고리즘은 모든 엣지중 하나라도 음의 가중치를 가지면 제대로 동작하지 않는다. 배열 2가지를 사용하는데1. 배열 d[i] => i번째 정점까지의 최단거리가 몇인지가 저장된다.2. 배열 visited[i] => i번째 정점을 방문 했는지 안했는지 여부가 저장된다. 알고리즘의 동작 순서는 다음과 같다.1. 배열 d[i]에 들어있는 값중 제일 작은값을 갖는 정점을 선택한다.2. 그 정점에 연결 되어 있는 정점들 중에 아직 방문하지 않은 정점을 포함하는 엣지에 대해서3. 릴렉스 연산을 한다. 릴렉스 연산이란, 두 정점 U,V가 있을때..
다형성같은 모양의 코드가 상황에 따라 다른일을 하게 되는것. 오버라이딩,오버로딩,업캐스팅의 3가지 예가 존재함. 오버라이딩부모 클래스의 메소드를 자식 클래스에서 똑같은 모양으로 재정의 하는것.같은 모양의 함수가 어느 클래스에 속해있냐에 따라서 다른 일을 하게 되므로 다형성의 한 예이다. 동적 바인딩 부모 클래스형 포인터로 자식클래스를 가리키는 업캐스팅 상황에서 오버라이딩 된 부모 클래스의 메소드를 호출하게 되면 실행시간에 동적으로 자식 클래스의 메소드를 호출하게 되는것을 의미한다.자바에서는 딱히 다른 키워드를 쓰지 않아도 업캐스팅 상황에서 자동적으로 동적 바인딩이 일어나지만,C++에서는 virtual 키워드가 붙은 가상함수에 대해서만 동적 바인딩이 일어난다. class A{ virtual void pri..
아주 잘 정리되어있는 블로그 추상 클래스 -> 추상 클래스에는 이런 이런 기능을 하는 메소드(추상메소드)가 있는데(내용이 없고 선언만 되어있음), 이것을 상속받은 자식 클래스에서 그 내용을 오버라이딩(재정의)해서 구현하게끔 하기 위해서 사용함.-> 좀더 쉽게 말하자면, 추상클래스에는 껍데기만 있는데, 이것을 상속받은 자식 클래스에서 알맹이까지 구현하는것. 1. 인스턴스화 시킬수 없고, 오직 상속의 용도로만 사용된다.2. 반드시 하나 이상의 추상 메소드를 갖는 클래스. 추상 클래스는 일반 메소드도 포함가능하며, 추상 클래스를 상속받는 자식 클래스에서는 반드시 추상 클래스의 추상 메소드를 오버라이딩해야함. 물론, 부모 추상 클래스의 일반 메소드도 자식 클래스에 포함 되어 있음. 인터페이스 -> 추상 클래스의..
옛날 초기 인터넷에서는, 하나의 웹서버가 모든 클라이언트의 요청을 처리했지만, 시간이 지날수록 인터넷이 복잡해 지면서 기능을 나눠야 될 필요가 생겼다. 따라서 웹 어플리케이션 서버라는것이 등장했다. 웹서버HTML문서 ,이미지파일,자바스크립트 등과 같은 정적인 파일을 HTTP프로토콜을 통해서 웹 브라우저에 제공한다.유명한 웹서버로는 아파치가 있다. 웹 어플리케이션 서버 (was) 동적인 데이터를 처리한다.EX) 사용자가 로그인을 하면 아이디와 비밀번호를 HTTP를 통해서 웹 서버에 전송한다. 웹서버는 이것을 다시웹 어플리케이션 서버에 전달한다. 그럼 WAS는 이 요청 정보를 가지고 데이터베이스에 접근해서 이 아이디에 해당하는비밀번호가 맞는지 확인하고 맞는지 아닌지를 클라이언트에게 응답으로 내어준다. 그 값..
서블릿이란? 서블릿이라는건 간단히 얘기해서, 클라이언트의 요청을 받아서 동적으로(인풋에따라) HTML을 생성해서 응답으로 내어주는 서버측에서 동작하는 자바 프로그램이다. CGI 프로토콜의 경우(PHP) 멀티 프로세스로 동작하기 때문에 다수의 클라이언트 요청이 들어오면 상당히 큰 부하가 걸린다. 하지만, 서블릿은 자바 기반이기 때문에 멀티 쓰레드로 동작하고, 좀 더 많은 클라이언트의 요청에 더 잘 견딘다. 또한, 자바는 자바 가상 머신 위에서 동작하기 때문에 플랫폼에 독립적이다. 즉, 어떤 환경에서 실행시키더라도 동일하게 동작하는 서버 프로그램을 만들 수 있다는 것이다. 서블릿의 단점 서블릿의 예시는 다음과 같다. 123456789101112public class MyServlet extends HttpS..
- Total
- Today
- Yesterday
- server side rendering
- es6
- reducer
- Action
- react
- webpack
- await
- Polyfill
- react hooks
- type alias
- useEffect
- typescript
- computed
- props
- mobx
- Next.js
- async
- rendering scope
- promise
- design system
- reflow
- Babel
- javascript
- state
- storybook
- return type
- useRef
- reactdom
- atomic design
- hydrate
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |