반응형

전체 글 168

[네트워크] 쿠키와 세션

쿠키와 세션을 사용하는 이유HTTP의 가장 큰 특징인 무상태성과 비연결성이다.HTTP의 통신 결과에대해서 이전 통신 상태가 남아있지 않게 된다.이전 통신 결과가 남아있지 않기 때문에 자원이 낭비되며 이를 해결 하기 위해 쿠키가 등장하였다. 비연결성이란? - 클라이언트가 요청을 한 후 응답을 받으며 그 연결을 끊어버리는 특징무상태성이란?- 통신이 끝나면 상태를 유지하지 않는 특징 쿠키란?쿠키는 사용자가 웹사이트를 방문할 경우 사용자 웹 브라우저를 통해 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일HTTP에서 클라이언트의 상태 정보를 PC 에 저장했다가 필요시 참조하거나 재사용할 수 있다.쿠키의 형태는 KEY 와 Value 형태로 저장된다.HTTP 헤더에 요청을 보낼 때마다 매번 쿠키를 담아서 보내어 사용..

CS/네트워크 2025.03.23

Spring ExceptionHandler을 사용한 예외처리

Spring ExceptionHandler을 사용한 예외처리 ExceptionHandler란?스프링 부트에서 예외를 처리하는데 사용하는 어노테이션으로 특정 컨트롤러에서 발생하는 예외를 개별적으로 처리 하도록 하거나전역적으로 관리하는데 활용됩니다. 내가 작성할거는 전역 예외 처리 방법이다.전역 예외 처리ControllerAdvice란?개별 컨트롤러에서 처리하는 대신 전역적으로 예를 관리하도록 해주는 어노테이션으로@ ControllerAdvice 와 @RestControllerAdvice 어노테이션이 존재한다.@ ControllerAdvice : 일반 @ Controller 에서 view를 반환하는 컨트롤러에 대한 예외를 처리한다@RestControllerAdvice : REST API 컨트롤러에 대한 예외..

[자바] Two Pointer 알고리즘

Two Pointer 알고리즘 (투 포인터 알고리즘)개념투 포인터 알고리즘은 배열이나 리스트에서 두 개의 포인터를 사용하여 효율적으로 목표(문제)를 해결하는 기법으로 정렬된 배열에서 특정 조건을 만족하는 부분을 찾을 때 사용하면 시간 복잡도를 줄이는 매우 좋다.로직두 개의 포인터를 사용하여 배열을 탐색보통 하나를 왼쪽(배열 인덱스0)에서 시작, 다른 하나는  오른쪽에서 시작하여  특정 조건을 만족하는 경우를 찾는다.문제 유형에따라 오른쪽 시작 지점이 0부터 시작할 수도 있고 배열 인덱스의 최대치에서부터 시작할 수 있다.대표 유형두 수 의 합배열이 정렬된 상태에서 투 포인터를 사용하여 두 수의 합이 특정 값이 되는지 찾는 문제로직왼쪽 인덱스 left를 0으로, 오른쪽 인덱스 right를 배열의 끝으로 설정..

알고리즘 2025.03.15

[백준 16964 파이썬] DFS 스페셜 저지

백준 16964 파이썬DFS 스페셜 저지문제BOJ에서 정답이 여러 가지인 경우에는 스페셜 저지를 사용 한다.스페셜 저지는 유저가 출력한 답을 검증하는 코드를 통해서 정답 유무를 결정하는 방식이다.오늘은 스페셜 저지 코드를 하나 만들어 보려고 한다.정점의 개수 N이고 정점에 1부터 N까지 번호가 매겨져 있는 양방향 그래프가 있을 때, DFS 알고리즘은 다음과 같은 형태로 이루어져 있다.이 문제에서 시작 정점은 1이기 때문에 가장 처음에 호출하는 함수는 dfs(1)이다.DFS 방문 순서는 dfs 함수에서 //x를 방문이라고 적힌 곳에 도착한 정점 번호를 순서대로 나열한 것이다.트리가 주어졌을 때, 올바른 DFS 방문 순서인지 구하여라.입력첫째 줄에 정점수 N 이 주어진다.둘째 줄부터는 N-1개의 줄에는 트리..

[자료구조] 스택,큐,힙

