서블릿(Servlet)이란? 서블릿이란 Dynamic Web Page를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술입니다. 웹을 만들때는 다양한 요청(Request)과 응답(Response)이 있기 마련이고 이 요청과 응답에는 규칙이 존재합니다. 이러한 요청과 응답을 일일이 처리하려면 굉장히 힘들겠죠? 서블릿은 이러한 웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해주는 기술이라고 생각하시면 이해가 빠를듯 합니다. 서블릿은 자바 클래스로 웹 애플리케이션을 작성한 뒤 이후 웹 서버 안에 있는 웹 컨테이너에서 이것을 실행하고, 웹 컨테이너에서는 서블릿 인스턴스를 생성 후 서버에서 실행되다가 웹 브라우저에서 서버에 요청(Request)을 하면 요청에 맞는 동작을 ..
Web Service의 전체적인 흐름 웹 개발을 진행한다고 하면 위의 그림과 같은 구조로 시스템을 구성하게 됩니다. 전체적인 흐름을 보면 웹 브라우저에서 Web Server로 HTTP 요청을 보내고 정적 요청인 경우에는 즉각적으로 Web Server에서 응답을 합니다. 하지만 동적 요청인 경우에는 Web Sever에서 대응하지 못하고 Web Server에 연결되어 있는 Web Application Server 중 한 곳에 처리를 위임합니다. Web Application Sever는 Web Server에서 요청을 받게 되면 컨테이너가 응답하여 동적 콘텐츠를 삽입할 수 있는 프로그래밍 언어인 Java를 사용할 수 있게끔 JSP / Servlet을 실행한 뒤 DB에서 값을 가져오는 등의 동적인 값을 확정하고 ..
ARP(주소 결정 프로토콜)이란? 주소 결정 프로토콜(Address Resolution Protocol, ARP)은 네트워크 상에서 IP 주소를 MAC 주소로 대응시키기 위해 사용됩니다. 처음 통신을 시작할 때는 상대방의 Mac Address를 모르는데 그때 상대방의 Mac Address를 알아내기 위하여 사용하는 프로토콜입니다. ARP는 요청과 응답으로 구성된 프로토콜로 라우팅 되지 않는 단일 네트워크에서만 동작하며. IP와 MAC 주소를 캡슐화하기 때문에 위의 그림과 같이 L2와 L3 사이에 있는 프로토콜이라고 생각하시면 됩니다. ARP 프로토콜과는 반대로 해당 MAC 주소에 맞는 IP값을 알아오는 프로토콜을 역순 주소 결정 프로토콜(Reverse Address Resolution Protocol, ..
인터넷이란? 인터넷이란 전 세계에 걸쳐 원거리 접속이나 파일 전송, 전자 메일 등의 데이터 통신 서비스를 받을 수 있는, 컴퓨터 네트워크의 시스템이라고 정의되어 있습니다. 인터넷은 접속하는 여러 디바이스가 이 거대한 망에서 상호간의 통신을 주고받고 데이터들이 오고 가면서 상당히 복잡한 과정의 절차를 거칩니다. 즉 인터넷이란 디바이스끼리 통신을 할 수 있는 네트워크라는 개념에서 조금 더 확장된 모든 디바이스가 통신을 할 수 있는 거대한 네트워크다 라고 생각할 수 있겠습니다. 그렇다면 각각의 디바이스끼리 어떻게 위치를 찾아가는것일까요? 이 문제를 해결하기 위해 우리가 사는 집에도 주소가 있듯 디바이스가 위치한 네트워크마다 고유의 주소를 지정해두었습니다. 그 주소의 이름을 바로 IP주소라고 합니다. (우리나라..
대부분 웹 프로젝트를 할때 이클립스에서 톰캣을 연동하신 후 사용하시곤 합니다. 하지만 이클립스와 같은 IDE가 없이도 톰캣 자체적으로 서버를 올리고 웹 프로젝트의 파일들도 볼 수 있는 방법이 있습니다. 톰캣 서버 올리고 내리기 1. 톰캣이 설치된 폴더의 bin으로 들어가시면 위와 같이 startup과 shutdown이라는 윈도우 배치파일이 있습니다. startup.bat을 실행하면 톰캣 서버가 올라가고 shutdown.bat을 실행시키면 톰캣 서버가 내려갑니다. 그냥 아이콘을 더블클릭하여 실행시키셔서 실행이 된다면 그냥 이렇게 켜고 끄고 하셔도 되지만 만약 되지 않는다면 로그 확인을 위해 CMD에서 실행을 시켜보는것을 추천드립니다. 2. 먼저 CMD창을 켜신 후 CD bin경로를 입력하여 Tomcat의 ..
얼마 전 원격 제어를 해야 할 경우가 생겨 팀뷰어를 설치하려다가 프로그램 설치가 아닌 구글 원격 데스크톱이라는 크롬 확장 프로그램으로 좀 더 가볍게 원격을 할 수 있는 방법을 알게 되어 포스팅으로 작성해보고자 합니다. 크롬 원격 데스크톱은 어느 컴퓨터에서든지, 구글 계정에 등록해 둔 컴퓨터만 있으면 별도의 프로그램 설치 없이 PC 원격 제어가 가능합니다. 심지어, 핸드폰 어플리케이션을 활용하여 핸드폰으로도 컴퓨터를 먼 곳에서 제어가 가능합니다. 크롬 원격 데스크톱 메인 페이지를 보시려면 아래 링크로 들어가시면 됩니다. remotedesktop.google.com/home 크롬 원격 데스크톱 원격 설치 1. 아래 링크로 들어가 로그인을 하고 다운로드 버튼을 눌러 크롬에 원격 데스크톱 확장 프로그램을 설치합..
최근에는 영화나 뮤직비디오 같은 영상들은 기본적인 16:9 비율을 넘어서 영상에 대한 몰입감이 가장 좋다는 21:9 비율로 만들어지는 추세입니다. 또한 이러한 추세에 비례하여 일반 16:9의 비율을 가지고 있는 모니터가 아닌 21:9 비율의 와이드 모니터까지 서서히 판매가 증가되고 있습니다. 저희 집 모니터도 와이드 모니터를 사용하여 영상을 시청하고 있는데요. 하지만 모니터의 비율과는 달리 유튜브에서는 비율을 조정하는 기능이 없어 영상의 겉 부분에 검은색 테두리가 그려져 모니터를 최적의 효율로 사용하지 못하고 있었습니다. 저와 같이 와이드 모니터를 사용하시는 분이라면 유튜브 특히 유튜브에서 구매한 영화등을 시청하다보면 위와 같이 검정색 화면이 거의 반 이상 차지하는 불편함을 느끼시는 분이 있으실 겁니다...
짧은 동영상이라면 영상을 삽입하는것 보다는 GIF파일 (움짤)로 변환해서 활용하는것이 좋을때가 있습니다. 동영상을 GF로 만드는 방법은 크게 동영상을 GIF로 변경해주는 사이트를 사용해주는 방법과 프로그램을 사용하는 방법이 있습니다. 이 두가지 방법 중 사이트를 이용하는 것이 설치도 필요없고 혹여나 프로그램을 다운받으면서 생기는 피해 (바이러스나 악성코드)를 예방할 수 있기에 추천드립니다. 동영상 파일을 GIF로 변환하기 (GIF 변환 웹 사이트 사용) 1. 아래에 링크된 사이트에 접속하여 가장 첫번째있는 탭 Video to GIF를 선택하고 변환 할 파일을 선택한 뒤 Upload video! 버튼을 누릅니다. ezgif.com/video-to-gif 2. 위에 업로드 된 영상을 재생하여 움짤(GIF)파..
전송 계층에서 사용되는 프로토콜 (TCP / UDP) TCP와 UDP는 OSI 표준모델과 TCP/IP 모델의 전송계층에서 사용되는 프로토콜입니다. 전송계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하고 IP에 의해 전달되는 패킷의 오류를 검사하며 재전송 요구 제어등을 담당하는 계층입니다. 쉽게 말해 데이터의 전달을 담당한다고 생각하시면 됩니다. TCP와 UDP는 포트 번호를 이용하여 주소를 지정하는것과 데이터 오류검사를 위한 체크섬 존재하는 두가지 공통점을 가지고 있지만 정확성(TCP)을 추구할지 신속성(UDP)을 추구할지를 구분하여 나뉩니다. 데이터를 중요하게 생각하여 확실히 주고받고 싶을 때는 ‘TCP(Transmission Control Protocol)’를 사용합니다. TCP는 통신할 컴퓨터..
TCP / IP란? TCP/IP(Transmission Control Protocol/Internet Protocol)는 데이터가 의도된 목적지에 닿을 수 있도록 보장해주는 통신 규약입니다. TCP / IP는 이름에서 알 수 있듯 TCP / IP에는 두가지 프로토콜로 이루어져 있으며 인터넷으로 디바이스를 연결하는 네트워크 프로토콜의 집합이며 개별적인 네트워크 프로토콜로 사용될 수도 있습니다. TCP / IP는 인터넷의 기본 통신 언어입니다. 기본적으로 TCP / IP를 사용하면 한 컴퓨터가 데이터 패킷을 컴파일하고 올바른 위치로 전송하여 인터넷을 통해 다른 컴퓨터와 통신 할 수 있습니다. 프로토콜이란? 컴퓨터와 네트워크 기기가 상호간에 통신하기 위해서는 서로 같은 방법으로 통신하지 않으면 안됩니다. 어떻..
개발자나 코딩을 배우는 학생들이라면 알고리즘 연습이나 간단한 코드를 짜고 실행해보고 싶을 때가 종종 있으실겁니다. 이럴때 간단한 코드 한줄을 실행해보기 위해 무거운 프로그램들을 깔기는 시간도 많이 걸리고 환경을 세팅하기도 귀찮습니다. 이럴때 웹 컴파일러를 사용하면 간단하게 코드를 짜고 실행할 수 있습니다. Tutorialspoint(https://www.tutorialspoint.com/) 이곳에서는 거의 모든 언어를 작성하고 컴파일 할 수 있습니다. 그리고 회원가입하면 작성한 코드도 저장할 수 있습니다. 자신이 작성하고 싶은 언어를 클릭한 후 코드를 작성하고 상단에 Execute 버튼을 눌러주면 오른쪽 Result 창에 컴파일 된 결과가 나오게 됩니다. 하지만 대부분의 웹 컴파일러들은 속도가 느리기에 ..
아주 오래전 『나만의 도메인을 가지면 어떨까?』 라는 생각을 한 적이 있습니다. 그 당시에는 도메인을 구매하는 비용과 계속해서 도메인을 갱신해주어야 한다는 압박감, 그리고 도메인을 바꾸면 블로그가 죽어버린다는 소문에 득보다는 실이 많은 것 같다 생각되어 그냥 티스토리 기본 도메인을 사용하자는 결론을 내렸었는데 최근 들어 이 『코딩팩토리』라는 블로그를 기반으로 여러 사업을 확장시키고 싶다는 욕구가 커짐에 따라 도메인 구입을 다시 고려하게 되었고 더 늦기 전에 개인 도메인을 구매하여 넣어주자라는 결론에 도달하게 되었습니다. 도메인 구매 사이트 결정 도메인의 가격의 원가는 ICNN(인터넷 관리 협회) 등록 수수료와 네임서버 운영비를 합쳐 대략 2천원 ~ 3천원 사이라고 합니다. 이 도메인을 여러 도메인 판매 ..
개발자로 살아남기 위해서는 빠른 기술의 변화 속도를 따라잡아야 합니다. 빠른 기술의 변화로 인해 전혀 새로운 패러다임의 영역을 공부해야 할 때도 있고 지금껏 배워왔던 기술들이 필요없어질 수도 있습니다. 기술 트렌드의 변화는 개발자들에게 많은 영향을 줍니다. 이러한 변화에 적응하려면 그만큼 많은 정보를 보고 받아들여야 하는데. 저는 여러 개발자들과의 대화를 통해 가장 많은 지식을 습득한다고 생각합니다. 혼자서만 묵묵히 개발하다 보면 어느 순간 내가 우물 안의 개구리가 되어가고 있다는 느낌을 받을 때도 트렌드에 뒤처진다는 느낌도 받을때가 있는데 그러지 말고 많은 개발자들의 고충은 무엇인지 관심사는 무엇인지 직접 보고 공유하면서 정보를 습득하는 것도 좋은 방법이라 생각됩니다. 이번 포스팅에서는 이러한 개발자들..