분류 전체보기130 [Network] 3-way handshake, 4-way handshake의 개념 및 동작 원리 OSI 7 계층과 TCP/IP 모델의 전송계층에서 사용되는 프로토콜인 TCP과 UDP의 가장 큰 차이점은 신뢰성에 있습니다. TCP는 3-way handshake와 4-way handshake를 통해 신뢰성을 구축하여 클라이언트와 서버를 연결하여 데이터를 보내고 UDP는 오직 데이터만을 빠르게 보내어 신속성을 보장합니다. 이번 포스팅에서는 3-way handshake와 4-way handshake의 개념 및 동작원리에 대해 살펴보겠습니다. 3-way handshake 3-way handshake는 세션을 연결하기 위해서 3번의 일련의 과정을 통해서 수행됩니다. 클라이언트는 서버에게 연결을 요청하겠다는 요청(SYN) 패킷을 보냅니다. 이때 클라이언트는 서버에 SYN+ACK 응답을 기다리는 SYN-SENT .. 2022. 3. 13. 세션(Session), 쿠키(Cookie), JWT(JSON Web Token) 의 개념 및 차이점 웹 개발을 할 때 세션과 쿠키를 사용하는 이유는 무엇일까요? 세션과 쿠키를 사용하는 이유는 아래와 같은 HTTP 프로토콜의 두 가지 특성(Connectionless, Stateless)에서부터 시작됩니다. 1. Connectionless(비연결성) HTTP 프로토콜은 인터넷상에서 데이터를 주고 받기위한 서버/클라이언트 모델을 사용합니다. 클라이언트는 request를 보내고 서버는 요청을 처리하여 response를 보내게 되는데 response를 받은 클라이언트는 연결 상태가 유지되지 않고 끊어버립니다. 이러한 작동방식은 많은 사용자들의 요청을 처리하기 위해 적합합니다. 2. Stateless(비상태성) 서버는 한번 끊어진 클라이언트의 상태 정보를 저장하지 않습니다. 따라서 어떠한 클라이언트의 상태정보를 .. 2022. 3. 12. [백준 알고리즘][자바] 2750번 : 수 정렬하기 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 2022.01.22 - [Algorithm/Theory] - [자바] 단순 선택 정렬과 단순 삽입 정렬 [자바] 단순 선택 정렬과 단순 삽입 정렬 단순 선택 정렬 단순 선택 정렬이란 배열중 가장 작은 요소를 선택해 알맞은 위치로 옮겨서 정렬하는 단순한 알고리즘입니다. 아래의 배열에서 가장 작은 요소인 1을 선택해 첫 번째 위치인 6과 hyunipad.tistory.com import java.io.Buff.. 2022. 3. 8. [백준 알고리즘][자바] 1436번 : 영화감독 숌 https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { public static void main(String[] args) thro.. 2022. 3. 6. [백준 알고리즘][자바] 1018번 : 체스판 다시 칠하기 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 브루트 포스의 문제입니다. 브루트 포스는 모든 경우의 수를 검사한다는 부분은 간단하지만, 어떤 경우의 수를 검사하는지가 어려운 거 같습니다. 문제 속에 힌트가 있었습니다. 8x8 크기의 체스판으로 잘라낸 후에 몇 개의 정사각형을 다시 칠해야겠다고 생각했다. 8x8 크기의 체스판으로 잘라낼 때, 잘라낼 8x8의 첫 시작 정사각형을 기준으로 살펴보면 규칙이 눈에 보입니다. 예제 입력을 보면서 .. 2022. 3. 5. [자바] 셸 정렬(Shell Sort) 셸 정렬 셸 정렬은 단순 삽입 정렬을 보완하여 좀 더 빠르게 정렬하는 알고리즘입니다. 단순 삽입 정렬은 아래의 포스팅을 참고해주시길 바랍니다. 2022.01.22 - [Algorithm/Theory] - [자바] 단순 선택 정렬과 단순 삽입 정렬 [자바] 단순 선택 정렬과 단순 삽입 정렬 단순 선택 정렬 단순 선택 정렬이란 배열중 가장 작은 요소를 선택해 알맞은 위치로 옮겨서 정렬하는 단순한 알고리즘입니다. 아래의 배열에서 가장 작은 요소인 1을 선택해 첫 번째 위치인 6과 hyunipad.tistory.com 아래는 단순 삽입 정렬을 장점과 단점입니다. 정렬을 마쳤거나 정렬을 마친 상태에 가까우면 정렬 속도가 빠릅니다.(장점) 삽입할 위치가 멀리 떨어져 있으면 이동해야 하는 횟수가 많아집니다.(단점) .. 2022. 1. 27. [스프링 프레임워크] 회원가입 이메일 인증 구현하기 이번 포스팅에서는 회원가입 이메일 인증을 구현하는 방법을 소개하겠습니다. 그 외의 프로젝트 세팅이나 게시판 구현 등은 아래의 포스팅을 참고해주시길 바랍니다. 2021.07.05 - [Programming/Spring] - [스프링 프레임워크]게시판 만들기 #1 : 프로젝트 생성 및 셋팅 [스프링 프레임워크]게시판 만들기 #1 : 프로젝트 생성 및 셋팅 본 포스팅은 스프링 프레임워크를 이용하여 기본적인 게시판을 만드는 방법을 설명합니다. 안녕하세요. 이번 포스팅은 Spring Framework를 이용하여 게시판 만드는 방법을 설명합니다. Spring Framework hyunipad.tistory.com 우선 제가 구현한 회원가입 폼입니다. 1인 1 아이디를 구현하기 위해서 이메일 인증을 도입했고, 다른 .. 2022. 1. 23. 오라클 쿼리 튜닝 가이드 - 기본 대용량 데이터 베이스를 다루다 보면 쿼리의 미세한 차이로 성능이 달라지는 경우가 더러 있습니다. SQL 튜닝 전문가가 있어도 모든 쿼리를 튜닝해줄 수 없기 때문에 개발자가 기본적으로 좋은 쿼리를 짜는 방법을 알고 있는 것이 좋습니다. 쿼리를 튜닝하기 전에 좋은 쿼리를 짜기 위한 몇 가지 팁들을 소개합니다. 1. WHERE절 내의 JOIN 조건절 위치 SQL Parser에 의해 쿼리가 해석될 때 WHERE내의 조건은 밑에서 부터 위로 해석됩니다. 따라서 JOIN 조건절이 제일 위에 작성되었을 때 아래에서 처리건수를 줄여주기 때문에 효율적이게 됩니다. 처리건수나 통계정보에 따라 옵티마이저가 실행 경로를 다르게 실행할 수 있기 때문에 실행계획을 보는 것이 좋습니다. 1) 비효율적인 경우 SELECT ... F.. 2022. 1. 23. [자바] 단순 선택 정렬과 단순 삽입 정렬 단순 선택 정렬 단순 선택 정렬이란 배열중 가장 작은 요소를 선택해 알맞은 위치로 옮겨서 정렬하는 단순한 알고리즘입니다. 아래의 배열에서 가장 작은 요소인 1을 선택해 첫 번째 위치인 6과 교환합니다. 그다음 작은 요소인 4를 선택해 두 번째 위치는 5와 교환합니다. 아직 정렬하지 않은 요소중에서 가장 작은 값을 선택합니다. 선택한 가장 작은 값과 아직 정렬하지 않은 부분의 첫 번째 위치의 요소와 교환합니다. 단순 선택 정렬은 위와 같은 작업을 N-1회 반복하여 정렬하는 알고리즘입니다. 단순 선택 정렬을 코드로 구현해보겠습니다. package selectionsort; public class selectionSort { static void swap(int[] a, int idx1, int idx2) {.. 2022. 1. 22. [자바] 버블 정렬(Bubble Sort) 버블정렬 버블 정렬이란 이웃한 두 요소의 대소 관계를 비교하여 교환을 반복하는 단순한 알고리즘입니다. 예시를 들어 버블 정렬에 대해 알아보겠습니다. 먼저 끝에 있는 두 요소 9와 8부터 대소를 비교합니다. 이때 오름차순이라면 왼쪽의 값이 작아야 하고 내림차순이라면 왼쪽의 값이 더 커야 합니다. 오름차순으로 정렬을 할 것이기 때문에 9와 8을 교환하면 아래와 같은 배열이 됩니다. 그다음 1와 8을 비교합니다. 1은 8보다 작기 때문에 교환할 필요가 없습니다. 따라서 그 다음 요소를 비교하교 이렇게 첫 번째 요소까지 작업을 계속한다면 아래와 같은 순서로 정렬이 되게 됩니다. 요소의 개수가 N개인 배열에서는 N-1회를 비교하게 되고 끝에서 끝까지 교환하는 작업을 패스(pass)라고 합니다. 그리고 패스가 한번.. 2022. 1. 21. 이전 1 2 3 4 5 6 7 ··· 13 다음 반응형