본문 바로가기

반응형

프로그래밍/Java

(54)
서블릿 서블릿 날짜: 2021년 7월 11일 학습목표 서블릿... 혼자서 웹프로젝트를 만들고 서블릿을 돌려보려하니 실패했다... 충격적이다. 자바로 웹 개발을 하는데에 있어 가장 기초라고 할수있는 서블릿에 대해서 알아보도록 하자 서블릿이란? 서블릿 컨테이너? 서블릿 컨텍스트? 서블릿의 동작원리 서블릿의 동작원리 그림 비동기 서블릿 서블릿(Servlet) JSP이전의 Java의 웹 애플리이케이션을 만드는 표준이었다. 현재 JSP도 컴파일시 서블릿으로 변환된다. 즉 JSP = 서블릿이다. (JSP를 볼때 이 JSP가 서블릿으로 변하면 어떻게 되는걸까 생각해보자!) 서블릿 이전에는 'CGI프로그래밍'을 통해서 웹 애플리케이션을 개발했다. 그러나, 이 CGI프로그래밍은 요청이 들어올때마다 '프로세스'를 생성하는 방식으..
Spring VS Spring Boot 의 배포차이 Spring VS SpringBoot 배포의 차이 날짜: 2021년 7월 3일 학습목표 SpringBoot는 SpringMVC와는 달리, war파일이 아닌 jar파일로 빌드,배포할수 있다. 솔루션 포팅때문에 Spring프로젝트를 war파일로 빌드후 배포를 할줄 알아야하는 상황이 와서 따로 조사한적이 있었다. 참 간단하게도, 기본적인 웹애플리케이션의 디렉토리 구조만 지키면 WAS(톰캣이나 제우스등..)서버 실행시, 자동으로 실행해준다는것을 알았다. 여기서 궁금한것이, SpringBoot는 war파일이 아니라, jar파일로 배포되는데, 서버가 어떻게 jar파일을 인식하고 실행할까?.. 가 궁금해졌다. Jar파일은 서버에서 어떻게 구동되나?? Jar파일은 서버에서 어떻게 인식할까? SpringBoot는 기존의..
Non-Blocking,Blocking VS Async,Sync NonBlocking Blocking VS Async Sync 날짜: 2021년 6월 18일 학습목표 지난주 멘토링시간때 Nonblocking, Blocking은 I/O와 관련된 것이고, Sync, Async는 쓰레드와 관려된 것으로 피드백 받았다. 솔직히 모르겠다... 그저 제어권과 결과에대한 처리를 누가? 하는가에 대해서만 알고있었는데, 왜 I/O와 관련있고, 쓰레드와 관련있는지 알아보자. NonBlockingI/O, Blocking I/O NonBlocking,Blocking에 대해 알아보기 이전에, 먼저 이를 처리는 언제하는지 생가해보자. 컴퓨터는 아무 이유없이 I/O를 수행하지 않는다. 즉, 이런 I/O 작업에 대한 '요청'이 들어와야 수행한다. 즉 웹서비스에서는 클라이언트가 서버..
네트워크 통신(2) 네트워크 통신(2) 날짜: 2021년 6월 15일 학습목표 지난 포스팅에서 자바를 통한 네트워크 통신 중 TCP통신 방식에 대해 알아보았다. 이번 포스팅에서는 UDP 통신에 대해서 직접 구현해보자. UDP 프로그래밍 UDP 통신을 위해 알아야 하는 Datagram 클래스 이번 포스팅에서는 UDP 통신을 하는 법을 알아보자. UDP는 TCP와 달리 데이터가 제대로 전달되었음을 보장하지 않는다. 따라서 유실되어도 무관한 데이터들에 한해서만 사용하는게 좋겠다. UDP통신을 하려면 TCP와 마찬가지로 데이터를 주고 받기 위한 클래스가 필요하다. 여기서 TCP와는 다르게 클래스 하나에서 주고 받는 역할을 모두 수행할 수있다. 바로 Datagram 클래스이다. TCP에서는 스트림을 사용해 데이터를 주고 받았으나, ..
네트워크 통신(1) 네트워크 통신(1) 날짜: 2021년 6월 15일 학습목표 자바를 통한 네트워크 통신에 대해서 알아보자. 자바의 신 교재를 통해서, 간략하게 네트워크 프로그래밍에 대해 알아보고, 코드로 실습해보자. 네트워크 프로그래밍이란? Socket프로그래밍 UDP 프로그래밍 네트워크 프로그래밍 이란? 사용자들이 바로 옆의 장비와 데이터를 주고 받는 작업을 네트워킹(networking) 이라 한다. 네트워크 계층 이런 네트워크는 총 7가지 계층으로 이루어져 있으나, 이 포스팅에서는 간단하게 알아보고, 추후에 7가지 계층에 대해서 자세히 알아보자. 위 그림의 애플리케이션 레이어 중 대표적인 HTTP, ftp, telnet들은 모두 TCP(Transmission Control Protocol) 통신을 한다 만약 자바로 T..
Buffer Buffer 날짜: 2021년 6월 14일 학습목표 통산 Buffer에 데이터를 쌓아두었다가 한번에 저장하는것이, 데이터를 받자마자 저장하는 방식보다 더 효율이 좋다고 한다. 왜일까? 기존에 알고있던 지식으로는 데이터를 일일이 받을때마다, 디스크까지 저장하는 방식이 느리기 때문에, 속도가 빠른 버퍼메모리에 데이터를 쌓아뒀다가, 한번에 저장하는것이 더 효율적이다. 라고 알고있었다. 지난 멘토링에서 '블록' 개념에 대해서 알고있어야 한다고 들었다. 버퍼와 블록, 이 둘을 연관지어 왜 버퍼를 사용하는것이 더 효율적인지 알아보자. 버퍼를 쓰면 더 빠른이유 버퍼와 블록 버퍼를 쓰면 더 빠른이유 기존에 알고있던 지식 데이터를 저장할때마다 속도가 느린 디스크에 저장하는것보다, 일정량의 데이터를 모았다가..
NIO(3) NIO(3) 날짜: 2021년 6월 14일 학습목표 NIO를 이해하기 위해 Non-Block VS Block의 방식에 대한 개념을 공부했고, 그와 유사한 개념인 Sync VS Async 까지 공부했다. 그럼 배웠던 개념들을 토대로 왜?? NIO가 IO보다 빠른지, 또 NIO의 특징인 Buffer클래스는 어떤 특징이 있는지 알아보자. NIO는 왜 IO보다 빠른가? NIO의 버퍼란? NIO는 왜 IO보다 더 빠를까? 먼저 기존 자바의 I/O는 왜 느린지 알아보자. 기존 Java I/O가 느렸던 이유 ! http://eincs.com/2009/08/java-nio-bytebuffer-channel-file/ http://eincs.com/2009/08/java-nio-bytebuffer-channel-file..
NIO(2) NIO(2) 날짜: 2021년 6월 14일 학습목표 NIO는 IO와 달리 Non-blocking 방식의 입출력이라고 한다. 그때문에 IO보다 훨씬 빠르다고 하는데, Nonblocking 과 blocking의 개념과, 그리고 그와 비슷하지만서도 다른, sync async에 대해서 먼저 알아보자. Synchronous VS Asynchronous Non-Block VS Block 4가지 개념 정리 Synchronous VS Asynchronous 동기와 비동기는 결과에 대한 처리를 누가 담당하느냐에 따라 나뉘는 방식이다. Synchronous : 특정 프로세스를 호출한 프로세스가 그에대한 결과까지 처리한다. 때문에 두개 이상의 대상(함수 or 애플리케이션)의 시작,종료시간이 일치하게 된 Java 코드의 기본..

반응형