분류 전체보기205 SpringSecurity 와 소셜 로그인 : OAuth2, 카카오 로그인, 네이버 로그인 SpringSecurity OAuth2 와 소셜 로그인 - 학원에서 진행했던 파이널 프로젝트에서 내가 담당한 파트!! 이전부터 정리하려고 했으나 채팅하고 이것저것 한다고 미루다가 드디어 해보려고한다. - 이번 글은 추후에 정리할 웹 소켓 채팅 + 소셜 로그인 을 위해 미리 개념과 코드를 정리하기 위한 정리본!! 시큐리티와 session 시큐리티는 /login 주소 요청이 오면 해당 요청을 낚아채서 로그인을 진행시킨다. 로그인 진행이 완료 되면 시큐리티 session 을 만들어준다 ⇒ Security ContextHolder 이때 시큐리티 session 에 들어갈 수 있는 정보는 아래와 같다 Authentication 타입 객체 ⇒ Object 타입 객체 Authentication 타입 객체 안에 User.. Java - Spring &&n SpringBoot 2022. 9. 15. 백준 - 1110 더하기 사이클 https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 풀이 방법 분명히 백준 쉬운 문제 라고 검색해서 찾아서 풀었는데...생각보다 오래걸렸던 문제였다. 그렇다고 어려운 문제는 아니고 다소 생각을 해야했던 문제 이 문제의 핵심 포인트는 아래와 같다. 1. 입력받는 n 이 10 보다 작다면 '뒤' 가 아닌 '앞' 에 0 을 붙여서 2자리로 만드는 것!! => 이 조건 때문에 크기가 2인 배열을 만들어서 문제를 풀었다. 2. 계산해서 만들어.. Java - 알고리즘 2022. 9. 14. Spring Boot Web Chatting : 스프링 부트로 실시간 채팅 만들기 (4) 채팅방 비밀번호 설정, 인원수 제한, 삭제(feat. 업로드된 S3 파일 삭제) 10.29 추가 : 일반(문자) 채팅만 구현하는 코드는 git 의 master 브렌치를 참고해주시기 바랍니다. master-Webrtc-jpa 는 화상 채팅과 jpa 를 이용한 DB 연결을 포함하는 브렌치입니다. 시작하면서 - 지난번에 S3 파일 업로드 & 다운로드까지 완료하고 나니까 좀 더 여러가지 기능을 넣어보고 싶어서 채팅방에 관한 설정을 추가해보았다. - 구체적으로는 채팅방 생성 시 비밀번호 설정, 채팅방 인원수 제한과 채팅방 삭제 기능이다. 특히 삭제 기능의 경우 채팅방이 삭제되면 해당 채팅방에 올라온 파일도 필요가 없어짐으로 S3 에서 해당 채팅방에 관련된 모든 파일을 삭제하는 방식으로 코드를 작성하였다. - 이왕 이렇게 된거 최종적인 완성본은 카카오 오픈 채팅방의 그것처럼 만들어보려고 한다... 토이 프로젝트/Spring&Java 갖고놀기 2022. 9. 13. 백준 - 1389 케빈 베이컨의 6단계 법칙 https://www.acmicpc.net/problem/1389 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net 케빈 베이커의 6단계 법칙!! 대충 모든 사람은 6다리 정도 거치면 서로가 서로를 아는 사람으로 이어질 수 있다는 법칙인데 아무래도 나같은 아싸를 계산에 넣지 않고 만든 법칙인듯하다ㅋㅋ 여튼 이 문제는 플로이드 와샬을 사용해서 풀면 된다. 어제 풀었던 플로이드 문제보다 훨씬 쉬운 문제이다. BFS 로도 풀이가 가능하다고 들었으나, 나는 플로이드 와샬.. Java - 알고리즘 2022. 9. 13. 백준 - 11404 플로이드(feat.플로이드 와샬 알고리즘) https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 플로이드 와샬 알고리즘 - Floyd Warshall 플로이드 와샬 알고리즘은 모든 정점에서 모든 정점까지 최단 경로를 구하는 것이다. 이때 임의의 노드 S 에서 E 까지 가는데 걸리는 최단 거리를 구하기 위해 S 와 E 사이의 노드인 M 에 대해서 S에서 M 까지 걸리는 최단 거리와 M 에서 E 까지 걸리는 최단 거리를 이용한다. 아래 사진으로 이야기하자면 1에서 2, 3, 4, 5 까지의 최단.. Java - 알고리즘 2022. 9. 12. 백준 - 10282 해킹 풀이 방법 다익스트라 알고리즘을 공부하기 위해서 찾았던 문제!! 골드임에도 크게 어려운 편은 아니다. 예전에 풀었던 네트워크 문제와 뭔가 비슷하다는 느낌을 많이 받았다. 풀이 포인트는 아래와 같다!! 이 문제의 핵심 포인트는 감염까지 걸리는 최소 시간을 계산하는 것!! 백준 네트워크 문제와 비슷하지만 DFS 나 BFS 로 풀면 시간초과가 나거나 메모리 초과가 발생한다. 이에 다익스트라 알고리즘으로 문제를 풀어야했다. 최소 시간이라는 말은 딱히 없지만...최소 시간이 걸리도록 계산해야함으로 다익스트라 알고리즘을 사용한다. 그나마 주의할 점은 a 가 b 를 의존한다는 점과 전체 입력 받을 때 살짝 복잡하다는 정도? 뭔가 쉬운듯 어려운 다익스트라ㅠㅠ 나머지는 주석 참고!! package baekJoon; im.. Java - 알고리즘 2022. 9. 11. 백준 - 2579 계단오르기 풀이 방법 실버3 문제이기도 하고, DP 알고리즘 관련해서 공부해보고 싶어서 풀었다가...생각보다 어려워서 고민을 많이했던 문제이다. 물론 엄청 어려웠던 것은 아니고, 뭐랄까...다른 알고리즘 문제보다 수학적인 접근이 필요한? 문제라고 느껴졌다. 마치 그리디 문제나 수학 관련된 문제를 푸는 것처럼 점화식을 찾는 부분도 특히 그랬다. 여튼 이 문제는 아래와 같은 방법으로 접근하면 된다!! // 이 문제의 포인트는 문제를 쪼개서 쉽게 생각하는 것!! // 정확히는 문제중에서 조건을 쪼개고 연결시켜서 다 쉽게 생각하는것이 중요하다. // 조건 1. 현재 계단 i+1 이거나 i+2 가 가능하다. // 조건 2. 단 계단을 i+1, i+2, i+3 순서대로 오를 수 없다. 최대 i+1, i+2 만 가능하다 => .. Java - 알고리즘 2022. 9. 11. Spring Boot Web Chatting : 스프링 부트로 실시간 채팅 만들기 (3) S3 기반 채팅 파일 업로드 & 다운로드 10.29 추가 : 일반(문자) 채팅만 구현하는 코드는 git 의 master 브렌치를 참고해주시기 바랍니다. master-Webrtc-jpa 는 화상 채팅과 jpa 를 이용한 DB 연결을 포함하는 브렌치입니다. - 최근 스터디에서 파일 업로드와 관련된 프로젝트를 하자고 이야기가 나왔고, 이에 만들어두었던 채팅에 이어서 만들어보고 싶어서 부랴부랴 AWS S3 와 연동해서 S3 기반 파일 업로드를 구현하였다. - 원래는 S3의 bucket 만들기부터 시작해서 ACL 설정 등등 만져줄게 많은데 이것들은 담에 설명하기로 하고, 이번에는 코드만 정리하고 넘어가려고 한다. => 혹시나 필요하신 분들을 위해서 이 부분은 아래에 참고 사이트를 넣어두었으니 확인 부탁드립니다! - 아래의 추가된 모든 내용은 해당 git.. 토이 프로젝트/Spring&Java 갖고놀기 2022. 9. 7. Docker 개념 알아보기 : docker , docker hub, docker image 도커의 기반 - Linux Container 리눅스 컨테이너는 운영체제 수준의 가상화 기술로 리눅스 커널을 공유하면서 프로세스를 격리된 환경에서 실행하는 기술이다. 하드웨어 자체를 가상화하는 가상 머신과 달리 커널을 공유하는 방식이기 때문에 실행속도가 더 빠르고, 성능 상 손실이 거의 없다는 장점이 있다. 그럼에도 리눅스의 기능인 chroot, namespace, cgroup 를 사용하기 때문에 격리된 환경에서 구동되기 때문에 호스트 머신에게는 프로세스로 인식되지만 각 컨테이너의 관점에서는 마치 독립적인 환경을 가진 가상 머신처럼 보이게 된다. Docker 란? - 도커 - docker - 란 Linux Container 에 여러 기능을 추가함으로써 Application 을 좀 더 쉽게 사용할 수 있게 .. Server/Docker & Kubernetes 2022. 9. 7. 백준 - 1026 보물 https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 풀이 방법 요번에는 쉬운 문제!! 입력받는 배열 A와 B 에서 각각 i 번째 인덱스끼리 곱한 후 더해서 최소값을 만드는 문제이다 최소값을 어떻게 만들지만 생각하면 굉장히 간단해지는 문제이다. 입력받는 두 배열의 i번째 값들을 곱해서 최소값을 만드려면 A 배열의 최대값과 B 배열의 최소값을 곱하면 될 것이다(혹은 그 반대). 때문에 A 배열을 오름차순으로 정렬하고, B 배열을 내림차순으로 정.. Java - 알고리즘 2022. 9. 6. 백준 - 2981 검문 https://www.acmicpc.net/problem/2981 2981번: 검문 트럭을 타고 이동하던 상근이는 경찰의 검문을 받게 되었다. 경찰은 상근이가 운반하던 화물을 하나하나 모두 확인할 것이기 때문에, 검문하는데 엄청나게 오랜 시간이 걸린다. 상근이는 시간 www.acmicpc.net 풀이 방법 어떤 문제에 이은 무식하면 용감하다 시리즈 2번째 최근에 유클리드 호제법을 공부하고 관련된 문제를 풀어서 이번에도 쉬울 줄 알고 도전했는데...세상에 이렇게 어려운 문제일 줄은 몰랐다. 물론 풀고 나니까 내가 몰랐었던 혹은 까먹었던 부분들 - 정수론, 나머지 정리 - 을 잘 버무리고 활용하면 쉽게 풀릴만도 했지만 나는 문과였고ㅠㅠ 유클리드 호제법도 정수론도 이제야 보게 되었다ㅠㅠ 여튼 그래도 저런거 다.. Java - 알고리즘 2022. 9. 5. 백준 - 4485 녹색 옷 입은 애가 젤다지? 풀이 방법 오랜만에 도전한 골드 문제!! 처음에 생각없이 BFS 로 코드를 짰는데 메모리 초과가 발생해서 방향을 다시 잡고 코드를 치기 시작했다. 이 문제의 핵심 포인트는 녹색옷을 입을 애가 젤다라는 점!! 이 아니고ㅋㅋㅋㅋ 2차원 배열로 입력받는다고 하더라도 결국 n-1, n-1 좌표에 도착하는 최소값을 구하는 문제라는 점이다. BFS 나 DFS 로 푸는것이 아니라 다익스트라 알고리즘을 사용해야한다. 다만 우리는 그래프 형식이 아니고 배열로 입력받기 때문에 어떻게 좌표(노드)에서 좌표(노드) 로 넘어갈 수 있는지 고민해야한다. 나는 이 부분을 DFS, BFS 에서 사용하던 dx, dy 배열을 사용해서 풀이를 하였다. 즉, dx, dy 를 통해 계산된 nx, ny 좌표가 배열의 범위 안에 존재하면 이전 .. Java - 알고리즘 2022. 9. 2. 이전 1 2 3 4 5 6 7 8 ··· 18 다음 728x90 반응형