전체 글

하루 한권 책으로 떠나는 개발여행
큐의 동작방식을 알아보고 문제를 풀어보자! 들어가며 큐의 개념과 기본적인 사용법을 알아보고, 백준의 문제를 통해 한번 풀어보도록 하겠습니다. 큐(Queue)란? 큐는 FIFO(First-in First-Out)의 원칙을 따르는 자료구조입니다. LIFO를 사용하는 스택과는 달리 큐는 먼저 들어간 데이터부터 먼저 꺼내는 특징을 가지고 있습니다. 큐에서 데이터를 넣을 때는 en-queue라고하며 데이터를 꺼낼 때에는 dequeue라고 부릅니다. 이제 {1,3,21}을 큐를 이용해 입출력을 한번 해보겠습니다. 위와 같이 먼저 들어온 데이터부터 출력되는 것을 볼 수 있습니다. 하지만 이와 같이 큐를 사용하게 된다면 1을 디큐 했을 때 배열[1], 배열[2]의 값을 한 칸식 앞으로 이동해야 하는 문제점이 생깁니다...
JWT토큰을 사용해서 로그인을 간단하게 구현해 보자! 들어가며 이전 포스팅까지 JWT토큰의 대해서 이론적으로 설명했습니다. 이번 포스팅에서는 이론적인 부분은 설명하지 않고 코드로만 JWT토큰을 사용해 간단하게 로그인 기능을 구현해 보도록 하겠습니다. 만약 이론적은 부분이 궁금하시다면 이전 포스팅을 참고해 주시면 감사하겠습니다. JWT(JSON Web Token) 토큰 [1] JWT(JSON Web Token) 토큰 [2] 프로젝트환경 springboot -version : 2.7.18 java -version : 17 DB : Mysql_8.0.33 IDE : IntelliJ _Ultimate 기본적인 SpringBoot, SpringSecurity, MySQL등과 같은 지식이 있다는 전재로 설명하도록 ..
스택이란? 들어가며 데이터를 일시적으로 보관하는 자료구조인 스택에 대해서 알아보도록 하겠습니다. 스택 이란? 스택은 자료를 일시적으로 보관해 두는 자료구조로써 후입선출(LIFO: Last In First Out)을 통해서 데이터를 일시적으로 보관합니다. LIFO는 영문자 그대로 나중에 들어간 데이터부터 가장 먼저 꺼내는 방법입니다. 스택에서는 데이터를 넣을때는 PUSH라고 부르며, 데이터를 꺼낼 때는 POP라고 부릅니다. 위그림과 같이 푸쉬와 팝과정을 나타내고 있다. psuh를 할 때에는 데이터를 차곡차곡 쌓아가다가 pop을 하면 제일 최근에 들어온 45 값을 pop며 LIFO 과정을 거치는 자료구조라고 볼 수 있다. 알고리즘 예제 알고리즘예제에는 백준의 28278번을 보고 풀어볼 예정입니다. 자바에서는..
JWT토큰이란? 들어가며 이전 포스팅에서는 JWT 토큰이 만들어지기 전에 왜 필요한지 간단히 살펴보았습니다. 이번 포스팅에서는 JWT가 무엇인지와 함께 JWT가 보안을 유지하는 데 어떤 알고리즘을 사용하는지에 대해 알아보겠습니다. 이전 포스팅을 한번 읽어보고 오시는 걸 추천드립니다. "JWT-등장배경" JWT JWT(JSON 웹 토큰) 는 당사자 간에 정보를 JSON 개체로 안전하게 전송하기 위한 간결하고 독립적인 방법을 정의하는 개방형 표준( RFC 7519 )입니다. 이 정보는 디지털 서명이 되어 있으므로 확인하고 신뢰할 수 있습니다. JWT는 비밀( HMAC 알고리즘 사용) 또는 RSA 또는 ECDSA를 사용하는 공개/개인 키 쌍을 사용하여 서명할 수 있습니다. JWT를 암호화하여 무결성을 증명하고..
선형알고리즘과 이진 검색 알고리즘 들어가며 데이터를 조회할때 검색 알고리즘을 사용하곤 합니다. 그래서 이번 포스팅에서는 가장 검색의 기본적인 알고리즘인 선형 검색과 이진검색 알고리즘에 대해서 알아보도록 하겠습니다. 선형 검색 선형검색이란? 리스트나 배열에서 순차적으로 배열 요소를 검사해 나가며 원하는 값을 찾는 방법입니다. 즉 배열[0]부터 배열[N]까지의 요소 중 원하는 KEY값을 찾는다고 할 수 있습니다. 예를 들어 {1,2,3,7,9} 값이 들어있는 배열을 생각해 봅시다. 만약 "7"이라는 값을 찾으려면 다음과 같이 arr [0]부터 arr [3]까지 찾게 됩니다. 만약에 "10"이라는 값을 찾는다고 가정하면 다음과 같이 arr[0]~arr[4]까지 모든 배열을 검색하고 난 뒤에 종료를 하게 됩니다..
JWT토큰을 사용하게 된 이유를 간단하게 알아보자 들어가며 JWT(JSON Web Token) 토큰은 현대 웹개발에 많은 부분을 차지하고 있습니다. 이번 포스팅에서는 JSON 토큰이 왜 등장하게 되었는지 간단하게 알아보도록 하겠습니다. OSI 7 계층 OSI(Open Systems Interconnection) 모델은 데이터 통신의 프로세스를 이해하고 설명하는 데 사용되는 개념적인 모델입니다. 이 모델은 7개의 계층으로 구성되어 있으며, 각 계층은 특정한 역할을 담당합니다. 물리계층 : 실제 데이터가 전송되는데 필요한 하드웨어계층(bit 단위로 처리되며 0,1로 이진수 형태로 전송) 랜선, 리피터, 허브등과 같은 장비를 가지고 있다. 데이터 링크 계층 : 물리적인 데이터를 전송하기 위한 프레임 구조 및 ..
· Devops
커밋, 푸쉬를 취소및 ADD 언스테이징을 해보자 들어가며 프로젝트 도중 민감한 정보가 올라간지 모르고 커밋을 하고 푸쉬를 하고 나서 롤백하려고 많은 삽질을 한 후에 해결방법을 작성했습니다. add 언스테이징하기 위와 같이 현재 add.txt 파일이 스태이징 된 상태입니다. 언스테이징을하기 위해서는 다음과 같은 명령어를 통해서 언스태이징이 가능합니다. git rest 명령어를 실행 시 빨간색으로 변하며 언스트이지 상태로 변하는 것을 볼 수 있습니다. Commit 취소하기 //commit을 취소하고 stage 상태 $ git reset --soft HEAD^ //commit을 취소하고 unstaged 상태 -Default $ git reset --mixed HEAD^ == git reset HEAD^ // ..
· Spring
Dispatcher Servlet과 MVC 패턴에 대해서 알아보자 들어가며 스프링 프레임워크를 이용하여 웹 개발을 시작하려면 Dispatcher Servlet과 MVC 패턴에 대한 기본적인 이해가 필요합니다. 먼저, Servlet이란 무엇인지, 어떻게 동작하는지에 대해 알아보겠습니다. 그리고 MVC 패턴은 어떻게 구성되어 있으며 왜 사용되며, 실제로 어떻게 동작하는지를 자세히 살펴보겠습니다. 이러한 기본적인 이해는 원활한 스프링 기반 웹 개발을 위한 필수적인 요소이기 때문에 이번 시간에 알아보도록 하겠습니다. Servlet이란? 서블릿은 자바의 웹 프로그래밍 기술 중 하나로, 동적인 웹 페이지를 생성하고 처리하는 역할을 합니다. 웹 페이지에서는 클라이언트와 서버 간의 통신은 웹 어플리케이션을 통해 이루어..
코드기록사
A steady developer