디자인 패턴의 일종으로 Model, View, Controller의 약자이다.사용자가 프레임워크에 요청을 전달하면 사용자의 의도를 파악하고 전달하는 Controller,Controller가 처리할 때 필요한 데이터를 다루는 Model,사용자에게 응답할 데이터를 담당하는 View이렇게 세가지로 구성된다.[그림 1] MVC 패턴 JSP / Servlet을 공부하고 있기 때문에 이것을 기준으로 찾아봤다.Controller는 Servlet에 해당하며, 사용자가 웹브라우저를 통해 요청을 보내면 요청을 받은 Servlet이 그 요청을 처리한다.Model은 JavaBean에 해당하며, 데이터 베이스에서 데이터를 가져오거나 가공한다.View는 JSP에 해당하며, 사용자에게 페이지를 응답한다. 위에 적은 내용은 MVC2..
클라이언트가 서버로 데이터를 전달하기 위한 방식 1. Get 방식url에 jsp 이름과 query가 적혀 전달된다. (255자 제한?)html 파일에서 과 같이 쓰인다.요청을 할 때마다 항상 결과가 같다. 단순히 캐싱된 데이터를 가져온다. 따라서 서버에서 무언가 바뀔만한 사항을 담아선 안된다. 2. Post 방식query가 숨겨져서 전달된다. 따라서 url엔 표시되지 않는다. (제한 없음)html 파일에서 과 같이 쓰인다.서버에 요청하면 get과 달리 서버에서 처리된 결과를 가져와서 동일한 결과가 나오지 않는다. (캐싱을 하지 않는다.) Get 방식이나 Post 방식이나 url로 보이든 body내에서 보이든 보안과는 별 상관 없다. 중요한 것은 Get으로는 서버에서 무언가 바뀔만한 처리를 해서는 안된다는..
5. Byte Manipulation Functions 데이터를 해석하지 않고 그리고 데이터가 null-terminated C string 이라고 가정하지 않고, multibyte 필드에 대해서 동작하는 함수들은 두가지 그룹이 있다. 이러한 타입의 함수들은 socket address 구조체를 다룰 때 필요하다. 왜냐하면 우리는 IP주소(바이트 0들을 포함할 수 있지만 C character string은 아님)와 같은 필드들을 다뤄야하기 때문이다. 에 정의된 str로 시작하는 함수들은 null-terminated character string을 다룬다. 첫번째 함수 그룹은 4.2BSD와 socket 함수를 지원하는 대부분의 시스템에서 제공되는, 이름이 b로 시작하는 함수들이다. 두번째 함수 그룹은 ANSI..
3. Value-Result Arguments 이전에 언급했듯이, socket address 구조체가 socket function에 전달될 때, socket address 구조체는 항상 reference로 전달된다. 이 말은 구조체의 포인터가 전달된다는 얘기이다. 구조체의 길이 또한 매개변수로서 전달된다. 그러나 길이 매개변수가 넘겨지는 방향은 socket address 구조체가 넘겨지는 방향에따라 달라진다. (프로세스에서 커널로, 또는 반대로) 1) bind, connect, sendto 세개의 함수는 socket address 구조체를 프로세스에서 커널로 전달한다. 이 세개의 함수의 매개변수 중 하나는 socket address 구조체에 대한 포인터이며, 다른 매개변수 하나는 구조체의 integer ..
충분한 크기의 class, struct reference는 함수의 매개변수 또는 리턴값으로 쓸 때 그냥 객체 자체를 만들어서 넘겨주는 것보다 효과적이다. 그러면 어떨 때 써야하고 어떨 때 쓰지 말아야할까? 정확히 알고 써야할 것 같아서 몇가지 테스트를 해봤다. 잘 생각해보면 당연한 거지만 머리가 나빠 정리해둔다. typedef struct TEST_STRUCT { double m1[5]; float m2[5]; int m3[5]; }TSTRUCT, *LPTSTRUCT; 위 코드처럼 테스트할 구조체를 만들어놨다.그리고 이 구조체를 테스트할 함수 3개를 아래와 같이 만들었다. // 객체를 만들고 value로 리턴 TSTRUCT GetTestObj(); // 객체를 만들고 const reference로 리턴 ..
1. Introduction이번 챕터에서는 socket API에 대해 설명한다. 이 책의 대부분의 예제에선 나오는 socket address structure들부터 시작한다. 이 구조체들은 process에서 kernel, kernel에서 process 이렇게 두 방향으로 보내진다. 후자의 경우 value-result argument의 경우이다. 우리는 이러한 argument들의 여러가지 예제들을 이책을 통해서 보게 될 것이다.address conversion 함수는 text로 표현한 주소와 socket address structure에 들어가는 이진값 사이에 변환을 한다. 현존하는 IPv4 코드들은 inet_addr, inet_ntoa들을 사용하고, 새로운 두 개의 함수 inet_pton, inet_nt..
카메라 스트리밍 모듈을 만들 일이 있어서 조사하던 도중 ffmpeg를 이용해 영상을 압축하고 스트리밍 할 수 있다는 것을 알아 만들어보고 정리한다. *RTP ffmpeg는 멀티미디어 분야에서 많이 쓰는 라이브러리다. 원격지로 영상 전송을 위해 RTP(Realtime Transport Protocol)을 사용하였는데 간단히 알아보자 1. 개요RTP는 멀티미디어 실시간 스트리밍을 위해 만들어진 응용층 프로토콜이다. 또한 IP 네트워크에서 영상/오디오 전송 표준으로 여겨진다. RTP는 원래 전송층으로 TCP를 기준으로 하도록 만들어졌으나, TCP는 데이터 전송 딜레이 같은 시간에 대한 요소보다 신뢰성을 더 중시하기 때문에 스트리밍에 적합하지 않아 UDP를 많이 사용한다. 멀티미디어 스트리밍을 하려는 어플리케이..
11. Buffer Sizes and Limitations특정한 limit들은 IP datagram 크기에 영향을 준다. 이러한 limit들에 대한 설명을 하고 그 다음에 application에서 전송되는 data에 어떻게 영향을 주는지에 대해 알아보도록 하자. 1> IPv4 datagram의 최고 크기는 IPv4 헤더까지 합쳐서 65,535 바이트이다. 아래 그림 1의 total length 필드 때문에 길이가 65,535바이트 인 것이다. 2> IPv6 datagram의 최고 크기는 40바이트의 IPv6 헤더까지 합쳐서 65,575 바이트이다. 이 길이는 아래 그림 2의 16-bit의 payload length때문에 그렇다. IPv6의 payload length 필드는 IPv6의 헤더 크기를 포함하지..
- Total
- Today
- Yesterday
- thymeleaf 변수 인식
- @Component
- npm
- Tasklet
- JavaScript
- Check point within polygon
- Linux
- Closure
- @Qualifier
- Barycentric coordinates
- MySQL
- @Bean
- thymeleaf cannot resolve
- Bean
- unity
- mybatis
- nodejs
- Bin
- @Autowired
- Express
- spring batch
- spring
- 클로저
- chunk
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |