웹 서버에 대해 많은 글이나 정보를 찾아보면 URL과 URI를 혼용해서 쓰는 경우가 많았다. 얼마나 유사한것인지 그리고 분명 명칭이 다른 이유가 있을텐데 어떤 차이점이 있는지 궁금해서 찾아보았다. URI URI는 특정 리소스를 식별하는 통합 자원 식별자(Uniform Resource Identifier)를 의미한다. 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스다. 다음과 같은 구조를 갖는다. scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment] scheme : 사용할 프로토콜을 뜻하며 웹에서는 http 또는 https를 사용 user와 password : (서버에 있는) 데이터에 접근하기 위한 사용자의 ..
HTTP Protocol(Hyper Text Transfer Protocol)은 인터넷상에서 데이터를 주고받기위한 프로토콜이며, TCP/IP 위에서 작동하고, html문서, 이미지, 동영상, 오디오 등 여러 종류의 데이터를 주고 받을 수 있다. 특징 1. 서버 클라이언트 모델을 따른다. 클라이언트는 클라이언트 소프트웨어(Chrome, Safari, Edge 등...)가 설치된 컴퓨터를 통해 URI를 이용해서 서버에 접속하여 요청을 보낸다 -> Request 서버는 서버 소프트웨어(Apache, nginx, IIS 등...)로 그 요청을 받아서 해석하고 응답을 한다 -> Response 위와 같은 요청/응답은 80번 포트를 통해 서비스한다. 2. Connectionless & Stateless http는 ..
대게 웹 서비스를 개발할때 MVC 패턴이라는 디자인 패턴중 하나를 사용하게된다. 장고는 이 MVC패턴과 유사한 MTV 패턴을 사용한다. 졸업프로젝트로 서버를 개발하다 급하게 특정 서비스를 배포하기 위해 파이썬을 사용해야 할때가 생겨서 장고를 사용한 적이 있다. 원래 스프링으로 개발했기 때문에 MVC패턴에만 익숙한 상황에서 장고를 쓰다보니 기본적인 기능조차 이해가 되지 않았고, 구현하는데도 한참 걸렸다. MVC 패턴에 관한 글 보러가기 ➡ Web Service - MVC 패턴 (tistory.com) Web Service - MVC 패턴 서버 개발자로 지원할때(웹 프론트나 모바일 애플리케이션은 지원해본적이없어서 모르겠다) 단골로 등장하는 질문이다. MVC패턴에 대해 설명해주세요 누군가가 이것에대해 설명해달..
이와같은 MVC패턴 구조를 갖도록 개발을 할때, 스프링부트(혹은 스프링)을 이용하면 데이터에 접근하기위해 DAO, DTO, VO, Entity라는 개념을 사용하게 된다. 이에 대해 한번 정리를 해보고자 한다. Domain 소프트웨어로 해결하고자 하는 모든것을 통틀어서 부르는 말. 소프트웨어로 개발하려는 혹은 개발한 특정 개념들을 묶은 것이라고 이해하시면 됩니다. 예를들어, 크게는 쇼핑몰 도메인, 작게는 주문 도메인 등에 해당합니다. 출처 : OKKY - DAO, DTO, VO 개념이 정확히 뭔가요? 소프트웨어로 하고자하는 모든 것을 일컫는 표현이라고 받아들였다. DAO - Data Access Object 실제로 DB에 접근에서 데이터에 대해 CRUD를 수행할 객체이다. (데이터베이스를 객체로 표현하는 ..
서버 개발자로 지원할때(웹 프론트나 모바일 애플리케이션은 지원해본적이없어서 모르겠다) 단골로 등장하는 질문이다. MVC패턴에 대해 설명해주세요 누군가가 이것에대해 설명해달라고하면 늘 두루뭉실하게 대답하는 것 같아서 이번 기회에 제대로 정리를 해두려고 한다. MVC Pattern 바퀴를 재발명하지마라. 라는 유명한 말이 있다. 어떤 프로젝트를 개발할때 처음부터 모든것을 하나하나 스스로 개발하려고 한다면 엄청난 노력과 시간이 걸릴 것이다. 또한 누군가가 자신의 입맛대로 만든다면 추후에 다른 개발자가 유지보수하기에도 힘들 것이다. 이에 대해 유지보수를 포함한 모든과정을 보다 쉽고 편리하게 만들기위해 디자인패턴이라는 것이 존재한다. 디자인패턴이란? 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을..
Development Restful Web Server 학부 졸업 프로젝트로 모바일 어플리케이션제작을 진행하고 있는데, 그 중 Spring Boot Framework를 통한 서버 개발을 하는 중이다. (Spring Boot는 Spring의 러닝커브를 줄이고자 어느정도의 환경을 설정해주고 여러 스프링의 기능들을 응용하기 쉽게 도와주는 프레임워크이다. 원래 Spring으로 서버 개발을 하려고 했으나, 익숙치않고 너무 어려워서 Spring Boot로 노선을 바꾸게 되었다.) 처음엔 관심있는 분야가 웹 서버 개발이였고 모바일 앱을 구현하기로 했을때, 구조가 다를거라 생각해서 조금 걱정되었지만 크게 다를 바 없었다. 단지 이 웹 어플리케이션 구조에서 Client가 안드로이드(Java/Kotlin) 혹은 iOS(S..