분류 전체보기

CS/데이터베이스

[데이터베이스] 데이터베이스와 데이터베이스 시스템

데이터, 정보, 지식 데이터 : 관찰의 결과로 나타난 정량적 혹은 정성적인 실제 값 정보 : 데이터에 의미를 부여한 것 지식 : 사물이나 현상에 대한 이해 데이터베이스 데이터베이스 : 조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것 데이터베이스 시스템 : 데이터의 검색과 변경 작업 주로 수행 변경작업 : 시간에 따라 변하는 데이터값을 데이터베이스에 반영하기 위해 수행하는 삽입, 삭제, 수정 등의 작업 데이터베이스의 개념 통합된 데이터 : 여러 곳에서 사용하던 데이터를 통합하여 하나로 저장한 데이터 저장된 데이터 : 문서로 보관된 데이터가 아니라 디스크, 테이프 같은 컴퓨터 저장장치에 저장된 데이터 운영 데이터 : 조직의 목적을 위해 사용되는 데이터 ex) 업무를..

알고리즘

다익스트라 알고리즘이 음의 간선이 포함된 그래프에서 최단 경로를 구하지 못하는 이유

다익스트라 알고리즘 최단 경로 알고리즘 중 하나 출발점에서 다른 모든 노드로의 최단 경로를 구할 수 있다. 간선에 음의 가중치가 없어야한다. 알고리즘 복잡도 : O(ElogV) 코드 import java.util.ArrayList; import java.util.PriorityQueue; public class Main2 { static class Node { int to; int weight; public Node(int to, int weight) { this.to = to; this.weight = weight; } } public static void dijkstra(int v, int[][] data, int start) { ArrayList graph = new ArrayList(); for ..

문제&해결

웹소켓 취약점 해결 : 인증 도입 (STOMP, Jwt, Spring Security)

최근에 보완해서 글을 올렸어요~ 최근 글을 보시면 문제 해결이 더 빠를거에요!https://shout-to-my-mae.tistory.com/430 WebSocket에 JWT 인증 적용하기: 실시간 채팅 서비스 개발 경험담 🚀💬서론프로젝트에서 실시간 채팅 기능을 구현하면서 WebSocket을 사용시 JWT를 인증을 처리하는 방법을 작성해보았습니다.혹시 글을 읽고 해결이 안되시는 분들은 댓글로 남겨주시면 도와드릴게요 !shout-to-my-mae.tistory.com  웹소켓을 사용할 때 요청을 보내는 사람의 인증을 처리하는 방법은 여러 가지가 있다.웹소켓은 HTTP 프로토콜을 업그레이드하여 연결을 시작하기 때문에, 연결 초기 단계에서 인증을 수행할 수 있는 방법을 활용할 수 있다. 1. 초기 HTTP..

문제&해결

도커 volume 설정 + 환경 변수를 사용하여 H2 DB Url을 동적으로 설정하기 (로컬 / Docker 환경)

문제를 해결하면서 차근차근 도커 볼륨 설정을 해보자. docker volume이란? 데이터가 컨테이너 수명 주기 이후에도 지속될 수 있도록 보장해주는 솔루션이다. 컨테이너가 재시작해도 h2 데이터베이스의 데이터가 유지될 수 있도록 컨테이너 내부에서 외부에 존재하는 db 데이터를 참조할 수 있다. # url: jdbc:h2:mem:mydb # 인메모리 url: jdbc:h2:file:./data/mydb # 파일 기반 현재 h2 db 설정은 인메모리(in-memory)에서 file 기반으로 바꾸어서 데이터가 file에 계속 유지될 수 있도록 해뒀다. (도커에서 띄워도 데이터가 파일에 계속 기록되도록 하기 위함이다) 문제 상황 설정 파일인 application-local.yml을 로컬 환경과 도커 환경에서 ..

알고리즘/알고리즘 문제풀이

[백준] 1003 : 피보나치 함수

url : https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 기본 dp 함수 문제이다. java로 알고리즘을 풀 경우 import문을 하나하나써야하고, 없는 자료구조는 구조체로 구현해야한다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { static class Pair{ int zeroCnt; int oneCnt; public Pair(int zeroCnt, int oneCnt) { ..

문제&해결

[스프링 시큐리티] Spring Security의 Filter에서 의존성 전달받기 (빈 주입)

배경 - 인증을 위해 JWT를 사용하고 있다. JWT의 Claim을 통해 사용자 정보를 가져온다. - User 엔티티는 AbstractJpaEntity로부터 상속받는다. id를 이용해 바로 객체를 생성할 수 없다. - Java 17, Spring 3.0으로 최신 개발환경이다. 기존 코드(Spring Security Filter 일부분) Long id = decodedJWT.getClaim("id").asLong(); String role = decodedJWT.getClaim("role").asString(); MemberRole roleEnum = MemberRole.valueOf(role); Member member = Member.builder().id(id).role(roleEnum).build(..

알고리즘/알고리즘 문제풀이

[백준] 2830 : 행성 X3

url : https://www.acmicpc.net/problem/2830 2830번: 행성 X3 상근이는 초등학교 졸업 여행으로 외계 행성 X3에 방문했었다. 이 행성에 사는 사람들의 이름은 모두 자연수이다. 행성의 거주민은 모두 서로를 알고 있다. 두 X3인은 그들의 친밀도를 자신의 이 www.acmicpc.net 위 문제는 비트마스킹 문제이다. XOR한 값들을 서로 더하면 된다고 생각할 수 있지만, n의 범위로 인해 O(N^2)으로 시간초과가 발생한다. 시간초과가 발생한 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public stati..

알고리즘/알고리즘 문제풀이

[백준] 1158: 요세푸스 문제

이제부터 c++이 아닌 java로 문제를 푸려고한다. 자료구조를 익혀야하므로, 기존 골드 문제들을 푸는 것보다는 실버부터 차근차근 푸는 것이 좋을 것 같다. url : https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 요세푸스 문제는 특정한 순서대로 사람을 제거시켜 나가는 문제이다. 큐를 이용해서 풀면 쉽게 풀 수 있다. Scanner 대신 BufferedReader Scanner와 BufferedReader 모두 문자열을 읽는데 사용하지만, BufferedReader가 Scanner보다 훨씬 빠른 속도를 제공한다. 대신 Buffered..

mint*
'분류 전체보기' 카테고리의 글 목록 (9 Page)