스택 (Stack)스택은 LIFO (Last In, First Out, 후입선출) 방식의 자료구조로, 가장 나중에 삽입된 데이터가 가장 먼저 삭제되는 구조입니다.특징삽입(Push)과 삭제(Pop) 연산만 허용되며, 두 연산은 항상 스택의 최상단(Top)에서만 수행됩니다.데이터 접근이 제한적이며, 가장 마지막에 추가된 데이터부터 접근 가능.재귀(Recursion) 구현이나 DFS(깊이 우선 탐색) 등의 알고리즘에서 많이 사용됨.시간복잡도삽입(푸시) 및 삭제(팝): O(1) (항상 스택의 Top에서만 연산)탐색: O(n) (순차적으로 접근해야 하기 때문)큐 (Queue)큐는 FIFO (First In, First Out, 선입선출) 방식의 자료구조로, 먼저 삽입된 데이터가 가장 먼저 삭제되는 구조입니다.특징..

CS/자료구조 2025.02.26

스프링 Junit5 와 Mockito를 이용한 단위 테스트

JUnit 5(Jupiter)와 Mockito를 이용한 단위 테스트1. 의존성 설정JUnit 5와 Mockito를 사용하여 단위 테스트를 진행하려면 먼저 프로젝트에 필요한 의존성을 추가해야 합니다. Spring Boot 환경에서 테스트를 진행할 경우 아래와 같이 build.gradle 또는 pom.xml에 추가하면 됩니다.// build.gradletestImplementation("org.mockito:mockito-core")testImplementation("org.mockito:mockito-junit-jupiter")testImplementation 'org.springframework.boot:spring-boot-starter-test'2. User 엔티티아래는 User 엔티티의 예제 코드입..

[파이썬] 백준 3190 뱀

[파이썬] 백준 3190 뱀https://www.acmicpc.net/problem/3190 문제Dummy라는 도스 게임이 있다. 이 게임에는 뱀이 나와서 기어 다니는데 , 사과를 먹으면 뱀 길이가 늘어난다.뱀이 벽 또는 자기 자신의 몸과 부딪히면 게임이 끝이 난다. N x N 정사각 보드 위에서 진행되고 몇몇 칸에 사과가 놓여 있다. 보드 상하좌우 끝에는 벽이 있다.뱀의 처음 시작위치는 맨 위 맨 좌측에 위치하고 처음 길이는 1이다. 뱀은 처음에는 오른쪽으로 향한다. 뱀은 매초 마다 움직이는데 아래의 규칙을 따른다.먼저 뱀은 몸길이를 늘려 머리를 다음칸에 위치시킨다.만약 벽이나 자기 자신의 몸과 부딪히면 게임이 끝난다.만약 이동한 칸에 사과가 있다면, 그 칸에 있던 사과가 없어지고 꼬리는 움직이지 않는..

스프링 - 이메일 인증

이메일 인증- 앞서 스프링에서 이메일 인증을 하기위해 구글 이메일 설정및 앱 비밀번호 생성하는 부분은 생략하겠다. 1. 의존성 추가이메일 기능을 사용을 위한 의존성 추implementation 'org.springframework.boot:spring-boot-starter-mail' 2.application.yml 설정spring: mail: host: smtp.gmail.com port: 587 username: ${MAIL_USERNAME} password: ${MAIL_PASSWORD} properties: mail: smtp: auth: true starttls: enable: true ..

클라우드 타입을 이용하여 리액트,스프링부트 배포

클라우드 타입을 이용하여 리액트, 스프링부트 배포 처음 배포할때에는 db와 서버는 클라우드 타입 리액트는 netlify로 배포하였다. 그러나 서로 도메인이 달라 cors문제가 발생하였고 이걸 해결하기 위해 이것저것 해봤지만 시큐리티의 세션을 쿠키로 전달하는 과정 때문에 대부분 막혀 결국 리액트도 크라우드 타입으로 같은 도메인은 사용하도록 배포하였다.  클라우드 타입으로 스프링부트 배포 하는법깃허브 레퍼지토리에서 자신의 스프링부트 레퍼지토리를 선택하고 그 후자신의 프로젝트에 맞는 자바 버전을 저기서 설정할 수 있다. 환경변수는이렇게 설정할수 있는데 이때 application.yml 파일에spring: profiles: active: ${PROFILE}profile는 환경변수가 집어넣을 파일명을 의미..

프로젝트 2024.12.30

TaskHub

TaskHub 기술 스택1. FrontendReact:ReduxRouter2. BackendSpring Boot:Spring SecurityJPA3. DatabaseMySQL 기능로그인 : 시큐리티의 세션 기반 인증을 이용하여 로그인하고 리액트에서 세션값을 리덕스에서 관리todo : 사용자 개인의 todo 리스트 생성,저장,불러오기,삭제메시지 : 사용자 간 메시지 전송,수신,확인,삭제 동작과정메인 로그인 TODO메시지메시지 작성메시지 확인 향후보환 계획웹소켓을 추가하여 채팅기능등 여러 기능을 추가해볼생각OAuth2 로그인 추가UI 개선모바일 지원

프로젝트 2024.12.28
반응형