목록Web (14)
코딩하는 바나나

TCP, UDP 모두 데이터를 보내기 위해 사용 하는 전송 프로토콜이다. 보통 IP와 함께 사용된다. IP패킷에 TCP세그먼트(출발지 PORT, 목적지 PORT, 전송제어, 순서, ..)나 UDP를 담아서 전송한다. TCP TCP는 연결지향적이다. 이 말의 의미는 데이터를 보내기전에 일단 연결을 먼저 한다는 뜻이다. 연결은 위의 그림과 같은 방식으로 하게된다. 먼저 클라이언트가 연결요청(syn)을 보내면 서버는 연결이 되었다는 응답(ack)을 준다 그리고 이와 동시에 서버도 클라이언트에 연결요청(syn)을 보낸다. 클라이언트는 다시 서버에게 연결이 되었다는 응답(ack)을 보낸다. 이런 방식을 TCP 3 way handshake 라고한다. 또한 TCP는 데이터 전달을 보증하고 순서 또한 보장한다는 특징이..
JWT JWT는 웹 개발을 하다보면 꼭 필요한 녀석이라고 한다. 보통 사용자 인증/인가에 사용된다고 한다. Jason Web Token의 약자이다. 서버에 접속하는 사용자를 인증을 위해 사용하는 Jason 기반의 암호화된 토큰이다. JWT를 request에 담아서 보낸다. JWT 구성 JWT는 세가지 요소로 구성된다. 각 요소는 aaaa.bbbbb.cccc와 같이 . 으로 구분된다. 그리고 이는 url에서 사용 할 수 있도록 Base64url 인코딩을 사용한다고 한다. 각 요소는 Jason 형태로 저장이 되어있다. JWT의 첫번째 요소는 header이다. 여기에는 토큰의 타입과 해시 암호화 알고리즘으로 구성되어있다. JWT의 두번째 요소는 payload이다. 여기에는 토큰에 담을 정보가 들어있다. 여기에..

MVC 패턴이란 Model, View, Controller의 개념이 합쳐진 개발 방식이다. 동작 방식은 사용자가 서버로 request를 보내면 이를 일단 Controller가 받는다. Controller는 Service같은 객체들을 이용해서 비지니스 로직을 수행하고 이 결과를 Model에 담는다. 이를 View를 이용해서 Model에 담긴 정보를 바탕으로 화면을 구성하고 사용자에게 응답을 해준다. Spring MVC 패턴은 이런 MVC 패턴을 바탕으로 만들어진 것이다. 작동방식은 다음과 같다. 먼저 사용자로 부터 들어오는 모든 요청들은 DispatcherServlet이 받는다. 이제 이 요청을 처리해줄 Controller를 찾아야한다. 이는 HandlerMapping이 찾아준다. 찾아 주는 방식은 사용자..
https://fine-code.tistory.com/14 [BackEnd] JDBC DAO DAO는 Data Access Object 즉 데이터에 접근하는 객체이다. 우리는 보통 DAO객체를 구현해서 DB에 접근해서 값을 조회, 수정, 삭제, 삽입 등의 작업을 한다. DAO객체를 따로 서비스 객체와 분리 시켜 DAO fine-code.tistory.com Spring JDBC는 앞선 JDBC게시물에서도 보았듯이 JDBC를 그냥 사용하기에는 반복되는 코드가 너무 많아 복잡하다. 이를 해결 해 줄 수 있는 것이 Spring JDBC이다. 우리는 DAO클래스에서 JDBC를 직접 사용하는 것이 아닌 Spring JDBC를 사용 할 것이다. Spring JDBC에서 정의된 클래스, 함수들을 사용하면 된다. 이 ..

DAO DAO는 Data Access Object 즉 데이터에 접근하는 객체이다. 우리는 보통 DAO객체를 구현해서 DB에 접근해서 값을 조회, 수정, 삭제, 삽입 등의 작업을 한다. DAO객체를 따로 서비스 객체와 분리 시켜 DAO는 DB에 접근해서 데이터를 가져오고 서비스 객체는 직접 DB에 접근하지 않고 DAO로 부터 데이터를 받아 비지니스 로직을 적용해준다. JDBC JDBC는 Java Data Base Connectivity의 약자이다. JDBC를 이용해서 우리는 DB에 접근할 수 있다. 즉 DB(DBMS)에 접근 할 수 있도록 만든 API이다. 보통 DAO객체 안에서 JDBC를 이용한다. 그런데 JDBC를 사용하면 코드가 굉장히 복잡하고 길다. 그리고 반복되는 코드를 계속 사용해줘야한다. 그래..
DB(데이터베이스)는 데이터의 집합으로 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터의 집합이다. DB는 데이터를 효율적으로 저장하고 검색, 수정을 할 수 있도록 데이터 집합들끼리 연관시키고 조직화를 해준다. 이런 DB에는 4가지 특성이 있다. 1. 실시간 접근성 - 사용자의 요구를 즉시 처리할 수 있다. 2. 계속적인 변화 - 정확한 값을 유지하려고 삽입, 삭제, 수정, 작업 등을 통해 데이터를 지속적으로 갱신할 수있다. 3. 동시 공유성 - 사용자마다 서로 다른 목적으로 사용하므로 동시에 여러 사람이 동일한 데이터에 접근하고 이용할 수있다. 4. 내용 참조 - 저장한 데이터의 위치나 주소가 아닌 사용자가 요구하는 데이터의 내용, 즉 데이터 값에 따라 참조 할 수 있어야한다..

Scope 웹 개발을 하다보면 어떤 데이터를 잠깐 만 저장할 때도 있지만 때에 따라서 웹 어플리케이션이 실행되는 내내 계속 데이터를 가지고 있어야 할 때도 있을 것이다. 이렇게 변수의 범위를 딱 정해서 사용 하도록 해주는 것이 Scope이다. 웹 개발에서의 Scope는 4가지가 있다. Application scope Session scope Request scope Page scope 출처 https://www.boostcourse.org/web316/lecture/16708?isDesc=false 웹 프로그래밍(풀스택) 부스트코스 무료 강의 www.boostcourse.org 위 처럼 각 scope별로 범위가 나눠져 있다. page는 서블릿 마다 가지는 영역이다. 따라서 포워드 될 경우 page sco..

Redirect Redirect란 Http프로토콜러 정해진 규칙이다. 클라이언트가 어떤 url에 접근했을 때 서버가 그 요청에 대해 또 다른 url로 이동하도록 클라이언트에 요청 하는 것을 redirect 라고한다. 위의 그림과 같이 서버가 다른 url로 요청을 할때 3xx이라는 상태코드로 응답을 한다. 이때 301이나 302가 주로 쓰이는데 301은 해당 컨텐츠가 영구적으로 다른 url로 이동했을때 사용되고 302는 해당 컨텐츠가 임시적으로 이동했을 때 사용이 된다. 서버는 상태코드를 보내면서 이동할 url도 같이 보내고 클라이언트는 해당 url로 이동하는 요청을 다시 서버에 보내게 된다. 위는 redirect01.jsp 파일이다. 이 처럼 리다이렉트는 http response의 sendRedirect..